Arduino Due 望远镜自动导星系统 rDUINOScope:GPS、RTC、蓝牙、触控屏全集成
组件与物料清单
| 组件 | 数量 | 备注 |
|---|---|---|
| Arduino Due | 1 | 32位 ARM Cortex-M3 核心 |
| 3.2" TFT 400x240 触控屏带 SD 卡座(含 Due 扩展板) | 1 | Elechouse 版本 |
| DS3231 RTC 实时时钟 | 1 | 带 AT24C32 EEPROM |
| GPS u-blox NEO-6M | 1 | |
| PS2 摇杆模块 | 1 | |
| DHT22 温湿度传感器 | 1 | |
| HC-05 蓝牙模块 | 1 | |
| DRV8825 步进电机驱动板 | 2 | 控制 RA/DEC 双轴 |
| NEMA 17 步进电机 (SY42STH47-1684B, 44 N·cm) | 2 | |
| 原型 PCB 板 | 1 | 制作扩展板 |
| 同步带轮组 (40T/10T 各 2 个) 及同步带 | 2 套 | 适配赤道仪 |
| 1kΩ 电阻 | 10 | |
| 100µF 电解电容 | 1 | |
| 导线、开关×3、连接器(2×5Pin×2、12V、USB) | 1 套 |
项目概述





rDUINOScope:全球首款纯 Arduino 独立运行的望远镜 GOTO 系统
现有开源望远镜控制方案要么依赖树莓派(功耗大),要么需配合电脑/手机/平板运行。rDUINOScope 基于 Arduino Due 完全独立工作,无需外部设备、无需联网,即可为业余天文爱好者提供专业级导星体验。
初衷是以极低成本(约 190 美元)复刻 SkyWatcher、Orion、Vixen 等商业 GOTO 产品的核心功能。硬件架构采用 Arduino Due + 廉价传感器模块,固件持续迭代,项目官网 rduinoscope.co.nf 提供完整构建指南与用户手册。
核心功能
- 内置 **250 颗深空天体(梅西耶+隐宝目录)+ 200 颗恒星** 数据库,实时计算目标赤经/赤纬并自动指向。
- 多种对准流程,实现“始终在目镜内”的跟踪体验。
- 蓝牙通信(HC-05),支持 Meade LX200 协议,可与 Stellarium 等天文软件无线联动。
- 兼容各类步进电机,可改装 DIY 赤道仪或适配 SkyWatcher、Meade、Orion、Vixen 等商业赤道仪。
- 触控屏交互,白天/夜间模式切换,直观的图形化界面。
软件架构详解
代码运行机制
Arduino 标准 setup() / loop() 架构,但 loop() 仅包含极轻量的任务调度(触摸检测、时间更新等),核心逻辑封装在独立函数中,避免屏幕闪烁。项目代码模块化拆分为 5 个 .ino 文件:
_02_Boiana_EQ.ino主程序graphic_screens.ino界面渲染touch_inputs.ino触摸交互BT.ino蓝牙通信regular_updates.ino时间/天体位置周期更新
天文算法与电机控制
参考 星表计算公式 实现时角(HA)计算,经 在线工具 与 Stellarium 验证。关键难点在于 Arduino 单精度浮点数精度限制,需谨慎处理变量类型。
电机步进与角度换算:需在代码开头配置赤道仪机械参数(蜗轮齿数、减速比、电机步进角、细分数),通过 Excel 表格 Gears_Stepper_Calculation.xlsx 辅助计算,同步写入固件:
// 机械参数配置区(按实际赤道仪修改)
int WORM = 144; // 蜗轮齿数
int REDUCTOR = 4; // 1:4 减速比
int DRIVE_STP = 200; // 电机每转步数
int MICROSteps = 16; // 1/16 细分
核心函数:
calculateLST_HA()计算恒星时与时角Sidereal_slew()恒星时速跟踪considerSlewTo()目标指向脉冲生成
硬件适配注意事项
- 电机安装方向:安装侧不同会导致正反转逻辑相反,需同步修改
considerManualMove()、considerSlewTo()、Sidereal_rate()中的方向控制代码。 - 南/北半球:触摸交互逻辑中已包含半球反向选项,需按实际情况调整。
- RA/DEC 齿数一致性:代码默认双轴同齿数(144T),不同齿数需修改对应计算逻辑。
分步构建指南
步骤 1:准备与环境搭建
- 安装 Arduino IDE,通过板卡管理器安装 “Arduino SAM Boards (32-bit ARM Cortex-M3)”。
- 下载项目库包(官网下载),解压后将
_libraries文件夹内容复制到 Arduinolibraries目录。 - 打开
_02_Boiana_EQ.ino,编译上传测试。
步骤 2:物料采购
主要从中国供应商采购,总成本约 190 美元。详细清单见官网 BOM 页面。建议额外准备:40Pin 排线、塑料螺丝、USB 延长线(便于合箱后升级固件)、散热风扇等。
步骤 3:扩展板制作与接线
扩展板承载:双 DRV8825、DS3231、HC-05、压电蜂鸣器、12V 电源接口、其余模块引出插针。接线对照表:
| 模块 | 信号 | Arduino Due 引脚 |
|---|---|---|
| GPS NEO-6M | RX/TX | 16 / 17 |
| DS3231 | SDA/SCL | A4 / A5 |
| HC-05 | TXD/RXD | 14 / 15 |
| DHT22 | OUT | 3 |
| 压电蜂鸣器 | SIG | 2 |
| PS2 摇杆 | VRx/VRy | A1 / A0 |
| DEC DRV8825 | STEP/DIR/M0/M1/M2 | 6/7/10/9/8 |
| RA DRV8825 | STEP/DIR/M0/M1/M2 | 4/5/11/13/12 |
| TFT 屏 | Shield 引脚 22-53 + SPI | — |
| 日/夜模式开关 | SIG | A3 |



