2023-05-25 09:14:44 +00:00
# V3自平衡莱洛三角形可充电RGB版
### 更新日志
2023-10-31 06:47:06 +00:00
2023/10/31:
1. 更新新型号3205b款无限位电机适配pcb( < font color = 'red' > 3205b自带限位 </ font > 需要加工掉限位装置才可使用, 某宝也可购买到加工后的3205b无限位款)
2. 修复工程drc报错问题
3. 修复上个版本快速开关电源导致短路问题( 将电机驱动自举电容22uf更换为100nf电容) 也可以自行在三个mos上管gs级之间并一个100k电阻用于电容放电
2023-05-25 09:14:44 +00:00
2023/5/25: V3升级明细( 相比V2) 因为电机无货原因请制作V3版本:
1. 将2715电机更改为存量大且自带磁环的3205无限位款电机( 感谢“初心不变”提供创意) ;
2. 将AS5600模块插接方案更改为MT6701焊接方案, 最大可能地避免了磁铁不对中、磁铁与磁编距离原因导致的PP check fail问题;
3. 将600mAh电池更改为800mAh电池, 将12V转5V DCDC电路Ti方案、5V转3.3V LDO方案全部改为国产DCDC方案, 增加续航35%以上;
4. 充电电路将电流限制为1A, 避免极端环境下充电电感过热问题; 降低了电池自放电, 满电待机时间由一周增加至至少一个月;
5. 调整了电机PID参数, 使用的3205电机运行更平稳;
2023-05-25 09:39:12 +00:00
6. 设计了电池安装板,从背后看不露电池,更加美观;
2023-05-25 09:14:44 +00:00
### 项目介绍
自平衡莱洛三角形, 无刷驱动使用EG2133, 使用esp32-arduino的simplefoc驱动。
2021-08-17 17:01:19 +00:00
2023-05-25 09:14:44 +00:00
`程序附件都在` gitee [https://gitee.com/coll45/foc ](https://gitee.com/coll45/foc )
2021-08-17 17:01:19 +00:00
2023-06-24 04:45:28 +00:00
![V3 ](./image/v3image.jpg )
2023-05-25 09:14:44 +00:00
图片中间为立创彩色丝印版本, 左右为最终V3版本( 磁编码器集成到pcb中心) 。均可以摇摆平衡, 使用3205电机
2021-11-16 11:34:36 +00:00
2023-05-25 09:14:44 +00:00
- cn3300充电部分设计充电截至电压12.72V( 考虑到电池内阻, 最终充满电压为12.43V) , 充电电流0.5A, 电感电流1A。充电功率为5W`(充电会电感部分会烫,但不至于烧毁电路)`
2021-11-16 11:34:36 +00:00
2023-05-25 09:14:44 +00:00
- 电机可以适配3205无刷电机`(之前使用的电机GB2204\2715均已缺货)`
2021-11-16 11:34:36 +00:00
2023-05-25 09:14:44 +00:00
### 1 制作说明
gitee文件夹中V3有`自平衡莱洛三角形V3_BOM.xlsx`, 元器件请根据自己选择PCB空板还是SMT自行购买
2022-03-15 10:13:39 +00:00
2023-05-25 09:14:44 +00:00
[原理图以及PCB图链接 ](https://oshwhub.com/45coll/lai-luo-san-jiao-xing-3205-ban-ben-you-hua-bu-fen-dian-lu )
1. 在立创开源链接中,点击`在编辑器中打开`, 进入EDA页面, 双击对应的PCB, 上方导航栏找到-制造-PCB制板文件( gerber) -生成gerber-一键PCB/SMT下单。( 一定要进编辑器! ! ! 有遇到过开源链接的bom和真实bom对不上的情况)
2. 在下单页面中下单对应的pcb, 如需SMT( 机器贴片) 可以选需要SMT, 不选SMT会得到PCB空板
3. 焊接是基本功,最好是有风枪+烙铁的情况下尝试制作。
4. 焊接有焊接助手,在`立创专业版点开对应的PCB`,上方工具栏-焊接辅助工具
2022-03-15 10:13:39 +00:00
2023-05-25 09:14:44 +00:00
SMT注意:
- 选择需要SMT完成下单之后, 进入订单界面。SMT分板定位孔选择-嘉立创添加, BOM与坐标清单选择-用我自己的BOM和坐标, 导出文件选择-立创EDA。
- 需要上传的坐标文件和bom, 都是在`EDA页面`-莱洛三角形PCB-制造-( 物料清单BOM和坐标文件) 中导出。
- 进入BOM匹配之后, 左上角贴片数量选择-做5贴2( 因为莱洛三角形制作一个需要两个PCB板, 一个有元器件一个空板) , 贴片层-只贴顶层,产品类型-经济型,坐标文件生成方式-单板
2023-05-25 09:39:12 +00:00
- 强烈建议删除所有**扩展库以及推荐库**后打板
2023-05-25 09:14:44 +00:00
- SMT下单完成之后, 只需购买smt删除部分的元器件( 比如扩展库和推荐库)
2022-03-15 10:13:39 +00:00
2021-08-17 17:01:19 +00:00
2022-03-15 10:13:39 +00:00
### 2 硬件特性
2021-08-17 17:01:19 +00:00
2023-05-25 09:14:44 +00:00
| 说明 | 参数 |
|--------------|-------------------------------------------------------|
| 莱洛三角形尺寸 | 100*100 mm |
| 动量轮尺寸 | 80*80 mm |
| 电池*3 | 厚x长x宽:7.9mmx25mmx40mm 规格内均可 |
| 输入电压 | 3.7v锂电池*3 |
| 充电电压 | 5V 从Type-C口输入 |
| 充电芯片CN3300 | 5V输入,最大1A充电电流 |
| 均衡芯片CM1010-A | 电池电压超过4.25V之后开始放电 |
| 主控芯片 | ESP-WROOM-32 |
| 电机驱动芯片EG2133 | 引脚:32, 33, 25 |
| 稳压芯片MT2492 | 输出5V和3.3V |
| MT6701 编码器 | SDA-23 SCL-5 |
| MPU6050六轴传感器 | SDA-19 SCL-18 |
| RGB灯-WS2812 | 使用GPIO16控制 |
| LED指示灯 | 功能 |
|-------------|-------------------------------------|
| LED1 | 串口指示灯, ESP32发送串口数据时会亮起 |
| LED2 | 充电完成指示灯, 亮起表示充电完成, 充到亮起可能需要2-3小时 |
| LED30 | 充电指示灯,亮起表示正在充电 |
| LED3 | typec的5V输入指示灯 接typec一定亮 |
| LED4 | 3.3v指示灯 电池输入12v输出3.3V |
| LED5 | 由GPIO4控制, 电池电压低于9.5V时以1HZ频率闪烁 |
| LED27\28\29 | 均衡指示灯, 亮起表示该电池电压高于4.25V正在通过22欧姆电阻放电中 |
| 触摸盘 | 功能 |
|-------|---------------------------------------|
| 单击时长 | 100ms以上 |
| 长按时长 | 800ms以上 |
| 点赞触摸盘 | GPOI13-Touch4-单击:开关RGB灯; 长按: 开关wifi和电机 |
| 投币触摸盘 | GPOI15-Touch3-单击: 增加RGB灯亮度; 长按: 下一个RGB灯效 |
| 收藏触摸盘 | GPOI2-Touch2-单击: 减少RGB灯亮度; 长按: 上一个RGB灯效 |
### 3 使用说明
1. 下载完本git所有文件后, 打开文件夹V3/bin/flash_download_tool_3.9.2.exe
2024-03-31 18:09:59 +00:00
2. 打开flash_download_tool后选择chip Type "ESP32",然后点OK, 在第五行选择target.bin, 烧录到0x000位置![bin.png](//image.lceda.cn/pullimage/0ajASfQTcPpNFzxUH7vFEisb5yv1siHpA1djrdE1.png)
3. 使用CH340下载器, 将下载器的TXD\RXD\GND用杜邦线引出, 对准PCB的ESP32正上方的GND\RXD\TXD, 接法为TXD-RXD\RXD-TXD\GND-GND
4. PCB焊好后, 保证esp32的供电电压为3.3V, 打开电源, 同时按住boot和RESET按钮, 先松开RESET, 然后松开boot进入下载模式后点START开始程序烧录
5. 到这一步就可以打开开关, 三角形就可以三个角都平衡了。如果不能平衡就参考文档最下方Q& A。
6. WIFI调参功能只能是硬件正常情况下使用。如需修改参数, 长按点赞触摸盘, 可以打开wifi并停止电机。
7. 打开本项目内的`python_gui`内的`可执行文件_main`内的**main.exe**并连接上WIFI: ESP32 。点击设置开始调参。
![tiaocan.gif ](//image.lceda.cn/pullimage/YkcLUmGOs8egvLmQoCGskOwLnaBcuPhgRfFM5hZS.gif )
8. 如果不能摇摆直立, 推荐调整的参数为TA、SA、SV
9. K值可以用滑块调整, 拖动滑块就会发送参数命令, 但是调整到合适值之后需要自行在Arduino的main中修改再烧录一次
10. 滑条:最左边输入框为滑块下限,右边是滑块上限,滑条等分成**200**份,命令是**字符串**,滑动滑块发送**字符串** + ** 数值**
11. arduino文件夹为环境可以自行修改代码编译( simplefoc版本需要为2.3.2)
2023-05-25 09:14:44 +00:00
比如让平衡角度为90度, 则输入: TA90, 并且会存入eeprom的位置0中 注: wifi发送**命令不能过快**, 因为每次都会保存进eeprom, K参数没有保存到EEPROM所以可以使用滑条调整。
| 参数命令 | 说明 |
2021-11-09 08:22:01 +00:00
| ---------------- |---------------------- |
2023-05-25 09:14:44 +00:00
| TA | target_angle平衡角度 例如TA89.3 设置平衡角度89.3|
| SV | swing_up_voltage摇摆电压 左右摇摆的电压,越大越快到平衡态,但是过大会翻过头|
|SA|swing_up_angle摇摆角度 离平衡角度还有几度时候,切换到自平衡控制|
|VP1|速度环的PID的P, 1是稳定在平衡角度之前的P值|
|VI1|速度环的PID的I, 1是稳定在平衡角度之前的I值|
|VP2|速度环的PID的P, 2是稳定后的P值|
|VI2|速度环的PID的I, 2是稳定后的I值|
|K为LQR参数|**3和4**是速度控制稳定前和后|
|K3**1**|LQR的参数1: 稳定前的角度差值|
|K3**2**|LQR的参数2: 稳定前的左右倾倒加速度|
|K3**3**|LQR的参数3: 稳定前的当前速度|
|K4**1**|LQR的参数1: 稳定后的角度差值|
|K4**2**|LQR的参数2: 稳定后的左右倾倒加速度|
|K4**3**|LQR的参数3: 稳定后的当前速度|
LQR算法解释: 当三角形向←倾斜时, 需要产生向→的力回正。
在电压控制下: 回正力F直接和输出电压值挂钩, 向←倾斜, 电机提供正电压V动量轮向**左加速转动**, 产生向右的力F。
`期望电压 = 角度差值x参数1 + 左右倾倒加速度x参数2 + 当前速度x参数3`
在速度控制下: 回正力F和动量轮转速加速度a有关, F = ma, 向←倾斜, 电机需要向**左加速转动**, 产生向右的力F。
`期望速度 = 角度差值x参数1 + 左右倾倒加速度x参数2 + 当前速度x参数3`
两者区别: 电压和速度控制都可以实现平衡, 但因为使用simpleFOC控制电机转速无法无限加速, 本电机实验最高转速180转, 电压到上限12v。
2021-08-17 17:01:19 +00:00
2023-05-25 09:14:44 +00:00
使用电压控制会遇到, 电机一下子就到了转速上限, 就不能提供稳定的力F, 参数调起来比较困难。
2021-11-18 15:28:06 +00:00
2023-05-25 09:14:44 +00:00
速度控制可以在偏差变大的时候, 根据期望速度产生最大电压12v, 并且不会超过电机最高转速。
### 4 硬件设计
2021-11-09 08:22:01 +00:00
使用立创EDA绘制电路原理图, LaserMaker绘制莱洛三角形和动量轮( 有激光切割机可以事先切割结构作为参考) 。将绘制完的图形导入到立创EDA中可作为PCB的外框。丝印图案分别是**Gawr Gura**、**ouro kronii** ~~helicopter~~
2021-08-17 17:01:19 +00:00
2021-12-30 09:00:39 +00:00
LaserMaker绘制的plt在**莱洛三角结构**文件夹内,需要重新绘制电路图可以使用
2021-08-17 17:01:19 +00:00
2023-05-25 09:14:44 +00:00
感谢嘉立创的PCB制板, 使DIY电路制作变得非常便利
2021-11-09 08:22:01 +00:00
2023-05-25 09:14:44 +00:00
### 5 Ctrl+C +V( 参考)
Arduino上的控制算法是原作者的LQR, 无刷驱动为立创开源的EG2133方案。
2021-11-09 08:22:01 +00:00
2022-03-15 10:13:39 +00:00
Python的GUI是以SimpleFOC的SimpleFOCStudio为基础, 添加wifi功能。
2021-11-09 08:22:01 +00:00
2022-03-15 10:13:39 +00:00
V2的充电电路是在立创广场开源的《CN3300 4串电池组板》方案基础上改的3串锂电池
2021-11-09 08:22:01 +00:00
2022-03-15 10:13:39 +00:00
PCB以及原理图技术支持——muyan
wifi效果以及按键面修复代码作者——muyan
2021-11-09 08:22:01 +00:00
2022-01-01 10:46:04 +00:00
1. 原作者: 基于LQR控制器的自平衡莱洛三角形[BV19v411n7mN](https://www.bilibili.com/video/BV19v411n7mN)
2023-05-25 09:14:44 +00:00
2. muyan立创链接[https://oshwhub.com/muyan2020?tab=project& page=1](https://oshwhub.com/muyan2020?tab=project& page=1)
2022-03-15 10:13:39 +00:00
3. muyan git链接[https://gitee.com/muyan3000](https://gitee.com/muyan3000)
4. EG2133驱动参考[https://oshwhub.com/acmetech-lceda/minifoc](https://oshwhub.com/acmetech-lceda/minifoc)
5. 灯哥开源FOC [https://gitee.com/ream_d/Deng-s-foc-controller ](https://gitee.com/ream_d/Deng-s-foc-controller )
2023-05-25 09:14:44 +00:00
6. CN3300 4串电池组板[https://oshwhub.com/583703056a/dian-chi-zu-ban_copy_copy](https://oshwhub.com/583703056a/dian-chi-zu-ban_copy_copy)
7. Arduino环境提供者[https://github.com/kaliCYH](https://github.com/kaliCYH)
2022-03-15 10:13:39 +00:00
2021-11-09 08:22:01 +00:00
2023-05-25 09:14:44 +00:00
### 6 有用的地方
2021-11-09 08:22:01 +00:00
2021-12-08 12:33:54 +00:00
1. Arduino的程序中的command.h、command.cpp可以支持任意的字符串输入。在其他项目中一样可以用, 无论是wifi接收到的字符串数据或者是串口的字符串数据。
2. GUI上位机可以在其他wifi项目中可以继续使用, 用来调参还是很方便。
2023-05-25 09:28:39 +00:00
### 7 交流群
1. 45coll电子交流群:824113552(已满)
2. 45coll电子交流2群:587563225
2024-03-31 18:09:59 +00:00
### 8 Q&A
1. Q:设计图看不见了
>A:立创版本管理问题, 更新工程PCB后预览消失, 需要查看项目PCB可以点下方点赞左边的**克隆**,将工程克隆到自己编辑器就可以查看
2. Q:全部焊接好后、无法烧录程序
>A:需要使用三个锂电池供电才能正常工作, 然后打开开关后确保mpu6050的供电有5V, 然后esp32芯片供电有3.3V, 其次才能烧录程序后RGB灯效能正常转三圈( 说明程序烧录进去了)
>供电不正常请检查焊接, 可以去掉后级的MT2492芯片查看前级供电是否正常
>供电正常无法烧录程序可以试试调换ch340烧录器的TX、RX的杜邦线
3. Q:烧录完成电机不转
>A:烧录完成后RGB灯效转三圈, 电机不动或抖动然后就灭了或者重启, 那么是电机驱动部分电路没焊好, 可以试试换掉电机驱动部分的六个AP2300mos管, 换了mos管之后发现也不行可以换eg2133试试。( 原因推测:电烙铁没有接地, 焊接的时候静电击穿mos管)
>小概率可能你忘记接电机线了, 也可能接电机线的时候接反了, 导致3p底座的2p短路了, 更换3p底座可以解决。
4. Q:电机初始化正常,但是不平衡
>A:可以试试重新电机初始化,电机初始化是指在第一次上电的时候电机能够顺滑的左右转动,进行磁编码器的电角度确定。重新初始化可以长按点赞的触摸盘然后重启。
>如果是能够摇摆到平衡角度, 但是平衡一两秒就倒下了, 有90%可能是mpu6050的问题, 需要进行更换。( 作者: 我做了数百个三角形后发现mpu6050坏的概率有5%,均更换新的好了)
>更换mpu6050后还不好, 玄学问题可以进群讨论( 我遇到两个无论换了什么元器件也修不好的