沙漏用来形象地显示时间的流逝,现在市面上很难找到大型沙漏了,常见的只有厨房用的小沙漏,大概能显示3到5分钟。
在这个项目里,作者制作了一个完整流程正好为一小时的沙漏,小时数会在顶部的玻璃上显示。
这个项目的构建和编程都相当简单,只需要你有一些基础的Arduino知识就行。同时,沙漏在外观设计上也留有很大的发挥空间。
所需材料
- ESP32
- 2个 GC9a01 圆形显示屏
- RTC 模块
- 导线
- 用于外壳的材料:木材、纸板、塑料、3D打印等
步骤1:接线
这个是整个项目中可能相对最复杂的部分,但是别担心,一步一步来,你会发现也没那么难。
显示屏和RTC都需要一个3.3V的电源和GND。
RTC还需要两个额外的连接:
按照表格连接显示屏。TFT1是上方的显示屏,TFT2是下方的。
步骤2:程序和RTC
对于ESP32,你需要在Arduino IDE中进行以下设置:
将程序上传到ESP32。如果接线正确,应该可以正常工作。
RTC模块通过无线电加密信号获取时间。可能需要几分钟才能显示正确的时间。从接收到的数据中分离出分钟和小时数,并用于我们的程序。
分钟数被转换为沙子三角形的坐标,确保沙子的流动正好持续一小时。
小时数只在上方的玻璃上显示。
上传 <span>HourGlass.ino</span> 或 <span>HourGlass-demo.ino</span> 到你的ESP32。确保 <span>colors.h</span> 文件在同一文件夹中。
程序可以在文末打包下载。
步骤3:图形工作原理
图形由简单的几何元素组成。上方的沙子最初显示为一个填充矩形(<span>tft1.fillRect(…)</span> )。由于圆形显示屏,这实际上无法识别。沙子流动形成的圆锥是通过一个黑色三角形模拟的,这个三角形随时间改变形状和位置。底部堆积的沙子也由三角形表示。
小时数简单地显示在上方的玻璃上。
步骤4:外壳
作者倾向于使用3D打印机制作的外壳,使用Tinkercad设计。
作者将其分成3部分,这样时钟就可以轻松放入孔中。这是能得到的最接近沙漏形状的设计。
stl文件可以在文末打包下载。
你不用将沙漏翻转。沙子会在一小时后神奇地“移回”上方的玻璃中。
原文地址:https://www.instructables.com/Digital-Hourglass/
项目作者:Markus Opitz
|