桂林电子科技大学 广西桂林 541000
平衡车不仅可以当作拍摄工具来使用,还可以作为人们的助手,如可以制造出平衡车形式的摄影机、平衡车形式的巡检机器人等。平衡车技术起源于国外被叫作摄位车(Segway),也由于其独特的外形构造被称为平衡车,不论是存放、携带,亦或是日常的维护保养,平衡车都拥有无可比拟的便利,这就是他体积小、适应能力强所带来的优势,更遑论其分布极广的应用场景,所以它相比传统的四轮车是有很大的优势的。
本次设计制作的智能小车主要由无线图传、电机驱动、传感器检测三个模块构成。设计的目的旨在通过硬件系统框架的构建与理论知识的时间,熟练掌握单片机的使用,锻炼制作人的工程实践能力。工程中往往会遇到理论知识的盲区,克服这些困难,完成工程,不仅要求有灵活利用所学知识的能力,更要培养“吃一堑长一智”的生活习惯,以自己曾经的不成熟为鉴,才能最快的在实践中得到成长,丰富自己的工程经验与项目履历。单片机电路的灵活运用往往需要对齐外围电路及外设有较深层次的理解。譬如电源稳压电路,复位电路,时钟电路,控制两轮直立的算法。真正实现了这些功能的小车,才算得上是现代智能机器人的典型代表。
根据课题内容的设计预想与要求,通过进一步研究与资料查阅,初步设计了小车的整体规划方案,用于实现通信、图像识别传输、上位机控制。车体自由运动的功能。其结构如下:
小车采用WiFi信号实现与上位机的链接。无线图传拟采用5.4G频率的传输天线,以满足课题要求中的低延迟需求。两个直流电机用作控制小车运动,OLED用于显示小车的部分参数。课题实现的重难点在于要调整小车平衡,需要采集大量位置信息与角度信息,从而能使得小车在处于各种姿态情况下能快速作出反应以维持平衡。
用树莓派进行产品设计。这套方案程序运行依靠Linux系统实现,可辨识程度高,操作简便,但是程序撰写太过复杂,在经历了很久的卡壳期之后,选择更换设计方案,采用stm32设计方案。因为STM32本身的低功耗、运算高效的特性刚好满足小车需求,同时STM32Dev应用范围较广,有更多的成功经验可供借鉴吸收,因此本次设计的主控单元选择stm32。
相较于传统的路由器与收发天线结构,ESP8266具有体积小、使用便利、价格低廉的优势,能为电路板的元件布局匀出更大的空间。同时ESP8266自身带有大小为64KB的存储空间,这使得他能更快的进行数据的读取与收发,提高了通信效率。同时ESP8266支持TCP数据传输协议,并且能直接应用于诸如单片机的硬件电路,只需要接入外部逻辑电平变换,在电压处于上升沿时,即可向周围辐射WiFi信号,形成信号覆盖区。
MPU6050是一款六轴运动处理器件,能代替多器件组合方案实现某条单一功能,为产品节省了空间与串口资源,减小了体积占比。它是由InvenSense公司研发推广的。MPU6050的六轴分别由两个三轴模块构成,包括陀螺仪与传感器,并且能通过I2C的通信方式进行信号的输入输出,用于连接传感器。MPU6050拥有自身的硬件加速引擎,将数字运动处理器的运算结果通过I2C口,向外界完整的输出得到的容和盐酸数据。有了这样的方法,我们可以克服在运动中采集姿态信息并解码输出,这一重大难题,使得开发者的工作负荷量大大减少。它内部的运动处理资料库是固件自带的。MPU6050姿态传感器模块利用排针与外设相连,既减去了杜邦线占据的内部空间,又增加了电路连接的稳定性。它可以直接插在成型的工厂开发版进行调试,大大便利了初学者的认知进程。同时,可以直接与STM32开发板链接,进行平衡参数的测试,借助例程的编译,能大大加快模块熟练度的提升速度。
本次设计要求实现两轮小车的直立与基本行进转向操作,因此需要采集如下信号:
(1)小车角速度由MPU6050角速度陀螺仪采集
(2)Z方向有重力加速度信号可以用速度控制替代。
(3)PWM波信号的脉宽,传输了小车电机转速信息,可以由此脉冲波得到小车速度,进而控制。
(4)通过速度陀螺仪信号得到小车轴转速,从而控制小车转向操作。
最终选取了如下图结构,作为此次设计的实施方案。
调试中,先对主程序中的每个子函数进行调试,保证每个子函数不会出现逻辑上的错误。然后检查主函数的调用情况,采用分步调试。调用成功的,看变量的赋值变化是否正确。调用失败的,看函数的定义域是否吻合。
同样的道理,在烧录程序进行运行之前,要看一下外设电路是否正常,下载程序的串口是否被占用,芯片的引脚是否连接错误,电源电路的滤波是否合适。检查无误后才能开始通电,下载,调试。
(1)供电:从VCC开始,检查电压电流走向,是否会出现,因缺少保护电阻而导致电路损毁的可能性。而后看用电模块,输入是否在承受范围内。
(2)烧录接口:烧录代码;
(3)调试接口:串口调试;
(4)模块调试:其它个模块能否使用调试;
(5)整体调试:各个模块调通后,再整体调试;
在完成各个板块组装以及程序下载后,为了防止电路连通存在问题导致电路损毁,先用万用表蜂鸣器档进行了连通性测试,确定电路焊接没有问题后,对重要部位输入输出信号进行测试。首先选择测试了云台舵机的PWM信号。舵机角度变化对应了PWM波的脉宽变化,证明了上文提到的PWM波携带信息这一观点,也证明了此时舵机的工作状态是正常的。
接下来测试的是电机驱动模块的信号。直流电机的输入信号为正交脉冲,即PWM信号,通过设置不同的波形频率,控制电机转速。
此次设计中,由于STM32单片机所接外设较多,且平衡车直立数据需要实时采集,造成了调试方面的困难,总结如下:
(1)小车直立后存在高频率小幅度的抖动。
问题出现原因:购买小车底盘与直流电机时,所配套的减速齿轮型号并非完美匹配,存在着一定的齿轮间隙。当小车电机接收到信号即将转动时,因为齿轮无法完全吻合,因此造成了小车整体的震动。
解决方案1:在齿轮间涂抹润滑油,减小齿轮间隙空间,减小齿轮震动的频率和振幅。
解决方案2:购买小车底座时,选购配套齿轮,是的轮齿在转动时能完全吻合。磨合期间注意及时清理齿轮因相对摩擦产生的粉末。
(2)平衡小车速度环和角度环在调整期间,小车只能维持短暂时刻的直立,之后便会向倾倒方向运动。
问题出现原因:速度环的调整需要根据自己设置的PID参数,不断地调整新的角度位置信息,此时的PID环并不完整,缺少需要动态平衡的必要算法。但是如果将这部分代码补充完整,参数的优良与否又无法得到论证,且参数取值全凭经验猜测以及观察来推算。当小车要实现转向操作时,左右两轮的速度环之间的差值就不在为0,小车整体会以速度慢的那一侧的车轮为转轴心,向该方向旋转。
解决方案:继续采集姿态信息,推算出合适的PID参数,此时会出现的情况就是,小车的摆动幅度逐渐减小,已经能维持基本的平衡,随着参数的进一步优化,逐渐实现在原地微调,就能实现直立的目标。
参考文献
[1]王品.电动独轮车市场现状及发展前景分析[J].电动自行车,2015(09): 35-38.
[2]蒋萍,陈颖峰,许欢,等.我国电动平衡车的市场现状及发展前景分析[J].电动平衡车,2016(7):106-109.
[3]国语洋.你信不信会有两个轮子的汽车[J].中国机电工业,2010(07):81 -85.
[4]陆芳,刘俊.卡尔曼滤波在陀螺仪随机漂移中的应用[J].卡尔曼滤波, 2007,(23):222-224.
[5]冯智勇,曾瀚,张力,等.基于陀螺仪及加速度计信号融合的姿态角度测量[J].西南师范大学学报:自然科学版,2011,36(4):137-140.