我想要一个永远不需要调校的时钟。事情升级了。

Ars Technica 新闻

摘要

一位科技爱好者记录了自己用树莓派、3D打印和开源软件打造自定义自动校时LED时钟的过程,此前他对现有产品感到沮丧。

<p>我想要一个时钟,但令人恼火的是,它似乎并不存在。</p> <p>从小时候起,我的床头钟就一直是从沃尔玛或塔吉特买的一系列红色七段LED时钟收音机特价品。它们无一例外地便宜、简单、耐用——但每到夏令时开始和结束,或者停电之后,都需要手动调整。最近一次停电后,当我站在餐柜旁按住“TIME”键并猛按“HOUR”键时, frustration 彻底爆发,我心想:“21世纪都过了四分之一了,肯定有更好的办法!”</p> <p>我心目中的完美时钟应该能自动校时。它能自动调整夏令时(或者不调整,取决于<a href="https://www.timeanddate.com/news/time/us-permanent-dst-2026.html">这项法案的进展</a>!)。它能管理漂移,始终显示精确到亚秒级的时间。它应该用红色七段显示屏显示时间——不要蓝色,不要绿色,不要黄色,绝对不要白色。而且我不需要安装任何侵犯隐私的垃圾应用就能让它工作。</p><p><a href="https://arstechnica.com/gadgets/2026/07/i-wanted-a-clock-that-never-needed-setting-things-escalated/">阅读全文</a></p> <p><a href="https://arstechnica.com/gadgets/2026/07/i-wanted-a-clock-that-never-needed-setting-things-escalated/#comments">评论</a></p>
查看原文
查看缓存全文

缓存时间: 2026/07/24 05:06

