← 返回科创天地

创新实验作品 · MARS ROVER · 双 ESP32 · Web Bluetooth

尘光一号火星车

一台模拟未来火星基地的新能源智能巡检车。它把网页、蓝牙通信、双控制板、电机驱动、姿态安全和太阳能能源管理放进同一条任务链——最适合用来讲“系统集成”是怎么回事。

文档 v0.1.0 双 ESP32 架构 六轮编码底盘 网页蓝牙地面站
主控
双 ESP32
底盘
六轮编码电机
通信
Web Bluetooth
能源
太阳能 + 追光除尘
数智育才尘光一号 AI 智能火星探索车整车与部件示意
尘光一号 · AI 智能火星探索车(概念渲染图,仅供参考)

01 · 项目定位

不是“纯太阳能开车”,而是一套能源闭环

尘光一号定位为“基于 ESP32 的火星基地新能源智能巡检车”。它不承诺完全靠太阳能驱动车辆,更合理的工程表达是下面这个闭环——这也是答辩时最重要的能源管理亮点。

电池稳定供电7.4V 2S 主电池负责车辆随时能动。
太阳能持续补能12V 太阳能板经 CN3791 MPPT 给主电池补电。
追光提高效率4 路光敏判断方向,2 个舵机让板面对准光源。
除尘恢复效率积尘使功率下降,风扇除尘后功率回升,形成闭环。

02 · 总体架构

双 ESP32:一个管“跑得稳”,一个管“看得清”

车辆运动控制必须稳定、实时、安全;而显示、网页、传感器和能源数据比较复杂。把它们拆到两块 ESP32,能避免复杂的展示逻辑影响 A 板的运动安全。

ESP32-A · 运动与安全主控

让车跑得稳、停得住

  • 控制 6 个 TT 编码器电机、3 块 TB6612FNG 驱动
  • 读取左右代表轮编码器,做轮速检测与直线修正
  • 读取五路循迹、前方避障、坑洞检测、MPU6050 姿态
  • 接收 2.4G 八通道遥控,执行手动 / 自动 / 急停
  • 所有运动与安全的最终裁决都在 A 板
ESP32-B · 能源环境与展示主控

把状态看清、讲清

  • 读取 PMS5003T 粉尘温湿度、BMP280 气压、BH1750 光照
  • 读取 INA219 太阳能电压电流功率、电池电压
  • 读取 TCRT5000 积尘传感器、4 路光敏电阻
  • 控制 2 个舵机二维追光、5V 风扇除尘、TFT 显示
  • 建立 BLE 网页地面站,通过 UART 与 A 板通信
网页地面站 遥测 / 控制 / 日志 ESP32-B BLE 网关 · 能源环境 舵机 / 风扇 / TFT ESP32-A 运动 · 安全裁决 循迹 / 避障 / 姿态 3× TB6612 六轮差速电机 安全传感器 VL53L0X / MPU6050 BLE UART 网页命令不直接控制电机:网页 → B 板 → A 板,最后由 A 板按安全规则决定是否执行

03 · 实现状态

哪些已经做好,哪些还在路上

截至文档 v0.1.0 的真实进度。对外展示与答辩时,只宣称“已实现”的能力,骨架占位与规划中的功能不当作已具备——这是工程诚信,也是这台车后续升级的路线图。

能力状态说明
双 ESP32 心跳 + A/B UART 双向通信 ● 已实现 已实现
BLE 网关:广播 / 遥测通知 / 命令转发 ● 已实现 已实现
网页地面站:遥测 / 控制 / CSV / 演示 / 日志 ● 已实现 已实现
命令急停 / SAFE 默认态 / 超时与失联停车 ● 已实现 已实现
风扇 + 追光器状态回传 ● 已实现 已实现(仅状态)
电机驱动(六电机差速) ◐ 骨架占位 骨架占位:当前为虚拟 PWM 日志,不驱动真电机
电池 / 太阳能 / PM2.5 等能源环境数据 ◐ 骨架占位 固件现报 0,演示数据由网页提供
避障 / 坑洞 / 姿态安全字段 ◐ 骨架占位 协议字段在,尚未接入安全裁决
风扇除尘 / 追光执行 ◐ 骨架占位 命令只改状态位,未驱动风扇与舵机
物理急停 / 低电量保护 / 编码器测速 ○ 规划中 规划中
2.4G 接管 / 自动循迹 / 防侧翻 ○ 规划中 规划中
太阳能追光执行 / TFT 显示 / Wi-Fi 服务 ○ 规划中 规划中

