結合了無線電訊號強度(RSSI)分析與視覺特效的進階 Micro:bit 專案。
由於 RSSI(訊號強度)並不是完美的線性測距工具,會受環境干擾,我將在程式中加入分級區間的邏輯,將訊號強度轉換為「估計公尺數」,並據此驅動 P1 燈條與 LED 矩陣的變化。
1. 程式碼檔案 (JavaScript / TypeScript)
2. 簡報用流程圖 (文字敘述)
程式運作邏輯:
第一階段:系統初始化 (Start)
設定外接燈條 (P1, 15顆)。
開啟無線電 (群組1, 最大功率)。
開機特效:執行迴圈 3 次。
板載 LED 顯示大愛心。
燈條顯示彩虹並來回流動。
暫停並熄滅,準備下一次閃爍。
第二階段:主迴圈 (Loop)
發送訊號:每 0.2 秒發送一次無線電廣播。
等待接收:監聽是否有其他 Micro:bit 的訊號。
第三階段:訊號處理與互動
若收到訊號:
讀取 RSSI (訊號強度)。
計算距離:將強度換算為 1~5 公尺等級。
更新特效:
距離 1m:顯示大愛心 + 燈條紅色 (極亮)。
距離 2-3m:顯示小愛心 + 燈條綠色 (中亮)。
距離 >4m:顯示小點 + 燈條藍色 (微亮)。
若訊號中斷 (超過 1 秒無訊號):
關閉所有燈光與螢幕,進入待機模式。
3. Mermaid 流程圖
您可以將此代碼複製到支援 Mermaid 的編輯器(如 Notion, Obsidian, 或線上 Mermaid Live Editor)中查看視覺化圖表。
程式與硬體注意事項:
擴充積木:在 MakeCode 編輯器中,請務必點選「擴充 (Extensions)」並搜尋
neopixel來加入燈條控制功能。電源供應:15 顆燈珠全亮白色時電流較大,建議使用擴充板外接電源,或者確保 Micro:bit 電池電量充足。
距離準確度:RSSI 會受到障礙物、手持角度與電池電量影響,程式中的
-50,-65等數值可能需要根據您實際場地的狀況微調。
你是 micro:bit javascript 專家,
產生以下功能的程式:
+ 多片micro:bit感測彼此距離。
+ 硬體接線:外接燈條之訊號線接 P1,電源接 3V/GND,15 顆燈珠。
+ 擴展: neopixel。
+ 開機:micro:bit 大愛心閃一次,外接燈條呼叫以下模組:
- fnKnightRider:霹靂遊俠中車燈效果, 三次。
+ 無線電群組
+ micro:bit 根據彼此距離規則如下:
- 聲音:隨著距離拉遠音量降低。
- 距離0 - 0.5 公尺,外接燈條:紅色;micro:bit上的LED顯示0;聲音:搞笑, 震撼放大。
- 距離0.5 - 1.5 公尺,外接燈條:橙色;micro:bit上的LED顯示1;
- 距離1.5 - 2.5 公尺,外接燈條:黃色;micro:bit上的LED顯示2;
- 距離2.5 - 3.5 公尺,外接燈條:綠色;micro:bit上的LED顯示3;
- 距離3.5 - 4.5 公尺,外接燈條:青色;micro:bit上的LED顯示4;
- 距離4.5 - 5.5 公尺,外接燈條:藍色;micro:bit上的LED顯示5;
- 距離5.5 - 6.5 公尺,外接燈條:紫色;micro:bit上的LED顯示6;
- 距離6.5 以上, 燈條熄滅。micro:bit上的LED顯示9;
沒有留言:
張貼留言