项目名称: 两轮自平衡小车
本设计采用微控制器,通过软件滤波和自动控制理论算法使得小车达到平衡
状态。系统的传感器采用角度传感 SCA61T,和陀螺仪采集小车车身的水平状态
值和小车的加速度值。并且采用了 LM298 双桥大功率集成驱动芯片来驱动电机,
无线遥控来控制小车的数据传输。依靠这些可靠的硬件设计,使用 PID 闭环控
制算法和卡尔曼滤波算法 ,使得整个硬件结构和软件系统能顺利匹配。从而使
得小车能保持直立自平衡状态。详细介绍:单轴两轮自平衡小车系统设计说明书
摘要: 本设计采用 ATMEL 公司推出的 MEGA 16 单片机作为“双轮直立自平
衡小车” 的微控制器,用以处理任意时刻传感器的数据;通过软件滤波和自动
控制理论算法使得小车能够在任意时刻进行自我调整以达到平衡状态。 该系统
的传感器采用角度传 SCA61T,和陀螺仪采集小车车身的水平状态值和小车的加
速度值。并且采用了 LM298 双桥大功率集成驱动芯片来驱动...(查看更多)电机,
无线遥控来控制小车的数据传输。依靠这些设备和可靠的硬件设计,我们使用了
一套 PID 闭环控制算法和比较稳定的卡尔曼滤波算法 ,使得整个硬件结构和软
件系统能顺利匹配。从而使得我们的小车能保持直立自平衡状态。 关键词:微
控制器 卡尔曼滤波 PID 闭环控制
一、总体设计方案
(1)设计思路 题目要求设计并制作一个单轴两轮自平衡小车。对于小车能保
持平衡,直立行走。系统应该设置有测量倾角和加速度的模块。可以采用角速度
传感器和陀螺仪测量出小车的倾角和加速度,并把数据传送给单片机处理。经过
单片机处理数据和进行相应的补偿后,通过控制电机从而使小车保持在平衡状态。
系统硬件结构
(2)方案论证与比较
1.微控制器选型
方案一: 采用目前市场比较主流性能稳定价格低廉的 AT8952 单片机,
AT8952 单片机内部资源 8K 字节在系统可编程 Flash 存储器、全静态操作:
0Hz~33MHz 、 32 个可编程 I/O 口线 、三个 16 位定时器/计数器 八个中断源 、
全双工 UART 串行通道、 低功耗空闲和掉电模式 、掉电后中断可唤醒 、看门
狗定时器 、双数据指针 、和一路可编程的 PWM 输出。我们的系统一共用到两
路独立的 PWM 输出,AT89S52 只有一路硬件 PWM 这样我们必须考虑用软件
或硬件再产产生一路可调的 PWM 才能满足我们系统的两个轮子调速的需求。
考虑到系统整体的程序构思是一个很耗费 CPU 运行时间,所以我们排除了软件
中断的方式在产生一路 PWM ,节省了 CPU 的程序运行时间的开销。值得我们
考虑的只能用其他电机控制芯片+AT8952 来控制我们的两个电机,后来我们考
虑了 NEC-SSOP30 这个电机控制芯片来产生两路 PWM,该芯片是一颗强大的
直流电机和步进电机的控制芯片,里面有三路可编程的直流电机 PWM 输出通
道 和 三路步进电机 控制通道,和单片机通信接口,有 SPI 总线接口 和 USAP
串口通信 ,但是考虑到 NEC –SSOP30 芯片 的指令周期是 1.4MS ,不能实
时性的更新系统的 PWM 这样就会造成整个系统的不稳定。最重要的一点还有
考虑到该系统是程序里面运行的是一些比较复杂的浮点数运算,对微控制器的内
核得必须既有可靠稳定快速处理浮点数运算的性能,51 内核是以冯诺依曼总线
结构对数据的处理和传输,因为我们都知道该结构使不能同时进取指令和举行指