カテゴリー
IchigoJam

透明な 有機EL ディスプレイ OLED を IchigoJam に I2C 接続してみた

透過型の 有機EL ディスプレイ OLED を 入手したので IchigoJam に I2C で接続してみました。

透過型 OLED

通常の OLED は、ディスプレイの裏面ガラスが非透過になるように塗装などの処理がされています。ここで紹介する透過型 OLED は、裏面の処理を行わず、表面から裏面が透過するように製造されたものです(たぶん)。

1.54インチ SSD1309

1.54インチの SSD1309 OLEDを使用しました。同じ型番でも透過型でない場合があるので、購入する際は注意してください。

筆者は DIY MORE (深圳市四海芯舟科技) が販売するTransparent OLED Screen SSD1309を使用しました。AliExpressで検索すると、見つけれると思います。

1.54インチ SSD1309 OLED の一例(写真はRaspberry Pi Picoでの動作確認のようす)

接続回路

リセット端子「RES」を抵抗100kΩでプルアップし、電源投入後時は一定の時定数でLレベルを維持できるようにコンデンサ0.1uFを付与しました。また、ダイオード1SS178は、電源OFF時にコンデンサを放電します。

電源投入後時にリセット端子をLレベルに保持できるようにした

ボクが入手した製品は、I2CとSPIに対応していました。この場合は、I2Cに切り替える必要があります。基板裏面にシルク印刷で「I2C PORT:R8,R4」「SPI PORT R9」と書かれていたので、チップ抵抗R9を取り外して、R8とR4に0Ωのチップ抵抗を半田付けするか、半田をもってショートします。

チップ抵抗R9を取り外して、R8とR4を半田でショートした

前記の回路図のように、抵抗、コンデンサ、ダイオードを半田付けした様子です。

抵抗、コンデンサ、ダイオードを実装した時のようす

この写真は、撮影時の手振のように見えますが、OLEDの裏面のガラス面やプリント基板面での反射によるものです。実物は、立体感があって、写真よりもキレイに見えます(ボクの主観)。

IchigoJam に装着する

OLEDのGND、VCC、SCL、SDAの4つのピンを、IchigoJamのCN5のGND、3.3V、SCL、SDAに接続しました。残るRES、DC、CSには、ピンヘッダを取り付けませんでした。

OLEDのGND、VCC、SCL、SDAの4つのピンを、IchigoJamのCN5のGND、3.3V、SCL、SDAに接続した

プログラム

下記のページの「プログラムA1 縦画面 BASIC版 [PCG] ロゴ表示」を使いました。OLED上に表示されたIchigoJamのロゴは、 jig.jp社のCC BYライセンスに基づいて使用してください。

I2C有機ELディスプレイOLEDの接続方法:
https://bokunimo.net/ichigojam/oled.html

しかし、「プログラムA0(ダイエット版)」では、文字の表示位置がずれてしまいました。これは、SSD1306との違いで発生したもので、SSD1309の場合は、起動時のの表示位置が原点ではないようです。そこで、行番号800の初期化コマンドの末尾に描画位置指定「,33,#227F,#700」を追加し、行番号810のi2cwの第5引数(送信データ長)を24に変更しました。

プログラムA0(ダイエット版)」では、文字の表示位置がずれていたが、初期化コマンドに描画位置指定を追加することで、正しく表示できるようになった

プログラムを下記のように修正して実行すれば、正しく表示することが出来ます。

800 let[84],#4000,#D5AE,#8D80,#2014,#DA00,#8112,#D9CF,#DBF1,#A440,#AFA6,33,#227F,#700
810 W=i2cw(60,#8A8,1,#8AA,24)

ところで、上の写真ではOLEDの下側の基板面に表示が映り込んでいるのが分かると思います。透過型OLEDを使うことで、こういった立体感のある表示ができるようになります。

裏面にIchigoJamマイコン?

OLEDの裏面にはIchigoJamマイコン用のシールを置きました。シールとOLEDとの間には4mm程度の間隔をあけました。すきまを開けることで、透過光だけでなく、OLEDの発光によってシールに光があたり、より美しく見えます。

IchigoJamマイコン用のシールとOLEDとの間に4mm程度の間隔をあけることで、OLEDの発光がシールに光があたって、より美しく見える

表示バッファの転送

このIchigoJamのOLED用デバイスドライバの表示方法は、ボクがIchigoJam用LCD用ドライバで使い始めた方法と同じで、モニタ表示用のビットマップバッファ内のデータをOLEDに転送しています。表示に必要な機能の多くをBASICインタープリタ内で実行するので、とても短いプログラムで実用的なディスプレイ用ドライバとして使用することが出来ます。

MicroPython用ドライバも

Raspberry Pi Pico 用に MicroPython 用のプログラムも作成しました。こちらは、前述の IchigoJam 用のプログラムを MicroPythonに移植したものになります。

MicroPython 用のプログラム:
https://github.com/bokunimowakaru/pico/blob/master/examples/test_oled.py

Raspberry Pi Pico 用に MicroPython 用のプログラムも作成した

MicroPython 用のプログラムでは、予め表示桁数分の文字列×表示行数分の配列変数に文字を代入しておき、I2Cでフォントを転送します。

by bokunimo.net

「透明な 有機EL ディスプレイ OLED を IchigoJam に I2C 接続してみた」への1件の返信

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

 - 
Chinese (Simplified)
 - 
zh-CN
Chinese (Traditional)
 - 
zh-TW
English
 - 
en
French
 - 
fr
German
 - 
de
Italian
 - 
it
Japanese
 - 
ja
Korean
 - 
ko
Russian
 - 
ru
Spanish
 - 
es