用ESP32-C3做一个运动按钮

2022-11-213.8万
精华项目
AI 快速预览详细 收起
该项目使用DFRobot的Beetle ESP32-C3微型控制器,结合街机按钮、OLED显示屏等硬件,通过ESP-NOW协议实现多节点通信。共有4个节点,包括1个主节点和3个从节点。主节点带有支持菜单显示的屏幕,从节点则没有。项目中预设了三种模式:打地鼠模式、接力模式和随机模式。通过短按选择模式,长按2秒确认选择。此外,还进行了ESP-NOW通信延时测试,单向传播延时约为2ms。


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

用ESP32-C3做一个运动按钮图12

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

用ESP32-C3做一个运动按钮图15






材料清单:



电路连接:

用ESP32-C3做一个运动按钮图29

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



硬件组装:

用ESP32-C3做一个运动按钮图16

接WS2812灯珠(按照GND,VCC,信号的顺序焊接起来)
用ESP32-C3做一个运动按钮图3

焊接3.7V充电锂电池
用ESP32-C3做一个运动按钮图4
用ESP32-C3做一个运动按钮图5

通过Gravity接口快速连接:显示屏/蜂鸣器—ESP32-C3
用ESP32-C3做一个运动按钮图23

在塑料外壳上切割出Type-C/显示屏/开关/按钮的切口
用ESP32-C3做一个运动按钮图1
用ESP32-C3做一个运动按钮图2

安装游艺机按键

用ESP32-C3做一个运动按钮图6

安装电源开关
用ESP32-C3做一个运动按钮图7

安装显示屏

用ESP32-C3做一个运动按钮图24

利用热熔胶固定电池/蜂鸣器
用ESP32-C3做一个运动按钮图25

固定ESP32-C3

用ESP32-C3做一个运动按钮图26

用ESP32-C3做一个运动按钮图27

用ESP32-C3做一个运动按钮图28


合上盖子,拧上螺丝
用ESP32-C3做一个运动按钮图8

至此已经完成主节点的制作,还需重复上述步骤完成另外3个从节点的制作(从节点不包含显示屏)
用ESP32-C3做一个运动按钮图9



上传程序



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

把程序里的MAC地址修改为自己的,然后上传
用ESP32-C3做一个运动按钮图10




展示玩法:
简单说下游戏规则的设置
在程序里,我预设了三个模式,可以用短按来选择,长按2秒来确认选择。需要切换的时候,随时可以用长按来进入菜单。
用ESP32-C3做一个运动按钮图21

模式1-是打地鼠模式
这个模式下,会随机在4个运动按钮上出现红色,需要再最短时间内按下,才能获得成绩。
用ESP32-C3做一个运动按钮图13

用ESP32-C3做一个运动按钮图14

用ESP32-C3做一个运动按钮图18

用ESP32-C3做一个运动按钮图19

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

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

还有单个节点的摸高玩法

用ESP32-C3做一个运动按钮图20





ESP-NOW延时测试:

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







我猜此刻你一定是坐着,眼睛注视着显示屏吧!
长时间的久坐,你的腰还好吗?

快起来活动活动,放松一下吧!







传送门-
相关资料:github
视频——哔哔哩哩

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(25)
xiaohe9527
xiaohe9527
外壳哪里来的呢?外壳外外壳外壳
xiaohe9527
xiaohe9527
这个真的是个好项目,相当nice
小鱼果果
小鱼果果

鹅无关试试看能不能发送
耘想
耘想
66666666666666666666666666666666666
9mm
9mm
楼主挺酷啊[Doge]
契约者
契约者
真帅,看起来很好玩啊
派大星ym
派大星ym
作者
回复契约者
哈哈哈哈哈
耘想
耘想
66666666666666666666
三春牛-创客
三春牛-创客
赞赞赞赞赞
花生编程
花生编程
有创意!
花生编程
花生编程
不错不错
花生编程
花生编程
厉害厉害
JVUm7ppJGaRK
JVUm7ppJGaRK
运动项目的好帮手。
JVUm7ppJGaRK
JVUm7ppJGaRK
胖子的福音,哈哈!
摸鱼的网民
摸鱼的网民
好帅啊!
摸鱼的网民
摸鱼的网民
他甚至有雕刻机,我们学校除了3D打印机啥都没有(羡慕)
派大星ym
派大星ym
作者
回复摸鱼的网民
哈哈哈哈哈
摸鱼的网民
摸鱼的网民回复花生编程
我们的一个学长找老师借电脑结果提错主机了,那主机甚至被我们信息技术老师拆的啥都不剩了,关键是它还能用!!
共7条回复,已加载2条,点击查看更多共7条回复,已加载全部
zhuoyan
zhuoyan
代码连接已经失联了吗?
派大星ym
派大星ym
作者
回复zhuoyan
没有哟,你看一下自己的电脑能不能正常访问GitHub
三春牛-创客
三春牛-创客
不错,很好!
派大星ym
派大星ym
作者
回复三春牛-创客
。。。。
冬天
冬天
你好,请问你的雕刻机什么什么牌子的呢?我看你是用代码编程的,用图形能编写同样的程序?
duskash
duskash回复冬天
snapmaker 是 3D 打印、CNC、激光雕刻 3合1 的。不过 CNC 不能加工金属,其他的也基本比不过消费级专用机器,比如 3D 打印肯定没有竹拓强。自己做点东西基本够用
派大星ym
派大星ym
作者
回复冬天
应该是可以的,总体思路就是主节点产生随机数,根据随机数向对应的从节点发送信号
糖醋花生
糖醋花生
楼主有亿点帅

河岸上的鱼
河岸上的鱼
可以可以
派大星ym
派大星ym
作者
回复河岸上的鱼
bbbb