关键提醒:DRV8825 与电机接线务必参考官方典型应用图,先接电机再上电,切勿带电插拔驱动板!

步骤 4:外壳组装与屏幕排线转接
- 外壳开孔用小刀/钻工具,屏幕长方形孔建议机加工。
- 热熔胶固定 GPS(天线朝天)、DHT22(探头伸出)、摇杆、开关、电机接口、USB 口等。
- 屏幕排线直连会导致引脚镜像翻转,采用“双排针+排线+PCB 转接板”方案修正引脚顺序,虽不美观但稳定可靠。












步骤 5:赤道仪机械适配(以 Vixen Super Polaris 为例)
采用 1:4 减速同步带轮(40T/10T),电机座自制。安装完成后更新代码 REDUCTOR = 4,实测指向与跟踪精度良好。后续对外观进行“法拉利红”喷漆美化,成品极具辨识度。







项目文件
_READ_ME.txt:v2.1 Boiana EQ 版本说明与 FAQ_02_Boiana_EQ.ino主程序graphic_screens.ino图形界面touch_inputs.ino触摸输入BT.ino蓝牙通信regular_updates.ino定时更新Gears_Stepper_Calculation.xlsx齿轮/步进计算表
GitHub 仓库:github.com/dEskoG/rDUINOScope
原理图


制造工艺
- Arduino Nano高速摄影控制器 – 定格水滴碰撞瞬间
- DIY 蓝牙控制 Arduino 间谍小车
- FlickMote:基于手势的智能家居红外遥控器
- DIY Arduino TV-B-Gone:万能关机遥控器
- 自制大尺寸LED主时钟带闹钟功能 — 12米外清晰可见
- JX 波形发生器 – 基于 Arduino 的 DDS 振荡器,带 OLED 显示屏
- Find Me:基于 Arduino 与蓝牙的智能寻物器制作指南
- Arduino 项目优化供电方案:从按键开关到电池监测与数据记录
- DIY VR 滑板:用 Arduino、Google Cardboard 与蓝牙打造虚拟滑雪体验
- Arduino Mega 2560 接 NEO-6M GPS 模块完整教程
- Arduino 井字棋游戏:MAX7219 点阵屏 + 纸板外壳 DIY
- 从零构建智能 Arduino 四足机器人:完整指南