本帖最后由 派大星ym 于 2022-11-24 11:16 编辑

你会用一个按钮做些什么呢?
打开一个灯光?
一个门铃?
还是让人运动起来?

QQ图片20221117162351.png

按钮有很多种,但我最喜欢街机按钮,因为它们通常有很好的触感,“咔哒”的感觉。我的工具箱里有几个街机按钮,我一直想用它们做点什么。有一天我灵光闪现,可以利用按钮DIY一个运动装置。我将制作 4 个运动按钮,一个作为主节点,带有支持菜单显示的屏幕,另外三个作为从节点,通过ESP-NOW协议通信。它们都基于 ESP32-C3,一款来自 DFRobot 的微型控制器。
QQ图片20221118100326.png



材料清单:



电路连接:
电路图2.png

蜂鸣器连接在第(6)接口上
按钮接线连接在第(5)接口上
ws2812连在第(0)接口上
屏幕连接到I2C接口上
此应用共有4个节点,包含1个主节点和3个从节点,主节点与从节点的区别在于多一个显示屏


硬件组装:
QQ图片20221118100320.png


接WS2812灯珠(按照GND,VCC,信号的顺序焊接起来)
QQ图片20221116142239.png

焊接3.7V充电锂电池
QQ图片20221116142235.png
QQ图片20221117090627.png

通过Gravity接口快速连接:显示屏/蜂鸣器—ESP32-C3
QQ图片20221118152350.jpg

在塑料外壳上切割出Type-C/显示屏/开关/按钮的切口
QQ图片20221116140350.png
QQ图片20221116140354.png

安装游艺机按键

QQ图片20221117090608.png

安装电源开关
QQ图片20221117090612.png

安装显示屏

QQ图片20221118152820.jpg

利用热熔胶固定电池/蜂鸣器
QQ图片20221118152823.jpg

固定ESP32-C3

QQ图片20221121100303.png
QQ图片20221121100312.png
QQ图片20221121100315.png

合上盖子,拧上螺丝
QQ图片20221117101042.png

至此已经完成主节点的制作,还需重复上述步骤完成另外3个从节点的制作(从节点不包含显示屏)
QQ图片20221117101045.png


上传程序

此应用主从节点之间通过ESP-NOW协议通信,想要通过NOW协议进行通信,还需要获取每个ESP32-C3的唯一MAC地址,这样才知道将信息发送到哪个设备。
QQ图片20221118143430.png

把程序里的MAC地址修改为自己的,然后上传
QQ图片20221117101747.png


展示玩法:
简单说下游戏规则的设置
在程序里,我预设了三个模式,可以用短按来选择,长按2秒来确认选择。需要切换的时候,随时可以用长按来进入菜单。
QQ图片20221118111351.png

模式1-是打地鼠模式
这个模式下,会随机在4个运动按钮上出现红色,需要再最短时间内按下,才能获得成绩。
C3yy1.gif
C3yy3.gif
C3yy5.gif
C3yy6.gif

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

模式3-是随机模式
在这个模式下,我们按下运动按钮,就会随机的选择一个运动按钮。如果不知道选谁时,可以让机器帮你决定。

还有单个节点的摸高玩法

C3yy7.gif


ESP-NOW延时测试:

为确认NOW协议可以满足通信要求,这样做了一个基本的ESP-NOW通信延时测试,记录节点向另一节点发送信息并收到返回信息的时间,发射和接收信息的延时是4ms左右,单向传播的延时约为2ms左右,相当于1/100秒。
QQ图片20221117103609.png


我猜此刻你一定是坐着,眼睛注视着显示屏吧!
长时间的久坐,你的腰还好吗?
快起来活动活动,放松一下吧!


传送门-
https://github.com/DFRobot/SportsButtonESP32C3

https://www.youtube.com/watch?v=HAt3EoVqO7I