2022年2月22日 星期二

motoduino ESP32-S 物聯網套件測試-02測試OLED是否可以正常工作

motoduino ESP32-S 物聯網套件測試-02測試OLED是否可以正常工作

任何感測器和元件使用我都指導孩子遵循這樣的原則:
先了解再測試,先觀察再使用

慧手科技的imoto ESP32 I/O擴充板上有很聰明的OLED擴充插座,腳位是設計剛好的,OLED(SSD1306)直接插上去即可,不用認腳位,唯一要注意,若是你使用了OLED且另外還有設備會用SDA(GPIO21)、SCL(GPIO22)這兩個I2C腳位,設備的位置指定不能衝突。


OLED的接線與位置選用

而OLED(SSD1306)是I2C介面,一般也是使用G/V/SDA/SCL的I2C腳位,在位置的選擇上則是要看OLED背面的跳線電阻的位置,如下圖,這片OLED的位置跳線電阻是在0x3C這個位置,所以在寫程式時,只要使用這片OLED就要指定這個位置即可

程式積木

在Blockly的介面,OLED的選項在顯示器的選項下,只要點選小箭頭即可出現OLED(SSD1306)
於是我們寫了一小段測試程式如下,而OLED的用法是先將要顯示的內容、位置決定好之後,記得要“顯示“才會動作,在這套積木裡面,未設定前無法使用中文(後面說明),所以如果你有輸入中文的部會直接跳過,請先用英文測試
然後就可以正確顯示閃爍的內容

OLED的顯示位置

在OLED的排版上,這片的尺寸有0.66~1.54吋,解析度都是128x64點,座標的決定是(行,列)
,原點是左上角(0,0),右下角是(128,64),而英文字的定位點是字串的左下角,而字的大小由程式決定(內定10pt)

不過英文字每行之間最好留5pt因為英文單字某些會下延伸


OLED的繪圖

繪圖也都能正常顯示,要記得使用顯示積木

OLED的中文顯示

如果要使用中文,得先設定中文的字型積木,但是因為ESP32S的記憶體不足以容納所有的中文字,所以要使用中文需要慧手提供的方式處理如下:
原則上就是先在str.txt 檔加上您會用到的中文文字,然後按照下方步驟,用powershell 建立字型檔,有興趣的朋友可以試試!未處理前只有少數中文字可以呈現。

中文的使用:
先在"文件/arduino/libraries/u8g2” 資料夾,修改str.txt, 將需要顯示的中文字先輸入到文件檔案內,存檔離開


然後在檔案總管中,make_cht_font.ps1上按右鍵,以PowerShell執行,(make_cht_font.ps1, 會將要顯示的中文字檔,建立一個 C 程式檔)

執行後會產生新的 u8g2_font_unifont.c,使用到的中文字檔後,重新在motoBlockly編譯上傳後,即可顯示中文


終於可以正常顯示中文囉!

沒有留言:

張貼留言