2015年11月5日木曜日

Raspberry Pi公式タッチディスプレイで本書の演習を実行する

はじめに

Raspberry Piは名刺サイズの小型コンピュータとして注目を集めましたが、大型のHDMIディスプレイに接続すると、そのメリットをあまり享受できません。机の上をコンパクトにまとめるため、小型のディスプレイが欲しいところでした。

2015年9月、Raspberry Pi財団より公式の7インチタッチディスプレイが発表され注目を集めました。
しばらく入手しにくい時期が続きましたが、私もようやく入手できましたので本書の演習が実行できるかどうか、試してみました。

以下の写真は、このタッチディスプレイにキーボードとマウスを接続し、Lチカの演習を行っている様子です。タッチをマウスの代用にできるのですが、やはり使い慣れたマウスがあると便利なので接続しています。


入手方法

下記のように、様々なお店で入手可能です。
購入する際は注意すべきことがあります。

Raspberry Pi用のタッチディスプレイはサードパーティ製も含め様々な種類のものが販売されていますが、ここで紹介するものはRaspberry Pi財団公式のものです。

サードパーティ製のものは設定方法や性能などが全く異なります。購入する際はそれが公式のものであることをよくチェックしましょう(上のリンクは全て公式のものです)。

使用している様子

このタッチディスプレイの解像度は800x480です。ターミナルソフトウェアLXTerminalを起動したときの様子は下図ですが、画面の広さがどの程度かの目安になるのではないでしょうか。


LXTerminalの他、IDLEおよびそのエディタを起動した様子が下図です。各アプリケーションをそれぞれ最大化し、画面上部のタスクバーを用いて(あるいはキーボードショートカットのAlt+Tabで)アプリケーションを切り替えて使うのが現実的でしょう。


組み立て

私が購入した際は、以下の図のような状態で届きました。メス-メスのジャンパーワイヤが4本付属しましたが、実際には2本しか用いません。

