开源飞行雷达桌面摆件——移植Dask Rader到M5D

2026-10-27 09:24:53 26阅读
该项目是将一个开源飞行雷达桌面摆件移植到M5Dial开发板上。硬件包括M5Dial,软件使用Vscode+platformIO。主要改动是将TFT_eSPI绘图库改为M5GFX绘图库,并用编码器替代按键控制显示范围。通过编码器可以实时调整显示范围,从10km到200km,每步5km。最终效果是在圆形屏幕上模拟雷达方式显示飞机,适合DIY爱好者和STEM教育场景。]

一、背景

中秋在家,闲来无事刷视频,看见一个很漂亮的开源项目:飞行雷达桌面摆件。使用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公里范围内的飞机

开源飞行雷达桌面摆件 · M5Dial移植项目_image_1.webp

50公里范围内的飞机

开源飞行雷达桌面摆件 · M5Dial移植项目_image_2.webp

25公里范围

开源飞行雷达桌面摆件 · M5Dial移植项目_image_3.webp

五、项目源码

见附件

    [
  • DeskRadar.zip
  • ]


作者:aramy
链接:https://www.aiddithome.com/p/563d653ffa66b.html
本作遵循 [CC BY 4.0 署名] 许可,版权归作者所有。若存在违规行为,您可以点击 “举报”。


登录 后发表评论
0条评论
还没有人评论过~