本單元參考網站:STEAM教育學習網
https://steam.oxxostudio.tw/category/microbit/sensor/oled.html
OLED1306顯示器積木屬於micro:bit的擴展模組,可以控制OLED顯示單色的英文字和數字,彌補 micro:bit 的 5x5 LED 無法顯示較多英文和數字的限制。
OLED1306為單色顯示器,如果是標榜「雙色」,表示顯示器的上方為黃色,下方為藍色,並非可以同一個位置顯示兩種不同顏色。
本單元使用OLED1306是1.3吋,解析度為128 x 64,可繪製一些簡單的幾何造型,做出有趣的應用。(當然市面上有賣更大尺吋、更高解析度)
按照下圖,使用「擴充板、杜邦線」,將 micro:bit 連接 OLED1306 顯示器。
開啟 MakeCode 的擴展功能,搜尋「oled」,從搜尋結果中選擇「OLED12864_I2C」的項目,點選加入 OLED1306 顯示器積木。
推薦 OLED12864_I2C 這個項目,因為它的功能較為完整好用。加入後,在積木清單裡就會出現「OLED12864_I2C」的選項。
OLED1306 是 I2C 的裝置,I2C 裝置都有一個位址 ( Address ),可以讓 micro:bit 進行識別和通訊,在使用 OLED1306 之前,必須要設定位址,這組積木可使用的位址有 60 和 61,預設直接用 60 就能初始化並進行控制。
通常初始化只需要設定一次,因此這個積木會直接放在「當啟動時」積木裡。
「顯示數字」積木可以讓 OLED 在指定的座標顯示數字,可修改 xy 座標、顯示的數字 number 和數字顏色,若數字長度超過一行的顯示範圍,會自動折行到第二行。
「顯示數字」的座標並非真正的「座標」,而是字元大小,座標的範圍取決於畫面是否縮放。
放大模式 ( zoom: true ):x 範圍 0~63,y 範圍 0~31。
正常模式 ( zoom: false ):x 範圍 0~127,y 範圍 0~63。
因為 OLED 顯示數字是採用「覆蓋」的做法,以下圖的例子,如果要按下 A 或 B 按鈕切換數字,可先放入「清除畫面」積木,避免數字互相重疊。
「顯示文字」積木可以指定 LCD 顯示器的顯示座標,顯示對應的文字,可修改 xy 座標、顯示的文字 string 和文字顏色,若文字長度超過一行的顯示範圍,會自動折行到第二行。
「顯示文字」的座標並非真正的「座標」,而是字元大小,座標的範圍取決於畫面是否縮放。
放大模式 ( zoom: true ):x 範圍 0~11,y 範圍 0~3。
因為 OLED 顯示文字是採用「覆蓋」的做法,以下圖的例子,如果要按下 A 或 B 按鈕切換文字,可先放入「清除畫面」積木,避免文字互相重疊。
【範本練習】