
2017.2.25,文章最后有更新 很多人对平衡车的相关技术很有兴趣,但是在实际搭建平衡车或者购买套件时会发现其实成本很高,动辄需要300~400的价钱,而且搭建出来的东西块头很大,做好后的存放是个问题... 之前自己就走这条路做过一个平衡小车,为了填坑,我专门花了不少时间进行选型,最后在经过三次PCB打样后终于有了一款非常小巧的平衡小车,这个平衡小车在实现了平衡的前提下做到了非常小的尺寸以及高度的模块化设计,其整体尺寸仅为8cm*4cm*4cm;其模块化设计做到了将传感器,电机驱动器,红外遥控接收器,以及马达和电池都是可以拆卸的模块。 其次就是关于代码和资料方面,感谢很多网友的无私奉献,他们的资料给了我很大帮助,现在小车已经差不多完成,我也在这里分享给大家。 先上个全家福: ![]() 控制方面采用的红外遥控~ 刚才提到了模块化的问题,在设计中,我尽可能的将能够安装的模块都采用模块化方式处理,这样就算以后不用小车了,它的很多模块都是可以放到别的地方继续使用的。 我专门把所有东西都拆开后照了张照片: ![]() 列一下部分物料清单: 一个核心板, 一个mpu6050陀螺仪加速度计, 一个电机驱动, 两个空心杯电机减速马达, 两个3d轮子, 一个红外遥控器, 一块锂电池, 一个红外接收管 0 N# A9 g k/ J. @" h 刚才提到3d打印,感谢网友的协助才得以实现,下面放上图片: ![]() 上面是关于硬件设计部分,接下来是软件了: 软件流程: 软件部分分为两个大部分: 1数据部分 数据部分围绕MPU6050传感器展开。分为数据获取,滤波,数据处理 1.1数据获取 STM32通过I2C和MPU6050进行通讯,其中涉及到基础的I2C通信协议实现,在I2C基础上,涉及到MPU6050各种参数的设置,比如加速度的范围等。不同的设置获取到的数据会不一样并且精度也不一样。 1.2滤波 在获取到原始数据后经过简单转化变为角度,但是这个数据是不准确的,因此需要滤波处理,由于小车比较简单,滤波就用的是互补滤波。这样就能获取比较精确的数据的了。 1.3数据处理 在滤波前需要对获取的原始数据进行处理,这个需要一点点物理知识,还有一个就是角速度的积分操作,这个需要使用定时器来完成。 7 l* K: r& c" y6 W* P* f, U2控制部分 控制部分主要分为PID算法,电机驱动 2.1PID算法 PID算法就是比例,积分,微分这三个变量相互作用最后输出到控制器上去。刚开始时以为需要P就够了,最后发现效果不好,在加入了D之后,效果就很好了。 2.2电机驱动 电机驱动主要设计的知识就是PWM波的控制,STM32有相关的库操作,只需要按要求设置好就OK了。然后将PID算法产生的结果作为参数输入到这里就可以实现控制了。 软件部分涉及的东西不多,就算是单片机新手,花功夫肯琢磨也不会用多久时间。
七七八八说了那么多,没有视频说个毛线,在这里录了几个小视频,让大家见笑了: 右转弯: 左转弯: 前进后退: 做这个小车还是花了些时间,目的是希望给后来者多填坑, 希望大家能给我多多提出意见,如果有什么疑惑,我也会尽可能帮助解决~
说了这么多,现在跟大家分享一下资料,这个平衡小车的软硬件设计资料全部都是开源的, git地址: http://github.com/bigbearishappy/BBear_balance_car 如果觉得还行的话给我点个星星,如果觉得做的不好的话也希望大家能够帮我一起改进~ 本来还准备把原理图PCB什么的都放上来的,但是今天上传数量已经到上限了,后面再加上吧 0 j* @9 f; @) t. i. F之前说的PCB原理图今天补充上来: 小车主板原理图: / S+ u: L5 w- K# f% f. k![]() $ O( @* n- W6 r+ P1 D- _* w 2 h3 {% V2 q5 }- n 最后感谢MrJiu版主的批准~~ 为了能将自己的设计成果带给更多人,降低学习平衡车的门槛,最近这个小车正在进行众筹,大家如果有兴趣的就去支持下吧~ |
搞技术开源也要吃饭....可以在不影响阅读的情况下,帖子后面加一个链接!!!!毕竟人都要吃饭!!!
不是便宜一点,是便宜很多啊
哈哈哈,这么巧!文中的那个网友就是你~~~
版主,为了让更多人能低门槛学习平衡车,我们这个小车目前正在做众筹,不知道我能不能再帖子里面补充跟众筹相关的信息啊~~~