飞思卡尔直立平衡智能车的制作
智能车电磁组比赛技术报告

第七届“飞思卡尔”杯全国大学生智能汽车竞赛电磁组技术报告学校:河南理工大学队伍名称:志成队参赛队员:杨宗保黄号凯毛学宇指导教师:张新良摘要本文介绍了基于MC9S12XS128控制器的直立小车的设计方案。
目的是仿照两轮自平衡电动车的行进模式,让车模以两个后轮驱动进行直立行走。
I目录第一章绪论 (7)第二章原理分析 (10)2.1直立行走任务分解 (10)2.2车模平衡控制 (10)2.2车模角度和角速度测量 (15)2.3 车模速度控制 (22)2.4 车模方向控制 (27)2.5车模直立行走控制算法总图 (29)第三章电路设计 (31)3.1 整体电路框图 (31)3.2 XS128介绍与单片机最小系统 (32)3.3 倾角传感器电路 (37)3.4 电机驱动电路 (39)3.5 速度传感器电路 (40)3.6 电磁线检测电路 (41)3.7 电源模块 (43)第四章、机械设计 (43)4.1 车模简化改装 (43)4.2 传感器安装 (46)第五章程序设计 (49)5.1 相关模块初始化 (49)II5.2 软件功能与框架 (54)5.3 主要算法及其实现 (56)5.3.1 算法框图与控制函数关系 (56)5.4 参数整定 (62)5.4.1角度参数整定 (62)5.4.2速度参数整定 (63)5.4.3补偿时间常数整定 (63)III图表索引图1- 1 电磁组规定的C车车模 (7)图1- 2 电磁组车模运行状态 (7)图1- 3 车模控制任务 (8)图1- 4 车模制作调试流程图 (9)图 2- 1保持木棒直立的反馈控制 (11)图 2- 2通过车轮运动保持车模平衡 (11)图 2- 3车模简化成倒立的单摆 (12)图 2- 4普通单摆受力分析 (12)图 2- 5在车轮上的参照系中车模受力分析 (13)图 2- 6 电机在不同电压下的速度变化线 (15)图 2- 7 加速度传感器原理 (16)图 2- 8 MMA7260三轴加速度传感器 (16)图 2- 9 车模运动引起加速度信号波动 (17)图 2- 10 车模运动引起加速度 Z轴信号变化 (18)图 2- 11 角速度传感器及参考放大电路 (19)图 2- 12 角速度积分得到角度 (19)图 2- 13 角速度积分漂移现象 (20)图 2- 14 通过重力加速度来矫正陀螺仪的角度漂移 (20)图 2- 15 角度控制框图 (21)图 2- 16电机速度检测 (22)图 2- 17车模倾角给定 (23)图 2- 18 车模倾角控制分析 (24)图 2- 19车模运动速度控制简化模型 (25)IV图 2- 20 车模角度和速度控制框图 (26)图 2- 21改进后的速度和角度控制方案 (27)图 2- 22检测道路中心电磁线方式 (28)图 2- 23车模方向控制算法 (29)图 2- 24 车模运动控制总框图 (30)图 3- 1直立车模控制电路整体框图 (32)表格1 XS128端口说明 (32)图 3- 2 XS128LQFP封装引脚图 (34)图 3- 3最小系统板(112针脚) (35)图 3- 4系统板与下载器BDM的连接图 (36)图 3- 5 V3.0系统板112原理图 (37)图 3- 6 陀螺仪加速度计模块 (38)图 3- 7 陀螺仪加速度计二合一模块实物图 (38)图 3- 8 电机驱动模块实物图 (39)图 3- 9 电机驱动原理图 (40)图 3- 10速度传感器电路 (41)图 3- 11 LM386引脚图 (42)图 3- 12 LM386典型应用电路 (42)图 3- 13 传感器电路图 (43)图 3- 14 电源模块原理图 (43)图 4- 1 完整的 C型车模底盘 (44)图 4- 2 简化后的 C型车模底盘 (44)图 4- 3 使用热熔胶固定电机支架与车模底盘 (45)图 4- 4 去掉后轮之后的车模底盘 (46)V图 4- 5使用复合胶水固定光电编码盘 (47)图 4- 6固定好的光电码盘和光电检测管 (47)图 4- 7电磁传感器支架 (48)图 4- 8 陀螺仪加速度计安装示意图 (49)图 5- 1 主程序框架 (55)图 5- 2中断服务程序 (55)图 5- 3 算法框图中与控制相关的软件函数 (56)图 5- 4 控制函数调用与参数传递关系 (57)VI7第一章 绪论本次全国大学生智能汽车竞赛电磁组要求采用飞思卡尔半导体公司的 8 位、16 位处理器(单核)作为唯一的微控制器,采用C 型车模。
两轮自平衡车控制系统的设计与实现_周牡丹

