天文学家手表


瓦MAMA
转载
发布时间: 2025-11-29 18:03:43 | 阅读数 0收藏数 0评论数 0
封面
一款暗藏玄机的怀表:内部搭载微型太阳系模型。按下按钮,“天文学家手表” 便会唤醒,通过真实的轨道力学公式(开普勒定律)计算六大行星的实时位置,随后行星旋转到位,与表盖内侧镌刻的黄道十二宫环精准对齐。短暂演示后,手表会悄然进入休眠状态,等待下一次唤醒。 梵德克拉乌(Van der Klaauw)等高端制表品牌推出的天文手表,售价高达 5 万美元以上。而我希望通过这个 DIY 项目,以极低的成本复刻这份奇妙体验,让每个人都能亲手打造属于自己的天文手表。

准备工作:

材料:

  1. Seeed Studio ESP32-C6 微控制器(品牌:Seeed Studio)
  2. 微型步进电机(采购自阿里巴巴速卖通)
  3. STSPIN220 低压步进电机驱动器(品牌:Pololu)
  4. 小型电池(3.7V 100 毫安时,采购自其他卖家,类似款可在阿里巴巴速卖通找到)
  5. Seeed XIAO ESP32-C6 开发板(品牌:Seeed Studio)
  6. 0.2 毫米黄铜片
  7. 0.1 毫米黄铜片
  8. 怀表(采购自阿里巴巴速卖通)
  9. 2 个 10 千欧(kΩ)电阻
  10. 2 毫米黄铜管(用于制作轴)
  11. 微型干簧管(采购自阿里巴巴速卖通)
  12. 行星装饰件(6 个 2 毫米)与太阳装饰件(1 个 2.5 毫米)(选用耳环配件,采购自阿里巴巴速卖通)
  13. 超薄圆盘磁铁(直径 10 毫米,从我手机的包装中回收)

工具:

3D 打印机、M2 丝锥套装、电烙铁、强力胶、导线、数控雕刻机(CNC)或曲线锯(用于切割黄铜片制作圆盘)

1

表壳改造

  1. 首先打开怀表:拧下表冠,取下后盖,取出内部所有原有零件,表玻璃也需拆下。由于表冠和按钮已与内部结构脱离,用一小滴强力胶将表冠粘回表壳,但需确保按钮仍能灵活活动 —— 其引脚将用作开关。
  2. 准备好表壳后,打印提供的 STL 文件。表壳延长件我选用了丝质绿色耗材,与原怀表的黄铜材质搭配协调。我使用 0.2 毫米喷嘴打印,0.4 毫米喷嘴也能正常使用。
  3. 第二个 STL 文件是内部支架 —— 该零件用于固定所有电子元件,确保其稳固不松动。
  4. 建议提前查看后续步骤的图片,了解内部支架在表壳中的安装方式。支架无需螺丝或胶水,轻轻扭转即可卡扣就位;3D 打印的表壳延长件同理,轻微转动就能牢牢锁定,可先尝试安装确认。


STL
watch45.stl
256.33KB
STL
larger+housing.stl
850.08KB
2

黄铜零件制作

  1. 行星由耳环配件制成,安装在 0.2 毫米厚的黄铜圆盘上。每个圆盘中心钻有圆形孔洞,可在 2 毫米黄铜管轴上自由旋转。选用铜管而非实心金属杆,是为了更方便地将太阳装饰件固定在中心位置。铜管顶端锉成矩形,另一端切割出 M2 螺纹,通过 M2 螺母和一滴强力胶,即可将铜管牢牢固定。
  2. 行星圆盘之间设有分隔圆盘,由 0.1 毫米厚的黄铜片切割而成,直径略小于行星圆盘,中心孔洞为矩形。该孔洞需与铜管的锉平部分紧密贴合,确保分隔圆盘固定不动、不会旋转。
  3. 行星圆盘制作步骤:
  4. 从黄铜片上切割出圆盘(大部分用 0.2 毫米厚黄铜片,土星圆盘用 0.1 毫米厚黄铜片);
  5. 中心钻 2 毫米孔洞(用于安装轴),边缘附近钻 0.7 毫米孔洞(用于安装行星装饰件);
  6. 将行星装饰件的引脚穿过边缘小孔,滴一滴强力胶固定,然后修剪引脚背面并锉平;
  7. 我用喷枪给圆盘喷了蓝色渐变涂层,裸黄铜材质的外观也很美观。
  8. 土星圆盘选用 0.1 毫米厚黄铜片制作,因其直接粘在主齿轮上,可增强刚性。参考尺寸:土星圆盘直径 33 毫米。
  9. 可使用曲线锯或强力剪刀切割圆盘,我使用的是配备数控雕刻头的 Snapmaker 设备。
  10. 行星圆盘上的小型凸片至关重要:只有土星由电机驱动,旋转时土星圆盘的凸片会推动木星圆盘的凸片,木星再推动火星圆盘的凸片,依此类推。这一巧妙设计无需复杂的齿轮机构,就能实现所有行星的联动。


