uOLEDでuSD内の画像ファイルを表示する方法
最近RSコンポーネンツ等でも取り扱っている,小型有機ELディスプレイのuOLEDについて,シリアルコマンドによりuSDに保存した画像を表示させる方法の日本語資料が少なかったので,メモ程度に導入方法を紹介します.私の環境では動いたという程度の確認しかしていないので,この内容により生じた不具合には責任を負えません.ご参考程度に活用していただきながら,各自のご責任でよろしくお願いします.
基本的なやり方は,
1)
Graphic Composerという専用ソフトを利用してuSDカードをフォーマットし,
2)
さらに同ソフトを経由して画像ファイルを転送.
3)
転送時に画像を書き込んだアドレスがログとして保管されるので,そのファイルを参照して画像のアドレスを指定して表示.
という流れになります.
まず始めに,4D systemsのホームページから,Graphic Composerというソフトをダウンロードする必要があります.
http://www.4dsystems.com.au/downloads/Graphics_Composer/Ver3.XX/GraphicsComposer.zip
(2011年7月11日現在,上のURLにてダウンロード可能)
解凍すると実行形式のファイルがありますので,それをダブルクリックして下さい.
1)Graphic Composerを立ち上げる.
2)右下のScreen Sizeから,自分の利用するデバイスの画面解像度を選択.
例えば,uOLED-96-G1という型番のものならば,96 x 64.
3)左下の「Add」ボタンを押して,表示させたい画像を取り込む.
4)中段上にあるEditボタンなどを使って,表示したい画像のサイズや位置を変更.
※私が使っているのはuOLED-96-G1という型番のもので,解像度は96 x 64 ですが,このサイズの画像を用意すると,実際に表示したときに輪郭がぼやけてしまいました.用意する画像のサイズを2倍の192 x 128 にし,Ignore
screen size constraintsのチェックを外して,画面いっぱいになるようにしたほうが,綺麗に見えるように感じました.また,4倍のサイズで用意した画像と見比べてみましたが,2倍と4倍の差はほとんど感じられませんでした.
5)Saveしたのちに,左上のFileからBuildを選択.
・Bulid Typeは,一番下のSGC-uSD Rawを選択.
(他のオプションでも出来るかもしれないけれど,少なくとも一番下の選択肢では動いた)
・DriveはSDカードのドライブを選択
・Sector offsetは画像をどのアドレスから入れていくかを指定する.既に何枚か画像が入った状態で追加するのであれば,このオプションを指定アドレスにしておくと良いかも(未確認).とりあえず0にしておけば問題なく,先頭アドレスから画像を格納していく.
・確認画面が出てくるので,Yesを押して画像を転送する.
6)画面上部のアイコンのTXTというところが選択可能になっているので,そこをクリック.
すると,以下のような文字列が保存されている.
この中の,「Goldelox Data: 0x40, 0x49, 0x00, 0x00, 0x60, 0x40, 0x10,
0x00, 0x00, 0x00」の部分が,画像表示のためにuOLEDに転送するべきコマンド列.
(参考)画像転送のコマンドのフォーマットは以下.
上の例では,最後のSectorAddの部分が01.jpg
では“0x00, 0x00, 0x00“ であるのに対して,02.jpgでは” 0x00, 0x00, 0x18“と異なっている.この指定を変えることで,任意の画像を表示できる.
※実際に画像を表示するときには,まず「U」コマンドにより,ボーレートを自動で設定した後に,上記コマンドをシリアルで送信する必要がある.
参考資料
(2011年7月11日現在ダウンロード可能)
uOLED-96-G1_Users_Manual_Rev1.0