玩 microbit 應用 SPI 介面 外接 8x8 LED Matrix (MAX7219)

動機micro:bit 可否外接 LED Matrix 來顯示更多樣化的字呢?!

準備環境
1.Windows筆電/Raspberry Pi 3(本篇在MacOS平台執行Mu會當掉)
2.micro:bit(需連接USB數據線)
3.micro:bit Expansion Board
4.麵包板專用電源模組(3.3/5V可切換, 本實作請切換至 3.3V)
5.MAX7219点阵模块(接线排针需自行焊接)

實作步驟
1.MAX7219及micro:bit接腳,如下圖

請記得:麵包板專用電源模組之負極(-) 與 micro:bit 之 GND 需連接共地(如上圖最左邊黑線)

2.在MacOS平台上,由於 Muhttps://codewith.mu/ ) 安裝後按上方的 [Files] 會無法讀取而當掉,因此,改安裝 Development版,請依網頁 https://github.com/mu-editor/mu 指示步驟(需先安裝python3, pip3)安裝之...
2.在 Windows 平台,先下載 Mu 0.9.13 檔案( https://codewith.mu/#download ),再 以系統管理員身分執行  如下圖
Mu 執行畫面如下

3.參攷 https://github.com/titimoby/microbit4all/blob/master/libraries/matrix7219.py 將MAX7219程式改寫以符合 Mu 編譯(否則會出錯),如下( 儲存至 C:\Users\davis\mu_code )


4.編寫測試程式,如下( 儲存至 C:\Users\davis\mu_code )


5.上述2.安裝完成後,即可開啟 Mu (指令 $ python3 run.py),如下圖


6.在 Mu 上方 按下 [Load] 開啟測試碼 max7219spi.py,如下圖

7.在 Mu 上方 按下 [Flash] 燒錄靱體.hex至 micro:bit,如下圖

此時,會發現 micro:bit 之 LED 顯示錯誤訊息,如下影片(找不到... Line 2 外部模組matrix7219檔案)
此時,按下上方 [Repl] 可看見下方有錯誤訊息,如下圖


8.在 Mu 上方 按下 [Files] 會顯示警告訊息,如下圖(Files 與 Repl 只能二擇一)
此時,再按下 [Repl] 取消即可

9.在 Mu 上方 按下 [Files] 顯示 File System 目錄檔案資料,如下圖

10.在 Mu 右下方使用 mouse 拖曳 matrix7219.py 檔案(缺少的外部模組檔案)至左方,如下圖
此時,按下 micro:bit 背板的 [Reset]鍵,即可 load in external module...

此時,奇妙的是在裝置中是看不到 matrix7219.py 檔案...如下圖

此時,micro:bit 只要沒有新的燒寫動作,可以持續載入外部模組檔案的!!

最後,終於可以看見結果了...影片如下

此時,利用 互動式REPL 也可以輸入直譯的語法來玩,不用燒寫動作即時看見執行結果...

後記
1.micro:bit 的 micropython 可以 import external file,就可以外接更多的sensor了...
2.MAX7219可以串接,顯示更大型的效果...
3.對於 LED Matrix 的座標與pixel之間的轉換,適合不用電腦的紙上格子作畫,也適合來玩LED Matrix 的動畫效果...

2017/12/14 補充:後來看了此篇 http://microbit-micropython.readthedocs.io/en/latest/tutorials/storage.html 才發現要安裝 microfs 就可以存取 micro:bit 檔案了,另外,還有一個有趣的 main.py (micropython都有) 它可以在 restarting micro:bit 時去執行(類似DOS的 autoexec.bat或Linux的rc.local)...

參攷
1.https://github.com/microbit-playground/matrix7seg
2.https://github.com/titimoby/microbit4all/tree/master/libraries

留言

匿名表示…
請問如何在串接的7219上顯示字串?
請問是顯示ASCII嗎?!可以參考此篇...https://electronoobs.com/eng_arduino_tut56.php, 若要顯示中文可能要16x16了...