aitendo OLEDモジュールをRaspberry Piで利用する

目的

aitendoさんで取り扱っているとても安価なOLEDモジュールをRaspberry Piでも使えるようにする

aitendoさんのOLEDはドライバはSSD1306系の物が多く解像度が違うだけなので、今回利用したAdafruit SSD1306ライブラリで動作する物と思われます。

利用した部品

電源

3.3V単一電源 (Raspberry PiのGPIOから取り出しのみで動作させています)

組み立て

キットなのでチップ部品とOLED付きのフラットケーブルはんだ付けが必要となります、また写真にあるようにI2C+電源の最低限の配線で制御したい場合は、多少の配線が必要となります

気をつける点

  • aitendoさんのホームページにC4, C4 1μF とありますが C4, C5となります
  • R1のランド印刷がありません R2につけましたが動作電源3.3Vのみでは必要ありません
  • チップLEDを光らせるためには別途チップ抵抗が必要です(チップLEDをハンダ付けする必要はありません)

チップ部品の仮止め

ランドの片側に薄くハンダを載せチップ部品を上に載せ軽くランドを温めて部品を落とすように仮止めします。

※抵抗が間違った位置にあります、後の写真では正の位置にあります

チップ部品の本止め

その後逆側のチップ部品の足をハンダ付けし、仮止めした方を本止めします。

フラットケーブルのハンダ付け準備

端子部分にハンダを少し流しておき、フラットケーブル位置を慎重に合わせます

フラットケーブルのハンダ付け

端子部分に軽く小手先をあてると、吸着されるようにくっついて行きます

怪しい部分は念のため小手先にほんの少しハンダを載せフィルムを抑えます

配線を加える

DataSheetとにらめっこをしても分からない部分がありましたが下図で動作しました。

  • BS1/BS2 : High/Low でI2C動作モードとなります
  • D3-D7 : GND (こちらは実施しなくても動作しますがノイズ防止用)
  • VBAT : +3.3V (内部の昇圧回路利用のため)
  • RES : プルアップ
    こちらを実施しないと内部のドライバICがリセットを繰り返しi2cdetectで見つかったり見つからなかったりしますのでご注意を
  • D1/D2 : 束ねてSDAとして利用します

Raspberry Pi との接続

下図のように接続します

RaspberryPiから制御

OSはRaspbianを利用しています。
i2cを有効にしておいて下さい。

接続確認

下記のようになればひとまず成功です

$ sudo i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --  
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --  
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --  
30: -- -- -- -- -- -- -- -- -- -- -- -- 3c -- -- --  
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --  
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --  
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --  
70: -- -- -- -- -- -- -- --  

SSD1306 OLED Library Driverをダウンロード&インストール

$ git clone https://github.com/adafruit/Adafruit_Python_SSD1306.git
$ cd Adafruit_Python_SSD1306/
$ sudo python setup.py install

Image LibraryとしてPillowが必要でした。

Exampleを実行

$ cd examples
$ sudo python animate.py

文字が流れるようにアニメーションで表示されれば成功です、Pythonベースで制御できるので利用しやすいですね CPU利用率17%程と高いのがとても気になりますが...

Tips

下記のようなケースはいずれも配線/ハンダ付けを確認 or 適切にHigh/Lowになっているかどうかを確認して下さい。

接続した瞬間Raspberry Piの挙動がおかしくなる

リセットやKernelPanicを起こす
ショート等の可能性があり危険な状態です、即座にデバイスを切断して下さい

i2cdetectを実施する度に結果が異なる

めちゃくな表示となる

$ i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- 05 06 -- -- 09 0a -- -- 0d 0e --  
10: -- 11 12 -- -- 15 16 -- -- -- -- -- -- -- -- --  
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --  
30: -- -- -- -- -- -- -- -- -- -- 3a -- -- 3d 3e --  
40: -- 41 42 -- -- 45 46 -- -- 49 4a -- -- 4d 4e --  
50: -- 51 -- -- 54 55 -- 57 58 -- 5a 5b -- 5d 5e --  
60: 60 61 -- -- 64 65 -- -- -- -- -- -- -- -- -- --  
70: -- -- -- -- -- -- -- --  

3c が表示されたり、何も表示されなかったり

参考サイト

ありがとうございました!

takashi