基于ESP8266的动态机械钟
简介
大家好,今天我要和大家分享一个非常有趣的项目——Lenticular Clock,即立体动态时钟。你是否曾在明信片上看到过这种效果?我还记得在小学时,我有一个标有恐龙图案的尺子,图案会随着观察角度的变化而变化。这种立体动态动画是基于通过一系列圆柱形透镜观察交织在一起的多张图片。通过改变观察角度,可以区分出不同的图片。我的想法是创建一个使用立体动态动画来显示时间的时钟。
实物图:
材料清单
- 4个SG92R 270度伺服电机(实际上你只需要2个270度伺服电机,另外2个可以是180度)
- PCA9685 PWM驱动板
- Wemos D1 mini ESP8266
- 20 LPI立体透镜片
- A4可打印透明自粘箔
- 彩色激光/喷墨打印机
- 3D打印机
制作步骤
步骤1:选择合适的LPI
立体透镜片的特性是每英寸透镜的数量(LPI)。我订购了60、40和20 LPI的片材。更高的LPI可以给你更好的分辨率,但你需要打印更细的线条,并且更难正确对齐透镜片。由于时钟动画将包含多达6帧,我发现只有20 LPI才能清晰地区分它们。
我使用了一张20 LPI的片材,具有54度的大视角,非常适合显示动画。
步骤2:LPI校准
由于立体透镜片和打印机的制造公差,你需要确定用于交织的确切LPI值。有几个软件可以生成校准纸。我尝试了3Dependable和fPitch的软件。但出于某种原因,校准效果并不理想,我最终使用了不同的LPI值生成最终打印,并选择了在放在我的立体透镜片下效果最好的那一个。
步骤3:创建立体打印
有几个软件可以用于交织图像,我使用的是免费的grape软件。首先,我创建了从0到9的每个数字的图片,所有数字的大小都是52.5x30mm。我为每个数字使用了不同的颜色,这有助于更清晰地区分它们,同时也有参加instructables上的“彩虹颜色”竞赛的优势;-)
在交织之前,我不得不将图片旋转90度,因为grape只能创建通过水平倾斜打印工作的动画。
交织的图像是由以下数字组创建的:
- 0-2 -> 十小时
- 0-4 -> 小时+分钟
- 5-9 -> 小时+分钟
- 0-5 -> 十分钟
我镜像了交织的图像,然后打印在自粘透明箔上,以便我可以将它们贴在立体透镜片的背面。我还用另一层自粘箔覆盖了打印,以防止墨水擦掉。交织的图片和单独的帧可以在我的GitHub上找到。
步骤4:将打印物贴到立体透镜片上
用grape创建的交织图片在边框上有一些对齐标记,这大大有助于正确对齐打印。为了能够调整自粘箔,我喷了肥皂水在立体透镜片的背面。在一切都正确对齐后,你可以在箔下挤出水分。
然后我用盒形切割器切割立体透镜片,移除了对齐标记。这证明相当繁琐,因为立体透镜片厚2mm,需要很长时间才能切穿。
步骤5:3D打印
我用白色PLA 3D打印了立体透镜片的支架。片材可以滑入支架,支架稍后会连接到伺服电机。小时和分钟的支架正面有0-4的数字,背面有5-9的数字。
时钟的外壳也是用白色PLA 3D打印的,内部装有电子设备和伺服电机。
所有的stl文件都可以在我的GitHub上找到。
步骤6:组装
时钟的组装相当简单。
- 将伺服电机连接到外壳
- 将数字支架压装到伺服电机上。十小时在左上角,小时在右上角,十分钟在左下角,分钟在右下角
- 安装PCA9685和Wemos板。Wemos需要用热胶固定
- 连接Wemos和PCA9685之间的电缆
- D1 -> SCL
- D2 -> SDA
- 5V -> VCC和V+
- GND -> GND
- 将伺服电机连接到PCA9685板上的CH 0-3
- 用拉链带固定伺服电机电缆在外壳背面
- 连接外壳盖子
为了最后的润色,我在外壳底部添加了另一个立体动画,可以在两个文本之间切换,使用的是40LPI的片材创建的。
步骤7:代码
代码是用Arduino IDE编写的,可以在我的GitHub上找到。首先,需要在servo.h文件中指定对应于每个数字的正确倾斜角度的电机位置。为此,我从定义的角度观察时钟,并通过IDE中的串行监视器控制伺服位置。
当代码第一次上传时,ESP8266打开一个接入点,让你输入你的wifi凭据。然后它连接到你的本地wifi,并通过NTP同步时间。
时钟将以24小时格式显示时间,顶行显示小时,底行显示分钟。
希望这个项目能激发你的创造力,让你对立体动态效果有更深的理解。如果你有任何问题或想要了解更多细节,请随时在评论区留言。期待看到你的创意作品!
希望你喜欢这个项目,并在构建过程中找到乐趣!如果你有任何问题或需要帮助,欢迎在评论区交流。
作者:Svan.
注意:本博文为不得在未经本人同意进行转载或者二次创作,违者必究!!!