1 Star 4 Fork 5

yanshimi/基于ESP的遥控坦克

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
GPL-3.0

项目简介

本项目为模型坦克的遥控套件,考虑到要有尽量高的性能以及无线功能,所以MCU主控使用了ESP32S3模块,项目分为遥控端和接收端,因为基本都是目视控制,所以连接协议选用的ESPNOW,能够获得更快的响应速度和较低的延迟。遥控板上支持两个双通道摇杆,分别控制坦克驱动电机、炮塔转动电机和炮管俯仰电机,同时接油一块OLED的显示屏,用于显示一些关键信息,比如连接状态、电池电压、摇杆数值等。接收板上除了有4个电机接口外还有电池接口、开关接口、两个5V输入接口用于连接有线充电和无线充电。

项目功能

本项目是基于ESP32S3设计的遥控系统,分为遥控端和接收端,遥控端设置有两个双通道摇杆,分别用于控制接收端的4个电机驱动,支持比例控制,同时还配置了一块OLED显示屏,用于显示连接状态、电池电压、摇杆数值等相关信息,还板载了LED指示灯,分别用于显示供电状态和连接状态,并且遥控端和发射端都板载了充电电路以及电量检测电路,遥控端使用1S锂电池,接收端使用2S锂电池供电。

项目参数

  • 本项目主控MCU使用了ESP32S3模组,具备较高的性能以及无线连接能力;
  • 本项目使用了常用的13mm摇杆电位器,通用性较强;
  • 本项目使用了0.96寸的OLED显示屏,用于显示一些关键信息;
  • 本项目使用了CH340N串口芯片,并板载USB接口,可通过USB进行程序烧录;
  • 本项目遥控端使用了IP5306电源管理芯片,支持电池充电机同步升压转换;
  • 本项目接收端使用了IP2325双节锂电池充电芯片,具备较高的充电功率;
  • 本项目接收端使用了RZ7889电机驱动芯片,具备较高的驱动电压和电流;
  • 使用ADC引脚配合电阻分压电路来测量电池电压,可以直观的在显示屏上显示电池电压百分比;
  • 板载连接状态指示灯,当遥控端和接收端未连接时LED灯闪烁,当已连接时LED灯常亮。

遥控端.jpg

接收端.jpg

设计原理

MCU主控: 设计满足ESP32S3最小系统需求,包括上电时序、下载、重启等; image.png

下载电路及接口: 使用CH340N串口芯片配合TYPE-C接口,即可通过USB对MCU烧录固件; image.png

电池充电及DCDC: 遥控端使用IP5306电源管理芯片,注意要使用型号结尾带_CK的芯片,为常开芯片,不会因为电流小进入待机状态,此芯片不仅可以对电池进行充电,并且可以升压5V输出,可以节省一个升压电路,同时支持边冲边放,使用AMS1117-3.3将5V电压降压为3.3V供MCU使用; image.png

接收端因为要提升电机驱动能力,所以使用了2S锂电池,在充电电路上就选用了支持2S从电的IP2325芯片,并且支持较高的充电功率; image.png

摇杆: 遥控端摇杆使用了比较常见的13mm双通道摇杆,电位器阻值为常见的10K,同时引脚端都并联有滤波电容,软件上也设置了滤波电路,以实现更准确的摇杆数值; image.png

电池电压测量: 遥控端和接收端均采用了电阻分压的测量电路,但由于电池电压不一样,所以电路选用的阻值也不一样; image.png

image.png

显示屏: 遥控端使用了一块0.96寸OLED显示屏,分辨率为128X64,驱动芯片为SSD1315,使用IIC协议进行驱动,软件中使用U8G2进行图形显示,主要显示连接状态、电池电压、摇杆数值这些关键信息; image.png

指示灯: 板载有两个LED指示灯,一个为系统电源指示灯,3.3V电源OK时指示灯常亮,另外一个为连接状态指示灯,遥控端和发射端未连接时指示灯闪烁,已连接时指示灯常亮; image.png

电机驱动: 接收端使用了4颗独立的直流电机驱动芯片,RZ7889具备较高的驱动电压和电流,使用电池电压直接驱动,使用一颗100UF的电容进行电压补偿; image.png

软件代码

