用ESP32-C3做一個運動按鈕
你會用一個按鈕做些什麼呢?
開啟一個燈光?
一個門鈴?
還是讓人運動起來?
按鈕有很多種,但我最喜歡街機按鈕,因為它們通常有很好的觸感,“咔噠”的感覺。我的工具箱裡有幾個街機按鈕,我一直想用它們做點什麼。有一天我靈光閃現,可以利用按鈕DIY一個運動裝置。我將製作 4 個運動按鈕,一個作為主節點,帶有支援選單顯示的螢幕,另外三個作為從節點,透過ESP-NOW協議通訊。它們都基於 ESP32-C3。
材料清單:
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秒。
我猜此刻你一定是坐著,眼睛注視著螢幕吧!
長時間的久坐,你的腰還好嗎?
快起來活動活動,放鬆一下吧!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70015303/viewspace-2924883/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Blazor入門100天 : 自做一個支援長按事件的按鈕元件Blazor事件元件
- 一個按鈕,一鍵傳功!
- 用CSS Houdini實現一個Material風格的按鈕CSS
- Flutter 敲一個靈動的錄音按鈕動畫 - Speed CodeFlutter動畫
- 點選一個按鈕使其樣式發生變化,再點選另一個按鈕發生同樣變化,但上一個按鈕樣式復原
- 擼一款”靈動“的滑動按鈕
- 上手做一個華為鴻蒙手錶應用 2 - 在主頁新增一個按鈕並響應點選事件鴻蒙事件
- 58同城APP導航、按鈕、表單、圖示運用淺析APP
- QT經驗(一)——按鈕長按事件分析QT事件
- Fiori Elements List Report table 裡的普通按鈕,Global 按鈕 和 Determining 按鈕
- flutter demo (一):居中的按鈕Flutter
- vue之神奇的動態按鈕Vue
- 底部按鈕固定方案(移動端)
- CSS3動畫按鈕效果CSSS3動畫
- (iOS)從0到Double系列 如何刻出一個可拖動的導航浮動按鈕iOS
- 高亮按鈕
- 【Oculus Interaction SDK】(六)實體按鈕 && 按壓互動
- css設定按鈕心跳收縮後,按鈕文字上下抖動,如何解決?CSS
- switch button 待完善,做出一個合理的開關按鈕
- 一個簡單的Vue按鈕級許可權方案Vue
- 使用SVG實現的一個Android播放/暫停按鈕SVGAndroid
- iOS - 新增一個全域性懸浮按鈕(整合pods版)iOS
- JavaScript新增一個文字框並帶有刪除按鈕JavaScript
- 建立工程,編寫一個介面有兩個按鈕的程式,通過定時器控制這兩個按鈕上的文字變化。定時器
- radio 單選按鈕 選中多個
- 配置選單按鈕掃一掃
- 用 canvas 做一個 DVD 待機動畫Canvas動畫
- 電腦隨身碟啟動按鈕
- Qt實現一個支援QSS的Switch Button(開關按鈕)QT
- Flutter Button(按鈕)Flutter
- 小程式按鈕
- 復飛按鈕
- 核取方塊有四個按鈕,選擇兩個按鈕,table 就會出現相應資料,驗證資料是否正確,應該怎麼做?
- arXiv和Hugging Face夢幻聯動,一個按鈕直達論文、模型、資料集Hugging Face模型
- VUE動態路由和按鈕的實現Vue路由
- 建議收藏:Axure互動常用按鈕組
- 左右帶有按鈕圖片水平滾動
- CSS3滑動開關按鈕效果CSSS3