04 · 硬件清单

车上都装了些什么

底盘运动系统

模块数量说明
六轮越野底盘1火星车底盘
TT 霍尔编码减速电机6推荐 1:90 减速比
TB6612FNG 驱动模块3每块控制一对左右电机
五路数字循迹模块1模拟预设巡检路线导航
2.4G 八通道串口遥控1手动遥控、急停、模式切换

安全与地形识别

模块数量说明
MPU60501坡度、侧倾、防侧翻
VL53L0X2前方避障 + 前下方坑洞检测
蜂鸣器 / 报警 LED1急停、倾斜、低电量报警

环境与能源系统

模块数量说明
PMS5003T1PM1.0/2.5/10、温湿度
BMP280 / BH1750各 1气压 / 光照强度
INA2191太阳能电压、电流、功率
TCRT5000 / 光敏 LDR1-2 / 4积尘检测 / 二维追光方向
12V3W 太阳能板 + CN37911 + 1发电与 2S MPPT 补能
SG90/MG90S 舵机 + 5015 风扇2 + 1追光 / 除尘
电源安全:采用一组 7.4V 2S 主电池 + 两路 5V 降压。电机、舵机、风扇不要从 ESP32 板子直接取电;所有 GND 必须共地;总开关用机械大电流开关;不要同时用平衡充电器和 CN3791 给同一电池充电。

05 · 安全保护

循迹、避障与防侧翻

地形风险识别

五路数字循迹模拟预设巡检路线,可识别左偏、居中、右偏、丢线和特殊标记。两个 VL53L0X 分别朝正前方和前下方,识别岩石与坑洞落差。

姿态阈值(防侧翻)

状态判断(MPU6050 Roll)
正常Roll < 15°
警告Roll 15°–25°
危险Roll 25°–35°
急停Roll > 35°
安全逻辑的最终裁决必须放在 A 板,而且优先级高于循迹逻辑:连接异常、急停、超时或姿态风险出现时,运动命令会被限制或清零。

06 · 网页地面站

蓝牙怎么把状态送到网页

网页端连接 BLE 名称前缀 ESP32-rover 的 B 板,显示模式、急停、左右轮 PWM、障碍/坑洞、姿态、电池、太阳能功率、PM2.5、风扇状态,并支持手动控制、模式切换、急停、风扇与追光开关、运行日志和 CSV 导出。

遥测包(B 板 → 网页)

ROVER,<seq>,<ms>,<mode>,<estop>,
<left_pwm>,<right_pwm>,<battery_v>,
<solar_w>,<pm25>,<pitch>,<roll>,
<obstacle>,<pit>,<fan>,<tracker>

控制命令(网页 → B 板)

CMD,<seq>,MODE,<MANUAL|AUTO|SAFE>
CMD,<seq>,DRIVE,<forward>,<turn>
CMD,<seq>,ESTOP,1
CMD,<seq>,CLEAR_ESTOP,1
CMD,<seq>,FAN,<0|1>
CMD,<seq>,TRACKER,<0|1>
命令链路:网页命令不是直接控制电机。它先到 B 板,再由 B 板通过 UART 发给 A 板,最后由 A 板根据安全规则决定是否执行。这样即使网页误操作,运动安全仍由 A 板把关。

07 · 搭建路线

推荐的分阶段搭建顺序

开发优先级是“先让车能安全跑,再让车能自动跑,最后做能源环境与展示系统”。每个阶段都有明确的通过标准,过了再进下一阶段。