説明書などは付属しませんでした。以下のページは説明が英語ですが図が豊富ですので、これを参考にすると迷わずに組み立てられるのではないでしょうか。
ポイントは下記の通りです。
  • リボンケーブルの表裏を間違えないよう注意する
  • ディスプレイ基板の5VピンとGNDピンをRaspberry PiのGPIOの5VピンとGNDピンにメス-メスのジャンパーワイヤで接続する(ピンを間違えないように!
  • microUSBの電源はタッチディスプレイの基板側に接続する。また、電源は2Aの電流を流すことのできるものを用いる。1.2Aしか流せない電源を用いると、スクリーンセーバーからの復帰時(つまり電力を多く消費するとき)にRaspberry Piが落ちるという経験をしました。


タッチディスプレイの裏側にRaspberry Pi 2を固定した様子が下図になります。

付属する物品のままではこのディスプレイを立てることができません。そこで、私は手元にあったタミヤの楽しい工作シリーズのパーツを下図のように取り付けました。


下記のキットのL字パーツが使えるのではないかと思います。
さらに、厚みを出すためにユニバーサルアームの切れ端を挟み、楽しい工作シリーズの3mm径のビスで固定しています。

海外のショップではタッチディスプレイ用のフレームも合わせて購入できるところもあるようで、ちょっとうらやましいところです。日本では下記で同じものが入手できるようです(どちらもケースのみの価格です)
なお、本書のように電子工作を行う場合、Raspberry PiのGPIOポートが手元になければいけません。しかし、上図のようにタッチディスプレイの裏にRaspberry Piを固定するとGPIOを用いるのが難しくなります。

そこで、下図のように、GPIOのピンを引き出し、ブレッドボード上で全てのピンを利用できるようにします。タッチディスプレイに必要な5VとGNDもこのブレッドボードからとるようにしています。


GPIOをブレッドボードに引き出すためには、例えば下記の商品があります。上の写真ではSWITCHSCIENCEさんのものを購入して用いています。

これらの商品は、はんだづけが必要なキットであることが多いと思います。

なお、上図の黒いフラットケーブルの向きは、間違った向きにも取り付けられるようになっています。正しい向きに取り付けないとタッチディスプレイや演習で作成する回路を破損する恐れがありますのでご注意ください。この件も含め、本ページの内容を実行する際は全て自己責任でお願いします。

また、この40ピンフラットケーブル(リボンケーブル)ですが、上の写真のSWITCHSCIENCEさんのものはかろうじて使える長さであるものの、もう少し長いと配置に余裕ができて嬉しいところです。探してみたのですが、なかなか見つかりませんのでしたので、下記のものを購入して自作しました。
RSコンポーネンツですので、個人での利用は若干面倒かもしれないのがネックですね。作成の際はこちらの動画を参考にしました。万力(バイス)が必要ですが、amazonで1000円前後で購入できます。

Raspberry Piの設定

NOOBS 1.4.2以降 (jessie) とNOOBS 1.4.1 (wheezy) に含まれるRaspbianで動作を確認しました。

まず、NOOBSのインストール時にこの公式ディスプレイを使えたのはNOOBS 1.5.0以降のみでした。

NOOBS 1.4.2 (jessie)と1.4.1 (wheezy)では、どちらもインストール時に画面に何も映らず使えませんでした。そのため、NOOBS 1.4.2と1.4.1で公式ディスプレイを使用するには下記のどちらかの方法をとる必要があります。

  • あらかじめ別のディスプレイを用いてインストールしたSDカードを用いて起動する
  • 書籍付録PDF収録の付録Gで解説されている手法で、WindowsなどのPCからRaspbianのイメージを直接SDカードに書き込む。そしてそのSDカードで公式ディスプレイを利用する。この場合、初回起動時に設定アプリケーションでファイルシステムの拡大(Expand Filesystem)を実行することを忘れないこと

2つめの手法は、NOOBSを用いず、Raspbianのイメージを直接SDカードに書き込む手法で、慣れるとこちらの方が楽なのですが、書き込み先のSDカードのドライブを間違えるとPC環境を壊してしまうので、注意しましょう。上記PDFにはどこで注意すべきかも記してあります。

さて、上記のいずれかの方法でRaspbianをセットアップした後、Raspberry Piをタッチディスプレイに接続して電源を入れるとそのまま画面が映ります。ただしNOOBSの各バージョンで注意があります。

NOOBS 1.4.2以降 (jessie) の場合、デフォルトでは752x448となってしまいます。下図のように設定アプリケーションのSystem→OverscanをDisableに設定してから再起動しましょう。以後は800x480の解像度で利用可能になります。(下記の図には、イメージ書き込みでインストールした時に必要な「Expand Filesystem」も一番上に見えますね)


NOOBS 1.4.1 (wheezy) の場合、画面は映るのですが、画面が180度回転して上下逆さになった状態になります。ターミナルを起動して、下記のコマンドを実行してから再起動すると向きが正しくなります。
  • sudo apt-get update
  • sudo apt-get upgrade
2番めのコマンドは、OSの更新を行いますので数十分かかる場合があります(OSがwheezyのまま、カーネルのバージョンが4.1.7や4.1.13になるでしょう)。
さらに、sudo raspi-configで設定アプリケーションを実行し、「8 Advanced Options」→「A1 Overscan」の設定をDisableにして再起動すれば、800x480の解像度でディスプレイを用いることができます。

タッチスクリーン用ケースとともに使う場合

このタッチスクリーンを公式のケース(例えば秋月電子通商さんのこちら)に収めて利用する場合、ディスプレイの上下が逆さな状態で設置して利用するのがデフォルトとなってしまっています。その場合、下記の設定をすることで、映像を180度回転して正しい向きで利用できるようになります。

まず、ターミナルLXTerminalを起動し、下記のコマンドを実行します。
sudo leafpad /boot/config.txt
このコマンドにより、設定ファイル/boot/config.txtが管理者権限のテキストエディタleafpadで開きますので、末尾に下記の1行を追記します。
lcd_rotate=2
追記したら保存してRaspberry Piを再起動します。映像が180度回転され、正しい向きでケース入りのタッチディスプレイを利用できるはずです。

おわりに

というわけで、Raspberry Pi公式タッチディスプレイの利用法を紹介しました。このタッチディスプレイの評価は、800x480という解像度をどうとらえるかで分かれるだろうと思います。

10年くらい前のノートPCには、800x600という解像度のものが多くありました。そのようなノートPCを使った経験のある方なら、このタッチディスプレイをそれほど違和感なく使えるのではないでしょうか。

逆に、広いデスクトップしか使ったことがないという方には厳しいかもしれません。

個人的には、Rapsberry Pi一式がコンパクトにまとまり、机が広く使えるようになるためとても気に入っています。