接触单片机三个月,用最烂的TT电机负重把自平衡车弄起来,一路走来付出了很多时间,学了很多东西不容易啊。
几个月前在网上看到了一个单片机控制的平衡小车的视频,觉得挺有意思的,也挺震撼的,花了100多大洋在网上淘了一块51的开发板,于是乎开始了单片机之旅。从最简单的LED灯闪烁,到8X8点阵,1602的液晶,再到640*480的LCD,红外遥控,步进电机,什么74H系列芯片,I2C协议,SPI协议等等,一切都是第一次。一个例子一个例子学习。终于把51搞得差不多了,下决心要把自己的自平衡车也搞起来。可是后来又发现ARM是多么的高大上,ARM代表以后的方向,又开始了学习ARM的旅成,学习一段时间之后才发现自己的底子太弱了,怎么办?学吧!突然想起英语里有一句: Anyone who stops learning is old,wether at twenty or eighty.Anyone who keeps learning stays young.The greatest thing in life is to keep your mind young.首先把微积分看一遍,然后把模拟电路也学一遍(还没有学完),还有好多东西没来的及去学习,真是觉得自己的知识太贫穷了。很佩服论坛里的那些个牛人,懂的知识好多。一边学习一边实践,最后总算是把这个小车搞好了,但是TT电机真的动力太差了,虽然小车能站起来,但是不能用力去推它,一推就要往前猛走,最终电机的力量不及得力,小车倒下。
接下来说说这个小车的结构:本来是想仿照论坛里zoomone的那台小车,看了视频到网上找到了TT电机,zoomone说51的计算能力有点差,跑kalman很吃力,于是转而使用ARM来做主控。
主控:芯唐M058S开发板
传感器:MPU6050
驱动:TB6612FNG 这个板子是论坛里 宋一喵 送的,再此感谢下。
电机:4元钱的香蕉电机 (一提到这电机我就想跳楼啊,电磁干扰真的奇大无比,只要它一加速我单片机就挂,加了光耦也不行。电池,铜柱之压的它喘不过气明显的动力又不足,整定PID的时候,把我害苦了。)
还是给大家上几幅图吧
来点近的 这是新唐的M058S主控
这个是宋一喵送的PCB,回来后自己焊,第一次使用烙铁。。。
小车底部
基本上是用像皮筋绑起来的一部小车,哈哈。码盘也没用上,因为没法安装H42B6光耦了。
大家如果是想用TT电机的话,最后是能给小车减得,电池不要在小车上面,小车上最后只有一块板子,轻轻的,这样TT电机还能应付。
软件里用了:卡尔曼滤波,角度PID
参考贴子:https://bbs.21ic.com/icview-761616-1-1.html
再发下小车站起来的视频:
最后总结一下ARM,想想ARM也没什么就是操作一堆寄存器,寄存器又分三大类:第一类就是控制寄存器,主要是给相应的外设设置一些参数,控制外置的工作方式和工作。第二类就是状态寄存器,这类寄存器主要是用于汇报外备的工作状态。第三类寄存器就是中断寄存器(可以归到第一类中,之所以单独归一类,是因为中断对于单片机来说太重要),这类寄存器控制单片机的中断。其它还有一些总线啊之类的东西也很得要,理解一下就行。
最后感觉21论坛给了我学习的机会。
|