我的订单购物车(0)联系客服 帮助中心供应商合作 嘉立创产业服务群
领券中心备货找料立推专区爆款推荐TI订货PLUS会员BOM配单工业品PCB/SMT面板定制

迷你掌上平衡车

2022-08-09 13:38:31阅读量:3845

本文作者:立创开源硬件平台 OSHWHub @Leannnus禁止商用,未经许可禁止转载点击看原文章


1、项目介绍


平衡车几乎是每个人入坑电子DIY的必做项目。包括了:传感器采集处理、电机运动控制、pid算法调节等许多领域


  



同时兼顾专业性和趣味性,非常适合作为入门练习项目。本项目在外形结构和软件控制方面实现了比较好的平衡,外观小巧,运动性能卓越。


2、基本信息


主控芯片:ESP32-WROOM
六轴加速度传感器模块:MPU6050。用于获取姿态信息。
芯片:DRV8833驱动电机运动,提供较大电流。
电机:选用N20减速电机。带有AB相霍尔编码器用于测量转速。
供电:选用7.4V锂电池(2s)。
经线性稳压器:LM1084稳压至5V。再使用1117稳压至3.3V给ESP32供电。
程序部分:基于Arduino IDE。使用开源库实现角度获取和pid算法平衡控制;使用JSON库编写了指令解析程序,用于蓝牙远程调节pid参数;并借助开源的安卓蓝牙APP用来遥控小车运动。


3、特别说明

本项目电路焊接部分有一定的门槛!!如果对小型贴片器件的焊接没有把握,不建议尝试 打板的时候选嘉立创SMT代工,省去了自己焊的麻烦。此类平衡车原理都大差不差,也可以为大家制作属于自己的平衡车提供参考。非常乐意和大家一起交流学习~


4、迭代记录

第一版

第一次设计,直接采用模块连接的方式。电路简单,PCB挖槽复用。作为电机固定板,无需多次打板。以上设计导致空间利用率低,实际外形比较大,孔位估算不够合理,电机间距大,没有电池安放位。接线复杂,整体美观度不够。



  




第二版

在第一版的基础上想用冰墩墩作为外形设计。内部挖空放置模块,电路部分基本无改动,模块式组合。装好之后表面看起来效果还可以。全是可爱的冰墩墩的功劳。外壳设计效果不佳,组合后的电路板很难塞进外壳,内部固定起来比较费劲。重心很高,平衡控制起来比较困难。



  


第三版

下面是最终版本,第三版的设计说明。


01、硬件设计
主要以3D建模、焊接组装、材料清单三个方面展开描述。


3D建模

完整结构建模:原本计划使用两层板堆叠即可(比如第一版),中间位置放置电池。但电机排线需要向上突出,下面放不了电池,所以额外增加了一层,使用三层板堆叠结构。下面两层使用亚克力切割,最上层为电路板,电池放置在上层。下层挖空引出电机排线,亚克力板还需增加电机固定架孔位,将电机安排得尽可能靠近来减小横向间距。solidworks建模如下:



  


除电路板外,需要定制的仅两块相同的亚克力板,从solidworks导出为DWG文件即可定制。

  



02、焊接和组装

电路板焊接测试:CH340缺了一个电容(见debug部分)。这个版本暂时飞线解决了,然后上了一坨热熔胶固定。电源接口也加上了热熔胶,防短路。

  

整体组装:下面两层亚克力板,上面一层PCB,用M3六角铜柱连接固定,长度能短则短,但电池和排线需要一定的空间。下面用的长度15mm,上面是20mm,最下面的电机是用的附赠的电机座,螺丝固定。



  

Debug记录:CH340 V3接口缺少一个0.1uF电容接地,导致无法正常连接串口,当前版本用飞线接上电容后可以正常工作,PCB已在v1.1版本中修复。电机排线6p插座方向设置错误,原设计打算放在背面,但根据实际接线顺序需要放在正面,已在v1,.1版中标出,请注意检查,否则容易造成短路风险。

03、材料清单

其他元件: 剩下的CH340、AMS1117还有电阻电容等元件比较常规,可根据BOM表配单,立创直接下单或某宝挨个买都行,买的时候注意封装型号。主要以硬件、软件两个角度展开说明。

硬件部分

模型文件都上传到附件了,包含完整的solidworks建模装配体文件。小车按照实际尺寸建模,可以提供一点参考。亚克力板切割用里面的DWG文件,放了两块一样的板,直接某宝定制即可。电路图部分请直接从末尾的立创EDA工程文件打开,附件就不放了,原理图里添加了大量的注释,供参考。

软件部分

见附件代码,当前为最新版本,后续优化会标上版本号上传。使用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里自行配置的摇杆参数如下图所示:



  

4、设计图

  


  

PCB图(点击进入嘉立创EDA编辑器打开)

5、总结

从结构与软件层面进行总结。


结构层面:目前迷你程度几乎已经达到极限(电机大小限制)。如果再要减小的话就要换更小的电机才行。从外观来看现在最大的问题在电池接线,大部分暴露在外面降低美观性,同时电机排线也比较突出,倒地的时候撞到排线,可能造成损坏,考虑连接座换成直针,代替目前的弯针即可解决。


软件层面:PID运行的前一分钟,电机运动会出现明显的滞后和超调现象,运行一段时间才能恢复正常的平衡模式。目前未排查到原因,估计是某些变量初始化时的问题,还在排查中。


小车运行稳定程度也还有提升空间,静止时还不能很稳。一方面PID算法和参数还可以优化,另一方面可能受编码器分辨率影响。按20Hz采样率,得到编码器数据范围是0-50左右的整数值,数据精度十分有限。


后续可能的更新:优化PID算法,争取达到更稳定的效果,换一种更紧凑美观的外形结构。


更多详情及附件,可从原工程查看。


本文作者:立创开源硬件平台 OSHWHub 用户@Leannnus禁止商用,未经许可禁止转载