1. 项目概述与核心设计理念Hollow Clock V一个名字在创客圈和3D打印爱好者中已经不算陌生。作为Hollow Clock 4的全面进化版这个项目将极简美学、精妙的机械设计以及开源的硬件精神融合到了一个桌面时钟里。我第一次看到它的运行视频时就被那种“悬浮”的时针和分针在空灵圆环中静谧滑动的姿态吸引了——它不像一个计时工具更像一个动态的机械雕塑。这个时钟的核心魅力在于它用非常巧妙且低成本的方式实现了视觉上的“无连接”传动。你看到的是一个独立的圆环显示着小时一根独立的指针指示着分钟两者之间、它们与底座之间都没有任何物理连接。秘密就藏在三颗小小的钕磁铁和一套隐藏在底座内的蜗杆-锥齿轮减速系统里。原作者shiura这次在V版本上做了大量改进显示环更薄更精致仅7mm厚并带有刻度外观上几乎看不到螺丝除了指针中心USB-C供电口移到了底座背面棘轮机构防止了步进电机丢步而基于RP2040微控制器的晶体振荡器则大幅提升了走时精度。对于喜欢折腾嵌入式系统和桌面制造的玩家来说这是一个近乎完美的练手项目——它涵盖了3D建模理解、FDM打印技巧、基础电子焊接、微控制器编程和精密机械组装最终你能得到一个独一无二、会动的“玩具”。我自己在复现和把玩这个项目的过程中深刻体会到其设计的精妙之处。它不仅仅是一套STL文件和代码更是一份关于如何用简单原理解决复杂问题的设计教案。接下来我会结合自己的制作经验为你拆解从零开始制作一个Hollow Clock V的全过程并分享那些教程里不会细说的“坑”和技巧。2. 核心机械原理与设计精妙之处要成功制作并理解这个时钟首先得弄明白它到底是怎么工作的。否则组装时面对一堆齿轮和磁铁你可能会一头雾水。2.1 “磁悬浮”显示的奥秘T形磁铁排列时钟最吸引人的地方是小时环和分钟指针看起来是悬浮的。这并非真正的磁悬浮而是一种巧妙的磁力耦合传动。核心原理在小时环Hour Rotor内部嵌有两颗径向充磁的钕磁铁即磁极在圆环的直径方向上。在分钟指针Hour Hand的尾部也嵌入一颗同样径向充磁的磁铁。当你将指针靠近圆环时这两组磁铁会相互吸引并对齐形成一个稳定的磁路。为什么是“T形”你可以想象圆环上的两颗磁铁像一条水平线的两个端点指针上的磁铁像这条线的中点向下延伸的一个点三者共同构成了一个“T”形的磁场结构。这种布局的关键优势在于稳定性两点确定一条直线。圆环上的两颗磁铁为指针提供了明确的轴向旋转方向定位防止指针在圆环上随意滑动或晃动确保了读数的准确性。薄型化由于磁力耦合不需要复杂的机械卡扣或轴承使得小时环可以做得非常薄仅7mm实现了极简的视觉美感。可分离正是因为没有机械连接你可以轻松地将整个显示环包含小时环和指针从底座上提起进行快速的时间调整。这是整个设计用户体验上的一个亮点。实操心得磁铁的极性至关重要。在嵌入磁铁前务必用记号笔标明每颗磁铁的N/S极并确保按照设计图指示的方向通常是所有磁铁的相同磁极朝向同一侧进行粘贴。一旦用胶水固定再想调整就非常麻烦了。我建议先用一点点蓝丁胶临时固定测试磁铁吸合和旋转顺畅后再点胶。2.2 动力与传动蜗杆与锥齿轮减速系统动力来自一个常见的28BYJ-48减速步进电机。但如何将电机竖置的旋转转化为水平面内两个不同轴小时环轴和分钟指针轴的旋转并且实现巨大的减速比以满足时钟走时一天才转两圈的需求这里用到了一个非常聪明的复合齿轮系统。传动链解析第一级减速 - 蜗杆与蜗轮电机的输出轴上套着一个蜗杆。蜗杆驱动一个蜗轮。蜗杆传动具有单级大减速比和自锁特性。大减速比满足了时钟对低速的需求而自锁特性意味着当电机停止时齿轮系统不会在指针重量的作用下反向转动这对于保持时间准确至关重要。第二级减速与分动 - 锥齿轮组蜗轮的同轴上固定着一个小锥齿轮。它驱动一个大锥齿轮实现了第二级减速。同时锥齿轮将动力方向从垂直轴转换到了水平轴。第三级减速与输出 - 复合齿轮与大锥齿轮同轴的是一个小直齿轮。它最终驱动着分钟驱动齿轮。分钟驱动齿轮的轴向上安装着带有磁铁的分钟转子。正是这个分钟转子通过磁力带动着分钟指针旋转。小时传动分钟驱动齿轮的侧面还带有一个非常小的齿轮通常称为“跨轮”它每12小时才带动小时转子旋转一圈小时转子上的磁铁再带动小时环。棘轮机构的作用V版本新增的棘轮是一个安全措施。28BYJ-48电机扭矩很小如果齿轮系统阻力稍大电机可能会失步即控制器发出了脉冲但电机转子没转到位。棘轮机构允许电机“前进”时带动齿轮但在电机回退时钟逻辑中为消除齿轮间隙会有的微小回退动作或受到外力时锁止防止显示环因惯性或外力反向滑动确保了显示的步进严格跟随电机指令。2.3 走时精度的基石RP2040与晶体振荡器一个时钟走得准才是根本。常见的Arduino UNO使用ATmega328P其内部RC振荡器精度有限温漂较大可能导致一天误差几分钟。Hollow Clock V选择RP2040如Waveshare RP2040-Zero或ESP32-C6如Seeed Studio XIAO ESP32C6作为主控是一个关键升级。精度提升的原因外部晶体振荡器RP2040和ESP32系列芯片都支持连接外部的高精度晶体振荡器通常是12MHz。这种晶振的频率稳定性远高于微控制器内部的RC振荡器温漂小为软件计时提供了稳定的时间基准。硬件定时器这些现代微控制器拥有强大的硬件定时器外设。代码中可以利用硬件定时器产生极其精确的中断来驱动步进电机的每一步。避免了依赖软件delay()函数带来的不精确和系统阻塞问题。在代码中你会看到一个关键常量STEPS_PER_MIN通常为256。这意味着控制器需要每分钟精确地输出256个脉冲序列给步进电机。依靠高精度的时钟源和硬件定时器这个频率可以维持得非常稳定从而实现了“准”的走时。我实测使用RP2040-Zero在恒温环境下一周的误差可以控制在1分钟以内这对于一个纯开环控制的步进电机系统来说已经相当不错。3. 材料、工具准备与3D打印详解工欲善其事必先利其器。一份完整且高质量的材料清单是成功的第一步。3.1 物料清单BOM与采购建议以下是制作一个Hollow Clock V所需的全部材料。我会附上我的采购经验和替代方案参考。类别物品规格/型号数量备注与采购建议核心电子件减速步进电机28BYJ-48 ULN2003驱动板1套这是标准套件约3美元。注意驱动板有大小两种打印时需选择对应版本的前面板。微控制器Waveshare RP2040-Zero或Seeed Studio XIAO ESP32C61个二选一。RP2040-Zero更便宜XIAO ESP32C6预留了Wi-Fi能力方便未来魔改。务必购买不带排针的版本。结构件钕磁铁直径8mm厚度3mm (N35或更高等级)3颗实际厚度2.6mm-3mm均可。磁力越强如N52耦合越稳但分离调整时间时也需要更大力度。螺丝M2 平头自攻螺丝长度6mm约10颗用于固定外壳、后盖、指针等。建议购买M2螺丝套装以防损坏或丢失。耗材连接线AWG30或更细的硅胶线少许用于连接主板和电机驱动板。线细便于在狭小空间内布线。胶水401或460速干胶1瓶用于固定磁铁。建议用尖嘴瓶方便精确点胶。润滑脂白色塑料齿轮润滑脂或硅油喷雾少量减少齿轮摩擦降低电机负载。切忌使用黄油或锂基脂易沾染灰尘。3D打印耗材PLA或PETG 1.75mm约100g不同部件可选用不同颜色。主体建议用PETG韧性更好齿轮更耐用。工具清单必需3D打印机FDM、烙铁与焊锡、螺丝刀PH0或PH00十字、剪线钳、镊子。建议万用表检查连通性、去铜丝刷清理打印支撑、小锉刀或砂纸处理打印毛刺、蓝丁胶临时固定磁铁。3.2 3D打印参数与关键技巧所有的STL文件都可以在项目原页面找到。打印质量直接决定了组装的顺畅度和最终运行的噪音、可靠性。通用打印设置建议层高0.2mm。在精度和打印时间间取得平衡。0.16mm会更精细但时间更长。壁厚至少2层0.8mm以上对于受力件如齿轮建议3-4层。填充密度这是重点结构件底座前后盖、转子外壳15%-20%。提供足够强度即可。齿轮件所有齿轮25%-30%。更高的密度能提供更好的抗剪切力和耐磨性。小时指针≤15%。官方特别强调指针必须足够轻以减轻电机负载和磁铁负担。过重的指针可能导致电机失步或磁力耦合失效。显示环20%。保证强度的同时控制重量。支撑所有零件均无需支撑。原作者已经优化了模型摆放角度。请严格按照下载文件中的预设方向打印不要旋转。打印速度外壁40-50mm/s内填充60mm/s。低速打印外壁能获得更好的表面质量和尺寸精度这对需要装配的零件至关重要。进阶技巧与问题预防多色打印索引环与指针rotor-case-front转子前盖上的刻度环以及hour-hand小时指针本身可以通过打印中途换料来实现双色效果。在切片软件中设置“在高度处暂停换料”。刻度环的凹槽深度是0.75mm建议在层高0.6mm处暂停更换为对比色 filament。这样能得到干净利落的双色效果。构建板纹理利用设计的一个巧思是rotor-case-front、hour-hand和base-front底座前面板的正面是接触构建板打印的。这意味着这些可见面的纹理就是你构建板的纹理如磨砂玻璃的细密颗粒、PEI板的橘皮纹。如果你想获得统一的纹理那么min-colored-hand分钟指针的彩色装饰片也应该单独打印正面朝下而不是通过换料方式在主体上打印。版本对应注意区分base-front和base-front-wider-slot。后者适用于驱动板尺寸稍大的28BYJ-48电机套件。如果你买的驱动板比较宽塞不进标准槽就打印这个加宽版本。同样base-rear也有对应Waveshare RP2040-Zero和Seeed XIAO的不同版本USB口位置不同。后处理必须清理打印完成后仔细检查所有轴孔、螺丝孔用钻头或小刀手动清理可能存在的拉丝或孔口收缩确保轴和螺丝能顺畅通过。去毛刺用刀片或小锉刀轻轻刮掉齿轮齿上的“耳朵”层起始点留下的凸起这对减少运行噪音和卡顿有奇效。试装配在正式组装前先不涂润滑脂把所有塑料件徒手组装一遍检查齿轮啮合是否顺畅有无明显干涉或过松。发现问题及时修正模型或重新打印。4. 电子部分焊接与软件烧录这部分是将“静态模型”变为“智能设备”的关键。操作需要细心但步骤并不复杂。4.1 硬件焊接与改装安全第一焊接时确保工作区域通风良好使用焊台并接地避免静电损坏敏感的微控制器芯片。步骤分解处理驱动板大多数28BYJ-48套件附带的ULN2003驱动板上插着一个芯片。为了给焊接腾出空间需要先将这个ULN2003芯片拔掉。用烙铁同时加热芯片一侧的所有引脚或用热风枪轻轻加热然后用镊子小心取下。更推荐的做法是剪断直接用斜口钳将驱动板上的4针排母连接电机线的那一排的四个引脚从板子背面剪断这样最简单安全也不影响后续使用。焊接电机线将步进电机的四根线通常是红、蓝、黄、橙焊接到驱动板标有IN1IN2IN3IN4的焊盘上。顺序不重要接反了只是电机会反转后期在代码里调整序列即可。焊点要圆润饱满避免虚焊。焊接控制线这是核心步骤。你需要用细导线将微控制器的GPIO引脚连接到驱动板的IN1-4。对于Waveshare RP2040-Zero连接GP2 (D2)-IN1,GP3 (D3)-IN2,GP4 (D4)-IN3,GP5 (D5)-IN4。这是最常见的映射。对于Seeed Studio XIAO ESP32C6连接D1-IN1,D2-IN2,D3-IN3,D4-IN4。焊接技巧先将细导线焊接到微控制器薄弱的引脚上上锡要快避免长时间加热烫坏芯片或焊盘。焊好后可以用万用表通断档检查是否有短路或断路。焊接电源线从微控制器的5V和GND焊盘分别引出导线连接到驱动板的和-电源输入端。注意正负极不要接反。安装与绝缘如果使用Seeed XIAO ESP32C6需要将主板倒置元件面朝下安装到底座内以让USB-C口对准后盖的开孔。官方提供了专用的后盖模型base-rear-xiao.stl。务必确保所有焊点没有毛刺并且与金属外壳或彼此之间不会短路。可以用绝缘胶带或热缩管进行保护。4.2 软件烧录与测试代码的获取和烧录有两种主流方式使用Arduino IDE或直接烧录预编译的UF2文件。方法一使用Arduino IDE推荐用于学习和调试环境配置安装Arduino IDE。对于RP2040在“开发板管理器”中搜索“Raspberry Pi Pico”安装“Raspberry Pi Pico”开发板支持。对于ESP32-C6在“文件”-“首选项”的附加开发板管理器网址中添加https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json然后在开发板管理器中搜索安装“ESP32”。下载代码从项目页面下载clock-code-ratchet.ino用于RP2040或clock-code-ratchet-xiao.ino用于XIAO。测试电机先烧录test-code.ino。这个代码会让电机持续旋转。上传前确保选择了正确的开发板型号和端口。如果电机不转或反转检查接线顺序并在代码中调整port[4]数组的顺序例如从{5,4,3,2}改为{2,3,4,5}。烧录时钟主程序测试电机正常后烧录对应的时钟代码。首次运行时钟指针会快速旋转到某个初始位置然后开始以1分钟为步进运行。方法二直接烧录UF2文件最简单对于不想配置IDE的用户作者提供了预编译好的.uf2文件。下载对应的.uf2文件RP2040或XIAO版本。按住微控制器上的BOOTSEL按钮RP2040-Zero或BOOT按钮XIAO同时通过USB线连接电脑。电脑会识别出一个名为RPI-RP2RP2040或XIAO-ESP32C6的可移动磁盘。将下载的.uf2文件拖入该磁盘。设备会自动重启并运行新程序。重要提示无论哪种方法烧录完成后第一次上电时钟都会进行一次“归零”或快速旋转。这是正常现象是程序在寻找初始位置。之后断电再通电时钟会从记忆的位置基于RP2040的RTC或ESP32的RTC内存继续运行但这不是真正的实时时钟RTC断电时间长了会丢失。如果需要精确计时需要像社区开发者那样为ESP32版本添加NTP网络对时功能。5. 机械组装全流程与调校心法组装是见证奇迹的时刻也是最需要耐心和手感的部分。请在一个干净、宽敞、光线好的桌面上进行并准备好所有零件。5.1 显示环组件组装安装小时指针将hour-hand小时指针用一颗M2x6mm平头螺丝固定到hour-rotor小时转子的轴上。关键点螺丝不要拧得过紧以免压裂塑料同时确保螺丝头没有从指针正面凸出保持正面平整。嵌入磁铁转子将两颗8x3mm钕磁铁嵌入hour-rotor侧面的两个孔中。使用蓝丁胶或一点点胶水临时固定注意磁极方向要一致通常都是N极朝外或S极朝外参照设计说明。用另一颗磁铁或铁质物体在外部测试确保磁力是向外吸附的。组合转子与外壳将hour-rotor和min-rotor分钟转子叠放在一起然后将rotor-case-front转子前盖从上方向下盖住它们。此时磁铁槽应朝上。轻轻按压确保各部件卡到位。安装后盖将整个组件翻转盖上rotor-case-back转子后盖用两颗M2螺丝固定。拧螺丝时采用对角线方式逐步上紧确保受力均匀外壳不变形。固定指针磁铁在hour-hand尾部的凹槽内点入少量超级胶水然后将第三颗磁铁嵌入。安全警告钕磁铁非常脆且强力吸附时可能夹伤手指。请小心操作并用胶水彻底固定防止儿童误吞。5.2 底座动力总成组装安装齿轮与棘轮将min-drive-gear分钟驱动齿轮套在电机输出轴上。然后将ratchet棘轮用一颗M2螺丝轻轻固定在齿轮上方的轴上。这里有个调校关键这颗螺丝不能拧死需要让棘轮和齿轮之间有一定的轴向间隙使得棘轮可以自由摆动一小段角度约5-10度但又不会脱落。这个间隙是棘轮机构正常工作的前提。安装蜗杆与电机将worm蜗杆插入电机轴。然后将整个电机模块放入base-front底座前面板的对应卡槽中。确保电机线和驱动板能放入预留的线槽。布线将电机线与驱动板连接。为了整洁可以将连接线稍微绞合一下然后将多余的线塞入驱动板后方的空隙中。安装后盖与最终合体盖上base-rear对应你主板型号的后盖注意USB口对齐并且线材没有被压住。用三颗M2螺丝固定后盖。总装与测试将组装好的显示环组件轻轻放置到底座上。你应该能感觉到磁铁吸合时的“咔哒”一下。接通USB电源时钟应该开始运行。用手轻轻感受一下齿轮运转是否顺滑有无异常振动或噪音。5.3 润滑、调试与问题排查润滑这是降低噪音、提升运行稳定性的关键一步。使用塑料齿轮专用润滑脂或硅油喷雾。部位所有齿轮的齿面、蜗杆与蜗轮的啮合处、转子与外壳的接触面。方法少食多餐。用牙签蘸取微量润滑脂轻轻涂抹在齿轮齿上。对于蜗杆可以涂一层薄薄的油脂。切记不要过量否则多余的油脂会沾染灰尘反而增大阻力甚至导致齿轮打滑。测试润滑后手动旋转齿轮组几圈让油脂分布均匀。常见问题与解决方案速查表问题现象可能原因排查与解决步骤电机不转1. 电源未接通或电压不足。2. 接线错误或虚焊。3. 驱动板或MCU损坏。4. 代码未正确烧录。1. 检查USB线、端口确保提供5V/1A以上电源。2. 用万用表检查5V、GND及4条信号线是否连通。3. 重新烧录test-code.ino进行测试。4. 尝试更换驱动板或MCU。电机转动但指针不动1. 齿轮未啮合或脱落。2. 磁铁未正确安装或极性错误。3. 棘轮卡死或间隙不当。1. 打开底座检查蜗杆、蜗轮、各级齿轮是否安装到位。2. 检查转子内磁铁是否嵌入并用另一磁铁测试吸力方向。3. 调整棘轮固定螺丝的松紧度。时钟走时不准过快/过慢1.STEPS_PER_MIN常量设置错误。2. 电机力矩不足存在丢步。3. 齿轮阻力过大。1. 确认代码中STEPS_PER_MIN值与电机实际步进数匹配28BYJ-48通常为4096步/转经减速后计算得出每分钟步数。2. 检查电源电压是否稳定5V。适当增加代码中的SAFETY_MOTION值见下文。3. 重新润滑检查齿轮有无毛刺、打印件有无变形干涉。时钟一次走两格分钟跳两格齿轮系统存在回差间隙电机回退消除间隙时棘轮未能锁止导致显示环被带回。这是V版本要解决的核心问题之一。解决方法在源代码中增大SAFETY_MOTION的值。这个值代表电机在完成一步前进后额外多走的“安全步数”用于确保齿轮完全啮合并越过死点防止回弹。可以尝试从默认值逐步增加如从STEPS_PER_MIN增加到STEPS_PER_MIN 5。运行噪音大1. 齿轮啮合过紧或不同心。2. 缺乏润滑。3. 打印质量差齿轮齿形不规整。1. 检查各齿轮轴是否安装平直用手转动感觉是否有卡顿点。2. 在所有运动部位添加适量润滑脂。3. 重新打印有问题的齿轮确保层高和冷却设置合适减少“振纹”。显示环提起调整时间后放回走时不准1. 磁铁极性在放回时可能吸反了180度。2. 齿轮位置在分离/结合时发生了随机变化。1. 确保放回时小时环上的刻度“12”点位置对准底座正上方。磁铁对称设计理论上180度反了也能吸合但时间显示会错乱6小时。2. 这是磁力传动的固有特性。调整时间后需要手动将分钟指针拨到正确位置。关于SAFETY_MOTION和移除棘轮如果你的时钟组装得非常顺滑运行稳定你可能会觉得棘机构的“咔哒”声有点吵。理论上你可以移除ratchet零件让系统更安静。但与此同时你必须将SAFETY_MOTION的值减小甚至设置为0不推荐可能因惯性导致回弹。因为没有了棘轮电机回退的微小动作会直接传递给显示环。你需要找到一个临界值既能消除齿轮间隙又不会让指针产生可见的回退。这需要反复测试。6. 进阶玩法与社区生态完成基础版本的Hollow Clock V后你的创客之旅才刚刚开始。这个开源项目拥有活跃的社区衍生出了许多有趣的魔改方案。1. 网络对时与智能化 这是最受欢迎的改造方向。利用Seeed Studio XIAO ESP32C6的Wi-Fi功能可以为其编写新固件使其连接家庭Wi-Fi通过NTP网络时间协议自动同步时间。这彻底解决了断电丢时和累积误差的问题。在Github上搜索“Hollow Clock NTP”你能找到像Poopi/HollowClock5Plus这样的开源项目它实现了网页配置、NTP同步、甚至通过步进电机敲击产生整点报时音效等高级功能。2. 外观个性化多色与材质使用不同颜色的PLA、闪粉PETG、甚至木质复合材料来打印部件创造独一无二的外观。灯光效果在底座内部嵌入WS2812B LED灯带并通过MCU控制实现环境光、夜灯或时间指示灯光效果。外壳改造设计新的底座外壳将其变成壁挂式、吊挂式或者与其他家具整合。3. 电源改造 原设计依赖USB供电。你可以尝试电池供电使用一块小容量锂电池如14500和充电管理模块制作一个可移动的时钟。需要注意电机工作电流选择合适放电能力的电池。无线供电制作一个底座利用Qi无线充电模块为时钟供电实现完全无尾线的“悬浮”体验。关于版权与分享的思考 原作者shiura在项目中花了大量篇幅强调CC BY-NC-SA协议和版权问题这源于他之前设计被大量商用盗版的经历。作为创客社区的参与者我们应当尊重这份开源精神非商用自己制作、作为礼物送给朋友都是被鼓励和允许的。署名如果你在社交媒体上分享制作过程或成果请明确提及项目来源shiura的Instructables页面或视频。禁止商用任何用于销售盈利的行为都必须事先获得原作者的许可。相同方式分享如果你基于此设计进行了修改并再次发布也必须采用相同的CC BY-NC-SA协议。这种尊重是开源硬件和创客文化能够持续繁荣的基石。我们享受了前人的智慧成果也有责任维护这片共享的土壤。最后当你看着自己亲手制作的时钟那枚指针在磁力的牵引下悄然划过一格那份由代码、电流、磁力和机械结构共同演绎出的精准与静谧正是动手创造带给我们的最纯粹的快乐。
Hollow Clock V:磁力传动与RP2040打造极简悬浮时钟
1. 项目概述与核心设计理念Hollow Clock V一个名字在创客圈和3D打印爱好者中已经不算陌生。作为Hollow Clock 4的全面进化版这个项目将极简美学、精妙的机械设计以及开源的硬件精神融合到了一个桌面时钟里。我第一次看到它的运行视频时就被那种“悬浮”的时针和分针在空灵圆环中静谧滑动的姿态吸引了——它不像一个计时工具更像一个动态的机械雕塑。这个时钟的核心魅力在于它用非常巧妙且低成本的方式实现了视觉上的“无连接”传动。你看到的是一个独立的圆环显示着小时一根独立的指针指示着分钟两者之间、它们与底座之间都没有任何物理连接。秘密就藏在三颗小小的钕磁铁和一套隐藏在底座内的蜗杆-锥齿轮减速系统里。原作者shiura这次在V版本上做了大量改进显示环更薄更精致仅7mm厚并带有刻度外观上几乎看不到螺丝除了指针中心USB-C供电口移到了底座背面棘轮机构防止了步进电机丢步而基于RP2040微控制器的晶体振荡器则大幅提升了走时精度。对于喜欢折腾嵌入式系统和桌面制造的玩家来说这是一个近乎完美的练手项目——它涵盖了3D建模理解、FDM打印技巧、基础电子焊接、微控制器编程和精密机械组装最终你能得到一个独一无二、会动的“玩具”。我自己在复现和把玩这个项目的过程中深刻体会到其设计的精妙之处。它不仅仅是一套STL文件和代码更是一份关于如何用简单原理解决复杂问题的设计教案。接下来我会结合自己的制作经验为你拆解从零开始制作一个Hollow Clock V的全过程并分享那些教程里不会细说的“坑”和技巧。2. 核心机械原理与设计精妙之处要成功制作并理解这个时钟首先得弄明白它到底是怎么工作的。否则组装时面对一堆齿轮和磁铁你可能会一头雾水。2.1 “磁悬浮”显示的奥秘T形磁铁排列时钟最吸引人的地方是小时环和分钟指针看起来是悬浮的。这并非真正的磁悬浮而是一种巧妙的磁力耦合传动。核心原理在小时环Hour Rotor内部嵌有两颗径向充磁的钕磁铁即磁极在圆环的直径方向上。在分钟指针Hour Hand的尾部也嵌入一颗同样径向充磁的磁铁。当你将指针靠近圆环时这两组磁铁会相互吸引并对齐形成一个稳定的磁路。为什么是“T形”你可以想象圆环上的两颗磁铁像一条水平线的两个端点指针上的磁铁像这条线的中点向下延伸的一个点三者共同构成了一个“T”形的磁场结构。这种布局的关键优势在于稳定性两点确定一条直线。圆环上的两颗磁铁为指针提供了明确的轴向旋转方向定位防止指针在圆环上随意滑动或晃动确保了读数的准确性。薄型化由于磁力耦合不需要复杂的机械卡扣或轴承使得小时环可以做得非常薄仅7mm实现了极简的视觉美感。可分离正是因为没有机械连接你可以轻松地将整个显示环包含小时环和指针从底座上提起进行快速的时间调整。这是整个设计用户体验上的一个亮点。实操心得磁铁的极性至关重要。在嵌入磁铁前务必用记号笔标明每颗磁铁的N/S极并确保按照设计图指示的方向通常是所有磁铁的相同磁极朝向同一侧进行粘贴。一旦用胶水固定再想调整就非常麻烦了。我建议先用一点点蓝丁胶临时固定测试磁铁吸合和旋转顺畅后再点胶。2.2 动力与传动蜗杆与锥齿轮减速系统动力来自一个常见的28BYJ-48减速步进电机。但如何将电机竖置的旋转转化为水平面内两个不同轴小时环轴和分钟指针轴的旋转并且实现巨大的减速比以满足时钟走时一天才转两圈的需求这里用到了一个非常聪明的复合齿轮系统。传动链解析第一级减速 - 蜗杆与蜗轮电机的输出轴上套着一个蜗杆。蜗杆驱动一个蜗轮。蜗杆传动具有单级大减速比和自锁特性。大减速比满足了时钟对低速的需求而自锁特性意味着当电机停止时齿轮系统不会在指针重量的作用下反向转动这对于保持时间准确至关重要。第二级减速与分动 - 锥齿轮组蜗轮的同轴上固定着一个小锥齿轮。它驱动一个大锥齿轮实现了第二级减速。同时锥齿轮将动力方向从垂直轴转换到了水平轴。第三级减速与输出 - 复合齿轮与大锥齿轮同轴的是一个小直齿轮。它最终驱动着分钟驱动齿轮。分钟驱动齿轮的轴向上安装着带有磁铁的分钟转子。正是这个分钟转子通过磁力带动着分钟指针旋转。小时传动分钟驱动齿轮的侧面还带有一个非常小的齿轮通常称为“跨轮”它每12小时才带动小时转子旋转一圈小时转子上的磁铁再带动小时环。棘轮机构的作用V版本新增的棘轮是一个安全措施。28BYJ-48电机扭矩很小如果齿轮系统阻力稍大电机可能会失步即控制器发出了脉冲但电机转子没转到位。棘轮机构允许电机“前进”时带动齿轮但在电机回退时钟逻辑中为消除齿轮间隙会有的微小回退动作或受到外力时锁止防止显示环因惯性或外力反向滑动确保了显示的步进严格跟随电机指令。2.3 走时精度的基石RP2040与晶体振荡器一个时钟走得准才是根本。常见的Arduino UNO使用ATmega328P其内部RC振荡器精度有限温漂较大可能导致一天误差几分钟。Hollow Clock V选择RP2040如Waveshare RP2040-Zero或ESP32-C6如Seeed Studio XIAO ESP32C6作为主控是一个关键升级。精度提升的原因外部晶体振荡器RP2040和ESP32系列芯片都支持连接外部的高精度晶体振荡器通常是12MHz。这种晶振的频率稳定性远高于微控制器内部的RC振荡器温漂小为软件计时提供了稳定的时间基准。硬件定时器这些现代微控制器拥有强大的硬件定时器外设。代码中可以利用硬件定时器产生极其精确的中断来驱动步进电机的每一步。避免了依赖软件delay()函数带来的不精确和系统阻塞问题。在代码中你会看到一个关键常量STEPS_PER_MIN通常为256。这意味着控制器需要每分钟精确地输出256个脉冲序列给步进电机。依靠高精度的时钟源和硬件定时器这个频率可以维持得非常稳定从而实现了“准”的走时。我实测使用RP2040-Zero在恒温环境下一周的误差可以控制在1分钟以内这对于一个纯开环控制的步进电机系统来说已经相当不错。3. 材料、工具准备与3D打印详解工欲善其事必先利其器。一份完整且高质量的材料清单是成功的第一步。3.1 物料清单BOM与采购建议以下是制作一个Hollow Clock V所需的全部材料。我会附上我的采购经验和替代方案参考。类别物品规格/型号数量备注与采购建议核心电子件减速步进电机28BYJ-48 ULN2003驱动板1套这是标准套件约3美元。注意驱动板有大小两种打印时需选择对应版本的前面板。微控制器Waveshare RP2040-Zero或Seeed Studio XIAO ESP32C61个二选一。RP2040-Zero更便宜XIAO ESP32C6预留了Wi-Fi能力方便未来魔改。务必购买不带排针的版本。结构件钕磁铁直径8mm厚度3mm (N35或更高等级)3颗实际厚度2.6mm-3mm均可。磁力越强如N52耦合越稳但分离调整时间时也需要更大力度。螺丝M2 平头自攻螺丝长度6mm约10颗用于固定外壳、后盖、指针等。建议购买M2螺丝套装以防损坏或丢失。耗材连接线AWG30或更细的硅胶线少许用于连接主板和电机驱动板。线细便于在狭小空间内布线。胶水401或460速干胶1瓶用于固定磁铁。建议用尖嘴瓶方便精确点胶。润滑脂白色塑料齿轮润滑脂或硅油喷雾少量减少齿轮摩擦降低电机负载。切忌使用黄油或锂基脂易沾染灰尘。3D打印耗材PLA或PETG 1.75mm约100g不同部件可选用不同颜色。主体建议用PETG韧性更好齿轮更耐用。工具清单必需3D打印机FDM、烙铁与焊锡、螺丝刀PH0或PH00十字、剪线钳、镊子。建议万用表检查连通性、去铜丝刷清理打印支撑、小锉刀或砂纸处理打印毛刺、蓝丁胶临时固定磁铁。3.2 3D打印参数与关键技巧所有的STL文件都可以在项目原页面找到。打印质量直接决定了组装的顺畅度和最终运行的噪音、可靠性。通用打印设置建议层高0.2mm。在精度和打印时间间取得平衡。0.16mm会更精细但时间更长。壁厚至少2层0.8mm以上对于受力件如齿轮建议3-4层。填充密度这是重点结构件底座前后盖、转子外壳15%-20%。提供足够强度即可。齿轮件所有齿轮25%-30%。更高的密度能提供更好的抗剪切力和耐磨性。小时指针≤15%。官方特别强调指针必须足够轻以减轻电机负载和磁铁负担。过重的指针可能导致电机失步或磁力耦合失效。显示环20%。保证强度的同时控制重量。支撑所有零件均无需支撑。原作者已经优化了模型摆放角度。请严格按照下载文件中的预设方向打印不要旋转。打印速度外壁40-50mm/s内填充60mm/s。低速打印外壁能获得更好的表面质量和尺寸精度这对需要装配的零件至关重要。进阶技巧与问题预防多色打印索引环与指针rotor-case-front转子前盖上的刻度环以及hour-hand小时指针本身可以通过打印中途换料来实现双色效果。在切片软件中设置“在高度处暂停换料”。刻度环的凹槽深度是0.75mm建议在层高0.6mm处暂停更换为对比色 filament。这样能得到干净利落的双色效果。构建板纹理利用设计的一个巧思是rotor-case-front、hour-hand和base-front底座前面板的正面是接触构建板打印的。这意味着这些可见面的纹理就是你构建板的纹理如磨砂玻璃的细密颗粒、PEI板的橘皮纹。如果你想获得统一的纹理那么min-colored-hand分钟指针的彩色装饰片也应该单独打印正面朝下而不是通过换料方式在主体上打印。版本对应注意区分base-front和base-front-wider-slot。后者适用于驱动板尺寸稍大的28BYJ-48电机套件。如果你买的驱动板比较宽塞不进标准槽就打印这个加宽版本。同样base-rear也有对应Waveshare RP2040-Zero和Seeed XIAO的不同版本USB口位置不同。后处理必须清理打印完成后仔细检查所有轴孔、螺丝孔用钻头或小刀手动清理可能存在的拉丝或孔口收缩确保轴和螺丝能顺畅通过。去毛刺用刀片或小锉刀轻轻刮掉齿轮齿上的“耳朵”层起始点留下的凸起这对减少运行噪音和卡顿有奇效。试装配在正式组装前先不涂润滑脂把所有塑料件徒手组装一遍检查齿轮啮合是否顺畅有无明显干涉或过松。发现问题及时修正模型或重新打印。4. 电子部分焊接与软件烧录这部分是将“静态模型”变为“智能设备”的关键。操作需要细心但步骤并不复杂。4.1 硬件焊接与改装安全第一焊接时确保工作区域通风良好使用焊台并接地避免静电损坏敏感的微控制器芯片。步骤分解处理驱动板大多数28BYJ-48套件附带的ULN2003驱动板上插着一个芯片。为了给焊接腾出空间需要先将这个ULN2003芯片拔掉。用烙铁同时加热芯片一侧的所有引脚或用热风枪轻轻加热然后用镊子小心取下。更推荐的做法是剪断直接用斜口钳将驱动板上的4针排母连接电机线的那一排的四个引脚从板子背面剪断这样最简单安全也不影响后续使用。焊接电机线将步进电机的四根线通常是红、蓝、黄、橙焊接到驱动板标有IN1IN2IN3IN4的焊盘上。顺序不重要接反了只是电机会反转后期在代码里调整序列即可。焊点要圆润饱满避免虚焊。焊接控制线这是核心步骤。你需要用细导线将微控制器的GPIO引脚连接到驱动板的IN1-4。对于Waveshare RP2040-Zero连接GP2 (D2)-IN1,GP3 (D3)-IN2,GP4 (D4)-IN3,GP5 (D5)-IN4。这是最常见的映射。对于Seeed Studio XIAO ESP32C6连接D1-IN1,D2-IN2,D3-IN3,D4-IN4。焊接技巧先将细导线焊接到微控制器薄弱的引脚上上锡要快避免长时间加热烫坏芯片或焊盘。焊好后可以用万用表通断档检查是否有短路或断路。焊接电源线从微控制器的5V和GND焊盘分别引出导线连接到驱动板的和-电源输入端。注意正负极不要接反。安装与绝缘如果使用Seeed XIAO ESP32C6需要将主板倒置元件面朝下安装到底座内以让USB-C口对准后盖的开孔。官方提供了专用的后盖模型base-rear-xiao.stl。务必确保所有焊点没有毛刺并且与金属外壳或彼此之间不会短路。可以用绝缘胶带或热缩管进行保护。4.2 软件烧录与测试代码的获取和烧录有两种主流方式使用Arduino IDE或直接烧录预编译的UF2文件。方法一使用Arduino IDE推荐用于学习和调试环境配置安装Arduino IDE。对于RP2040在“开发板管理器”中搜索“Raspberry Pi Pico”安装“Raspberry Pi Pico”开发板支持。对于ESP32-C6在“文件”-“首选项”的附加开发板管理器网址中添加https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json然后在开发板管理器中搜索安装“ESP32”。下载代码从项目页面下载clock-code-ratchet.ino用于RP2040或clock-code-ratchet-xiao.ino用于XIAO。测试电机先烧录test-code.ino。这个代码会让电机持续旋转。上传前确保选择了正确的开发板型号和端口。如果电机不转或反转检查接线顺序并在代码中调整port[4]数组的顺序例如从{5,4,3,2}改为{2,3,4,5}。烧录时钟主程序测试电机正常后烧录对应的时钟代码。首次运行时钟指针会快速旋转到某个初始位置然后开始以1分钟为步进运行。方法二直接烧录UF2文件最简单对于不想配置IDE的用户作者提供了预编译好的.uf2文件。下载对应的.uf2文件RP2040或XIAO版本。按住微控制器上的BOOTSEL按钮RP2040-Zero或BOOT按钮XIAO同时通过USB线连接电脑。电脑会识别出一个名为RPI-RP2RP2040或XIAO-ESP32C6的可移动磁盘。将下载的.uf2文件拖入该磁盘。设备会自动重启并运行新程序。重要提示无论哪种方法烧录完成后第一次上电时钟都会进行一次“归零”或快速旋转。这是正常现象是程序在寻找初始位置。之后断电再通电时钟会从记忆的位置基于RP2040的RTC或ESP32的RTC内存继续运行但这不是真正的实时时钟RTC断电时间长了会丢失。如果需要精确计时需要像社区开发者那样为ESP32版本添加NTP网络对时功能。5. 机械组装全流程与调校心法组装是见证奇迹的时刻也是最需要耐心和手感的部分。请在一个干净、宽敞、光线好的桌面上进行并准备好所有零件。5.1 显示环组件组装安装小时指针将hour-hand小时指针用一颗M2x6mm平头螺丝固定到hour-rotor小时转子的轴上。关键点螺丝不要拧得过紧以免压裂塑料同时确保螺丝头没有从指针正面凸出保持正面平整。嵌入磁铁转子将两颗8x3mm钕磁铁嵌入hour-rotor侧面的两个孔中。使用蓝丁胶或一点点胶水临时固定注意磁极方向要一致通常都是N极朝外或S极朝外参照设计说明。用另一颗磁铁或铁质物体在外部测试确保磁力是向外吸附的。组合转子与外壳将hour-rotor和min-rotor分钟转子叠放在一起然后将rotor-case-front转子前盖从上方向下盖住它们。此时磁铁槽应朝上。轻轻按压确保各部件卡到位。安装后盖将整个组件翻转盖上rotor-case-back转子后盖用两颗M2螺丝固定。拧螺丝时采用对角线方式逐步上紧确保受力均匀外壳不变形。固定指针磁铁在hour-hand尾部的凹槽内点入少量超级胶水然后将第三颗磁铁嵌入。安全警告钕磁铁非常脆且强力吸附时可能夹伤手指。请小心操作并用胶水彻底固定防止儿童误吞。5.2 底座动力总成组装安装齿轮与棘轮将min-drive-gear分钟驱动齿轮套在电机输出轴上。然后将ratchet棘轮用一颗M2螺丝轻轻固定在齿轮上方的轴上。这里有个调校关键这颗螺丝不能拧死需要让棘轮和齿轮之间有一定的轴向间隙使得棘轮可以自由摆动一小段角度约5-10度但又不会脱落。这个间隙是棘轮机构正常工作的前提。安装蜗杆与电机将worm蜗杆插入电机轴。然后将整个电机模块放入base-front底座前面板的对应卡槽中。确保电机线和驱动板能放入预留的线槽。布线将电机线与驱动板连接。为了整洁可以将连接线稍微绞合一下然后将多余的线塞入驱动板后方的空隙中。安装后盖与最终合体盖上base-rear对应你主板型号的后盖注意USB口对齐并且线材没有被压住。用三颗M2螺丝固定后盖。总装与测试将组装好的显示环组件轻轻放置到底座上。你应该能感觉到磁铁吸合时的“咔哒”一下。接通USB电源时钟应该开始运行。用手轻轻感受一下齿轮运转是否顺滑有无异常振动或噪音。5.3 润滑、调试与问题排查润滑这是降低噪音、提升运行稳定性的关键一步。使用塑料齿轮专用润滑脂或硅油喷雾。部位所有齿轮的齿面、蜗杆与蜗轮的啮合处、转子与外壳的接触面。方法少食多餐。用牙签蘸取微量润滑脂轻轻涂抹在齿轮齿上。对于蜗杆可以涂一层薄薄的油脂。切记不要过量否则多余的油脂会沾染灰尘反而增大阻力甚至导致齿轮打滑。测试润滑后手动旋转齿轮组几圈让油脂分布均匀。常见问题与解决方案速查表问题现象可能原因排查与解决步骤电机不转1. 电源未接通或电压不足。2. 接线错误或虚焊。3. 驱动板或MCU损坏。4. 代码未正确烧录。1. 检查USB线、端口确保提供5V/1A以上电源。2. 用万用表检查5V、GND及4条信号线是否连通。3. 重新烧录test-code.ino进行测试。4. 尝试更换驱动板或MCU。电机转动但指针不动1. 齿轮未啮合或脱落。2. 磁铁未正确安装或极性错误。3. 棘轮卡死或间隙不当。1. 打开底座检查蜗杆、蜗轮、各级齿轮是否安装到位。2. 检查转子内磁铁是否嵌入并用另一磁铁测试吸力方向。3. 调整棘轮固定螺丝的松紧度。时钟走时不准过快/过慢1.STEPS_PER_MIN常量设置错误。2. 电机力矩不足存在丢步。3. 齿轮阻力过大。1. 确认代码中STEPS_PER_MIN值与电机实际步进数匹配28BYJ-48通常为4096步/转经减速后计算得出每分钟步数。2. 检查电源电压是否稳定5V。适当增加代码中的SAFETY_MOTION值见下文。3. 重新润滑检查齿轮有无毛刺、打印件有无变形干涉。时钟一次走两格分钟跳两格齿轮系统存在回差间隙电机回退消除间隙时棘轮未能锁止导致显示环被带回。这是V版本要解决的核心问题之一。解决方法在源代码中增大SAFETY_MOTION的值。这个值代表电机在完成一步前进后额外多走的“安全步数”用于确保齿轮完全啮合并越过死点防止回弹。可以尝试从默认值逐步增加如从STEPS_PER_MIN增加到STEPS_PER_MIN 5。运行噪音大1. 齿轮啮合过紧或不同心。2. 缺乏润滑。3. 打印质量差齿轮齿形不规整。1. 检查各齿轮轴是否安装平直用手转动感觉是否有卡顿点。2. 在所有运动部位添加适量润滑脂。3. 重新打印有问题的齿轮确保层高和冷却设置合适减少“振纹”。显示环提起调整时间后放回走时不准1. 磁铁极性在放回时可能吸反了180度。2. 齿轮位置在分离/结合时发生了随机变化。1. 确保放回时小时环上的刻度“12”点位置对准底座正上方。磁铁对称设计理论上180度反了也能吸合但时间显示会错乱6小时。2. 这是磁力传动的固有特性。调整时间后需要手动将分钟指针拨到正确位置。关于SAFETY_MOTION和移除棘轮如果你的时钟组装得非常顺滑运行稳定你可能会觉得棘机构的“咔哒”声有点吵。理论上你可以移除ratchet零件让系统更安静。但与此同时你必须将SAFETY_MOTION的值减小甚至设置为0不推荐可能因惯性导致回弹。因为没有了棘轮电机回退的微小动作会直接传递给显示环。你需要找到一个临界值既能消除齿轮间隙又不会让指针产生可见的回退。这需要反复测试。6. 进阶玩法与社区生态完成基础版本的Hollow Clock V后你的创客之旅才刚刚开始。这个开源项目拥有活跃的社区衍生出了许多有趣的魔改方案。1. 网络对时与智能化 这是最受欢迎的改造方向。利用Seeed Studio XIAO ESP32C6的Wi-Fi功能可以为其编写新固件使其连接家庭Wi-Fi通过NTP网络时间协议自动同步时间。这彻底解决了断电丢时和累积误差的问题。在Github上搜索“Hollow Clock NTP”你能找到像Poopi/HollowClock5Plus这样的开源项目它实现了网页配置、NTP同步、甚至通过步进电机敲击产生整点报时音效等高级功能。2. 外观个性化多色与材质使用不同颜色的PLA、闪粉PETG、甚至木质复合材料来打印部件创造独一无二的外观。灯光效果在底座内部嵌入WS2812B LED灯带并通过MCU控制实现环境光、夜灯或时间指示灯光效果。外壳改造设计新的底座外壳将其变成壁挂式、吊挂式或者与其他家具整合。3. 电源改造 原设计依赖USB供电。你可以尝试电池供电使用一块小容量锂电池如14500和充电管理模块制作一个可移动的时钟。需要注意电机工作电流选择合适放电能力的电池。无线供电制作一个底座利用Qi无线充电模块为时钟供电实现完全无尾线的“悬浮”体验。关于版权与分享的思考 原作者shiura在项目中花了大量篇幅强调CC BY-NC-SA协议和版权问题这源于他之前设计被大量商用盗版的经历。作为创客社区的参与者我们应当尊重这份开源精神非商用自己制作、作为礼物送给朋友都是被鼓励和允许的。署名如果你在社交媒体上分享制作过程或成果请明确提及项目来源shiura的Instructables页面或视频。禁止商用任何用于销售盈利的行为都必须事先获得原作者的许可。相同方式分享如果你基于此设计进行了修改并再次发布也必须采用相同的CC BY-NC-SA协议。这种尊重是开源硬件和创客文化能够持续繁荣的基石。我们享受了前人的智慧成果也有责任维护这片共享的土壤。最后当你看着自己亲手制作的时钟那枚指针在磁力的牵引下悄然划过一格那份由代码、电流、磁力和机械结构共同演绎出的精准与静谧正是动手创造带给我们的最纯粹的快乐。