Distance


結合了無線電訊號強度(RSSI)分析與視覺特效的進階 Micro:bit 專案。

由於 RSSI(訊號強度)並不是完美的線性測距工具,會受環境干擾,我將在程式中加入分級區間的邏輯,將訊號強度轉換為「估計公尺數」,並據此驅動 P1 燈條與 LED 矩陣的變化。

1. 程式碼檔案 (JavaScript / TypeScript)


2. 簡報用流程圖 (文字敘述)

程式運作邏輯:

  • 第一階段:系統初始化 (Start)

    1. 設定外接燈條 (P1, 15顆)。

    2. 開啟無線電 (群組1, 最大功率)。

    3. 開機特效:執行迴圈 3 次。

      • 板載 LED 顯示大愛心。

      • 燈條顯示彩虹並來回流動。

      • 暫停並熄滅,準備下一次閃爍。

  • 第二階段:主迴圈 (Loop)

    1. 發送訊號:每 0.2 秒發送一次無線電廣播。

    2. 等待接收:監聽是否有其他 Micro:bit 的訊號。

  • 第三階段:訊號處理與互動

    • 若收到訊號

      1. 讀取 RSSI (訊號強度)。

      2. 計算距離:將強度換算為 1~5 公尺等級。

      3. 更新特效

        • 距離 1m:顯示大愛心 + 燈條紅色 (極亮)。

        • 距離 2-3m:顯示小愛心 + 燈條綠色 (中亮)。

        • 距離 >4m:顯示小點 + 燈條藍色 (微亮)。

    • 若訊號中斷 (超過 1 秒無訊號):

      1. 關閉所有燈光與螢幕,進入待機模式。


3. Mermaid 流程圖

您可以將此代碼複製到支援 Mermaid 的編輯器(如 Notion, Obsidian, 或線上 Mermaid Live Editor)中查看視覺化圖表。


程式與硬體注意事項:

  1. 擴充積木:在 MakeCode 編輯器中,請務必點選「擴充 (Extensions)」並搜尋 neopixel 來加入燈條控制功能。

  2. 電源供應:15 顆燈珠全亮白色時電流較大,建議使用擴充板外接電源,或者確保 Micro:bit 電池電量充足。

  3. 距離準確度: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;


Project

Hex

mermaid_1

mermait_2


沒有留言:

張貼留言

教學預計進度-個人學習歷程(簡報)參考(114_8上)

各週教學預計進度(課程索引)供個人學習歷程內容參 考: