
打开一个灯光?
一个门铃?
还是让人运动起来?

按钮有很多种,但我最喜欢街机按钮,因为它们通常有很好的触感,“咔哒”的感觉。
我的工具箱里有几个街机按钮,我一直想用它们做点什么。
有一天我灵光闪现,可以利用按钮DIY一个运动装置。
我将制作 4 个运动按钮,一个作为主节点,带有支持菜单显示的屏幕,另外三个作为从节点,通过ESP-NOW协议通信。
它们都基于 ESP32-C3,一款来自 DFRobot 的微型控制器。
材料清单
-
ESP32-C3 x4 -
Gravity: I2C OLED-2864 显示屏 -
Gravity: 数字蜂鸣器模块(Arduino兼容) x4 -
3.7V电池 x4 -
WS2812灯珠 x4 -
游艺机按键 x4 -
电源开关 x4 -
外壳 x4
电路连接
-
蜂鸣器连接在第(6)接口上 -
按钮接线连接在第(5)接口上 -
ws2812连在第(0)接口上 -
屏幕连接到I2C接口上
此应用共有4个节点,包含1个主节点和3个从节点,主节点与从节点的区别在于多一个显示屏。
硬件组装
焊接WS2812灯珠(按照GND,VCC,信号的顺序焊接起来):
焊接3.7V充电锂电池:
通过Gravity接口快速连接:显示屏/蜂鸣器—ESP32-C3:
在塑料外壳上切割出Type-C/显示屏/开关/按钮的切口:
安装游艺机按键:
安装电源开关:
安装显示屏:
利用热熔胶固定电池/蜂鸣器:
固定ESP32-C3:
合上盖子,拧上螺丝:
至此已经完成主节点的制作,还需重复上述步骤完成另外3个从节点的制作(从节点不包含显示屏)
上传程序
此应用主从节点之间通过ESP-NOW协议通信,想要通过NOW协议进行通信,还需要获取每个ESP32-C3的唯一MAC地址,这样才知道将信息发送到哪个设备。
把程序里的MAC地址修改为自己的,然后上传:
展示玩法
简单说下游戏规则的设置,在程序里,我预设了三个模式,可以用短按来选择,长按2秒来确认选择。
需要切换的时候,随时可以用长按来进入菜单。
模式1-打地鼠模式
这个模式下,会随机在4个运动按钮上出现红色,需要在最短时间内按下,才能获得成绩。




模式2-接力模式
在这个模式下,每按一次运动按钮上出现的绿色按钮,下一个运动按钮就会变成绿色。

模式3-随机模式
在这个模式下,我们按下运动按钮,就会随机的选择一个运动按钮。如果不知道选谁时,可以让机器帮你决定。
还有单个节点的摸高玩法:

ESP-NOW延时测试:
为确认NOW协议可以满足通信要求,这样做了一个基本的ESP-NOW通信延时测试,记录节点向另一节点发送信息并收到返回信息的时间,发射和接收信息的延时是4ms左右,单向传播的延时约为2ms左右,相当于1/100秒。
我猜此刻你一定是坐着,眼睛注视着显示屏吧! 长时间的久坐,你的腰还好吗?快起来活动活动,放松一下吧!
传送门:https://github.com/DFRobot/SportsButtonESP32C3
硬件军火库
点击了解详情👆
大家有什么想说的,欢迎在下方留言!
点击左下角阅读原文,直接和作者交流!
往期项目回顾
点击阅读👆