# 我想要一台永远不需要手动设置的时钟。事情升级了。 原文链接: https://arstechnica.com/gadgets/2026/07/i-wanted-a-clock-that-never-needed-setting-things-escalated/ 当然,也许你的时钟有备用电池,但我的有部署流水线! 工作台上的照片,展示3D打印的时钟组件和一些电子元件 (https://cdn.arstechnica.net/wp-content/uploads/2026/07/JT3A6491.jpg) 快速原型制作!图片来源:Lee Hutchinson 快速原型制作!图片来源:Lee Hutchinson 我想要一台时钟——让人恼火的是,它似乎根本不存在。 从小到大,我的床头钟一直是沃尔玛或Target买的红色七段LED时钟收音机特价品。它们无一例外地廉价、简单、寿命长——但夏令时开始和结束时,以及电源波动后,都需要手动干预。最近一次电源波动后,当我发现自己站在餐柜旁,一边按住“TIME”键,一边猛按“HOUR”按钮时,挫败感终于爆发,我心想:“我们已经进入21世纪四分之一了。肯定有更好的办法!” 我理想中的时钟应该是自动校时的。它能自动调整夏令时(或者不调整,取决于这项法案 (https://www.timeanddate.com/news/time/us-permanent-dst-2026.html)的走势!)。它能管理漂移,始终显示精确到亚秒级的时间。它要在红色七段显示屏上显示时间——不要蓝色,不要绿色,不要黄色,绝对不要白色。而且我不需要安装任何破坏隐私的垃圾应用来让它工作。 简单?不。虽然很多床头钟能满足其中一两个要求,但我找不到一个能全部满足的。那些通过宇宙以太 (https://en.wikipedia.org/wiki/WWVB)获取更新的、带电池备份的自动校时“原子钟”已经存在多年了,它们能满足我大部分需求,但见鬼的是,我就是找不到一款我喜欢的、带红色七段显示屏的款式(也许别人的搜索功夫比我强?)。 有一段时间,绝望占了上风。但当我关闭数十个显示徒劳搜索和“差一点就完美”产品页面的浏览器标签页时,我对自己说:“等等。我有3D打印机。我挺聪明的,不是吗?为什么不买一块七段显示屏,然后*自己*做个时钟呢?” 于是,站在巨人的肩膀上——它们堆得如此之高,我几乎能碰到月亮——我这么做了。 照片:李的时钟 (https://cdn.arstechnica.net/wp-content/uploads/2026/07/IMG_3492.jpg) 这就是那个时钟,做着时钟该做的事。 图片来源:Lee Hutchinson 这就是那个时钟,做着时钟该做的事。图片来源:Lee Hutchinson ## 啊,美丽新世界,竟有如此时钟 对于不想读几千字冗长过程的朋友,这里是完成后的仓库 (https://github.com/code-a-saurus/PiClock)。里面包含我的物料清单 (https://github.com/code-a-saurus/PiClock/blob/main/BOM.md)(附价格和购买地点)、软件 (https://github.com/code-a-saurus/PiClock/tree/main/piclock)以及3D打印文件 (https://github.com/code-a-saurus/PiClock/tree/main/3d_print)。 这个伪装成时钟、实则搞笑般过度设计的周末项目,原本有两条可能的发展路径。一条是未选择的路:从Arduino或类似Arduino的微控制器开始。另一条是从树莓派或类似树莓派的类电脑设备开始。我选择了树莓派,交替使用了树莓派Zero W (https://www.raspberrypi.com/products/raspberry-pi-zero-w/)和Zero 2 W (https://www.raspberrypi.com/products/raspberry-pi-zero-2-w/)。 我的理由是,树莓派给了我一个基于Debian的操作系统作为安全网,配有Wi-Fi和NTP,满足“时钟自动设置和更新”的要求,外加我已经熟悉的常规Linux远程管理流程。 选择七段显示屏很容易:Adafruit有很棒的钟面风格LED显示屏 (https://www.adafruit.com/category/37_103),带有1.2英寸高的数字,它还出售一个套件 (https://www.adafruit.com/product/1270),将我想要的显示屏与一个包含驱动LED所需HT16K33控制器的“背板”板捆绑在一起。我订了三个,最终全部用于测试、组装和琢磨如何焊接。 Adafruit七段显示屏和背板的照片 (https://cdn.arstechnica.net/wp-content/uploads/2026/07/1270-00.jpg) 显示屏,来自Adafruit产品页面。 显示屏,来自Adafruit产品页面。图片来源:Adafruit (https://www.adafruit.com/product/1270) 啊,是的,焊接。我以前从未做过,但七段显示屏必须焊接到它的背板上,所以我从亚马逊买了一个新手焊接套件和一卷60/40焊锡。(我还不得不买了一个桌面放大镜,因为当我实际操作时发现,我这双老眼睛已经无法像以前那样近距离聚焦了。) 暂不考虑时钟的外壳问题——我确信别人已经设计出了兼容Adafruit显示屏的3D打印外壳,而且我猜对了——我坐下来,拿着新的树莓派Zero,开始琢磨它为了“讲时钟”必须运行哪些软件。我很快意识到自己力不从心了。正如我经常在这些页面中说的,我负责“devops”中的“ops”部分……“dev”部分需要其他人来提供。 ## 超越凡人智慧的时钟 树莓派镜像加载器让我启动了,我成功登录到了树莓派Zero。思考了一会儿之后,我将软件需求提炼成一张清单: - 时钟主机应仅在局域网内,且无法从互联网访问 - 时钟主机应从仅限局域网的apt镜像获取更新 - 时钟主机应从仅限局域网的NTP服务器获取NTP同步 - 时钟服务应是一个systemd服务,在非特权状态、使用专用服务账户上下文运行 - 时钟服务应使用系统时间,因此主机操作系统负责NTP,并让我们与夏令时的变化保持同步 - 时钟服务应能按计划开关显示屏,以便我白天大部分时间不在卧室时显示屏关闭 - 时钟服务还应能按计划调亮/调暗显示屏 - 时钟服务应有某种通过CLI(用于终端连接)进行控制的方式 - 显示屏应可通过HomeKit控制,因为我生活在iOS世界里 - 时钟服务及其依赖项应可通过一个脚本安装 - 安装完成后,所有内容应可部署,以便我在需要时推送更新,而不必登录重新安装 其中许多项很容易,完全在我的常规运维能力范围内。我求助于老搭档systemd定时器和服务来完成大部分工作——天助我也,我其实越来越喜欢systemd了。局域网NTP和apt镜像源已经存在(我知道,我知道,我应该改用apt-cacher-ng)。部署流水线将使用Gitea Actions,并且基本上与我为另一个项目已经设置好的流水线完全一样,所以我从“过去的李”那里借鉴了经验。HomeKit集成看起来基本是即插即用,这要归功于HAP-python (https://github.com/ikalchev/HAP-python)。 但是,当我查找如何通过I2C与时钟显示屏通信的示例时,我开始担心起来。我早已萎缩的Python技能已经不堪重负,绝对无法应对这一挑战。正是在这一点上,这个项目不再有趣,开始变得难如登天。 于是,我把编码任务推给了LLM。 ## “你教了我语言;而我的收获是,我学会了写代码” 在自己无法真正验证输出的情况下寻求LLM的帮助可能有风险,但幸运的是,我记得足够的Python,可以在内联注释的帮助下勉强理解结果。Claude Code证明了自己完全有能力完成这个项目——先是使用Opus 4.8,后来使用新的花哨Fable模型,我利用并操纵它那终结世界的力量 (https://arstechnica.com/tech-policy/2026/07/after-spooking-trump-into-safety-testing-anthropic-ai-models-get-global-release/),用在了这个实际上可能只是实习生级别的编码项目上。 这有点像用死星的全部力量去打一只蚊子,但它确实奏效了。结果是一套整洁的Python文件和一个漂亮的小测试套件。LLM做得如此出色,以至于我还让它完成了HomeKit集成、安装例程、部署流水线的一些细节,以及大部分仓库文档。 我知道这种坦白可能让许多Ars评论区的读者反感,但事实就是如此——没有LLM,我根本完不成这个项目。我会变得烦躁、愤怒,或者只是厌倦了没完没了地阅读StackOverflow上那些批评我做法愚蠢和错误的帖子。 VSCode截图,显示李的"PiClock"项目 (https://cdn.arstechnica.net/wp-content/uploads/2026/07/clock-vscode.png) 项目工作区。这与公共GitHub仓库的版本略有不同,包含一些李特定的默认值和一个Gitea Action。 图片来源:Lee Hutchinson 项目工作区。这与公共GitHub仓库的版本略有不同,包含一些李特定的默认值和一个Gitea Action。图片来源:Lee Hutchinson 应用端是一个标准的systemd服务,它监听来自HomeKit的命令;如果希望从终端会话控制显示屏,还可以通过Unix套接字进行本地控制。该服务在一个非特权服务账户下运行。部署通过Gitea Action进行:我向本地Gitea仓库推送一个标签,一个Runner (https://gitea.com/gitea/runner)会创建一个发布工件,并通过另一个只能执行部署相关操作的本地服务账户将其推送到树莓派上。(部署工作流包含在项目的GitHub仓库中,作为一个可适配的模板 (https://github.com/code-a-saurus/PiClock/tree/main/deploy),以防有人与我拥有完全相同的设置并希望使用它。) ## 在Autodesk海底五英寻处 在物理层面,我确实找到了一个基于Creative Commons许可的、围绕我使用的同一款Adafruit显示屏设计的3D打印外壳 (https://www.printables.com/model/550564-adafruit-12-4-digit-7-segment-display-wi2c-backpac),但它并不*完全*符合要求。 修改模型意味着要与荒谬且对用户极不友好的噩梦——Autodesk Fusion——作斗争,于是我鼓起勇气,一头扎了进去——却又撞上了另一堵墙。参数化建模,尤其是在背负着AutoCAD几十年来愚蠢的UI/UX选择的重压下,甚至比编程还难。 Autodesk Fusion中的外壳截图 (https://cdn.arstechnica.net/wp-content/uploads/2026/07/clock-fusion.png) Autodesk Fusion,我们又见面了。(感谢Boosted提供的原始设计 (https://www.printables.com/model/550564-adafruit-12-4-digit-7-segment-display-wi2c-backpac)。) 图片来源:Lee Hutchinson Autodesk Fusion,我们又见面了。(感谢Boosted提供的原始设计 (https://www.printables.com/model/550564-adafruit-12-4-digit-7-segment-display-wi2c-backpac)。)图片来源:Lee Hutchinson 但Fusion现在自带一个MCP服务器 (https://help.autodesk.com/view/ADSKMCP/ENU/?guid=ADSKMCP_FusionDesktopMcp_autodesk_fusion_mcp_server_html),所以我有可能让LLM远程控制该应用并进行修改。事情真能这么容易吗? 截图:OpenCode通过MCP与Fusion协同工作 (https://cdn.arstechnica.net/wp-content/uploads/2026/07/clock-opencode.png) 本地托管的Qwen3.6-35B-A3B-NVFP4通过OpenCode和Fusion的MCP服务器操作Fusion。大部分工作正常! 图片来源:Lee Hutchinson 本地托管的Qwen3.6-35B-A3B-NVFP4通过OpenCode和Fusion的MCP服务器操作Fusion。大部分工作正常!图片来源:Lee Hutchinson 结果证明,答案既是“是”也是“不完全是”。我首先尝试使用量化版本的Qwen 3.6-35B(具体是这个 (https://huggingface.co/nvidia/Qwen3.6-35B-A3B-NVFP4)),在由GB10驱动的Acer Veriton GN100 (https://www.acer.com/us-en/desktops-and-all-in-ones/veriton-workstations/veriton-gn100-ai-mini-workstation)上本地运行,我正在撰写一篇关于这款机器的长篇Ars评测。 Qwen 3.6*几乎*胜任了任务,成功做出了其中一项修改,但另一项搞砸了;我转而求助于Claude Code和Fable来处理大部分模型调整。不过,本地模型仍然很有趣,我将在未来的文章中继续探讨它。 ## 原型制作的材料 当软件开始成形,包裹也送达后,是时候开始制作原型了。我占领了厨房餐桌,摆好新的焊接烙铁,尝试组装我的第一个Adafruit显示屏和背板,力求不把它们都毁掉——而且我大部分成功了! 照片:杂乱的工作台上有烙铁,还有一个(显然)成功焊接并正常工作的Adafruit显示屏 (https://cdn.arstechnica.net/wp-content/uploads/2026/07/IMG_3444-2.jpg) 别评判我的工作区。(所谓“工作区”,我的意思是“厨房餐桌”。) 图片来源:Lee Hutchinson 别评判我的工作区。(所谓“工作区”,我的意思是“厨房餐桌”。)图片来源:Lee Hutchinson 焊接没有搞砸,这让我备受鼓舞,现在有了一个可以摆弄的活显示屏,我继续前进。接下来要处理的问题是:虽然Adafruit显示屏是可调光的,但即使在最低亮度下,它对于黑暗的卧室来说仍然太亮。这意味着我需要在它前面放点东西来挡光。 照片:李在原型制作期间的桌子,前景是显示屏和树莓派 (https://cdn.arstechnica.net/wp-content/uploads/2026/07/IMG_3488.jpg) 即使在最暗时,Adafruit显示屏在晚上也亮得要命。这是我在试验烟色亚克力和NDF材料的组合。 图片来源:Lee Hutchinson 即使在最暗时,Adafruit显示屏在晚上也亮得要命。这是我在试验烟色亚克力和NDF材料的组合。图片来源:Lee Hutchinson B&H Photo救了我一命,他们有相对便宜的卷状中性密度滤镜材料 (https://www.bhphotovideo.com/c/product/44189-REG/Rosco_RS340411_3404_Filter_Rosco.html)。但这种材料很脆弱,而且非常容易沾上指纹,所以我最终将NDF与一些烟色亚克力搭配使用,这意味着要找到愿意出售小批量定制尺寸亚克力材料的供应商。(实际上我找到了两家——这家 (https://www.ttplasticland.com/products/custom-bronze-smoke-2370-acrylic-sheet?variant=42430362255426)和这家 (https://www.canalplastic.com/products/2064-gray-smoke-acrylic-sheet?variant=32914731470)。) 一块亚克力片加上一条12%的NDF材料,将显示屏调到了几乎完美的暗度,与我现有的廉价床头钟相当。 接下来要解决的是迭代所有必要的模型修改,以便将亚克力和NDF融入时钟外壳中。我最终(通过LLM的MCP魔法)将现有设计拆分成几个更多独立部件,并为亚克力面板挖了一个凹槽;我还让LLM为每个部件添加了导向销和孔。所有这些操作都没有产生悬垂,所以整个外壳仍然可以在无需支撑的情况下打印。 截图:Bambu Studio准备打印时钟外壳 (https://cdn.arstechnica.net/wp-content/uploads/2026/07/clock-bambustudio.png) 整个外壳,切片完毕等待打印。 图片来源:Lee Hutchinson 整个外壳,切片完毕等待打印。图片来源:Lee Hutchinson 我对整个设计迭代了至少三个主要版本,对最终结果非常满意。最终版本基本上已

相似文章

PTP墙钟不实用且过于精确

Jeff Geerling

使用树莓派和LED矩阵显示器构建PTP墙钟的指南,演示通过精确时间协议实现精确时间同步。

如何制作圆形LCD时钟

Lobsters Hottest

一份详细的教程,介绍如何使用Waveshare的7英寸圆形LCD屏幕和树莓派制作定制挂钟,涵盖硬件组件、组装和软件配置。

一款更精美的电压表时钟

Hacker News Top

一份详细指南,介绍如何制作具有自定义贴花、CNC加工外壳和连续运动指针的模拟电压表时钟。

Show HN: 模拟手表

Hacker News Top

一位用户在 Hacker News 上分享了一个模拟手表项目,这很可能是一个具有指针式风格的数字时钟。

Show HN:电容闹钟

Hacker News Top

一款基于ESP32的闹钟,通过电容器放电发出巨响来唤醒你。项目包含定制PCB、3D打印外壳和用于配置的Web界面。