跳到主要内容
返回开发者精选

ESP32 AI 塔台雷达:会用管制员声音播报航班的桌面雷达

作者:emwstudio(电磁波Studio)模型:MiniCPM5-2B、VoxCPM2

圆屏塔台雷达,用克隆管制员音色播报航班

ESP32 塔台雷达(语音播报版)在一块 2.16 寸 AMOLED 圆屏上还原了机场塔台雷达。头顶 120 海里内的航班实时显示;一旦有飞机进入 30 公里圈,设备就会用塔台管制员的克隆音色播报航班动态。文案由 MiniCPM5-2B 生成,语音由 VoxCPM2 声音克隆合成。

演示动画

实拍照片

完整演示视频(带播报声音):docs/demo.mp4

效果​

  • 衰减余晖扫描,40 / 80 / 120 NM 距离环,罗盘刻度,还有萧山机场跑道的磁方位线。
  • 飞机图标按真实航向旋转,旁边是航班号 / 航线 / 高度 / 速度三色标签和速度矢量线。
  • 四角显示 WiFi 信号、在跟踪的飞机数、时间、无线电状态(STBY 待命、TX 发射中,和声音严格同步)。
  • 进场航班触地就从雷达上消失,过路航班巡航穿场而过,和真实塔台雷达的行为一致。

播报链路​

  1. 航班进入 30 km 圈。
  2. MiniCPM5-2B 生成塔台风格的播报文案,每次措辞不同,内置 8 种场景风格池。
  3. 航空读法后处理(1→幺、2→两、7→拐、0→洞)。
  4. VoxCPM2 做声音克隆,参考音色来自真实的塔台管制录音。
  5. 0.9 倍降速 + 300 Hz~3 kHz 带通 + 软削波,模拟电台音效。
  6. 由 ES8311 功放播出,屏幕左下角的 TX 指示同时点亮。

MiniCPM5-2B(20 亿参数)和 VoxCPM2 都是面壁智能的端侧模型,从数据到文案再到语音,整条链路都能部署在自己的设备上。当前固件通过面壁智能 ModelBest 开放平台调用这两个模型。

硬件与数据来源​

  • 硬件:微雪 ESP32-S3-Touch-AMOLED-2.16(ESP32-S3 + 480×480 AMOLED 圆屏 + 电容触摸 + ES8311 音频 Codec + 功放 + 喇叭 + 锂电池接口)。
  • 航班数据:飞常准航空数据 MCP 服务(https://ai.variflight.com/servers/aviation/mcp)。
  • 文案与语音:面壁智能 ModelBest 开放平台(https://platform.modelbest.cn)。
  • 演示模式:不联网,也不产生 API 费用,在本地模拟杭州萧山机场的进场 / 离场 / 过路航班(flight_mgr.cpp 里的 SIM_FLIGHTS)。

构建与配置​

用 PlatformIO 构建并烧录:

Bash
pio run

python3 ~/.platformio/packages/tool-esptoolpy/esptool.py \
--chip esp32s3 --port /dev/cu.usbmodemXXXX -b 460800 \
write_flash 0x10000 .pio/build/esp32-s3-amoled/firmware.bin
  • 密钥:把 include/secrets.example.h 复制成 include/secrets.h,填入飞常准和面壁智能的 API Key。
  • 克隆音色(可选):自备一段单人讲话的参考录音,用 ffmpeg 转成 16 kHz 单声道 wav,再用 xxd -i 转成 C 头文件 src/atc_ref.h,并在 announce.cpp 里把 ATC_REF_TEXT 改成与录音对应的台词,相似度会更高。不需要克隆音色时,把 ANN_USE_REF_VOICE 设为 0。
  • 配网与 GPS:首次开机(或连不上 WiFi)时,设备会开启 HGH-RADAR 热点。手机连上后访问 192.168.4.1,在网页里填 WiFi 凭据和雷达中心 GPS 坐标(默认杭州萧山机场 30.2295, 120.4344),保存后自动重启生效。

开发记录​

从点亮屏幕、打磨雷达 UI,到接入航班数据、调教克隆音色,这个项目全程都是和 Kimi Code 对话完成的,没有手写一行代码。完整开发过程拍成了视频,在 B 站 / X / YouTube 搜「电磁波Studio」就能看到。

雷达 UI 的灵感来自 micro-radar 和 ESP32-Plane-Radar。

链接​

项目信息

基于模型
MiniCPM5-2B、VoxCPM2
作者
emwstudio(电磁波Studio)