2014年3月24日月曜日

「Raspberry Pi」とフレームバッファドライバ「fbtft」で、sainsmartのタッチパネル液晶を動かす

先日amazonで購入した、sainsmartの3.2インチの格安カラータッチパネル液晶(2000円くらい)をRasberry Piから動かしてみました。解像度は320x240です。fbtftというフレームバッファドライバを使用しています。

以下の動画では、前半はタッチペンを使ったタッチ操作の様子(キャリブレーションの調整が必要ですが・・・)と、後半では動画再生の様子を紹介しています。自分では計測していないのですが、fbtftのwikiによるとフレームレートは10fps程度だそうです。




実は、この液晶を動かすには16bitパラレルインターフェースが必要なので、数が足りませんから、直接Raspberry PiのGPIOピンにつなぐことができません。そこで、PiのSPIインターフェースをパラレルインターフェースに変換する回路を別途作成して、液晶とRaspberry Piと繋ぐ必要があります。


汚くてわかりにくいのですが(汗)、ブレッドボード上で実装した、SPIインターフェースから16ビットパラレルインターフェースへの変換回路(タッチパネル制御含む)は、以下のようになりました。74HC4040、74HC4040、74HC04のICを使用しています。




この回路のスケッチはfbtftのwikiで公開されているのですが、エレクトロニクス初級者の筆者にはピンと来なかったので、ブレッドボードへの実装には、この液晶とおなじ同じコントローラー SSD1289を使用した液晶を使用したブレッドボードへの詳しい実装例が紹介されているこじ研さまを参考にさせていただきました。わかりやすく解説されており、大変勉強になりました。ただし、fbtftの回路とは若干異なる点があるので注意が必要です。

これで、Raspberry Piのタッチパネルが、お手頃な値段(?)でつくれました。

(AdafruitのPi TFTを買ったほうがはるかに簡単に作れると思いますが、このブログは筆者の勉強を兼ねてますから、チャレンジ重視です!)

次の課題は以下のいずれかを予定しております。

  • ブレッドボードの実装をどうにかする(ユニバーサル基盤か、できたらプリント基板にチャレンジしたい)
  • Qt5を使って、タッチパネルを使った、娘が遊べる楽しいアプリを開発する
  • BeagleBoneBlackでも使えないか考える
  • Volumioと連携できないか考える

0 件のコメント:

コメントを投稿