4 | T echniques of Automation & Applications两轮自平衡车控制系统的设计与实现周牡丹,康 恺,蔡普郎,黄天健(厦门大学嘉庚学院电子工程系,福建 漳州 363105)摘 要:根据飞思卡尔智能车竞赛的要求,设计了基于MC9S12XS128单片机的两轮自平衡智能车控制系统。
介绍了该智能车系统的硬件模块电路设计、控制系统的构成及核心控制算法的实现。
在此基础上详细介绍了用于智能车直立控制、速度控制和方向控制的参数调试时简单易行的关键技术。
经过反复多次的实验表明,本文设计的两轮自平衡车控制系统性能可靠,在车身保持直立平衡的同时能够沿着赛道快速平稳运行.关键词:两轮自平衡车;PID控制;CCD路径检测;直立控制中图分类号:TP273 文献标识码:B 文章编号:1003-7241(2014)10-0004-05Design and Implementation of Two-WheeledSelf-Balancing Vehicle Control SystemZHOU Mu-dan, KANG Kai, CAI Pu-lang, HUANG Tian-jian( Dept.of Electronic Engineering, TKK College, Xiamen University, Zhangzhou 363105 China )Abstract: For Freescale smart car contest requirements, a two-wheeled self-balancing intelligent vehicle control system based onMC9S12XS128 is designed. This article introduces the design of the hardware module circuit, the structure of control system, and the implementation of the core control algorithm about the vehicle. The key technologies for debugging the upright control, speed control and direction control of the intelligent vehicle are also discussed in the paper. After repeated experiments , it shows that the design of the two-wheeled self-balancing vehicle control system is feasible and reliable. The vehicle can run quickly and smoothly along with the track while maintaining upright balance.Key words: two-wheeled self-balancing vehicle; PID control; CCD path detection; upright control收稿日期:2014-05-201 引言近年来,两轮自平衡电动车以其绿色节能、灵活便捷等优点而得到很大的发展。
基于MFC的飞思卡尔智能车上位机设计

基于MFC的飞思卡尔智能车上位机设计众所周知,上位机在智能车调试中起着重要作用,尤其是通过无线串口,实现数据实时发送接收,极大方便了智能车调试。
作者以VC6.0为平台使用微软MFC,简单介绍串口上位机设计,抛砖引玉。
STEP1.新建MFC工程STEP2.加入串口类VC6.0进行串口开发主要有两种方式,一种是利用微软控件MScomm,一种是利用开源类CSerialPort。
但是前者编译生成的程序在其他电脑上运行还要注册控件,略显麻烦。
而后者属于对windows API封装,使用方便,兼容性强。
本文重点介绍CSerialPort的使用。
在/serialport.html下载最新CSerialPort类,工程中添加.h 和.cpp文件,如下图。
在serialDlg.cpp和serialDlg.h中包含Cserialport头文件同时在serialDlg.h中定义对象CSerialPort m_SerialPort; //CSerailPort类对象STEP3. Cserialport必备函数STEP4.窗口布局设置成员变量(Ctrl+W ),四个编辑框对应四个UNIT成员变量STEP5.串口初始化OK,所有前期工作准备完成,开始串口操作按钮“打开串口”,双击,创建消息函数void CSerialDlg::OnOpenserial() 实现串口初始化,代码如下按钮“关闭串口”,双击,创建消息函数void CSerialDlg::OnCloseserial() 函数功能为进行串口初始化,代码如下STEP6.串口数据发送按钮“发送”,双击,创建消息函数,代码如下STEP7.串口数据接收手工建立WM_COMM_RXCHAR的消息映射处理函数OnComm() 首先在serialDlg.h中添加响应函数声明在serialDlg.cpp中添加消息响应At last,VC串口通讯程序基本功能,打开串口,关闭串口,接收数据,发送数据均以完成。
自制两轮平衡车

