怎样快速学平衡车(教你做属于自己的平衡车)
我会将软件,焊接方式全部开源,方便你上手!
项目介绍
平衡车几乎是入坑电子DIY的必做项目。
并且此类平衡车原理都差不多,大家想制作属于自己的平衡车这篇文章可以提供参考。
本车包括了
- 传感器采集处理
- 电机运动控制
- PID算法调节等许多领域
本项目外观小巧,运动性能卓越。
兼顾专业性和趣味性,非常适合作为入门练习项目。
这是附件的文档内容
开源文件说明主要以硬件、软件两个角度展开说明。
硬件部分
模型文件都上传到附件了,包含完整的solidworks建模装配体文件。有需要发我【88】
小车按照实际尺寸建模,可以提供一点参考。
亚克力板切割用里面的DWG文件,放了两块一样的板,直接定制即可。
电路图在下方查看。
软件部分
见附件代码,当前为最新版本,后续优化会标上版本号上传。有需要发我【88】
使用Arduino IDE开发,需要自行下载准备的库有:<ArduinoJSON.h>、<MPU6050_tockn.h>。
工程中的每个模块为.h .cpp文件的组合,已添加了很多注释,可自行查阅。
蓝牙调参
需要将最开头的BTMODE 宏定义修改为0(默认为1,即遥控模式)。
手机端APP用任意的蓝牙调试APP都行,发送指令格式见代码中的注释说明如下:
/* 蓝牙发送参数指令,使用JSON格式进行打包和解析,字符串格式:
"{"cmd":1,"data":[p,i,d]}" , (p、i、d为常数) * cmd=1:角度环pid设置 * cmd=2:速度环pid设置 * cmd=3:转向环pid(暂未添加) * cmd=4:角度平衡值, 发送格式:"{"cmd":4,"data":[angle]}" , (angle为常数) * cmd=5:速度值,同角度 * cmd=6:转向值,同上 **/
蓝牙遥控
遥控用的APP已放在附件中,仅限安卓平台。在APP里自行配置的摇杆参数如下图所示:
设计图
原理图
PCB
硬件设计详述主要以3D建模、焊接组装、材料清单三个方面展开描述。
3D建模
完整结构建模
电机排线需要向上突出,下面放不了电池,所以使用三层板堆叠结构。
- 下面两层使用亚克力切割;
- 最上层为电路板;
- 电池放置在上层。
下层“挖空”引出电机排线、
亚克力板还需增加电机固定架孔位。
将电机安排得尽可能靠近来减小横向间距。
solidworks建模如下:
除电路板外,需要定制的仅两块相同的亚克力板,从solidworks导出为DWG文件即可定制。
焊接和组装
电路板焊接测试
CH340缺了一个电容(见Debug部分)。
飞线已解决,上了一坨热熔胶固定。
电源接口也加上了热熔胶,防短路。
整体组装
下面两层亚克力板,上面一层PCB。
用M3六角铜柱连接固定,长度能短则短,但电池和排线需要一定的空间。
下面用的长度15mm,上面是20mm。
最下面的电机是用的附赠的电机座,螺丝固定。
Debug记录
CH340 V3接口缺少一个0.1uF电容接地,导致无法正常连接串口。
用飞线接上电容后可以正常工作。
电机排线6p插座方向设置错误。
原设计打算放在背面,但根据实际接线顺序需要放在正面。
请注意检查,否则容易造成短路风险。
材料清单
其他“元件”:
剩下的CH340、AMS1117还有电阻电容等元件比较常规,可根据BOM表配单。
买的时候注意封装型号。
特别说明本项目电路焊接部分有一定的门槛!!
如果对小型贴片器件的焊接没有把握,不建议尝试!
打板的时候选嘉立创SMT代工,省去了自己焊的麻烦。
基本信息主控芯片:ESP32-WROOM
六轴加速度传感器模块:MPU6050
用于获取姿态信息。
芯片:DRV8833驱动电机运动,提供较大电流。
电机:选用N20减速电机。
带有AB相霍尔编码器用于测量转速。
供电:选用7.4V锂电池(2s)。
经线性稳压器:LM1084稳压至5V。
再使用1117稳压至3.3V给ESP32供电。
程序部分:基于Arduino IDE。
使用开源库实现角度获取和pid算法平衡控制。
使用JSON库编写了指令解析程序,用于蓝牙远程调节pid参数。
并借助开源的安卓蓝牙APP用来遥控小车运动。
总结从结构与软件层面进行总结,以下是当前的问题。
结构层面
如果再要减小的话就要换更小的电机才行。
最大的问题是电池接线,电机排线也比较突出,倒地的时候撞到排线,可能造成损坏。
改进方式:考虑连接座换成直针,代替目前的弯针即可解决。
软件层面
PID运行的前一分钟,电机运动会出现明显的滞后和超调现象,运行一段时间才能恢复正常的平衡模式。
目前未排查到原因,估计是某些变量初始化时的问题,还在排查中。
小车运行稳定程度也还有提升空间,静止时还不能很稳。
一方面PID算法和参数还可以优化,另一方面可能受编码器分辨率影响。
按20Hz采样率,得到编码器数据范围是0-50左右的整数值,数据精度十分有限。
后续可能的更新
- 优化PID算法,争取达到更稳定的效果
- 换一种更紧凑美观的外形结构
免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com