2024年9月25日

電腦以藍牙直接控制micro:bit的LED

延續上一篇,繼續用電腦藍牙直接控制micro:bit,這次直接用軟體來控制,就不自己寫程式。

先安裝 Bluetooth LE Explorer

https://apps.microsoft.com/detail/9n0ztkf1qd98?hl=zh-tw&gl=US


在micro:bit上,只開啟[藍牙LED服務]


開啟 Bluetooth LE Explorer,掃描周圍的BLE裝置,我的micro:bit就在電腦旁邊,所以前幾個就能找到

點下去就連線了,看到一堆代碼應該不知從何下手

這時候又需要看 micro:bit的 Profile了

Bluetooth Developer Studio Level 3 Profile Report


LED服務的UUID是 E95DD91D251D470AA062FA1922DFA9A8


這個SERVICE裡有三個CHARACTERISTICS
  • E95D7B77251D470AA062FA1922DFA9A8 LED Matrix State
  • E95D93EE251D470AA062FA1922DFA9A8 LED Text
  • E95D0D2D251D470AA062FA1922DFA9A8 Scrolling Delay


在Bluetooth LE Explorer裡應該會在最底下看到這三個東西,先以第一個做例子,這就是讀取或寫入LED的狀態。

row 1 是第1個byte
row 2 是第2個byte
row 3 是第3個byte
row 4 是第4個byte
row 5 是第5個byte

0和1代表LED的關和開,以row 1為例
全關00000,用十六進位表示為00。
只開最右邊那個燈是00001,十六進位是01
只開最左邊那個燈是10000,十六進位是10
全開是11111,十六進位為1F

如果你了解上面的規則後,就把每一row的LED狀態寫入就能控制LED了

舉例來說愛心的圖案長這樣
如果是二進位就是輸入 01010-11111-11111-01110-00100
換成十六進位就是0A-1F-1F-0E-04




接下來是控制LED Text,記得改成用UTF8。只要輸入文字就可以用藍牙控制micro:bit顯示文字了。




最後一個Scrolling Delay則是控制捲動文字的時間,預設120ms,因為是Little-Endian,所以十六進位是7800,如果要更改成100,就用HEX輸入6400,這個就是100的十六進位,如果要捲超快,1ms的話,就是輸入0100。