RP2040-zero互換機でSSD1306 OLEDディスプレイに「Hello, World!」を表示


この記事では、RP2040搭載のRaspberry Pi Pico(またはRP2040-zero)を使用して、MicroPython上でSSD1306 OLEDディスプレイに「Hello, World!」という文字を表示する方法をご紹介します。なお、今回のトラブルシューティングとして、RP2040-zeroのピンのはんだ付けが不十分だったためにディスプレイへ通電できず、エラーが発生していた事例も解説します。
必要なもの
-
Raspberry Pi Pico / RP2040-zero
-
SSD1306 OLEDディスプレイ
※ 接続方式はI2Cです。 -
ジャンパーワイヤー、ブレッドボード(または直接配線できる環境)
-
Thonny IDE(MicroPython用IDE)
SSD1306ライブラリのインストール
MicroPythonには標準でSSD1306ライブラリは含まれていません。そこで、Thonnyを使用してライブラリをインストールします。
-
Thonnyを起動
Raspberry Pi PicoをPCに接続し、Thonnyを起動します。 -
ライブラリの選択とインストール
表示されたライブラリの中から「ssd1306」を選択し、インストールボタンをクリックします。
インストールが完了すると、Raspberry Pi Pico上の「表示 > ファイル」から、lib/ssd1306.py
が作成されていることを確認してください。
main.pyの作成とコード記述
以下のコードをThonnyの新規ファイルにコピーし、main.py
としてRaspberry Pi Picoに保存します。
from machine import Pin, I2C import ssd1306 # using default address 0x3C i2c = I2C(1, sda=Pin(14), scl=Pin(15)) display = ssd1306.SSD1306_I2C(128, 32, i2c, addr=0x3C) # 先頭行に Hello World を印字 display.text('Hello, World!', 0, 0, 1) display.show()
このコードのポイントは:
-
RP2040-zeroもどきのピンアサイン I2Cの初期化
I2CのIDが1,Pin(14)
とPin(15)
をそれぞれ SDA, SCL として使用。I2CのIDはピンアサインを確認してください。RP2040-zeroのpin(14), pin(15)はI2C1なので1となっています。ディスプレイのI2Cアドレスは0x3C
(必要に応じてi2c.scan()
で確認してください)。 -
ssd1306ライブラリの利用
インストールしたライブラリをインポートし、SSD1306ディスプレイオブジェクトを作成。 -
文字表示
display.text
で “Hello, World!" を先頭行に表示し、display.show()
でディスプレイを更新。
実行結果
このmain.py
を実行することで、SSD1306ディスプレイ上に「Hello, World!」の文字が表示されます。
トラブルシューティング
実は、RP2040-zeroのピンのはんだ付けをさぼって、ブレッドボードに接続して以下のエラーが出ていました。
Traceback (most recent call last): File "", line 6, in File "/lib/ssd1306.py", line 119, in __init__ File "/lib/ssd1306.py", line 38, in __init__ File "/lib/ssd1306.py", line 75, in init_display File "/lib/ssd1306.py", line 124, in write_cmd OSError: [Errno 5] EIO
原因は、OLEDディスプレイに通電していなかったことでした。はんだ付けを正しく行い、各ピンがしっかり接続されていることを確認すれば、エラーは解消され、正しく動作するようになります。
参考
- class I2C
class I2C – a two-wire serial protocol — MicroPython latest documentation - SSD1306 OLEDライブラリ
14. SSD1306 OLED ディスプレイの使い方 — MicroPython latest ドキュメント
まとめ
-
ssd1306ライブラリのインストール
Thonnyのパッケージ管理機能を使用して簡単にインストール可能。 -
main.pyの記述
I2Cの初期化とディスプレイオブジェクトの作成、文字列の表示は非常にシンプルです。 -
トラブルシューティング
ハードウェア面(はんだ付け、配線、プルアップ抵抗)をしっかり確認することが重要です。
これで、Raspberry Pi PicoでSSD1306 OLEDディスプレイに「Hello, World!」を表示する基本的な手順が完了です。ぜひ、今回の内容をベースにさまざまな表示内容に挑戦してみてください!