【Seeeduino xiao】有機EL SSD1306に文字を表示させる方法まとめ

seeeduino-xiao-oled-result-1Seeeduino xiao

本記事の内容

Seeeduino xiao RP2040にI2C通信で「128×64 OLED LCDディスプレイSSD1306液晶」を接続させて、任意の文字を表示させる方法をまとめました。

Seeeduino xiaoで2系統のI2C通信を実行して、BMP180で温度気圧取得、SSD1306液晶に表示させる方法は、以下の記事を参考にしてください。

必要なもの

  • Seeeduino xiao RP2040
  • KeeYees OLEDディスプレイモジュール SSD1306

今回は画面に任意の文字を表示させるだけなので、必要なものがシンプルです。

配線

最初に、Seeeduino xiao RP2040のピン配置図を掲載します。こちらはwikiの情報に加えて、当ブログで確かめた内容(ADC、I2C_0)も付記しています。

summary_seeeduino-xiao-i2c

配線図は以下の通りです。今回はWiki推奨のI2C_1系統でOLEDディスプレイと接続させています。

プログラムコード

こちらは、Seeeduino xiao RP2040のWikiにも掲載されている公式の方法になります。

ssd1306.pyのアップロード

ssd1306.pyはSeeeduino xiaoの公式ページの赤四角からダウンロードできます。ダウンロードしたら、Thonny IDEで該当ファイルを開き、「Upload to /」でアップロードします。

メインコードの作成

メインコードでは、4・5行目でI2Cを実行させて、display.text()の中に表示させたい文字列を記載します。

from machine import I2C, Pin
from ssd1306 import SSD1306_I2C
from utime import sleep

i2c = I2C(1, scl=Pin(7), sda=Pin(6), freq=200000)
display = SSD1306_I2C(128, 64, i2c)

while True:
    display.fill(0)
    display.fill_rect(0, 0, 32, 32, 1)
    display.fill_rect(2, 2, 28, 28, 0)
    display.vline(9, 8, 22, 1)
    display.vline(16, 2, 22, 1)
    display.vline(23, 8, 22, 1)
    display.fill_rect(26, 24, 2, 4, 1)
    display.text('MicroPython', 40, 0, 1)
    display.text('SSD1306', 40, 12, 1)
    display.text('OLED 128x64', 40, 24, 1)
    display.show()

display.textの中身は、x座標、y座標、表示色を指定しています。

display.text('Hello World', 0, 0, 1)    # x=0, y=0, colour=1 でテキストを描画

その他、線や長方形の描写方法は、MicroPythonの公式サイトを参考にしてください。

実行結果とまとめ

今回は全体をコンパクトにまとめるため、ミニブレッドボード上で組み立てました。余裕があればGroveシールドを用いて、リポ電池によるバッテリー駆動でも遊べます。

コメント