LeTian-robot2(轮腿机器人)
简介
基于ESP32S3的自适应轮腿机器人,足部选用4010无刷电机直驱,腿部选用舵机进行控制,主控板含有麦克风和功放模块,后期将实现开发ESP32离线语音控制。PCB绘制全部采用立创EDA专业版进行绘制。
简介:基于ESP32S3的自适应轮腿机器人,足部选用4010无刷电机直驱,腿部选用舵机进行控制,主控板含有麦克风和功放模块,后期将实现开发ESP32离线语音控制。PCB绘制全部采用立创EDA专业版进行绘制。开源协议
:GPL 3.0
描述
1、项目来源
LeTian-robot2(轮腿机器人),项目灵感来源为Ascento机器人,设计的初衷是通过轮足机器人的制作,学习控制算法以及实现最终的跳跃功能。由于整个系统理论知识庞大,目前能力有限跳跃功能的理论设计、建模仿真、实物仿真暂时未能实现,预计明年6月前实现,目前实现的功能有自动关自平衡、身高调节、无线控制。由于ESP32S3支持离线语音识别,固下一步会将离线语音识别添加至此项目,离线语音开发仅支持ESP-IDF平台。
2、项目属性
结构设计参考与Ascento机器人,PCB、原理图、三维模型、BOM表等完全开源。
3、硬件部分
本次设计电路部分,全部由立创EDA专业版完成,绘图使用CAD、Solidworks。
(1) 支持芯片:ESP32-S3-WROOM-1-N8
(2) 引脚引出:两路舵机接口、两路无刷电机接口、两路IIC接口、四路SPI接口。
(3) 板载MPU6050 长宽设计为48*48mm 体积小巧
(4) 使用DRV8313作为驱动芯片峰值电流2.5A,驱动电机只能采用云台电机(相电阻在10欧姆左右)
(5) 两路舵机接口,使用XH2.54 3P接口
(6) ESP32集成一键下载电路,使用CH340K串口芯片,使用typec接口与电脑进行通讯和下载程序
(7) ESP32预留IO 0按键和RST复位按键
(8)预留两路FPC 0.5mm 8P LCD接口,可以控制两个1.28寸圆形屏幕
(9) LM2596作为5V稳压元器件,为舵机进行供电
(10) 电源输入可使用XT60输入,电源使用3S锂电池
4、硬件选型
4010 motor
车轮(直接与电机过盈配合)
舵机
5、PCB版本(PCB全部采用立创EDA专业版进行绘制)
V2.0
正面
反面
V2.0PCB版本采用3层连接的方式,主控与电机驱动主控分开,电机驱动采用L6234D驱动,并且电机电源采用双路升压芯片进行分别供电,成本较高,不宜采用。
V3.0 (最终版)(很遗憾由于疫情,已经SMT的V3.0板子一直在菜鸟驿站躺着,短时间内还拿不到,暂时采用V2.0主控和电源层+4010电机单独驱动进行控制,由于左轮电机有问题,最终控制效果欠佳,等疫情好转后会更新最新3.0版本程序)
主控层(注意:请使用导线连接背部VCC)
电源层(引出舵机和电机接口)
编码器 (AS5600芯片)
4010 MOTOR单路simpleFOC控制板(预留串口0通讯)
6、软件实现
由于疫情原因无法拿到V3.0版本的PCB,暂时硬件版本采用的是V2.0版本的主控+电源层+4010电机驱动,故此版本电机驱动与主控代码分离分别在不同主控中运算实现。V3.0版本电机驱动全部集成由一个ESP32S3进行完成。等后续疫情好转,会进行3.0版本的代码调试。
代码开发平台:VScode platform
硬件结构
电机驱动采用SimpleFOC算法实现,电机运行在扭矩模式。
主控与电机驱动使用串口通讯,给定目标值并读取速度和角度值
电机第一次初始化motor.initFOC();将函数中参数删除,等待电机上电后串口输出电机转向和偏差角度后填入,下次上电跳过电机自检。
主控运行ESP32 RTOS,创建两个任务,串口控制电机和读取电机角度信息,同时可以采用Blinker APP使用蓝牙进行控制。
读取轮速信息,MPU6050信息,进行PID运算。
通过串口通讯给定电机力矩值,运行blinker进行蓝牙控制,同时更新;两侧舵机角度。
PID参数调节
Blinker APP
由于时间和疫情原因,后期会继续优化机械结构和算法,提升稳定性和抗干扰性,增加更多功能,目前已经实现自平衡和高度控制和倾斜角度控制,下一步将会实现复杂地形的平衡以及开发ESPIDF环境下代码的编写和调试。
https://www.youtube.com/watch?v=f9GJqqUpL2w
开源所有PCB、原理图、三维模型、BOM清单,还请大家点赞收藏转发,也可在评论区进行探讨。
评论