查看:
20536
回复: 26 |
模块化MINI两轮平衡小车
本帖主对外承接开发,
联系作者
|
|||
|
该帖子为嘉立创认证过的开发案例,案例是对作者实际开发产品的介绍,您可以通过这些案例去找到和自己产品相关的一些方案或解决途径。
查看更多案例 >>
发表于2016-10-30 00:11:11
|
显示全部楼层
1#
电梯直达
立创君11月3日晚21点插楼提示:该作品已进入首届立创商城电子制作节15强,点我投票参与公投,选出最终6强!
文章最后有详细资料分享,支持开源~ 1、作品简介 整机图片:
这个电子制作的用途是什么?能实现那些功能? 用途:用来学习使用平衡小车相关的基础知识(I2C,PWM,滤波,姿态计算,PID算法) 实现的功能:通过传感器获取小车姿态并使用控制算法控制小车的平衡,使得小车可以直立不倒 为何要制作这个作品? 当下各种平衡车非常火爆,四处可见踩着平衡车代步的人,于是想探究下其中的原理,于是产生了制作这个作品的想法。 这个作品能给使用者或者社会带来哪些改变、益处或进步? 首先从技术方面来说,通过开发这个作品,可以让使用者学习到很多方面的知识,这个东西涉及了物理,数据协议,数据处理,控制算法等很多方面的知识。 其次从生活方面来说,这个作品可以为使用者的生活带来不少乐趣,看着小车扭扭捏捏的站立着,那种感觉还是很奇妙的。 即:实用性,你自己觉得它体现在哪里? 就实用性方面来说,这个小车是比较有限的。当然,使用者可以通过升级其中的算法来提高精度,甚至可以使用到真实的载人平衡车中去。
2、作品亮点 您这个作品在设计、实现细节或思路上,用上了哪些新技术或者创新之处? 特别好的性能、参数指标也是一个亮点。 亮点概括为两个: 1 PCB 面积非常小(2.5cm*5.0cm) 2 器件可以拆卸,方便开发调试和学习 同网上一般网友制作的平衡小车不一样,这个平衡小车最大的特点就是它的整体很小,PCB面积只有2.5cm*5.0cm,这个可能还没有网友制作的平衡小车的一个电机驱动板大,但是却已经实现了相同的功能。我在器件选型时尽可能用了小的元件,这样使得PCB面积大大减少。
3、系统构架图
4、原理图 附上原理图的图片或者源文件(我们官方建议大家尽量用源文件上传) 如果是图片,请确保图片是清晰可辨的。 此外,还请用文字把该作品的实现原理、系统的工作过程大致讲解一下。
5、材料清单(BOM列表) RTU_BBear Revised: Saturday, October 22, 2016 Revision: v1.0 Bill Of Materials October 27,2016 20:19:27 Page1 Item Quantity Reference Part ______________________________________________ 1 5 C1,C2,C3,C4,C8 0.1UF 2 1 C5 1UF 3 2 C6,C7 22PF 4 1 C9 10UF 5 2 LED2,C10 POWER 6 1 K1 KEY-4 7 1 LED1 HEARTLED 8 1 L1 LM1117 9 3 R1,R2,R3 10K 10 2 R4,R5 1K 11 1 S1 MPU6050 12 1 U1 STM32F103C8T6 13 1 U2 BOOT0 14 1 U3 CON4 15 1 U4 switch 16 1 U5 BOOT1 17 1 U6 SWD 18 3 U7,U8,U11 CON2 19 1 U9 MOTOR-A 20 2 U10,U13 MOTOR0805 21 1 U12 MOTOR-B 22 1 X1 XTAL
关键芯片: 1 STM32F103C8T6 http://www.szlcsc.com/product/details_9243.html 2 MPU6050传感器 http://www.szlcsc.com/product/details_24852.html 6、PCB实物图 PCB 3D图 PCB 实物图
7、软件部分的描述 软件流程: 软件部分分为两个大部分: 1数据部分 数据部分围绕MPU6050传感器展开。分为数据获取,滤波,数据处理 1.1数据获取 STM32通过I2C和MPU6050进行通讯,其中涉及到基础的I2C通信协议实现,在I2C基础上,涉及到MPU6050各种参数的设置,比如加速度的范围等。不同的设置获取到的数据会不一样并且精度也不一样。 1.2滤波 在获取到原始数据后经过简单转化变为角度,但是这个数据是不准确的,因此需要滤波处理,由于小车比较简单,滤波就用的是互补滤波。这样就能获取比较精确的数据的了。 1.3数据处理 在滤波前需要对获取的原始数据进行处理,这个需要一点点物理知识,起始就是加速度与力的方向是一致的这个原理,还有一个就是角速度的积分操作,这个需要使用定时器来完成。 2控制部分 控制部分主要分为PID算法,电机驱动 2.1PID算法 PID算法就是比例,积分,微分这三个变量相互作用最后输出到控制器上去。在这里我们只需要P就够了。 2.2电机驱动 电机驱动主要设计的知识就是PWM波的控制,STM32有相关的库操作,只需要按要求设置好就OK了。然后将PID算法产生的结果作为参数输入到这里就可以实现控制了。 如果您的作品涉及到软件或者固件,欢迎也介绍介绍。比如列出软件流程图、精彩 或关键部分的例程、源码或者全部源码(如果是您想开源的话)。
8、作品演示 录了个小视频: 让大家见笑了~~~ |
|||
|
发表于2016-10-30 18:16:48
|
显示全部楼层
3#
控制方面是还有点问题,还在解决中~
|
|||
|
发表于2016-11-03 22:27:41
|
显示全部楼层
6#
谢谢~
|
|||
|
发表于2016-11-03 22:29:35
|
显示全部楼层
7#
就这个层次的平衡小车而言,就是单纯的用I2C获取原始数据再解析出姿态已经足够了。关于PID的比较同意你的看法,只有P的控制比较勉强,还在改进中,准备用PD来控制
|
|||
|
发表于2016-11-03 22:30:19
|
显示全部楼层
8#
您的指教很有帮助,我把重心提高后效果好了不少~
|
|||
|
发表于2016-11-04 16:33:53
|
显示全部楼层
11#
没问题,麻烦把邮箱回复给我
|
|||
|
发表于2016-12-11 11:38:56
|
显示全部楼层
16#
感谢你的细致分析,关于那个传递公式请问是怎么得到的,其中的几个参数分别是什么?我想让小车性能提升,还希望能帮帮忙
|
|||
|
发表于2016-12-11 11:39:38
|
显示全部楼层
17#
github地址打开后可以直接下载的~
|
|||
|
发表于2016-12-11 11:40:20
|
显示全部楼层
18#
帖子末尾有git地址,那个里面就可以下载的,所有的资料都有
|
|||
|
发表于2016-12-11 11:40:57
|
显示全部楼层
19#
帖子末尾有git地址,打开后里面就可以下载的
|
|||
|
发表于2016-12-11 11:46:16
|
显示全部楼层
20#
http://v.youku.com/v_show/id_XMTg1ODc4OTA5Ng==.html 这个是改进后的小车测试视频,效果比原来好了很多~ |
|