如何制作圆形LCD时钟
摘要
一份详细的教程,介绍如何使用Waveshare的7英寸圆形LCD屏幕和树莓派制作定制挂钟,涵盖硬件组件、组装和软件配置。
<p><a href="https://lobste.rs/s/lep7wh/how_build_circular_lcd_clock">评论</a></p>
查看缓存全文
缓存时间: 2026/07/09 21:41
# 如何制作一个圆形LCD时钟 来源:https://blinry.org/lcd-clock/ 我们厨房里唯一显示时间的设备是烤箱!:D 每次看它总是有点烦。所以最近我用一个圆形LCD屏幕做了一个挂钟!效果超棒,因为它能显示任何你想要的钟面,甚至包括你自己编程设计的钟面! 四个不同钟面的屏幕拼贴图 如果你也想要一个,以下是制作方法! ## 硬件 你需要准备: - **Waveshare 7英寸圆形LCD** (https://www.waveshare.com/7inch-1080x1080-lcd.htm) 分辨率1080×1080像素,显示区域直径7英寸(约18厘米)。对比度和亮度都不错,还支持多点触控,能实现一些有趣的交互!最初我想找个大点的圆形屏幕,但那些*真的*很贵,这个尺寸我完全满意。 - **Raspberry Pi 3–5** 这个微型电脑将驱动时钟。Pi 3B+似乎足以渲染一些简单动画。我也试过Raspberry Pi Zero 2,但512MB内存跑现代浏览器太勉强了。目前看Pi 4可能是在处理能力和价格之间的最佳平衡点。 - **microSD存储卡**,至少16GB。 - **microSD读卡器**,用于烧录系统。 - **优质USB-C电源适配器** 一开始我用了些随机手机充电器,但Pi总是报欠压并降频。后来学会用`vcgencmd get_throttled`检查输出,并通过[这个网站](https://www.8086.net/tools/decode-get_throttled)解读结果位模式的含义。于是换了个官方Raspberry Pi电源,之后再没出过问题。 - **白色USB-A转USB-C线** 用于连接Pi和屏幕,传输电力和触摸信息,也可以通过它调节亮度(见下文)。我选了白色线,让黑色屏幕在白墙上更显眼。 - **白色HDMI转micro HDMI线** 在eBay上找到一根,能把HDMI插头后面过大的部分拆掉,这样插上线后屏幕离墙更近一些。 - **USB-A鼠标**,用于初始设置。 ## 操作系统 我直接用了[Raspberry Pi OS](https://www.raspberrypi.com/software/operating-systems/)作为系统。用[官方烧录工具](https://www.raspberrypi.com/software/)就能轻松把系统写入SD卡。 ## 组装 屏幕附带了螺丝和连接件,可以把Pi固定在屏幕背面,但这样整体厚度约4厘米,我觉得太厚了。所以我把Pi放在架子上,用USB-C和HDMI线连接。 将Pi连接到屏幕上标有“Touch”的USB接口——标有“Power”的USB口可以不用。即使只用触控口,屏幕也能正常供电。 ## 远程控制 Raspberry Pi OS启动后,可以在*Preferences → Control Centre → Interfaces → VNC*中启用内置VNC服务器,然后用(例如)[TigerVNC](https://github.com/TigerVNC/tigervnc)连接。这样无需外接鼠标/键盘就能远程控制屏幕。 我写了个名为`clock`的Bash脚本,运行即可快速打开VNC连接。`clock`也是我在Pi上设置的主机名: ```bash #!/usr/bin/env bash set -eu -o pipefail export VNC_USERNAME= export VNC_PASSWORD= vncviewer clock.local ``` ## 触控手势 如果在Raspberry Pi 3上多点触控异常(比如用手指选择文本而非滚动页面),请打开*Preferences → Control Centre → Screen*,右键点击屏幕,检查触控输入是否配置为多点触控(而非模拟鼠标)。 由于屏幕没有智能手机那样的“返回”或“菜单”按钮,我发现用手势控制浏览器很方便。在Firefox中,[Touchscreen Swipe Navigation](https://addons.mozilla.org/en-US/firefox/addon/touchscreen-swipe-navigation/)这个扩展很好用:向左/右滑动可前进/后退浏览历史,下拉刷新。 屏幕背面的“Touch”按钮可以将触控输入旋转90度。可能需要按几次才能旋转到合适方向。 ## 调节亮度 屏幕背面的“ON/OFF”按钮也兼具亮度控制功能:长按该按钮,屏幕会在5个亮度模式间循环。对于厨房来说,我发现最暗的模式通常已经足够。 但我很快发现需要在夜间调暗屏幕。具体方法取决于你的Pi型号: ### Raspberry Pi 3 在Raspberry Pi 3上,我可以用`gammastep`程序(一个支持Wayland的`redshift`分支)。使用类似`gammastep -b 1:0.3 -l :`的命令,让屏幕在夜间调至30%亮度,白天100%亮度。注意这是软件层面的调暗——背光本身不变。 ### Raspberry Pi 3–5 在Raspberry Pi 4和5上,固件似乎不支持`gammastep`(详见[Max的博文](https://maximilian-boehm.com/gamma-and-brightness-control-is-not-available-on-raspberry-4-5/)),所以需要换一种方法。 我再次向Waveshare客服求助(因为他们的产品页面宣称屏幕亮度可以通过软件控制)。他们给我发了一个Python脚本,直接通过USB接口与屏幕通信,将亮度设为0到100之间的值!我打磨了一下这个脚本,添加了根据时间自动调暗的功能,并将结果发布在[这里](https://codeberg.org/blinry/waveshare-brightness)。 ## 钟面 显示钟面最简单的方法可能是在Pi上打开浏览器并进入全屏模式。我自己做了几个钟面,概览页在[clocks.blinry.org](https://clocks.blinry.org/)。这个页面也充当我的“主屏幕”——点击钟面即可激活,通过上述滑动手势返回。 ### 瑞士铁路钟 带粗黑指针的钟面照片 (https://clocks.blinry.org/swiss-railway/) 实现了瑞士铁路钟的分针停顿,感谢@Fluyar (https://social.tchncs.de/@Fluyar) 提示!还有另一个实现(by Draemmli)在[这里](https://draemm.li/p/bahnhofsuhr/),指针动画非常带感! ### 极简时间标尺 一个非常极简的钟面 (https://clocks.blinry.org/scale/) Jürgen (https://chaos.social/@[email protected]) 给我看了[这篇博客](https://harmoniccode.blogspot.com/2016/11/medusa-designclock-skin.html),我*必须*自己实现一个版本!它渲染了所有12小时标记,但放大了视角,单根指针就能提供很高的精度。两个“刻度”之间是10分钟。 ### 卡通风格 一个有四个圆润数字的钟面 (https://clocks.blinry.org/cartoony/) 灵感来自我喜欢的智能手表表盘。[Modak](https://ektype.in/modak-family.html)字体承担了大部分视觉效果,我非常喜欢! ### 方块风格 由方块组成的钟面 (https://clocks.blinry.org/squared/) 基于Alina为Pebble设备设计的[Squared 4.0](https://git.broken.graphics/alina/Pebble-Time-Watchface-Squared-4.0),但从头重新实现。代码包含几种不同的过渡动画,甚至还有显示秒数的模式! ---
相似文章
我想要一个永远不需要调校的时钟。事情升级了。
一位科技爱好者记录了自己用树莓派、3D打印和开源软件打造自定义自动校时LED时钟的过程,此前他对现有产品感到沮丧。
PTP墙钟不实用且过于精确
使用树莓派和LED矩阵显示器构建PTP墙钟的指南,演示通过精确时间协议实现精确时间同步。
一款更精美的电压表时钟
一份详细指南,介绍如何制作具有自定义贴花、CNC加工外壳和连续运动指针的模拟电压表时钟。
Scanwheel:一款可自行组装的鼓式机械电视
Scanwheel 是一款 DIY 机械电视,采用扫描鼓、LED 和 Raspberry Pi Pico,在五个并排窗口上显示图像。该项目提供了 3D 打印零件、接线图和 MicroPython 软件。
制作便携式宽屏机械电视
一位业余爱好者制作了一台名为Scanwheel的便携式宽屏机电电视,该电视采用3D打印鼓和Raspberry Pi Pico实现了4K乘20的分辨率,灵感来源于早期电视技术如Nipkow disks。