制作:朱兆丰
控制器:ATmega16;8MHz; 加速度传感器:MMA2260;陀螺仪: EWTS82; 传感器的融合:卡尔曼滤波; 马达:EN_2342CR(速比64)+双路12脉 冲编码器+CD40106对信号整形; 驱动板芯片:CD4001+IR2111+IRF1404 (驱动电流可以很大); 制作资料在压缩包里面,供参考;
accelgyro.initialize(); delay(500); pinMode(22,OUTPUT); pinMode(23,OUTPUT); pinMode(24,OUTPUT); pinMode(25,OUTPUT); pinMode(2,OUTPUT); pinMode(3,OUTPUT);
/********** 互补滤波器参数 *********/ //unsigned long preTime = 0; // 采样时间 //float f_angle = 0.0; // 滤波处理后的角度值
*********** PID控制器参数 *********/ //unsigned long lastTime; float Output; //;, Setpoint,Input; //double errSum, lastErr; float kp, ki, kd,kpp; //int SampleTime = 0.1; //1 sec //float Outputa = 0.0; float angleA,omega; //double Kp, Ki, Kd; float P[2][2] = {{ 1, 0 },{ 0, 1 }}; float Pdot[4] ={ 0,0,0,0}; static const double Q_angle=0.001, Q_gyro=0.003, R_angle=0.5,dtt=0.007,C_0 = 1; float q_bias, angle_err, PCt_0, PCt_1, E, K_0, K_1, t_0, t_1; float angle, angle_dot; // aaxdot,aax; float position_dot,position_dot_filter,positiono; //double Speed_Need=0; //float K_angle=2; //float K_angle_dot=0.5; //float K_position=0.1; 256对应10V; //float K_position_dot=1;
两轮自平衡小车控制系统的设计

两轮自平衡小车控制系统的设计摘要:介绍了两轮自平衡小车控制系统的设计与实现,系统以飞思卡尔公司的16位微控制器MC9S12XS128MAL作为核心控制单元,利用加速度传感器MMA7361测量重力加速度的分量,即小车的实时倾角,以及利用陀螺仪ENC-03MB测量小车的实时角速度,并利用光电编码器采集小车的前进速度,实现了小车的平衡和速度控制。
在小车可以保持两轮自平衡前提下,采用摄像头CCD-TSL1401作为路径识别传感器,实时采集赛道信息,并通过左右轮差速控制转弯,使小车始终沿着赛道中线运行。
实验表明,该控制系统能较好地控制小车平衡快速地跟随跑道运行,具有一定的实用性。
关键词:控制;自平衡;实时性近年来,随着经济的不断发展和城市人口的日益增长,城市交通阻塞以及耗能、污染问题成为了一个困扰人们的心病。
新型交通工具的诞生显得尤为重要,两轮自平衡小车应运而生,其以行走灵活、便利、节能等特点得到了很大的发展。
但是,昂贵的成本还是令人望而止步,成为它暂时无法广泛推广的一个重要原因。
因此,开展对两轮自平衡车的深入研究,不仅对改善平衡车的性价比有着重要意义,同时也对提高我国在该领域的科研水平、扩展机器人的应用背景等具有重要的理论及现实意义。
全国大学生飞思卡尔智能车竞赛与时俱进,第七届电磁组小车首次采用了两轮小车,模拟两轮自平衡电动智能车的运行机理。
在此基础上,第八届光电组小车再次采用两轮小车作为控制系统的载体。
小车设计内容涵盖了控制、模式识别、传感技术、汽车电子、电气、计算机、机械及能源等多个学科的知识。
1 小车控制系统总体方案小车以16位单片机MC9S12XS128MAL作为中央控制单元,用陀螺仪和加速度传感器分别检测小车的加速度和倾斜角度[1],以线性CCD采集小车行走时的赛道信息,最终通过三者的数据融合,作为直流电机的输入量,从而驱动直流电机的差速运转,实现小车的自动循轨功能。
同时,为了更方便、及时地观察小车行走时数据的变化,并且对数据作出正确的处理,本系统调试时需要无线模块和上位机的配合。
智能直立循迹小车的控制方案

