发作品签到
标准版

自平衡的莱洛三角_esp32_可充电_10*10版本

工程标签

15.2w
0
0
175

简介

esp32作为主控,5V充3串锂电池,可实现摇摆自平衡。

简介:esp32作为主控,5V充3串锂电池,可实现摇摆自平衡。

开源协议

GPL 3.0

创建时间:2021-09-28 01:21:48更新时间:2022-07-21 05:23:04

描述

自平衡莱洛三角形可充电版

介绍

在B站“基于LQR控制器的自平衡莱洛三角形”基础上添加了充电模块
主控芯片使用ESP32,并配置了调参上位机,可以很方便的通过wifi无线调参。无刷控制使用灯哥开源FOC。制作出一个方便复刻的自平衡莱洛三角形,在桌面上作为一个摆件还是非常不错的
展示视频

(2202/3/15更新V2,增加RGB,更换电机驱动,平衡效果更好,优化bom更方便下单)v2链接

项目git程序在git自行下载。需要购买的东西也在git的物料清单。(后续更新内容都在git, 项目说明请以git为准 )

show.png

左:使用灯哥开源FOC2.0板测试

中:13*13cm立创紫PCB

右:10*10cm最终版本

1 软件架构

在原作者的自平衡控制电压算法上进行修改,将电压控制改为速度控制。使对模型的控制在物理上更加容易理解。并且代码的调参都可以通过连接ESP32的wifi调整。具体特性如下:

  • 基于 Arduino:运行在 ESP32 Arduino 上
  • 控制模式丰富:电压控制和速度控制

gui_main.jpg

2 硬件特性

说明参数
莱洛三角形尺寸100*100 mm
动量轮尺寸80*80 mm
电池*3厚x长x宽:7.9mmx25mmx40mm
输入电压3.7v锂电池*3
充电电压5V 从Type-C口输入
充电芯片CS50955V输入,最大1.2A充电电流
串口芯片CH340C需要打开开关才能下载
主控芯片ESP-WROOM-32
电机驱动芯片L6234PD引脚:32, 33, 25, 22; 22为enable
AS5600 编码器SDA-23 SCL-5
MPU6050六轴传感器SDA-19 SCL-18

3 使用说明

  1. 下载完项目git所有文件后,打开arduino文件夹,解压arduino.7z完成之后双击运行esp32_package_1.0.6.exe安装esp32库环境。注意:若之前有安装过arduino,请将路径C:\Users\用户名\AppData\Local\的Arduino15文件夹和此电脑\文档内的Arduino 删除 (也可自行下载Arduino并安装SimpleFOC)(但是可能会版本不对电机不动)

  2. 打开解压后的arduino文件夹内的arduino.exe,导航栏-文件-打开。选择arduino\main里面的main.ino

  3. 烧录程序到ESP32:选择工具-开发板-esp32 Arduino-ESP32 Dev module,然后连接USB口选择对应的com口,编译上传。

    1.   如无法正常编译
      1. 可能与原有arduino冲突,请查看使用说明第一条
      2. 文件夹路径含有非法字符,可以把Arduino移动到硬盘根目录下,如D:\Arduino
  4. 打开本项目内的python_gui内的可执行文件_main内的main.exe并连接上WIFI:ESP32 密码:12345678。点击设置开始调参。

  5. 连接成功后,点击disable,然后逆时针拨动动量轮,查看上位机中V参数是否为正值。注意!如果 逆时针转为为负值 那么需要将电机线任

  6. 如果电机不能正常运行可以,点击上位机中最下方的 测试部分 ,打开电压或者速度测试,滑动滑条,查看电机能否正常运行。如还不能请检测硬件电路部分。

  7. 如果不能摇摆直立,推荐调整的参数为TA、SA、SV

  8. K值可以用滑块调整,拖动滑块就会发送参数命令,但是调整到合适值之后需要自行在Arduino的main中修改再烧录一次

  9. 滑条:最左边输入框为滑块下限,右边是滑块上限,滑条等分成200份,命令是字符串,滑动滑块发送字符串 + 数值

比如让平衡角度为90度,则输入:TA90,并且会存入eeprom的位置0中 注:wifi发送命令不能过快,因为每次都会保存进eeprom,K参数没有保存到EEPROM所以可以使用滑条调整。

参数命令说明
TAtarget_angle平衡角度 例如TA89.3 设置平衡角度89.3
SVswing_up_voltage摇摆电压 左右摇摆的电压,越大越快到平衡态,但是过大会翻过头
SAswing_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是速度控制稳定前和后
K31LQR的参数1:稳定前的角度差值
K32LQR的参数2:稳定前的左右倾倒加速度
K33LQR的参数3:稳定前的当前速度
K41LQR的参数1:稳定后的角度差值
K42LQR的参数2:稳定后的左右倾倒加速度
K43LQR的参数3:稳定后的当前速度

4 硬件设计

使用立创EDA绘制电路原理图,LaserMaker绘制莱洛三角形和动量轮(有激光切割机可以事先切割结构作为参考)。将绘制完的图形导入到立创EDA中可作为PCB的外框。丝印图案分别是Gawr Guraouro kronii helicopter

LaserMaker绘制的plt在莱洛三角结构文件夹内

感谢嘉立创的PCB制板,使DIY电路制作变得非常便利

莱洛三角形PCB

动量轮

具体需要购买的物品在物料清单.xlsx

5 Ctrl+C +V(参考)

Arduino上的控制算法是原作者的LQR,无刷电机控制是灯哥开源FOC。电机控制引脚定义与传感器定义和灯哥开源FOC控制板2.0版一样。

Python的GUI是SimpleFOC的SimpleFOCStudio。

充电电路是立创广场开源的CS5095充电方案。

  1. 原作者:基于LQR控制器的自平衡莱洛三角形BV19v411n7mN
  2. 灯哥开源FOC https://gitee.com/ream_d/Deng-s-foc-controller
  3. 充电芯片电路https://oshwhub.com/Aknice/cs5095e-san-jie-li-dian-chi-sheng-ya-chong-dian-dian-lu
  4. Arduino环境提供者https://github.com/kaliCYH

6 有用的地方

  1. Arduino的程序中的command.h、command.cpp可以支持任意的字符串输入。在其他项目中一样可以用,无论是wifi接收到的字符串数据或者是串口的字符串数据。
  2. GUI上位机可以在其他wifi项目中可以继续使用,用来调参还是很方便。

设计图

原理图
PCB

BOM

IDNameDesignatorFootprintQuantity
1100nFC1,C2,C5,C6,C12C06035
210uFC3CASE-A_32161
347uFC4,C7CAP-TH_BD6.3-P2.50-D1.0-FD2
410nFC8,C11,C17C06033
51nFC9C06031

附件

序号文件名称下载次数
1
演示视频.mp4
13416
克隆工程
添加到专辑
0
0
分享
侵权投诉

评论

全部评论(1)
按时间排序|按热度排序
粉丝0|获赞0
相关工程
暂无相关工程

底部导航