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

RP2040-zeroでI2Cディスプレイ

この記事では、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を使用してライブラリをインストールします。

  1. Thonnyを起動
    Raspberry Pi PicoをPCに接続し、Thonnyを起動します。

  2. ツール > パッケージを管理
    上部メニューから「ツール」→「パッケージを管理…」を選択します。
    Thonnyでパッケージを管理

  3. 検索窓に「ssd1306」と入力
    検索窓に「ssd1306」と入力し、検索を実行します。
    ssd1306パッケージ検索

  4. ライブラリの選択とインストール
    表示されたライブラリの中から「ssd1306」を選択し、インストールボタンをクリックします。
    ssd1306パッケージインストール
    インストールが完了すると、Raspberry Pi Pico上の「表示 > ファイル」から、lib/ssd1306.pyが作成されていることを確認してください。
    ssd1306ライブラリ


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もどきのピンアサイン
    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でI2Cディスプレイ


トラブルシューティング

実は、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ディスプレイに通電していなかったことでした。はんだ付けを正しく行い、各ピンがしっかり接続されていることを確認すれば、エラーは解消され、正しく動作するようになります。

参考


まとめ

  1. ssd1306ライブラリのインストール
    Thonnyのパッケージ管理機能を使用して簡単にインストール可能。

  2. main.pyの記述
    I2Cの初期化とディスプレイオブジェクトの作成、文字列の表示は非常にシンプルです。

  3. トラブルシューティング
    ハードウェア面(はんだ付け、配線、プルアップ抵抗)をしっかり確認することが重要です。

これで、Raspberry Pi PicoでSSD1306 OLEDディスプレイに「Hello, World!」を表示する基本的な手順が完了です。ぜひ、今回の内容をベースにさまざまな表示内容に挑戦してみてください!

2025-04-05DIY&修理

Posted by 納戸 工房