スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

uOLEDモジュールに画像を出す



今日は新年一発目の作業として華やかな気分にするべく,引き続きOLEDディスプレイをいじる.
このモジュールはQVGA(320×240)までの画像が出せるので,さっそくBMPやAVI等を出せるようにライブラリをいじる.英語の解説に少々とまどったがなんとか表示させるところまでできた.
上記の動画だとすごく汚いが,実際目で見るととてもきれいである.普段小型の液晶ディスプレイはあちこちで見るが,それとは全く違った鮮烈で浮き上がるような画像なのだ.

 画像が出るまでにかなりの紆余曲折があったので,ここにbmpやmpgをどうやって表示させるかメモっておく.
1.bmpやjpg,aviやmpeg等のデータを[GraphicsComposer]というソフトで加工してuSDに保存する.保存形式はFATの場合は**.dat(各イメージデータのアドレス等が書いてある)と**.gci(実データのファイル)の2種類.ただし,FATファイルの場合は本体のメモリの都合上100×100pixel程度までしか扱えない(あくまでアイコン用)!それ以上(QVGA)を表示させたいときには直接uSDにデータを書き込む方式が必要(ファイルとしては見えない).

2.QVGAを表示させたいとき,[GraphicsComposer]の設定は[Device->Load Option]を[\:I]のようにuSDが刺さっているドライブ名に設定.[ImageFormat]は[Image&Pixel Data(V2)]を選択.ファイルサイズは240×320にする.(320×240としないこと!縦横逆になる)

3.[Load Device]ボタンを押すとuSDにデータが書き込まれ(Windowsからは見えない),**.txtファイルが生成される.このTXTファイルに書き込まれたデータのアドレスがbyte単位で書かれている(Location=0x******)このアドレスをプログラム中から参照することでuSDの中身が読み出せる.

4.uSDの画像ファイル,動画ファイルはuSD_SetSector()+uSD_Image() or uSD_Video()で再生可能.uSD_SetSectorに渡す番地は512byte区切りのセクタ単位なので注意!先ほどのtxtファイルに書かれている番地はbyte単位なのでこれを512で割る必要がある.
Ex.Location = 0x200000(2097152) のとき,0x200000÷512=0x1000なので
uSD_SetSector(0x0000, 0x1000); のように入力する.

これでデジカメや携帯の動画などを自由に再生できる.縦横が逆になる(デフォルトでは縦使用モードになっている)ため,必要に応じて元画像データを90deg右回転させる必要がある.静止画のほうは適当なレタッチソフトでやるとして,動画の回転はこのフリーソフトを使うと簡単である.
次はもっと実用的なURGの簡易モニタなどに応用していきたい.
スポンサーサイト

この記事へのコメント

- かみやん - 2009年01月03日 15:43:33

uOLEDたのしそうですね~。InterfaceかDesignWaveだったか忘れたけど、星をみるソフトで知りました。
線の描画速度とかどうなんでしょうね。
URGのモニタにするとは、すごいですね~。

- もやね - 2009年01月03日 16:23:00

かみやんさん今年もよろしくお願いします!
uOLEDの内蔵タイマで計ってみたところ,240本の線分描画時間60~70msecと言ったところですね.
私の買ったURG-04LXならモニタとしてもまずまずの性能です.
ちなみに動画は128×128なら24fpsが出るようです.実質uSDからの転送速度は5~7Mbpsぐらいでしょうか.

- かみやん - 2009年01月04日 03:15:36

240本で60~70msなら十分使えますね!

トラックバック

URL :

プロフィール

もやね

Author:もやね
長野県在住の会社員(メカニカル・エンジニア).
ロボットは完全な趣味としてやってます.
E-mail:
mo_ya_ne[a]yahoo.co.jp
[a]⇒@

最近の記事
最近のコメント
最近のトラックバック
月別アーカイブ
カテゴリー
FC2カウンター
ブログ内検索
RSSフィード
リンク
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。