PiTFTを使ってみた
部屋の電気のスイッチに液晶つけて、操作パネル表示させたら面白いかなと思ってこれを買ってみた。タッチに対応してる。
https://learn.adafruit.com/adafruit-pitft-28-inch-resistive-touchscreen-display-raspberry-pi
セットアップ
セットアップ方法もリンク先に書いてある。
ただ開発に使ってるRaspberry Piではうまくセットアップできなかったので、新しくSDカードにOSをインストールしてからセットアップした。
Raspberry Piに接続するPiTFTって液晶買ってひと通りセットアップしたんだけど画面が真っ白でGUIが表示できない。一筋縄じゃいかないのか。
— loca (@locatw) 2015, 1月 10
PiTFT、OS再インストールしてセットアップしたらGUI表示されるようになったな。でも開発環境だから再インストール前の状態で使えるようにしたい。
— loca (@locatw) 2015, 1月 11
既存のRaspberry Piの環境へのPiTFTのインストールがうまくいかないから、結局新しくOSインストールしてPiTFT使うことにした。
— loca (@locatw) 2015, 1月 11
既存の環境はwin32diskimagerを使ってバックアップした。
読み込みと書き込みに少し時間かかるけど、新しいデバイスのセットアップする時にやるくらいならあまり手間にならない。
[Raspberry Pi]SDカードのディスクイメージを複製する – o24ブログ
GUIを表示してみる
セットアップができたのでwxPythonでボタンを表示してみた。
ようやくここまで出来た。ボタンをタッチすると"点灯"に変わる。GUIはwxPython使った。 https://t.co/A48JoidFfN
— loca (@locatw) 2015, 1月 11
スイッチ代わりだから大きめのボタンを表示したんだけど、どうも描画が遅くてちらつきが目立つ感じだった。
Raspberry PiでwxPython使ってトグルボタン表示させてるんだけど、どうもフリッカーが発生する。ダブルバッファリングもしてるのに。320x240のボタンだから描画に時間かかるんだろうか。
— loca (@locatw) 2015, 1月 12
Raspberry PiだとX windowは重いらしい。OpenGL使うとかしないと改善はなさそうだ。
— loca (@locatw) 2015, 1月 12
CPUで描画して遅いならGPU使えばいいじゃんと思って色々調べたら、Raspberry PiはOpenGLES2に対応してるらしい。
なのでOpenGLで描画してくれるGUIライブラリを探したらKivyというPythonのライブラリを見つけた。
Kivy: Cross-platform Python Framework for NUI Development
kivyっていうpythonのライブラリがいい感じでGUI書けそう。まだRaspberry Piでビルド終わってないからWindowsで試してるけど。
— loca (@locatw) 2015, 1月 12
でもRaspberry Piだとうまく動かなくて、また色々調べた結果、SPI接続のディスプレイにはGPUを使って描画ができないということだった。
Raspberry Piでkivyがうまく動かないな。exampleにあるやつを起動しても起動プロセスの途中で止まっちゃう。
— loca (@locatw) 2015, 1月 12
HDMIでディスプレイに繋いだらRaspberry Piでkivyの3DRenderingのexample動いた。さっき動かなかった時はHDMI繋がずにPiTFTで表示してたんだけど原因が分からん。エラー出してたわけでもないし。
— loca (@locatw) 2015, 1月 12
Raspberry PiとPiTFTでkivyが起動できない問題、やっと結論出た。PiTFTはSPIで接続してるからOpenGLES使うkivyは動かせないということらしい。HDMIでディスプレイに接続した時は動いたからあってるっぽい。https://t.co/Ad2Trut3d1
— loca (@locatw) 2015, 1月 13
結局操作パネルとして使うのは今回は見送ることにした。
はぁ、Raspberry PiでwxPython使うと描画が遅くてOpenGLES使おうとするとPiTFTだと動かせないとは。うまくいかないねぇ。
— loca (@locatw) 2015, 1月 13
PiTFTの所感
色々試して使ってみた感想としては、
- Raspberry Piのデスクトップを操作した感じではメニューなんかはパッと表示される。
- 一定時間経つと液晶のバックライトがOFFになるのは良い。
- 指だと少し強めにタッチしないと反応しないのでそこを設定で調整できたらよかったかも。スタイラスなら普通にタッチしても反応する。
- 1回タッチしただけでも2回以上選択したと判定されることが多くて、選んだつもりがないのに指の下にあったアプリケーションが起ち上がったりするのが不便。
- SPI接続だと描画が遅くて使い所が限られる気がする。HDMI接続ならOpenGLESが使えるので問題はなさそうなのに残念。
SPI接続だと描画が遅いのが一番ネックだと感じた。
今回はGUIコントロールを表示してみたけど、インフォメーションボード的な使い方だとどうなるかは興味ある。
その他
Kivyは見た目が洗練されてたのでWindowsなどで使うときは良さそうだと思った。