在B站“基于LQR控制器的自平衡莱洛三角形”基础上添加了充电模块
主控芯片使用ESP32,并配置了调参上位机,可以很方便的通过wifi无线调参。无刷控制使用灯哥开源FOC。制作出一个方便复刻的自平衡莱洛三角形,在桌面上作为一个摆件还是非常不错的
展示视频_暂无东西已经做完了,但是让我录从零开始制作过程的视频,我太摸了。在录了-新建文件夹
项目git程序在git自行下载,程序应该不会再改了,可能会修改markdown
左:使用灯哥开源FOC2.0板测试
中:13*13cm立创紫PCB
右:10*10cm最终版本
在原作者的自平衡控制电压算法上进行修改,将电压控制改为速度控制。使对模型的控制在物理上更加容易理解。并且代码的调参都可以通过连接ESP32的wifi调整。具体特性如下:
说明 | 参数 |
---|---|
莱洛三角形尺寸 | 100*100 mm |
动量轮尺寸 | 80*80 mm |
电池*3 | 厚x长x宽:7.9mmx25mmx40mm |
输入电压 | 3.7v锂电池*3 |
充电电压 | 5V 从Type-C口输入 |
充电芯片CS5095 | 5V输入,最大1.2A充电电流 |
串口芯片CH340C | 需要打开开关才能下载 |
主控芯片 | ESP-WROOM-32 |
电机驱动芯片L6234PD | 引脚:32, 33, 25, 22; 22为enable |
AS5600 编码器 | SDA-23 SCL-5 |
MPU6050六轴传感器 | SDA-19 SCL-18 |
比如让平衡角度为90度,则输入:TA90,并且会存入eeprom的位置0中 注:wifi发送命令不能过快,因为每次都会保存进eeprom,K参数没有保存到EEPROM所以可以使用滑条调整。
参数命令 | 说明 |
---|---|
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值 |
K11 | 1和2是电压控制时参数。LQR的参数1*角度差值 |
K12 | 1和2是电压控制时参数。LQR的参数2*左右倾倒加速度 |
K13 | 1和2是电压控制时参数,3和4是速度控制时参数。LQR的参数3*当前速度 |
使用立创EDA绘制电路原理图,LaserMaker绘制莱洛三角形和动量轮(有激光切割机可以事先切割结构作为参考)。将绘制完的图形导入到立创EDA中可作为PCB的外框。丝印图案分别是Gawr Gura、ouro kronii helicopter
LaserMaker绘制的plt在莱洛三角结构文件夹内
感谢嘉立创的PCB制板,使DIY电路制作变得非常便利
莱洛三角形PCB
动量轮
具体需要购买的物品在物料清单.xlsx中
Arduino上的控制算法是原作者的LQR,无刷电机控制是灯哥开源FOC。电机控制引脚定义与传感器定义和灯哥开源FOC控制板2.0版一样。
Python的GUI是SimpleFOC的SimpleFOCStudio。
充电电路是立创广场开源的CS5095充电方案。
!注意:请使用浏览器自带下载,迅雷等下载软件可能无法下载到有效资源。
欢迎加入EEWorld参考设计群,也许能碰到搞同一个设计的小伙伴,群聊设计经验和难点。 入群方式:微信搜索“helloeeworld”或者扫描二维码,备注:参考设计,即可被拉入群。 另外,如您在下载此设计遇到问题,也可以微信添加“helloeeworld”及时沟通。
EEWorld Datasheet 技术支持