[ラズパイ] 有機EL(OLED) SSD1306を使って文字・日本語を表示させる

以前、LCD1602を用いて、液晶ディスプレイに文字を表示させた(下記事参照)

でも、これだとロジックレベルコンバータをかませたり、漢字、平仮名が表示できなくてイマイチ汎用性に欠ける。それで、有機EL(OLED)を使った128×32の表示器を試してみようと思って購入。

いつものことで、中国発送のを買ったけど、10日ほどで到着。最近早くなったw。3.3vでI2Cにいつも通りつなげるだけ。でも3.3vピン出力で電力が足りるのかな?

接続確認(いつでもいけますっ!!)

そして、表示するためにライブラリを準備。今回もいつものことながら下のライブラリを使わせてもらった。

上のコマンドでインストール。

完了。ざっとライブラリの仕様を読んでいると、下の一文が・・・

Adafruit invests time and resources providing this open source code, please support Adafruit and open-source hardware by purchasing products from Adafruit!

ごめんなさい。今度からはAdafruit様から購入します今回だけは…

気を取り直して、早速examplesのstats.pyを実行してみると、ちゃんと表示される


文字小さくてよく見えねぇw。でもまず、ここまでは順調。

日本語を表示させる場合は、日本語フォントを用意しないといけない。フリーの日本語フォントを探す。


ここのIPAフォント(IPAゴシック・IPA Pゴシック)を使わせていただこうと思う。ダウンロードして解凍すると、 ttcファイル(ttfをまとめたもの)ができる。これを2つのttfに砕くのに以下のサイトを使った。


そうすると、2個のttfファイル(IPAGothic-01.ttf、IPAPGothic-02.ttf)ができるので、これを実行するpythonファイルと同一のフォルダに入れておく。そして、簡単な稚拙テストクラスを飲みながら作ってみた。テスト目的で、もーちょい汎用性を持たせたいんだけど時間が取れない・・・

実際の動作の動画は下に掲載。描画スピードはさほど速くないが、きれいに表示され「魑魅魍魎」も2行でもつぶれることなく表示で来ている。LCDよりもこちらのほうが簡単にきれいに表示できると思う。ただ、やっぱり少し小さいかなぁ。。。

消費電力のこともすこし触れておく。全ピクセル点灯状態にして、テスターにて電流量を計測してみた。

全点灯状態で27~28mA程度。30mAに達することはなかった。文字のみを点灯させていると15~20mAだった。

ラズパイはGPIO01に3.3vにどれだけの電流を流せるのかというのは、1ピン当たりの16mAで制限されるのか、はたまたGPIO合計の50mAで制限されるのかはイマイチはっきりとしないけど

このwikiでは01pinと17pinの合計で50mAと書いてあるから、これを信じたいと思う。けど、これも他のGPIOの合計電流によって少なくなるようなので、128×32程度なら事足りる感じはするけど、128×64となら電流量が場合によっちゃオーバーしそう

他にもいろいろセンサーや機器を取り付ける場合は、5V駆動させて、ロジックレベルコンバータでI2C接続したほうが、ラズパイの保護の観点からいいかもしれない。それだとLCDと変わらない感がw

One thought on “[ラズパイ] 有機EL(OLED) SSD1306を使って文字・日本語を表示させる

Comments are closed.