stm32单片机的平衡车设计【字数:12151】

人类科技高速发展,代步工具由原来的自行车到现在电动车,小汽车乃至电动汽车,近些年来两轮自平衡车也风靡全国,在大街小巷都可以看到它的身影。由于两轮自平衡车结构简单,运动灵活,驾驶方便,携带方便,满足节能环保的需要,因此它受到越来越多的绿色旅游爱好者的欢迎,已成为移动机器人研究的一个重要分支。平衡小车在小巷也能够行驶而且它只需要充电即可,因此受到很多年轻人的喜爱。自动平衡车也称为车身感应车或Segway。基于“动态稳定性”,利用车内的陀螺仪和加速度传感器检测车辆姿态的变化,利用伺服控制系统对电机进行调节,实现平衡系统。本文提出了一种双轮自平衡小车的设计方案,机械结构采用了双轮、双电机驱动;电源部分利用航模电池对其进行供电,航模电池通过降压模块分别给蓝牙模块、陀螺仪和STM32主控芯片和测速模块供电。软件方面采用了控制领域中常用的PID闭环调节方式,通过陀螺仪和加速度计获取角速度和角加速度,经过卡尔曼滤波信息融合和信息处理后,得到小车的姿态值,进而控制电机驱动,调节电机的转速和方向以平衡小车在竖直方向的倾斜角,达到小车的动态平衡。主控芯片采用意法半导体ST公司的控制器芯片STM32,其I/O接口多,内部寄存器庞大非常适合平衡车的设计。
目录
1绪论 1
1.1研究背景与国内外研究状况 1
1.2自平衡小车的整体构思和方案设计 2
1.2.1整体构思 2
1.2.2方案设计 2
2系统原理分析 4
2.1平衡小车控制原理分析 4
2.2 PID控制器原理 5
3系统硬件电路设计 7
3.1硬件电路总体设计 7
3.2 STM32电路设计 7
3.3电源电路设计 9
3.4外围电路设计 10
3.4.1陀螺仪传感器电路设计 10
3.4.2电机驱动电路设计 11
3.4.3编码器测速电路设计 13
3.4.4蓝牙通信电路设计 13
4系统软件设计 15
4.1系统软件总体设计 15
4.2 APP软件设计  *好棒文|www.hbsrm.com +Q: #351916072# 
15
4.3运动控制软件设计 17
4.3.1车模直立控制 17
4.3.2车模速度控制 18
4.3.3车模转向控制 19
5系统调试部分 21
5.1硬件调试 21
5.2软件调试 22
5.3系统整体调试 23
6 总结与展望 26
6.1 总结 26
6.2 展望 26
参考文献 27
附录 28
附录一 系统硬件电路原理图和PCB 28
附录二 平衡小车实物图 29
附录三 系统核心代码 29
致谢 32
1绪论
1.1研究背景与国内外研究状况
两轮自平衡机器人概念的提出最早源1978年,日本电信大学教授山藤一雄认为人类是否能站在两轮车上,靠车轮自身调节达到平衡呢,于是提出了两轮自平衡机器人的概念。这个基本的概念就是用数字处理器来检测姿态,然后用双轮的移动来保持机器的平稳。平衡车真正起源于 2001 年,美国发明家Dean Kamen和他的DEKA研发公司研发出了可以用于载人的两轮自平衡车命名为Segway,如图11所示,并已经投入市场。
平衡车最早进入中国市场是在 2008 年,2008年奥运会期间,当时警卫人员利用Segway电动平衡车巡逻。至此平衡车逐渐被国人所熟知,逐渐在国内得到极大推广。现在无论在大街小巷还是大学校园里面,我们都可以经常看到人们利用平衡车代步。国内最早开始研究平衡车的是浙江树人大学,他们搭建了简易的平衡车模型,主要解决了平衡车在如何实现自平衡方面的控制理论问题。随后小米公司也开始紧随潮流,现在小米公司已经成功研发了好几代平衡车,平衡车的性能也较过去得到了极大提高。如图12所示为小米公司生产的平衡车。现在国内生产平衡车的公司不计其数,使得平衡车的设计制作和技术逐渐走向成熟。
/ /
图 11 Segway平衡车 图12小米平衡车
近几年来,平衡车由于其应用前景广阔,已经成为移动机器人研究方向的一个热点话题。自平衡车相较于传统交通工具,它更为方便、操作起来也很简单。而且它不像传统代步工具比如汽车、摩托车那样消耗能源,它只需要充电即可运动,清洁无污染也不会产生废气破坏自然环境。总而言之,自平衡车由于优点众多且可持续发展,应用前景大好。
1.2自平衡小车的整体构思和方案设计
1.2.1整体构思
两轮动态平衡机器人的基本思想非常简单:将执行机构朝着与坠落方向相反的方向移动。在实践中,这需要两个反馈传感器:一个倾斜或角度传感器来测量机器人相对于重力的倾斜度,一个加速度计来校准陀螺仪,从而最小化漂移。有两个术语用来平衡机器人。这是倾斜角和它的一阶导数,角速度。这两个测量值相加后反馈给执行器,执行器产生平衡机器人所需的反扭矩。
“平衡”这个词的意思是倒立摆处于平衡状态,它的位置就像直立的90度。然而,系统本身并不平衡,这意味着它会不断地从垂直轴上脱落。因此,需要一个陀螺芯片来提供倒立摆或机器人底座的角度位置并输入到微控制器中,该程序本身就是一种平衡算法。实验主要采用PID控制器,调节Kp、Ka和Kd参数值。PID提供所需值和实际值之间的修正。输入和输出之间的差异称为误差。PID控制器通过调节输出将误差减到最小值。MPU6050读取机器人的倾斜角,并将其反馈给PID算法,PID算法进行计算以控制电机并使机器人保持直立位置,然后微控制器通过PWM控制向H桥电路提供一种反馈信号,使电机顺时针或逆时针转动,从而平衡机器人。
系统结构包括一对直流电机和一块STM32微控制器板,姿态确定采用MPU6050传感器。此外,还实现了一个互补滤波器来补偿陀螺漂移。通过实验确定电气和运动参数;分别对线性化运动方程进行基于PID和LQR的PIPD控制设计。在某些情况下,线性控制足以控制系统。最广泛使用的是比例微分积分控制器或更著名的PID控制器。
1.2.2方案设计
在本系统中,MPU6050传感器集成了陀螺仪和加速度计的功能,陀螺仪和加速度计实时的采集角速度和角加速度值,STM32单片机再通过I2C协议与MPU6050进行通讯来读取数据,通过STM32单片机对数据进行归一化处理后再利用卡尔曼滤波计算角度值,根据计算出的角度,判断小车的姿态。车辆在垂直方向上具有机械平衡点,以实现短平衡,并向前或向后倾斜。
根据牛顿运动定律,平衡需要一个相反的方向,但外部世界无法对其施加力。根据达朗贝尔原理,当车辆向前倾斜时,通过控制电机施加向前加速度以确保平衡;反之,控制电机产生向后加速度。本设计电机我们选用的是直流电机,然后利用单片机I/O口输出PWM波驱动电机,PWM方波的占空比越大那么相应的电机转速也就越快,反之占空比越小,电机转速越慢。由于电机速度每一时刻不固定,电机速度取决于当前车模倾斜角和当前速度值,所以施加编码器测速模块实时的反馈电机速度给主控芯片。进而对单片机速度形成闭环控制。

版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/jsj/wlw/230.html

好棒文