主电源主开关上电、两路 5V 稳定、不异常发热。
双心跳通信A/B 串口心跳、UART 互通、BLE 广播、网页收遥测。
电机裸测架空测方向、左右三轮同向、再测差速转向。
编码器读左右代表轮速度,让直行更稳。
遥控急停手动响应正常,急停最高优先级,失联停车。
自动循迹沿线巡检,丢线停车,手动可随时接管。
地形安全避障、坑洞、防侧翻,安全逻辑优先于循迹。
能源闭环B 板传感器数据 + 追光除尘,形成功率闭环。

08 · 演示流程

火星基地新能源巡检任务

  1. 火星车开机,网页地面站连接 ESP32-rover。
  2. 网页显示自检信息、电池电压、当前模式。
  3. 进入自动巡检模式,小车沿预设路线前进。
  4. 遇到障碍物,小车减速或停止。
  5. 前下方传感器检测到坑洞,小车停止并报警。
  6. MPU6050 检测坡度,倾角过大触发防侧翻保护。
  7. 模拟沙尘使 PM2.5 / 积尘升高,太阳能功率下降。
  8. 启动风扇除尘,功率恢复;启动追光,功率进一步提升。
  9. 评委在网页端看到完整状态,并可演示急停与人工接管。

09 · 自检

学完后你应该能回答

1 为什么尘光一号要用双 ESP32,而不是一块板全部完成?

运动控制需要稳定、实时、安全;网页蓝牙、能源环境传感器和展示逻辑比较复杂。拆成 A 板和 B 板后,A 板专心处理电机、循迹、避障、姿态和急停,B 板负责 BLE 地面站、能源环境数据和展示,复杂展示逻辑不会拖慢运动安全裁决。

2 网页地面站为什么不能直接控制电机?

网页运行在浏览器里,连接状态和指令时序都可能不稳定。更安全的链路是“网页 → B 板 → A 板 → 电机驱动”,最后由 A 板根据急停、超时、姿态、避障等条件决定是否执行。这样即使网页误触或蓝牙短暂异常,车辆仍有本地安全边界。

3 为什么说它不是“纯太阳能开车”,而是能源闭环?

课堂演示中主电池负责稳定供电,太阳能板用于补能和能源管理演示。真正的亮点是测量光照、太阳能电压电流功率、积尘影响,再通过追光和除尘让功率变化可观察,形成“检测 → 判断 → 执行 → 功率恢复”的闭环。

4 为什么安全逻辑的最终裁决必须放在 A 板?

A 板离电机和安全传感器最近,能在本地快速停车。BLE、网页和 B 板都属于上层链路,可能延迟或断开;如果急停、防侧翻、避障裁决依赖上层链路,车辆就可能在通信异常时继续运动。

5 为什么六轮底盘还需要编码器反馈?

相同 PWM 不代表相同轮速。电机个体差异、地面摩擦和负载都会让左右轮速度不同,车辆可能跑偏。编码器能读出实际轮速,程序再根据目标速度和实际速度差修正 PWM,让直行和转向更可控。

6 答辩时为什么要如实区分“已实现、骨架占位、规划中”?

工程展示不是只看想象图,而是看哪些能力已经能跑、哪些只有接口和日志、哪些还在路线图里。把状态讲清楚,评委才能相信项目进度,也能看出后续升级路径。

一句话总结:尘光一号的核心不是“网页能遥控”,而是一条完整的系统集成链——网页地面站 → B 板通信与能源环境 → A 板运动安全 → 电机与传感器执行。只要把通信边界和安全裁决讲清楚,就能看懂这台火星车的工程价值。

打开网页地面站,连上真实的火星车

网页地面站通过 Web Bluetooth 直连 ESP32-rover,提供任务驾驶舱、操控台与部件原理三视图,支持演示模式与遥测 CSV 导出。真实上车前请先完成供电、共地、急停与串口日志检查。

育才物理创新实验室 · 尘光一号火星车开发文档 v0.1.0 · 本页如实标注能力实现状态,对外展示仅宣称“已实现”项。