构建一款由 Arduino 控制的印度卡车闹钟,配有双层 OLED 显示屏,还有逼真的卡车启动声音
扫描二维码
随时随地手机看文章
这一切都始于一条随意发布的 Instagram 视频片段。
我偶然发现了一款那种高端的道奇挑战者型闹钟,它的启动声音是那种充满力量感的引擎轰鸣声,而不是普通的闹钟铃声。老实说,它看起来超级酷——但看了它一会儿之后,我却觉得:
“为什么它只能是这种运动型汽车的样式呢?为什么不设计出更具色彩、更响亮、更具印度特色的东西呢?”
而正是在那里,这个项目的构想应运而生。
我没有选择再设计一款时尚的汽车主题时钟,而是决定打造一款以印度卡车为灵感的闹钟——这款闹钟看起来就像是直接从印度的公路上走出来的,有着明亮的灯光、响亮的喇叭声、柴油发动机的声音,以及印度卡车所特有的那种夸张的个性特征。
整个机身都是为 3D 打印而设计的,并且是使用 JUSTWAY 技术制造的,这使得将想法转化为实际的物理物体变得异常简单。如果你打算制作基于外壳的复杂电子项目,那绝对值得一试。
最终的效果比我预期的要更加令人身临其境。
每天清晨,不再是那单调的“哔”声:
•卡车“启动了”
•发动机点火音频播放
•LED灯开始闪烁
•卡车的喇叭声和怠速声持续不断地循环播放着。
•这台时钟就像一台放在你桌上的小型柴油卡车一样运转着。
五分钟后,卡车自动熄火,发出逼真的熄火声。
这很奇怪。声音太大了。而且完全没有必要。
老实说,这恰恰就是它有趣的原因所在。
建筑背后的故事
印度的卡车与跑车给人的感觉截然不同。
它们色彩鲜艳、声音响亮、充满戏剧性,而且似乎还颇具特色。从涂漆的保险杠到装饰性的灯饰以及巨大的喇叭,它们已经显得既机械又充满活力。因此,我没有直接照搬原款道奇风格的设计理念,而是围绕卡车平台对这个概念进行了重新设计。
其目的并非仅仅是为了展示时间。
我希望这个时钟能充满活力。
这就是我添加以下内容的原因:
•发动机启动声
•空转循环
•卡车喇叭音频
•闪烁的发光二极管
•自动关机程序
这个结果给人的感觉更像是一个小型卡车驾驶模拟器,而不是一个闹钟。
特点/特征
•双 OLED 显示屏,显示小时和分钟
•使用 DS3231 实时计时器的时钟系统
•逼真的卡车启动音效
•发动机持续怠速 + 司机制动器连续鸣笛声
•发动机在 5 分钟后自动关闭
•闪烁的指示灯与报警状态同步一致
•完全由 Arduino 控制
•定制的 3D 打印式卡车外壳
所用组件
•Arduino UNO:主控制器
•DS3231 实时钟模块:实时时钟
•2 个 OLED 显示屏:时间显示屏
•LEDs:卡车照明效果
•扬声器:音频输出
•3D 打印人体:卡车车厢模型
•跳线:连接件
•电源:系统电源
3D 打印部件
该卡车车身是根据客户需求专门设计的,并且是使用“JUSTWAY”技术进行 3D 打印而成的。
我选择采用专业印刷方式而非在本地印刷的原因是:
•更优的表面处理效果
•清洁保养服务
•更精准的适配性
•减少后期处理
由于该外壳设有多个用于展示、安装 LED 灯和扬声器的区域,因此尺寸精度至关重要。
工作原理
该系统使用 DS3231 实时时钟模块来持续跟踪当前时间。
当预设的警报时间到时:
•DFPlayer Mini 播放了一段卡车启动的声音
•LED开始闪烁
•发动机处于怠速状态,喇叭声持续循环播放。
•警报会持续响 5 分钟。
•一阵卡车停机的声音响起
•所有设备都会自动关闭。
与此同时,OLED 显示屏持续显示:
•左 OLED → 小时数
•右 OLED → 记录时间
这种分屏设计让这个时钟看起来更具未来感,更像是一块仪表盘。
电路说明
Arduino UNO 控制着所有模块:
•RTC 提供准确的时间
•DFPlayer 负责音频播放操作
•OLED 显示器显示时间
•LED灯模拟卡车前灯的效果
DFPlayer 中的“BUSY”引脚用于检测音频轨道播放结束的时刻。这样,Arduino 就能够自动开始播放下一个音频文件,而无需延迟或手动设定时间。
那个小小的细节使得启动和循环过程显得更加流畅了。
设计流程
这种封闭式设计经过了多次修改完善。
起初,我试图让卡车的形状更加逼真,但结果却发现很难将其设计得合乎要求:
•OLED 显示屏
•扬声器
•布线
•Arduino 板子
因此,我简化了结构,同时保留了具有辨识度的印度卡车的外观设计。
这些 OLED 显示屏是特意分开摆放的,这样整个时钟就看起来像一个汽车仪表盘了。
另一个难题在于扬声器的安装位置,因为封闭式音频在 3D 打印的外壳内部听起来会比较模糊。我不得不尝试调整通风口的位置,以提高声音的清晰度。
音频序列逻辑
音频系统是分阶段工作的。
启动阶段
首先响起的是卡车的启动声。
循环阶段
在启动完成后,代码会持续循环执行以下操作:
•发动机怠速
•号角声
通过监测“BUSY”引脚来检测轨道的完成情况。
关闭阶段
五分钟后:
卡车的关闭声响起,指示灯也随之熄灭。
OLED 显示逻辑
使用了两块独立的 OLED 显示屏:
•一小时之后
•一分钟就好
这使得该项目呈现出更具机械感的仪表盘式外观,而非像普通的数字时钟那样。
所面临的挑战
音频同步
其中最大的难题在于让音频过渡效果显得自然流畅。
基于延迟的简单定时方式感觉不太可靠,因为音频轨道的长度会有轻微的差异。而使用 DFPlayer 的 BUSY 引脚则彻底解决了这个问题。
OLED 接线
同时运行两块 OLED 显示屏需要对软件 I2C 引脚进行细致的处理。
内部空间
配件:
•扬声器
•布线
•DFPlayer
•LEDs(发光二极管)
卡车内部的构造确实比编写代码还要复杂。
测试流程
测试这个项目真是太有趣了。
每次警报响起时,这张办公桌就会突然变得像一个卡车仓库一般嘈杂。
首次成功的测试中:
•LED灯正常闪烁了。
•启动音效响起
•喇叭环路正常工作
•系统已自动关闭。
感觉非常令人满意。
本文编译自hackster.io





