基于 ESP32 制作的扑克牌创意时钟

MAKER: shiura/译:趣无尽(转载请注明出处)
一副闲置的扑克和 3D 打印的支架就可以搭建一款创意十足的扑克牌时钟。我使用扑克牌作为时钟的襟翼,并用最少的零件制作了一个有趣而疯狂的时钟,项目中最困难的部分就是用 3D 打印的支架制作分离式的翻盖显示器。

项目特点
1、设计简单,每个显示部分仅由 3 种部件组成,不需要传感器。
2、时钟的翻转:通过随机排列的卡片,感受襟翼翻转的动作。
3、WiFi 时间获取:通过连接到 WiFi 后的 ntp 获取。

组件清单

扑克牌(57mm x 89mm) × 1
带 28BYJ-48 驱动板的步进电机 × 3
ESP32 微控制器 (M5stamp C3) × 1
双面胶 × 1
自攻螺钉 × 若干
拉链状的链条 × 1

3D 打印支架

请 3D 打印以下部分:
1、轴、合页和转子。
2、底座和盖子。

轴、合页和转子的尺寸为:200mm x 200mm。
合页需要打印 14 个。
完成后需要打磨所有的 3D 的零件。

3D 打印文件可在本项目文件库中下载:
https://make.quwj.com/project/420

组装

组装翻转支架
可查看视频观看转子的安装。

1、在安装卡牌底座(合页)之前,确保卡牌可以顺利插入。

2、通过卡扣方式将合页连接到转子上。

3、合页有正反之面,请如图安装。
4、装上合页后,请查看它是否能够转动顺畅。转动的摩擦力可以使它运转更光滑。

连接电机

1、使用两个自攻螺钉固定电机。

2、从后面缠绕电线。
3、使用扎带固定电线。

将转子连接到电机

1、将步进电机的轴插入至转子的孔中。
2、如果松动,可以在孔中滴入强力胶将其固定。

插入扑克牌

1、将双面胶粘贴在卡牌的短边上。

2、将卡牌滑入合页的通道中。
3、卡牌与柱体之间保持 1-2mm 的距离为佳。
4、你可以随机排列卡片或有序排列,请注意它是顺时针旋转的。

将三个部分组合在一起

1、使用自攻螺钉将每个部分安装到底座上。
2、将电机驱动器固定到底座上。
3、直接焊接电线后,使用盖子将电机盖住,M5stack 可以用 M2 螺丝固定。如果你使用杜邦连接器,盖子就太小了,不适合。

连接微控制器

控制器的选择
1、使用 ESP8266/ESP32 模块采集带 WiFi 的时钟代码。
2、使用任何具有 12 个或更多 GPIO 端口的微控制器来控制三个步进电机,我使用得是 M5stamp-C3。

M5stamp-C3的连接方式

1、将第一个(显示分钟)电机的四个引脚分别连接到 G4、G5、G6、G7。
2、将第二个(显示几十分钟)电机的四个引脚分别连接到 G0、G1、G8、G10。
3、将第三(显示时钟)电机的四个引脚分别连接到 G9、G18、G19、G21。
4、将 5V 和 GND 连接到微控制器,其中 M5stamp-C3 有三对 5V 和 GND。

烧录源代码和 Flash

测试

这里提供两种类型的测试代码:每个时钟单元的测试以及同时驱动的三个单元的测试。
1、将卡牌的顺序输入到源代码中。
2、如果你使用 M5stamp 以外的微控制器,请编辑端口分配。
3、使用 Arduino IDE 刷新代码。
4、在使用 clock.ino 之前使用 single-unit-test.ino 确认卡拍顺序是否正确。因为时钟代码太慢,无法检查所有卡牌。

时钟

1、将卡牌的定义从测试代码复制到 clock.ino。
2、使用 Arduino IDE 将 clock.ino 闪存到微控制器。
3、使用 SmartConfig 配置 SSID/密码。

你可以使用智能手机应用程序设置你 WiFi 的 SSID 和密码。该应用程序名称为 SmartConfig,安装方法如下。

安卓系统:
https://play.google.com/store/apps/details?id=com.khoazero123.iot_esptouch_demo
iOS 系统:
https://apps.apple.com/jp/app/espressif-esptouch/id1071176700

请注意,你的智能手机应连接到 2.4GHz WiFi。

M5stamp (clock.ino) 上的 LED 的颜色显示

绿色:初始化转子(逆时针旋转)。
蓝色:连接之前储存在存储器中的 WiFi。
红色:smartConfig 模式。 如果 WiFi 连接失败,则进入此模式。
LED 关闭:时钟操作模式。

测试文件可在本项目文件库中下载:
https://make.quwj.com/project/420

现在,这个项目就完成了,希望你喜欢这个翻转扑克牌时钟。
via

坐沙发

发表评论

你的邮件地址不会公开


*