软件设计主要分为以下几个部分: 初始化: 主控在上电后会对各引脚进行初始化,在遥控端会对显示屏及U8G2进行初始化并显示logo,同时会对摇杆进行自动校准; image.png

ESPNOW自动配对: 在MCU初始化完成后,遥控端会发送ESPNOW广播报文,接收端在收到广播报文后将报文的MAC地址作为主机地址,将自己的MAC地址发送给主机,遥控端在接收到回复后将MAC加入到从机中,即可完成遥控端和接收端的配对工作; image.png遥控端

image.png接收端

数据发送和回传: 配对完成后,遥控器会持续读取摇杆数值,进行滤波、映射之后封装成控制数据包发送给接收端,接收端在接收到控制数据包后会根据摇杆数值进行对应的处理,之后会读取电压数值并进行百分百计算之后回传给遥控端; image.png遥控端

image.png接收端

中断和重连: 遥控端根据收到回传数据的时间判断连接是否中断,如果一定时间未收到回传数据,则认为连接已中断,重新进入配对流程,删除从机MAC,持续发送ESPNOW广播报文,同样接收端会根据接收到控制数据包的时间判断连接是否中断,如果一定时间为收到控制数据包,这认为连接已中断,从新进入配对流程,删除主机MAC,监听ESPNOW广播报文,在遥控端和接收端同时进入配对流程时会自动完成配对,已实现自动重连;

image.png image.png

显示屏控制: 实时显示连接状态、电压百分比、摇杆数值等关键数据;

image.png

由于软件代码较长,不在此具体展示,具体代码详见Gitee开源项目: https://gitee.com/yanshimi/esp-tank

3D模型设计

3D模型部分设计参考了T34坦克的外形,受限于3D打印平台大小将主体分为前后两部分,这样也更容易打印成型,打印完成后使用胶水固定即可,功能方便包括可前进、后退、左转、右转、炮台旋转、炮管俯仰。

IMG_20250417_233053.jpg

运动部分包含了5对负重轮,驱动轮和导向轮,负重轮均为独立弹簧悬挂结构,弹簧位于坦克内部。 IMG_20250225_005641_1.jpg

动力部分使用了两个TT电机,分别驱动两侧的履带,可以实现差速转向,原地掉头。 IMG_20250225_005652.jpg

炮塔部分使用了电滑环,这样炮塔就可以无限旋转了,旋转动力部分使用了N20电机,炮管可以进行-5°到15°角度的俯仰操作,动力部分同样使用了N20电机。 微信截图_20250422142924.png

以下为内部电器布局,尾部有电源开关,可以控制电源通断,头部外接可TYPE-C接口,可以对内部锂电池进行充电,2S的14500锂电池放在了坦克前部,可以平衡前后重心,同时还可以安装无线充电模块。 IMG_20250416_002215.jpg

注意事项

  • MCU使用ESP32-S3-WROOM-1U,外置射频天线,flash大小最低4M即可运行程序;
  • 摇杆选择13mm大小10K阻值的,不要选错了;
  • 遥控端充电芯片使用IP5306_CK型号的,默认型号长时间小电流会自动休眠;
  • 显示屏要选择新款0.96寸的,注意引脚顺序和老款不一样;
  • 电池电压测量受电阻阻值影响,需要手动测量后进行校准。
  • 3D模型在打印时注意摆放方向,必要是需要添加支撑,齿轮等受力部件需要增加墙层数和填充。

组装流程

由于组装步骤较为复杂,请参考使用文档或参考组装视频:

空文件

简介

本项目为模型坦克的遥控套件,MCU主控使用了ESP32S3模块,项目分为遥控端和接收端,连接协议选用的ESPNOW。 展开 收起
README
GPL-3.0
取消

发行版 (1)

全部
1个月前

贡献者 (1)

全部

近期动态

1个月前推送了新的提交到 master 分支,2093c61...c4dd3a2
1个月前推送了新的提交到 master 分支,5d4a666...2093c61
1个月前推送了新的提交到 master 分支,bf7af80...5d4a666
1个月前推送了新的 V1.0 标签
1个月前推送了新的提交到 master 分支,a4504bc...bf7af80
加载更多
不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Arduino
1
https://gitee.com/yanshimi/esp-tank.git
git@gitee.com:yanshimi/esp-tank.git
yanshimi
esp-tank
基于ESP的遥控坦克
V1.0

搜索帮助