首页 > 应用与分享 > 迷你掌上平衡车
  • 迷你掌上平衡车

  • 2022-08-09 13:38:31 阅读量:3515

本文作者:立创开源硬件平台 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禁止商用,未经许可禁止转载

热门物料
型号
价格
SX32Y025000BK1T003/无源晶振 0.222
XO32C008000GDHE001/有源晶振 1.46
XO32C024000GBHE003/有源晶振 1.46
SX32Y008000BC1T001/无源晶振 0.5772
SX32Y012000BK1T005/无源晶振 0.2331
GRM21BZ71E106KE15L/贴片电容(MLCC) 0.27694
GRM188Z71A106KA73D/贴片电容(MLCC) 0.210359
GRM188Z71C475KE21D/贴片电容(MLCC) 0.240259
ATMEGA48PA-AU/单片机(MCU/MPU/SOC) 6.17
GRM035R60J475ME15D/贴片电容(MLCC) 0.162562
您的浏览器版本过低(IE8及IE8以下的浏览器或者其他浏览器的兼容模式),存在严重安全漏洞,请切换浏览器为极速模式或者将IE浏览器升级到更高版本。 【查看详情】
推荐您下载并使用 立创商城APP 或者最新版 谷歌浏览器火狐浏览器360浏览器搜狗浏览器QQ浏览器 的极(高)速模式进行访问。
© 2022 深圳市立创电子商务有限公司 版权所有

提示

您确定删除此收货地址吗?

提示

您确定删除此收货地址吗?

成功提示

content

失败提示

content

微信咨询

关注公众号咨询客服

咨询客服
  • 在线客服热线

    0755-83865666

  • 服务时间

    工作日  8:30~20:30

    节假日  8:30~18:00

  • 服务投诉

QQ咨询
优惠券
芯媒体

立创商城旗下芯媒体

微信号:icsight

建议反馈
填问卷 立创用户体验问卷调查 立即参与
活动规则
活动规则
展开客服