怎样快速学平衡车(教你做属于自己的平衡车)

我会将软件,焊接方式全部开源,方便你上手!


项目介绍

平衡车几乎是入坑电子DIY的必做项目。

并且此类平衡车原理都差不多,大家想制作属于自己的平衡车这篇文章可以提供参考。

本车包括了

  • 传感器采集处理
  • 电机运动控制
  • PID算法调节等许多领域

本项目外观小巧,运动性能卓越。

兼顾专业性和趣味性,非常适合作为入门练习项目。

怎样快速学平衡车(教你做属于自己的平衡车)(1)

这是附件的文档内容

开源文件说明

主要以硬件、软件两个角度展开说明。

硬件部分

模型文件都上传到附件了,包含完整的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里自行配置的摇杆参数如下图所示:

怎样快速学平衡车(教你做属于自己的平衡车)(2)

设计图

怎样快速学平衡车(教你做属于自己的平衡车)(3)

原理图

怎样快速学平衡车(教你做属于自己的平衡车)(4)

PCB

硬件设计详述

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

3D建模

完整结构建模

电机排线需要向上突出,下面放不了电池,所以使用三层板堆叠结构。

  • 下面两层使用亚克力切割;
  • 最上层为电路板;
  • 电池放置在上层。

下层“挖空”引出电机排线、

亚克力板还需增加电机固定架孔位。

将电机安排得尽可能靠近来减小横向间距

solidworks建模如下:

怎样快速学平衡车(教你做属于自己的平衡车)(5)

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

怎样快速学平衡车(教你做属于自己的平衡车)(6)

焊接和组装

电路板焊接测试

CH340缺了一个电容(见Debug部分)。

飞线已解决,上了一坨热熔胶固定。

电源接口也加上了热熔胶,防短路

怎样快速学平衡车(教你做属于自己的平衡车)(7)

整体组装

下面两层亚克力板,上面一层PCB。

用M3六角铜柱连接固定,长度能短则短,但电池和排线需要一定的空间。

下面用的长度15mm,上面是20mm。

最下面的电机是用的附赠的电机座,螺丝固定。

怎样快速学平衡车(教你做属于自己的平衡车)(8)

Debug记录

CH340 V3接口缺少一个0.1uF电容接地,导致无法正常连接串口。

用飞线接上电容后可以正常工作。

电机排线6p插座方向设置错误。

原设计打算放在背面,但根据实际接线顺序需要放在正面。

请注意检查,否则容易造成短路风险。

材料清单

怎样快速学平衡车(教你做属于自己的平衡车)(9)

其他“元件”:

剩下的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

    分享
    投诉
    首页