刘一钟+刘文浩
摘 要:系统程序基于c语言来控制Arduino对陀螺仪,加速器进行取值,通过pid算法调控电机驱动的pwm从而实现小车平衡,通过蓝牙芯片建立手机app和Arduino的连接,从而实现遥控。
关键词:Arduino;平衡;蓝牙连接;
由西北民族大学电气工程学院"双E"项目资助(项目编号:20161816)
1 引言
Arduino自平衡小车是通过对陀螺仪取得当前三轴偏移数据,通过pid算法进行平衡调整,再对速度取值从而对其速度进行调控,把数据转换为信号给电机驱动,实现平衡和移动,在通过蓝牙芯片与手机进行通信。
2 社会背景
当前在进入一个越来越智能化的社会,继智能家居、智能穿戴、智能办公之后,智能电动平衡车也已经进入人们的日常生活。智能平衡车是一款于13年前发明、于近两年才火爆的产品,它也是代步工具类中最新的智能产品。智能类的产品总给人一种异常方便、简洁优雅的感觉,电动平衡车也是如此。经过调查发现,目前市面上平衡车还十分稀缺,对于未来市场,方便携带的平衡车肯定会代替其他大型代步车辆,选用 Arduino 单片机控制自平衡小车肯定会大有前景,令人眼前一亮。
3 基础功能的实现
对称的搭建车体,将各个模块平均的分布在车体上,连接各个模块,使用Arduino作为主控控制各个模块,采集数据,应用算法得到因能够给电机的占空比,從而实现平衡。通过Android Studio来编写能接能接收小车蓝牙信号,发出信号的app,通过app调整其小车移动。
4算法
比例调节的公式是:u(t) = Kp * e(t),e(t) = r(t) – c(t)
其中:r(t) 是设定值,就是你想让被控系统某个参数所要保持的状态值; c(t)是系统的这个参数的实际状态值。
比例调节的过程就是即时成比例地反应控制系统的偏差信号e(t),偏差一旦产生,通过 Kp * e(t) 产生控制作用以减小偏差。理想的情况是有多大的误差,通过这个调节作用之后,就能将误差消除。但实际情况并非都是那么理想,Kp小了,修正不到位,Kp大了就会出现矫枉过正的现象。
5陀螺仪MPU6050 的应用
为避免纠缠于电路细节,我们直接使用集成的MPU6050模块。MPU6050的数据接口用的是I2C总线协议,因此我们需要Wire程序库的帮助来实现Arduino与MPU6050之间的通信。请先确认你的Arduino编程环境中已安装Wire库。
虽然6050模块能够输出三轴加速度和三轴角速度的数据,但实际应用的时候,直接使用的确不是这些量,而是需要根据这些数据解算出三轴的角度数据。比如平衡小车,需要算出 模块的俯仰角,然后控制算法根据角度大小控制小车轮子的移动。四轴飞行器需要根据俯仰角度、滚转角度,和飞行指令来调节四个电机的转速。
从6轴的原始数据得到三轴的角度计算是一个比较复杂的运动学解算过程,有的童鞋可能会说,不就是三轴角速度积分不就行了吗?这就是没有实践,想当然的说法。有三点需要注意的问题:
1.三轴姿态的解算不能直接积分。因为三轴是有耦合的,只有在三轴角度为小角度的时候可以这么算,角度大了以后,比如60度了,这么算的误差就很大。标准的做法是用四元数的方法做姿态解算,积分的方法可以用4阶龙格-库塔法,或者4阶Gill法。详情请参考:航空航天器运动的建模——飞行动力学的理论基础 肖业伦著 北京航空航天大学出版社。
2.积分运算的累积误差。角速度积分运算是有累积误差的,累积误差在短时间内表现不明显,只要零点漂移处理得好了,1分钟以内的漂移都不大,但时间长了,就会有累积误差,5分钟就漂到不知道哪里去了。
3.角速率零点漂移。所谓零点漂移就是模块静止的时候,我们认为正常的输出应该是0,或者均值为0的数据,但是实际上6050的输出不是,可能在2°/s或者其他,而且每次都不一样,如果不校准,别说1分钟了,10秒钟误差就有20度。
用加速度计算的确也是一种方法,但使用加速度也有三方面的问题:
1.无法在动态情况下使用,使用重力的来解算姿态的前提条件是模块本身没有加速度,因此模块输出的三轴加速度值,正好是重力在模块本体坐标系下的分量,从而能够求出俯仰和滚转的姿态角度。一旦模块运动起来,这种方法就傻了,因为模块无法分辨出哪些是重力的分量,那些是模块本身的加速度引起的。目前市面上很多倾角仪就是这种思路,但问题就是没法在动态情况下使用,最简单的测试方法就是把模块水平放置桌面上,缓慢运动,发现X,Y轴的角度基本不变化,都在0度左右,一旦快速运动起来,X,Y轴就显示有很大的角度了。而实际上模块一直水平,没有变化。
2.精度差。6050模块的加速度本身的精度不高,就算是在静态情况下,角度测量的精度也只能到1°左右。
3.三轴耦合问题。利用加速度求解姿态的时候,也会有三轴耦合的问题,因为姿态表示与坐标旋转顺序有关,这样只有一种一个轴能用反正切值计算,另一个轴不能用反正切值计算。
6项目创新点
1.通过手机app控制更是满足了大部分人的需求。
2.两轮自平衡更加稳定更加新颖,体积较小。
3.应用芯片较少,减少成本。