
基于STM32的两轮自平衡遥控小车
杨辈刘海涛
(武汉科技大学信息学院湖北武汉430062)
设计开发
摘要:针对于现在流行的两轮自平衡车,设计了一个与其原理相似的研究型平衡小车系统。该系统以STM32为主控芯片,采用MPU6050采集小车的姿态。然后通过卡尔受滤波融对数据进行融合处理最后利用PID控制算法计算电机的PWM值以控制电机的合理转动,使小车保持平衡。系统利用自制的无线退控模块中的NRF24L01模块传输控制信号模拟人体委态调制,控制小车的行走。
关键词:STM32两轮自平衡小车MPU6050卡尔受滤波PID
中图分类号:TP242.6
文献标识码:A
文章编号:1007-9416(2014)05-0151-02
Abstract:At present, the twowheeled selfbalance vehicle is very prevalent. This paper designs a research system which is similar to the theory of this vehicle. This system is based on the control chip STM32 and it depends on the MPU6050 to collect the state date of the vehicle. Then the date is dealt with by the Kalman filtering algorithm and the value of the PWM of the motor is calculated by the PID control algorithm to control the rotate speed of the motor and in this way, the vehicle can keep balance, Besides, the system uses the NRF24L01 remote control module to transmit control signalin which way we can imitate human posture model to control the movement of the vehicle.
Key Words: STM32 The twowheeled selfbalance vehicle MPU6050 Kalman filter PID
1引言
1986年,日本电通大学的山膜一维教授首先提出了双轮自平衡小车的概念,而且制作了自称为平衡自行车的自平衡机器人该机器人只能在两个平行的直杆上移动,没有太大的自由移动能力。2002 年,美国Segway公司推出了SegwayHT两轮直立自平衡电动车将平衡车运用于实际生活中2011年12月,“飞思卡尔"智能汽车竞赛开始加人直立小车,并刊发了直立行车参考方案。本文在该方案的基础上进行了一些改进。系统以STM32为主控芯片,模拟两轮直立自平衡电动车的原理,采用无线遇控器控制小车的行走。该系统对
两轮自平衡电动车的研究有很大帮助。 2系统总体设计方案
本系统采用STM32微控器作为系统的主控芯片,以MPU6050
S
电源模
快
MPU6050 运动处理
万方数据
3.3V 加速度计零偏值
三轴加速度计
三轴陀螺仪
MPU6050 12c 主控芯片
STM32 SPrt
NRF 24L01
接收模块角度
线通宿
作为车体姿态的采集传感器。传感器输出车体的加速度值和角加速度值,通过计算公式和卡尔曼滤波融合算法可获取车体更稳定的角度和角速度。然后,使用PID算法获取合适的PWM值,利用L298驱动模块来控制电机的正反转以达到车体的平衡。在车体平衡的基础上,使用MSP430G2553和NRF24L01制作的无线遥控器与小车系统通信,控制小车的直立行走和转弯等。
2.1系统硬件设计方案硬件系统框图如(图1)所示。 2.1.1主桂总片
系统采用的主控芯片是STM32F103C8T6单片机叫,该单片机采用32位Cortex-M3内核,最高工作额率为72MHz。片上集成了64KB Flash存储器和20KBSRAM存储器,同时也集成了SPI、USART、 I2C等通信接口,能够产生多路PWM控制电机。
L.298电机驱动电机驱动模块
无线遇控模块
NRF24L01SP 发送模块
图1硬件系统框图
给定参考角度
角度
卡尔曼
角速度
陀螺仪零偏值
滤波器
+ 角速度
左电机右电机
MSP430G 2553 按键控制信号
角度控制
P
角度控制D
图2平衡控制算法结构框图
电机驱动PWM值
151