3

齿轮制作

  1. 3D 打印附带的齿轮模型。使用 0.2 毫米喷嘴的 FDM 打印机即可,树脂打印机能打印出更清晰的齿形。
  2. 将土星圆盘粘在主齿轮上,然后在齿轮中心的大孔洞中粘贴超薄磁铁。
  3. 将小齿轮安装到电机轴上(空心侧朝向电机),滴一滴强力胶固定。


STL
thinner-gear8.stl
88.36KB
STL
gears04.stl
1.11MB
4

电子元件接线

接线流程简洁明了,但由于空间紧凑,操作时需格外小心:

  1. ESP32-C6 与 STSPIN220 通过电机驱动器配套的 7 针排针连接:
  2. 先将 STSPIN220 滑入排针,但不连接 ENABLE 引脚;
  3. 按照示意图将 ESP32 开发板也滑入同一排针;
  4. 焊接固定 ESP32,翻转两块电路板,移除排针的塑料间隔柱,再焊接固定 STSPIN220;
  5. 所有焊接完成后,修剪多余的排针长度。
  6. 需拆除 STSPIN220 上 STDB 引脚的上拉电阻,否则会迫使驱动器退出待机模式;取而代之的是,为 STDB 引脚添加外部下拉电阻,确保手表闲置时,电机驱动器处于低功耗待机状态。结合 ESP32 的深度睡眠模式,根据数据手册,总待机电流应在 7-8 微安(μA)范围内。
  7. 步进电机通过小型焊盘连接,请勿移除该焊盘 —— 它同时起到连接内部线圈线路的作用,直接将导线焊接到焊盘的触点上即可。若不确定哪些导线属于同一线圈,可用万用表测量焊盘各点之间的电阻:导通的两个点即为同一线圈的引脚。
  8. 表壳开关由两个小型黄铜零件组成(如图所示):
  9. 下方黄铜条左端连接干簧管的一端(干簧管安装在矩形槽内),右端位于表壳的弹簧与表壳之间,且连接 3.3V 电源;
  10. 上方黄铜片带有一个细金属指,穿过 3D 打印外壳伸出;组装后,其右端位于怀表表冠正前方;
  11. 按下表冠时,下方黄铜条的 3.3V 电源会通过表壳和表冠传导至上方黄铜片,将上方黄铜片与 ESP32 背面的 MTDO 引脚用短导线焊接连接。
  12. 别忘了按照接线示意图添加两个外部下拉电阻。
  13. 最后连接电池:
  14. 将电池焊接到 ESP32 背面的电源焊盘上;
  15. 将 STSPIN220 的 VMOT 引脚连接到电池正极,这样 ESP32 和电机驱动器都能直接从同一电源取电。
  16. 测试建议:为避免电池长期连接,可暂时不安装电池,而是将 VMOT 引脚连接到 ESP32 的 5V 引脚为驱动器供电,这种方式更便于调试,无需担心电池持续供电的问题。


5

编程设置

接线完成后,下一步为 ESP32-C6 编程。若此前未使用过 ESP32 开发板,无需担心 —— 只需几分钟即可完成 Arduino 环境配置:

  1. 安装 Arduino IDE:从 Arduino 官网下载并安装最新版本的 Arduino IDE。
  2. 添加 ESP32 支持:
  3. 打开 Arduino IDE,进入 “文件(File)> 首选项(Preferences)”;
  4. 在 “附加开发板管理器网址(Additional Board Manager URLs)” 栏中,粘贴 ESP32 包链接:https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
  5. 点击 “确定(OK)”。
  6. 安装 ESP32 开发板包:
  7. 进入 “工具(Tools)> 开发板(Board)> 开发板管理器(Board Manager…)”;
  8. 搜索 “esp32”,安装 Espressif Systems 提供的最新版本包。
  9. 选择开发板:
  10. 进入 “工具(Tools)> 开发板(Board)> esp32 > ESP32C6 Dev Module”;
  11. 在 “工具(Tools)> 端口(Port)” 中选择正确的端口(通常插入 USB 后会显示)。
  12. 上传代码:
  13. 从链接下载代码文件,在 Arduino IDE 中打开;
  14. 点击 “上传(Upload)” 按钮(右侧箭头图标);
  15. 代码将编译并传输至 ESP32-C6。

