开源飞行雷达桌面摆件——移植Dask Rader到M5Dial
2026-09-265
一、背景
中秋在家,闲来无事刷视频,看见一个很漂亮的开源项目:飞行雷达桌面摆件。使用ESP32主控,通过访问开放的航班飞行数据,结合自己的地理位置,在圆形的屏幕上模拟雷达方式显示飞机,挺好玩的。手头有个M5Dial,Dial 是一款多功能的嵌入式开发板,配备 1.28 寸圆形 TFT 触摸屏,以 StampS3 为主控,内置旋转编码器,可精确记录旋钮位置。这个硬件和这个项目简直就是绝配,于是开始动手移植这个项目。
二、项目准备
硬件:M5Dial。软件:Vscode+platformIO。先从github上将源项目下载下来。作者 Steffen Moll 发布开源项目,文档、固件、3D 模型全部公开。所以我这里仅做移植使用。
三、项目实现
有了开源项目,就有了清晰的、可用的项目逻辑了。接下来就不用自己费心费力啦!我过中秋,AI可不能歇着。让AI出面,帮忙开始移植。
源代码库使用了TFT_eSPI绘图库,现在改为M5GFX绘图库。源代码库使用按键来控制,现在使用编码器来控制显示范围。
// 原始 — 无编码器,范围固定
// 只能在 Web 页面修改范围
// 当前 — 编码器实时调距(核心新增功能)
long encPos = M5Dial.Encoder.read();
float newRange = encPos * 5.0f; // 每步 5km
if (newRange < 10) { newRange = 10; M5Dial.Encoder.write(2); }
if (newRange > 200) { newRange = 200; M5Dial.Encoder.write(40); }
if (newRange != maxRadarRangeKm) {
maxRadarRangeKm = newRange;
preferences.putFloat("range", maxRadarRangeKm); // 持久化
}其余基本就沿用开源库中的设定啦!
四、项目演示
显示90公里范围内的飞机

50公里范围内的飞机

25公里范围

五、项目源码
见附件