赵继 强
摘要 本 系统采 用 飞思卡 尔M C 9 S 1 2 G 1 2 8 M L L 单 片机 为控制核 心 ,控制 小车直立 循迹 行驶 。通过调 节P W M 输 出分别单独控 制左 右两个 车轮 电机 ,利 用加速度 传感 器、 陀螺仪 以及 红外光 电传 感器的检 测 信号反馈给 单片机 ,通过运算输 出控 制 小车按 照预 定路 线直 立行驶 。实验表 明 ,本 系统结构 简单 ,在一 定程度 上 体现 了小车智能化运作 ,具有较好的 鲁棒 性 。 关键词
化。
2 理论分 析
2 . 1车 模平 衡控 制
通过负反馈 ,可以实现车模的平衡控制。因为车模两 轮 着 地 ,车 体 只会 在 轮子 滚 动 的方 向上 发 生倾 斜 。因此 通 过 控 制 电机 带 动轮 子 转 动 ,抵 消在 一个 方 向上 倾 斜 的趋 势
便 可 以保 持车 体 的平衡 。 倒 立摆 之 所 以不 能 像单 摆 一样 可以 稳 定在 垂直 位 置 , 就 是 因 为在 它偏 离 平 衡位 置 时 ,所 受到 的 回复力 与位 移 方 向相 同 。 因此 ,倒 立 摆 便 会 加 速 偏 离 垂 直 位 置 ,直 至 倒
中 国科 技信 息 2 0 1 3年 第 2 O期 ’ C HI N A S C I E N C E AN D T E C H N OL O G Y I N F OR MA T I ON O c t . 2 0 1 3
信 息 科 技
智 能直立循迹 小车 的控制方案
赵继强 陈建国 林荣群
当前车 模 方 向 。同时 检 查车 模是 否 跌 倒 ,跌倒 判 断可 以通
3系统程序设计
“飞思卡尔”智能汽车系统设计
作为最为普遍的交通工具之一 , 汽车与人们的生活息息相关。 一旦智能汽 车得到普及势必会走向量产化, 而在智能汽车普及之前应该制定出相关的设计 标准作为智能汽车的标杆。 智能汽车系统所包含的内容甚多, 如信息控制、 系统 结构、 数据采集、 系统数据库等方面都属于智能汽车系统所涵盖的范畴, 如果没 有统一的标尺, 则会让各个模块之间出现很大的差异化, 这样就会带来一系列 的问 题, 同时也会让智能汽车的构建变得繁琐、 复杂。 通过制定出 统一的标准 , 让系统兼容性得以保证的同时让整个智能汽车系统设计更加规范, 从而带动智 能汽车产业的发展[ 1 】 。
1 . 2 控制模 块
控制系统是智能汽车系统重要的组成部分 , 是实现人机交互的关键。 从当 前的汽车控制来看还是不能离开人工操作 , 只有在驾驶员存在的情况下才能保 证汽车的正常工作。 在驾驶的过程中, 如果时间较长则会给驾驶员带来极大的 疲劳感, 这样就 间接带来了交通事故隐患。 而在智能化汽车将能够摆脱人工操
科 学论 坛
l 蕾
C h i n a s c i e n c e a n d T e c h n o ] o g y R e v i e w
“ 飞 思卡 尔 ” 智能 汽 车 系统 设 计
王贯 安
( 中南大学 湖南 长沙 4 1 0 0 1 2 )
[ 摘 要] 随着 科 技的进 步 , 汽 车产 业也 发生 了翻天 覆地 的变 化 。 在计 算机 技术 、 网络技术 、 电子 技术等 高端 技术 的推动 下 , 智 能汽车 得到 了实 现 , 相信 随着 时 间的推移 。 智能汽车也将有着更加广阔的发展空间。 要让汽车实现智能化, 智能系统设计是十分重要的一个环节。 本文对智能汽车系统进行了综合性的阐述 , 并以 “ 飞思卡尔智” 能汽车比赛对智能汽车系统设计进行了探讨。 [ 关键 词] 飞思 卡 尔 智 能 汽车 系统 设计 中图分类号 : D4 1 2 . 3 文献标识码 : A 文章编号 : 1 0 0 9 - 9 1 4 X ( 2 0 1 4 ) 0 1 —0 2 2 4 一 O 1
第七届全国大学生“飞思卡尔”杯智能汽车竞赛电磁组直立行车参考设计方案(版本2.0)官方方案2.0
第七届全国大学生“飞思卡尔”杯智能汽车竞赛电磁组直立行车参考设计方案(版本2.0)目 录目录 (2)图表索引 (3)一、前言 (7)二、原理篇 (9)2.1直立行走任务分解 (9)2.2车模直立控制 (11)2.3 车模角度和角速度测量 (19)2.3车模速度控制 (26)2.4车模方向控制 (33)2.6车模直立行走控制算法总图 (36)三、电路设计篇 (37)3.1整体电路框图 (37)3.2 DSC介绍与单片机最小系统 (39)3.3倾角传感器电路 (42)3.4电机驱动电路 (44)3.5速度传感器电路 (45)3.6电磁线检测电路 (46)3.7 角度计算电路 (50)3.8 车模控制电路全图 (55)四、机械设计篇 (57)4.1车模简化改装 (57)4.2传感器安装 (59)4.3注意事项 (63)五、软件开发篇 (64)5.1软件功能与框架 (65)5.2 DSC的硬件资源配置 (68)5.3主要算法及其实现 (69)六、车模调试篇 (82)6.1 调试参数 (82)6.2调试条件 (85)6.3 桌面静态参数调试 (91)6.4 现场动态参数调试 (101)6.5 方案改进与车模整体水平提高 (101)七、结束语 (102)附录: (103)图表索引第一章图1- 1 电磁组车模直立运行模式 (7)图1- 2参考设计方案内容 (8)图1- 3 车模制作路线图 (9)第二章图2- 1 车模控制任务分解 (10)图2- 2 车模倾角会引起车速速度变化 (10)图2- 3 三层控制之间相互配合 (11)图2- 4 保持木棒直立的反馈控制 (12)图2- 5 通过车轮运动保持车模直立 (12)图2- 6 车模简化成倒立的单摆 (13)图2- 7 普通单摆受力分析 (13)图2- 8 不同阻尼力下的单摆运动 (14)图2- 9 在车轮上的参照系中车模受力分析 (14)图2- 10 车模控制两个系数作用 (16)图2- 11 车模运动方程 (16)图2- 12 加入比例微分反馈后的系统框图 (17)图2- 13 电机在不同电压下的速度变化曲线 (18)图2- 14 加速度传感器原理 (19)图2- 15 MMA7260三轴加速度传感器 (20)图2- 16 车模运动引起加速度信号波动 (21)图2- 17 实际测量MMA7260Z轴信号 (21)图2- 18 车模运动引起加速度Z轴信号变化 (22)图2- 19角速度传感器及参考放大电路 (22)图2- 20 角速度积分得到角度 (23)图2- 21 角速度积分漂移现象 (23)图2- 22 通过重力加速度来矫正陀螺仪的角度漂移 (24)图2- 23 双加速度传感器获得车模角加速度 (25)图2- 24 角度控制框图 (25)图2- 25 电机速度检测 (26)图2- 26 车模倾角给定 (27)图2- 27 车模倾角控制速度中的正反馈 (28)图2- 28 车模倾角控制分析 (29)图2- 29 车模运动速度控制简化模型 (29)图2- 30 增加微分控制后的系统 (30)图2- 31 改进的微分控制 (30)图2- 32 车模角度和速度控制框图 (31)图2- 33 速度角度控制方案的改进 (32)图2- 34 改进后的速度和角度控制方案 (32)图2- 35 检测道路中心电磁线方式 (33)图2- 36 通过电机驱动电压的差动控制控制车模方向 (34)图2- 37 检测车模转动速度的陀螺仪 (34)图2- 38 电感线圈的偏角影响感应电动势 (35)图2- 39 车模方向控制算法 (35)图2- 40 车模运动控制总框图 (36)第三章图3- 1 直立车模控制电路整体框图 (39)图3- 2 56F8013内部资源示意图 (40)图3- 3 F8013最小系统电路 (41)图3- 4 F8013最小系统电路实物 (42)图3- 5 陀螺仪、加速度传感器电路 (43)图3- 6 车模倾角传感器电路实物图 (43)图3- 7 双电机驱动电路 (44)图3- 8单极性PWM、双极性PWM (45)图3- 9 两片33886组成的电机驱动电路 (45)图3- 10 速度传感器电路 (46)图3- 11 基于三极管的电磁信号放大检波电路 (47)图3- 12 基于三极管的电磁放大检波电路实物图 (48)图3- 13 使用R-R运放进行电磁信号放大检波 (49)图3- 14 LMV358放大检波输出波形 (49)图3- 15 基于LMV358放大检波电路实物图 (50)图3- 16 双加速度测量角速度电路 (51)图3- 17 双加速度计测量角度波形图 (51)图3- 18 简化角速度电路 (52)图3- 19 实测车模角速度信号波形 (52)图3- 20 角度信号处理电路 (53)图3- 21 不同角速度比例情况下输出波形 (53)图3- 22 角度计算环节的传递函数 (54)图3- 23 一个运算放大器实现角度计算 (54)图3- 24 不同P1阻值对应的输出波形 (55)图3- 25 简化的角度和角速度处理电路 (55)图3- 26 车模控制电路全图 (56)第四章图4- 1 完整的C型车模底盘 (57)图4- 2 简化后的C型车模底盘 (57)图4- 3 使用热熔胶固定电机支架与车模底盘 (58)图4- 4 去掉后轮之后的车模底盘 (58)图4- 5 电机引线转接板 (59)图4- 6 使用复合胶水固定光电编码盘 (59)图4- 7 固定好的光电码盘和光电检测管 (60)图4- 8 电磁传感器支架 (61)图4- 9 车模组装全图 (64)第五章图5- 1 主程序框架 (65)图5- 2 中断服务程序 (66)图5- 3 任务中断时间波形 (67)图5- 4 算法框图中与控制相关的软件函数 (70)图5- 5 控制函数调用与参数传递关系 (71)图5- 6 程序中变量命名规范 (72)图5- 7 电机死区补偿 (78)第六章图6- 1 调试车模参数复杂而关键 (82)图6- 2 需要调整的参数和相关的单位 (84)图6- 3 车模运动坐标定义 (85)图6- 4 电源检查 (86)图6- 5 单片机串口通信 (86)图6- 6 PWM信号输出 (87)图6- 7 采集电机光电码盘信号 (87)图6- 8 陀螺仪、加速度传感器AD采集信号 (88)图6- 9 车模静态参数调整桌面 (88)图6- 10车模动态参数调试场地 (89)图6- 11 监控软件界面 (89)图6- 12 无线遥控开关 (90)图6- 13 无线通信模块进行参数监控 (90)图6- 14 F8013内部FLASH应用划分 (91)图6- 15 需要整定的传感器参数 (91)图6- 16 车模保持垂直静止 (92)图6- 17 测量加速度传感器的极值 (92)图6- 18测量陀螺传感器比例因子,角度补偿回路断开 (93)图6- 19 几种不同陀螺仪比例因子角度输出 (94)图6- 20 车模控制参数 (95)图6- 21 角度参数调整过程 (96)图6- 22 速度参数调整过程 (97)图6- 23 方向参数调整过程 (98)图6- 24 角度补偿时间常数调整 (99)图6- 25 Z轴附加信号分析 (100)图6- 26 死区常数调整 (100)附录图7- 1 参考设计方案视频截图 (103)图7- 2 参数整定与调试指南 (104)图7- 3 软件控制算法全图 (106)图7- 4 参考方案电路全图 (107)第一章、前言为了提高全国大学生智能汽车竞赛创新性和趣味性,激发高校学生参与比赛的兴趣,提高学生的动手能力、创新能力和接受挑战能力,智能汽车竞赛组委会将电磁组比赛规定为车模直立行走,如图1- 1所示。
两轮自平衡小车毕业设计!!_修改
自平衡小车设计摘要这些年来,两轮自平衡车的应用获得了十分快速的应用和发展。
本文提出了一种两轮的自平衡小车的设计,采用陀螺仪ENC-03以及MEMS加速度传感器MMA7260构成小车姿态检测装置,使用卡尔曼滤波完成陀螺仪数据与加速度计数据的数据融合。
系统选用飞思卡尔16位单片机MC9S12XS128为控制核心,完成了传感器信号的处理,滤波算法的实现及车身控制,人机交互等。
整个系统在制作完成后,各个模块之间能够协调工作,小车也可以在无人干预的条件下达到自主平衡。
同时在引入适量的干扰情况下小车也能够自主调整状态并迅速恢复稳定的状态。
小车可以被控制实现前进、后退、左右转向等动作。
关键词:自平衡stm32 姿态滤波IDesign of Self-Balance VehicleAbstractIn recent years, the application of two wheeled self balancing vehicle has been very rapid application and development. In this paper, we propose a two rounds of self balance car design, car attitude detection device by gyroscope enc-03 and MEMS accelerometer MMA7260 and Kalman filtering is used to complete data of a gyroscope and accelerometer meter data fusion. The system selects the flying thought Carle 16 bit single chip microcomputer MC9S12XS128 as the control core, completed the sensor signal processing, the filter algorithm realization and the vehicle body control, human computer interaction and so on.After the completion of the entire system, the various modules can work in coordination, the car can also be under the conditions of unmanned intervention to achieve self balancing. At the same time in the introduction of the amount of interference in the case of the car can also adjust the state and quickly return to a stable state. The car can be controlled to achieve forward, backward, left and right steering and so on.Key Words: Two-Wheel Self-Balance; Gyroscope; Gesture detection; Kalman filter; Data fusionII目录1.绪论 (1)1.1研究背景与意义 (1)1.3本文主要研究目标与内容 (1)1.4论文章节安排 (2)2.系统原理分析 (3)2.1控制系统要求分析 (3)2.2平衡控制原理分析 (3)2.3自平衡小车数学模型 (4)2.3.1两轮自平衡小车受力分析 (4)2.3.2自平衡小车运动微分方程 (7)2.4 PID控制器设计 (8)2.4.1 PID控制器原理 (8)2.4.2 PID控制器设计 (9)2.5姿态检测系统 (10)2.5.1陀螺仪 (10)2.5.2加速度计 (11)2.5.3基于卡尔曼滤波的数据融合 (12)2.6本章小结 (14)3.系统硬件电路设计 (15)3.1 MC9SXS128单片机介绍 (15)3.2单片机最小系统设计 (17)3.3 电源管理模块设计 (19)3.4倾角传感器信号调理电路 (20)3.4.1加速度计电路设计 (20)3.4.2陀螺仪放大电路设计 (20)3.5电机驱动电路设计 (21)3.5.1驱动芯片介绍 (22)3.5.2 驱动电路设计 (22)III3.6速度检测模块设计 (23)3.6.1编码器介绍 (23)3.6.2 编码器电路设计 (24)3.7辅助调试电路 (25)3.8本章小结 (25)4.系统软件设计 (26)4.1软件系统总体结构 (26)4.2单片机初始化软件设计 (26)4.2.1锁相环初始化 (26)4.2.2模数转换模块(ATD)初始化 (27)4.2.3串行通信模块(SCI)初始化设置 (28)4.2.4测速模块初始化 (29)4.2.5 PWM模块初始化 (30)4.3姿态检测系统软件设计 (30)4.3.1陀螺仪与加速度计输出值转换 (30)4.3.2卡尔曼滤波器的软件实现 (32)4.4平衡PID控制软件实现 (34)4.5两轮自平衡车的运动控制 (35)4.6本章小结 (37)5. 系统调试 (38)5.1系统调试工具 (38)5.2系统硬件电路调试 (38)5.3姿态检测系统调试 (39)5.4控制系统PID参数整定 (41)5.5两轮自平衡小车动态调试 (42)5.6本章小结 (43)6. 总结与展望 (44)6.1 总结 (44)6.2 展望 (44)参考文献 (45)IV附录 (46)附录一系统电路原理图 (46)附录二系统核心源代码 (47)致谢 (50)V常熟理工学院毕业设计(论文)1.绪论1.1研究背景与意义近应用意义。
智能车内部资料—直立控制篇
智能车内部资料—直⽴控制篇智能车内部资料—直⽴控制篇注:不要将思维局限于以下的资料,任何⽅案都要进⾏辨证,以下资料仅限于参考。
关于智能车的直⽴控制,最早源于第七届电磁车,在看本篇之前,请参看《电磁组直⽴⾏车参考设计⽅案2.0》和《电磁组直⽴车模调试指南》,有不懂之处,需要多看⼏次技术⽂档,并且利⽤好⽹络的资源,百度、智能车论坛、CSDN(需要淘宝购买积分)、PUDN这⼏个⽹站是制作智能车的好助⼿,可以搜集的⼏乎所有做车过程中遇到的问题及资料,值得⼀提的是,要时刻与智能车论坛保持联系,不懂的问题可以在上⾯发问,只要不是太幼稚的问题,都会得到很多⼈的解答,这样可以认识很多⼈,要和论坛的⼀些⼤神保持联系,定期询问进度(加QQ,要电话号码…),在做车过程中,发现东北赛区的同学⽐较热情,乐于分享。
好了,废话不多说了。
⼀:AD采集关于直⽴控制,需要⽤到陀螺仪和加速度计,通过与⽹友的交流,发现使⽤模拟模块⽐数字模块的要多,很多⽹友反映IIC通信占⽤时间⽐较长,⽽直⽴控制对时间要求⽐较苛刻,因此在本届⽐赛中我们使⽤的是模拟模块(学弟学妹们可以尝试⽐较⼀下优缺点,毕竟那个enc-03的陀螺仪确实很渣),事实上AD读取花费的时间也不少,AD_ACC_Z=ad_ave(ADC1,AD13,ADC_12bit,6);//加速度AD_GYRO =ad_ave(ADC1,AD15,ADC_12bit,4); //陀螺仪以分别读取6次和4次来说,⼤约44us,若分别读取10和10次,⼤约80us,若分别读取3和3次,⼤约28us (关于时间测量,在后⾯的⽂档中将会提及)。
⼆:滤波融合AD读取完成后,需要对两者(即加速度计和陀螺仪)的信号进⾏滤波、融合,关于滤波⽅法⼤致分为清华⽅案、互补滤波、卡尔曼滤波,以上3种⽅案共4种⽅法经过筛选,最终选择了清华⽅案,以下将介绍这⼏种⽅法。
1、清华⽅案,具体原理看《电磁组直⽴⾏车参考设计⽅案2.0》。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
其中:P为比例项系数,D为微分项系数小车 Nhomakorabea速度控制
检测小车当前实际运行速度的传感 器为编码器(如右上角图片所示)。 该编码器为512线编码器,即编码 器轴每转动一圈,就会产生512个 脉冲。编码器和小车轮子通过齿轮 咬合,即车轮转动编码器轴也跟着 转动,同时产生脉冲。车轮转动得 越快,产生的脉冲也就越多。通过 主控板上的单片机捕获编码器产生 的脉冲然后计算单位时间内编码器 产生的脉冲数就可以测得小车当前 的运行速度v。
direct _ control _ out P *err D * angular
其中:P为比例项系数,D为微分项系数
对小车电机的总输出
前面分析了要想让直立小车在跑道上匀速地跑需要对小车进行三个方面的 控制,这三个方面的控制对应有三个输出,分别为直立控制输出 angle_control_out、速度控制输出V_control_out和方向控制输出 direct_control_out。这三个输出的控制目标(或控制对象)虽然不同,但是 执行机构是一样的,都是小车上的一对电机。在这里,这三个控制输出线 性地叠加在一起,合成一个总的控制输出,作用在小车电机上。叠加公式 如下:
小车的速度控制
我们要求直立小车要在跑道上匀速运动,即我们期望小车的速度是恒定的 Ve。小车的速度控制实际上就是控制小车当前的实际速度接近或者达到我 们预先设定的期望速度。这里,我们采用PID控制策略中的P(比例)I(积分) 控制来控制小车的速度。 给定一个小车的期望速度Ve,同时由编码器测得小车当前的实际速度V,小 车的期望速度与实际速度作一个比较,得到速度偏差err。其中,速度偏差 err作为PI控制中P项的输入。PID控制策略中的积分项(即I项)实际上就是 偏差的累加再乘以一个积分系数I。设integration为速度偏差err的累积结果, 则速度偏差累积结果integration作为PI控制中I项的输入。得到以下速度PI控 制的公式:
V _ control _ out P *err I *int egration
其中:P为比例项系数,I为积分项系数
小车的方向控制
小车的方向控制需要用到两个传感器。一 个是陀螺仪+加速计模块上的陀螺仪(注: 此模块上一共有两个陀螺仪,它们相互垂 直,一个负责测量模块竖直方向上的角速 度,另一个负责测量模块水平方向上的角 速度),负责测量小车转向的时候车身转 动的角速度。 另一个是线性CCD模块TSL1401CL。 TSL1401CL 线性传感器由 128×1 列光电二 极管,内部集成了电荷放大器电路,以及 像素数据保持功能,可同时集成启动和停 止所有像素位。 该阵列由 128 个像素构成, 每个像素点都有一个 3,524.3 平方微米的光 敏区域,读取 AO 口的电压就可以完成数据 采集。
小车的电机驱动
电机驱动模块如右图所示。该 模块采用的是经典的MOS管搭 建的H桥电机驱动,作用是使 双路电机能够调速和换向。控 制信号是PWM信号。
单片机程 序下载口
液晶显示 屏接口
电机驱动模块原理图
小车的方向控制
我们对小车进行方向控制,就是希望小车沿着跑道的中间线跑,所以跑道 的中线值mid_line就是我们对小车进行方向控制的期望。通过线性CCD传感 器采集回来的数据可以计算出小车当前实际的方向值direct_value。跑道的 中线值与小车当前实际的方向值作比较,可以算出当前小车偏离跑道中线 多少位置,即方向偏差err。在这里,小车的方向控制采用PID控制策略中 P(比例)D(微分)控制。方向偏差err作为PD控制中P项的输入,陀螺仪检测到 的小车转动方向上的角速度angular作为PD控制中的D项的输入。(注:角 度的微分就是角速度,小车偏离跑道中线多少位置可以理解为小车偏离跑 道中线多少角度)。由此可以得到小车的方向控制公式:
小车的直立控制
小车的直立控制需要用到陀螺仪和加速度 计两种传感器,它俩儿都集成在了一个模 块上(如右图所示)。 加速度计是测量角度的传感器,有X、Y、Z 三个轴,这里我们只用到Z轴。其输出值的 大小随着模块倾角变化而变化,当模块不 动时候,输出值保持,即一个输出值代表 模块的一个角度。 陀螺仪是测量角速度的传感器,输出值的 大小与模块角度变化的剧烈程度有关,模 块角度变化越剧烈,模块的角速度越大, 陀螺仪的输出值也越大。当模块不动时候, 即没有角速度,其输出值为0。 陀螺仪和加速度计两个传感器采集回来的 都是电压值,所以需要经过单片机的AD转 换才能得到我们想要的角度和角速度(模 块与单片机的连接如右图所示)
两轴陀螺仪+三 轴加速计模块
主控制板
小车的直立控制
有了小车直立方向上的角度值和角速度值后, 就可以说说怎么让小车平衡地立起来了!!!
给定一个小车的角度值作为期望u(注意:此角度值 为小车处于直立平衡位置时加速度计采集回来的角 度值)与加速计实时采集回来的小车当前的直立角度 值c作比较,得到期望值与实际值的偏差err。 同时, 小车上的陀螺仪采集到一个小车直立方向的角速度 值angular。应用PID控制中的P(比例)D(微分)控制, 以角度值偏差err作为P项的输入,以角速度值 angular作为D项的输入(注:因为角度的微分就是 角速度,所以用角速度值angular作为微分项的输 入),从而得到以下小车直立控制的关系式:
L _ moto angle _ control _ out V _ control _ out direct _ control _ out
R _ moto angle _ control _ out V _ control _ out direct _ control _ out
直立平衡车的制作
两个轮子的直立小车怎么在 跑道上匀速跑?
这是一个关于“控制”的故事!!!
“控制”的一个基本概念:
期望u 偏差err
反馈c
PID控制 输出out 传感器
执行机构
控制 目标
要让直立小车在赛道上跑起来,需要对小车作三个方面的控制, 分别为直立控制、速度控制和方向控制。(注意:这三个方面的 控制都是类似的,都是基于上面的结构框图,只不过它们的期望、 传感器和控制目标不一样而已)