你会用一个按钮做些什么呢?
打开一个灯光?
一个门铃?
还是让人运动起来?
按钮有很多种,但我最喜欢街机按钮,因为它们通常有很好的触感,“咔哒”的感觉。我的工具箱里有几个街机按钮,我一直想用它们做点什么。有一天我灵光闪现,可以利用按钮DIY一个运动装置。我将制作 4 个运动按钮,一个作为主节点,带有支持菜单显示的屏幕,另外三个作为从节点,通过ESP-NOW协议通信。它们都基于 ESP32-C3,一款来自 DFRobot 的微型控制器。
材料清单:
- ESP32-C3x4
- OLED显示屏
- 数字蜂鸣器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
https://www.youtube.com/watch?v=HAt3EoVqO7I