用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事件元件
- 一個按鈕,一鍵傳功!
- 用屬性動畫實現一個確認按鈕動畫
- 一個Form中2個按鈕,PHP後臺如何判斷提交的是哪一個按鈕ORMPHP
- 上手做一個華為鴻蒙手錶應用 2 - 在主頁新增一個按鈕並響應點選事件鴻蒙事件
- 用CSS Houdini實現一個Material風格的按鈕CSS
- 按鈕拖拽移動
- Flutter 敲一個靈動的錄音按鈕動畫 - Speed CodeFlutter動畫
- 擼一款”靈動“的滑動按鈕
- UIButton(用按鈕中的文字大小來動態設定按鈕的尺寸)UI
- 點選一個按鈕使其樣式發生變化,再點選另一個按鈕發生同樣變化,但上一個按鈕樣式復原
- 按鈕滾動條效果
- 如何點選一個按鈕實現列印
- 點選按鈕彈出一個居中div
- 用VB製作即時動態按鈕 (轉)
- 按鈕上面的按鈕 (轉)
- VB “秒錶”窗體中有兩個按鈕“開始/停止”按鈕
- JavaScript點選按鈕刪除一個div元素JavaScript
- iOS中按鈕無法互動的5個原因iOS
- Java GUI之建立一個只有兩個按鈕的框架JavaGUI框架
- PPT製作動感按鈕
- 模擬展示動態按鈕
- 實現浮動按鈕 (轉)
- 58同城APP導航、按鈕、表單、圖示運用淺析APP
- 按鈕
- QT經驗(一)——按鈕長按事件分析QT事件
- Mobile Home車載按鈕試用:啟動Siri更方便
- 自定義一個酷炫的提交完成按鈕
- 為主頁新增一個漂亮的按鈕(下)(轉)
- 為主頁新增一個漂亮的按鈕(上)(轉)
- (iOS)從0到Double系列 如何刻出一個可拖動的導航浮動按鈕iOS
- vue之神奇的動態按鈕Vue
- 底部按鈕固定方案(移動端)
- 仿switch風格滑動按鈕
- flutter demo (一):居中的按鈕Flutter
- JavaScript左右拖動滑動的按鈕效果JavaScript
- 【Oculus Interaction SDK】(六)實體按鈕 && 按壓互動