MicroPythonからI2C接続のOLEDを動かしてみました。
ボードは NUCLEO-F446RE を使用しています。
- MicroPythonのサイトからソースコードをダウンロードして解凍
- https://micropython.org/download/
- (記事作成時点では micropython-1.19.1.zip が最新でした)
- ボード内にlibディレクトリが無い時はThonnyから作成
- ssd1306.pyをlibディレクトリへインストール
- フレームバッファクラスのドキュメントを参考にメソッドを使用して描画を行います。
from machine import I2C import ssd1306 i2c = I2C(1, freq=100000) # Ch.1 SCL=PB8, SDA=PB9 addr = i2c.scan() display = ssd1306.SSD1306_I2C(128, 64, i2c) display.init_display() display.write_cmd(0xa0) # 上下通常 display.write_cmd(0xc0) # 左右通常 display.text('LSI Jiu-Jitsu', 10, 14, True) display.rect(0, 4, 128, 28, True) display.rect(4, 8, 120, 20, True) display.text('Addr:' + hex(addr[0]), 56, 56, True) display.show()
SSD1306へコマンド送信を行うにはssd1306.pyのwrite_cmdメソッドを使用します。
[参考記事]