上传完成后,手表即可运行。通电后,设备会初始化并等待表壳按钮或 USB 连接的输入指令。

重要提示:

  1. 代码运行后,ESP32 最终会进入深度睡眠模式以节省电量。若后续需要上传新代码,需先按下手表的按钮唤醒设备;若手表尚未组装,可通过用导线短暂连接 3.3V 电源与 MTDO 引脚,模拟按钮按下的动作。
  2. 若电机旋转方向与视频所示相反,可修改代码第 253 行旋转函数中的 “deg < 0” 为 “deg > 0”。


6

组装整合

所有功能测试正常后,即可进行最终组装:

  1. 电机需用强力胶固定(目前未找到可拆卸的安装方式);电池放置在电机旁(无需胶水固定);干簧管安装在小型矩形孔内(需能检测到土星圆盘上的磁铁);ESP32 与 STSPIN220 的组合模块安装在上方。
  2. 另一侧安装行星圆盘和分隔圆盘:在中心位置滴少量强力胶固定太阳装饰件,同时起到固定各圆盘的作用。为了更好地固定其他圆盘,我在安装太阳装饰件前,先在其底部粘了一个带 0.7 毫米孔洞的 0.2 毫米厚小型黄铜片。
  3. 将整个组件装入表壳时,确保黄铜零件位于表盖弹簧与表壳之间,然后扭转组件使其固定;第一步打印的表壳延长件覆盖在电子元件外侧,同样通过扭转固定。
  4. 闭合表壳前需进行校准,确保行星位置与表盖的黄道十二宫环对齐:
  5. 调整代码第 121 行 “planets [0].touchValue” 的值(第六个数字);
  6. 通过 USB 连接手表,唤醒设备后按 “h” 键查看帮助,按 “d” 键设置日期,按 “p” 键让手表对齐所有行星;
  7. 对照在线太阳系模型,相应调整上述数值即可。
  8. 代码第 121 行 “planets []” 定义中有一列 “间隙补偿值(slack values)”,理想情况下该值为 0;若分隔圆盘与上方的行星圆盘出现轻微转动,可在此列输入转动角度,以实现补偿。


7

使用说明

  1. 打开手表时,电机会快速左右转动,表明设备已唤醒;双击按钮,所有行星将旋转至正确位置,景象十分奇妙。
  2. 手表需获取当前日期才能准确定位行星(上一步已完成设置,可跳过此步骤),日期设置有两种方式:
  3. 通过 USB:连接手表后按 “h” 键查看帮助,按提示操作;
  4. 通过按钮:长按按钮 5 秒进入日期输入模式,通过 “敲击” 输入日期的每位数字 —— 短按计数,长按结束当前数字输入。

示例:输入日期 2025 年 1 月 24 日(24-01-2025):

  1. 2 → 短按 2 次,长按 1 次;
  2. 4 → 短按 4 次,长按 1 次;
  3. 0 → 直接长按 1 次;
  4. 1 → 短按 1 次,长按 1 次;
  5. 2 → 短按 2 次,长按 1 次;
  6. 0 → 直接长按 1 次;
  7. 2 → 短按 2 次,长按 1 次;
  8. 5 → 短按 5 次,长按 1 次。

若输入错误,停止敲击即可:10 秒后手表将取消日期输入模式,长按按钮 5 秒可重新开始。

  1. 手表每天会自动唤醒一次,更新日期;电池耗尽后,会记忆最后一次输入的日期,充电后继续从该日期往下运行。
  2. 通过观察地球在黄道十二宫环中的位置,即可判断当前所处的季节 —— 时间的流逝,由行星而非指针来诉说。


阅读记录0
点赞0
收藏0
禁止 本文未经作者允许授权,禁止转载
猜你喜欢
评论/提问(已发布 0 条)
评论 评论
收藏 收藏
分享 分享
pdf下载 下载
pdf下载 举报