2016年09月06日

ラズパイと 3.2 インチタッチパネル付き液晶

 ラズパイの続き。ベアメタルは一休みして、Raspbian Jessie に戻ってきた。今回は、3.2 インチタッチパネル付き液晶を接続した話。Amazon や、aitendo で購入できる。元は Waveshare 3.2inch RPi LCD (B), 320×240 という商品。ラズパイ用と称する液晶パネルもいろいろ種類があるので、よく調査しましょう。

 セットアップは、http://www.waveshare.com/wiki/3.2inch_RPi_LCD_(B) に沿って行う。まず、Raspbian Jessie をインストールして、raspi-config でファイルシステムの拡張・コンソール (CLI) への自動ログインを設定。そのあと、再起動してコンソールでログインして、次のように進める。

$ wget http://www.waveshare.com/w/upload/3/3d/LCD-show-160811.tar.gz
$ tar xvfz LCD-show-160811.tar.gz
$ cd LCD-show
$ ./LCD32-show

 LCD32-show コマンドは、起動時から 3.2 インチ液晶を使うように設定して、自動的に再起動する。起動メッセージは途中までは HDMI モニタに出るが、途中から 3.2 インチ液晶に表示されるようになり、コマンドプロンプトも 3.2 インチ液晶上で出る。

 「さめがめ」を動かしてみた。画面が小さいのであんまり面白くない。キャラクタ単位じゃなくて、グラフィックで書き直さないといけないな。

 今回はちょっと頑張って、OpenVG でグラフィック描画をやってみた。これは楕円の塗りつぶしをやってみたもの。アルファ値を使った色の重ね合わせもできるので、二次元の描画としてはまずまずである。メモリ上に描画したあと液晶用のフレームバッファにまとめて転送する、というシンプルな実装だが、描画スピードもそう遅くはない。

 なお、waveshare32b-overlay.dtbswkim01 氏の github ページ にあるもので置き換えると、SPI 転送のバッファのサイズが大きくなるため、少し動作が速くなるみたい。さらに、/boot/config.txtwaveshare32b の行を dtoverlay=waveshare32b:rotate=270,speed=48000000 としてみた。これで SPI の転送スピードが 48 MHz になる。確かに速くなったような気もするけど、体感的にはそんなに変わらんかも…

 なお、液晶のタッチパネルも認識していることは確認できた。タッチパネルの入力を受け付けるようにすれば、ラズパイ+液晶だけで動かせるので、プログラミングできる携帯ゲーム機にもなりそう。これはまた後日。

Posted at 2016年09月06日 00:25:02
email.png