【单片机项目】平衡小车(一) 控制流程

    在上周终于将做了三个礼拜的平衡车项目结尾,实现了平衡、遥控以及抬起电机停转放下电机恢复的功能,超声波未能搞出来,原因是模块出了故障,等新的模块到要很久而且超声波的难度并不大,所以就阉割了这个功能,让组内的小伙伴们去搞这个吧。

    本项目的总结将分为三部分:流程控制硬件设计控制算法

    平衡小车是通过读取、计算传感器的数据来控制电机的转动,从而达到小车的动态平衡。平衡小车的控制中用到了三级的PID算法,还是很有难度的,而对于小车的硬件结构来说,重心越低,越容易平衡,而重心越高平衡的难度就越大。

    首先是平衡小车的控制流程图,我把路程图分为主函数中断控制函数直立环速度环转向环五个部分。

   1、在主函数中完成系统各部分的初始化,并且在循环中每50ms在OLED显示运行数据。

             【单片机项目】平衡小车(一) 控制流程_第1张图片

  2、由MPU6050的中断引脚触发的外部中断的中断函数是整个系统的控制函数,MPU6050每5ms触发一次中断,而我调节的周期为10ms

             【单片机项目】平衡小车(一) 控制流程_第2张图片

 3、直立环是平衡小车最重要的部分,对于小车来说立起来是最终要的,在我的PID分类下有一篇专门记录如何将小车立起来的博客,我在这个过程也是花费了大量的时间,经过长时间的调节参数终于使小车可以稳定直立。

          【单片机项目】平衡小车(一) 控制流程_第3张图片

 4、速度环的作用是使小车在平衡时趋向于原地静止,当然要想使小车完全不动的直立在原地是不可能的,通过速度环只能使小车尽可能的减少移动。

       【单片机项目】平衡小车(一) 控制流程_第4张图片

  5、转向环可能是平衡小车中最不重要的一部分,但是想要使小车走直线或者可以通过遥控控制转向,转向环也是必不可少的,转向环通过编码器和加速度计的融合算法来使小车实现转向功能。

        【单片机项目】平衡小车(一) 控制流程_第5张图片

 

你可能感兴趣的:(嵌入式项目)