设计一个便携式离线3D轨道追踪器
SkyCompass 卫星:用于航天器的掌上追踪器
灵感与问题
当我们仰望夜空,看到一个快速移动的光点时,我们常常会问
我们自己:“那是国际空间站,还是中国的天宫?”
现有的卫星追踪器要么是复杂的智能手机应用,其背光过亮会严重干扰我们的夜视能力,要么是需要持续联网的网络服务。作为观星爱好者和业余无线电(HAM)操作者,我们希望拥有一款专为野外使用而设计的、小巧便携、触感直观的设备——它无需蜂窝网络支持,耗电量低,并能提供出色的视觉体验。
SkyCompass卫星是一款独立运行的离线3D航天器雷达,基于M5Stack Cardputer构建。它能准确告诉你何时何地抬头观测,以见证人类轨道上的基地从头顶飞过。
固件已发布至M5Burner
主要特点
1. 实时3D追踪与天文星空
正交3D投影:在Cardputer的TFT屏幕上呈现一个微型旋转地球模型,包含正交相机坐标映射。
真实星空穹顶:采用真实天文坐标(赤经/赤纬),呈现由25颗最亮恒星(如天狼星、织女星和参宿七)构成的天球背景。系统基于格林尼治均星时(GMST)运行,使这些恒星与真实的夜空完美同步旋转。
2. 动态NASA夜灯(光污染地图)
动态日出/日落城市灯光:在黑暗半球渲染城市灯光,模拟昼夜交替效果。
数学点云:采用NASA VIIRS Black Marble数据集提取的全球2000个最亮光照点(含极坐标噪声过滤),通过内联优化的数学投影技术,以每秒30帧的速率平滑渲染动态夜光渐变效果。
3. 智能观测推荐与亮度估计
视星等预测:通过分析卫星的雷达截面(RCS)、太阳相位角和观测者距离,实时计算卫星亮度(视星等)。
通视预测:通过确定地球的阴影遮挡情况和高度,对“可见窗口”(AOS/LOS)进行排序并推荐绝对最佳选项。
4. 业余无线电战术伴侣
实时显示上行/下行频率、调制模式(如ISS SSTV、NOAA APT)以及基于距离速率的动态多普勒偏移计算进行调整。是手持收发机或软件定义无线电(SDR)现场卫星通信(联系)的理想伴侣。
5. 高保真无损屏幕流媒体
Cardputer 没有外部 PSRAM,导致 PNG 压缩容易发生内存溢出(OOM)崩溃。
我通过串行接口直接流式传输原始的RGB565帧缓冲区片段来解决这个问题。一台电脑上运行的自定义Python脚本会监听、分离并重建这些帧,生成完美无损的24位BMP截图。
工作原理(核心算法)
•轨道预测:基于SGP4传播模型,利用标准TLE(两行元素)参数计算TEME矢量。
•大地坐标转换:使用高精度的WGS84椭球地球模型,并结合五步迭代收敛算法,将坐标转换为大地纬度/经度。
•真正的离线生存模式:内置GNSS接收器,可获取地理坐标,并将RTC与UTC原子时同步。一旦确定三维定位,便会向GPS硬件发送深睡指令(例如:$PCAS10,0*1C),从而节省宝贵的电池电量。TLE数据在LittleFS中本地缓存,最长可达48小时。
•力导向UI标签:采用弹簧-质量物理排斥模型,动态将重叠的文本标签在小屏幕上相互推开,确保清晰可读。
架构设计
本文编译自hackster.io





