Take’s diary

Macとマイコンに関すること--ワクワクの製作日記

Openframeworks で Pi3 7" タッチスクリーン LCD のタッチ機能を有効にする。

今回のテスト画面は

標準のGUI addonを使ったソースに変更した前回のD6Tプログラムを実行させてみるとこんな感じ。

                            

 OF標準のofxGuiを使ってスライダーをタッチスクリーン用に作って見ました。反応もまずまず。OF標準GUIを大きく設定すると、タッチスクリーンでも確実にタップできます。デザインもそんなに悪くありません。

                         

   こちらはofxBox2dのexample。60fps出てます。早っ!!。タッチスクリーンだと結構快適。

 スピードが要求されるソフトを作る時はRaspberry Pi 7" Touch Screen LCDがGood!!。フレームレートが60fpsってことはIGZOパネルと比べて2倍。視野率とか発色もかなり良。最大の欠点は表示範囲が狭いことですが、それさえ我慢すれば、IGZOパネルと比べてWEBもかなり早く表示されます。

 で、今回は以前別の基盤(UDOO)を取り付けていたスタンドをPi3+Raspberry Pi 7" Touch Screen LCDに載せ換えました。私のブログのヘッダーにつけている写真の全体像です。

          f:id:TAKEsan:20160504221848j:plain

      アンティーク感満載!!。Xscreenseverが動き出すと部屋のオブジェになります。

f:id:TAKEsan:20160504225933j:plainf:id:TAKEsan:20160504221849j:plain

           でも裏側は、結構雑だったりして......。

 雑貨コーナーで買ってきた真鍮製6,500円のフォトフレームに、特注の電圧計(協和電気計器株式会社)を付けたもの。電圧計は3V Maxにしました。ワニ口クリップをつけてアナログピンのテストに使ってます。

 タッチ機能をOFで使うための設定

 Pi3でOpenframeworksを実行させるとしたら、このディスプレイを使うと実行スピードや発色、フォントの取り扱い等、使い易さが抜群です。

 これでタッチ機能が使えれば、Pi3で本格的に独立したアプリケーションが比較的簡単に作れます。GUIを工夫すればiPhone並みのアプリが作れるのではないでしょうか?

 設定方法は、前々回のところで説明しましたが、~/of_v0.9.3_linuxarmv6l_release/libs/openFrameworks/app/ofAppEGLWindow.cpp

の中身を変更するだけで済みました。

まずevtest をインストール

  sudo apt-get install evtest

インストールしたら

  evtest

f:id:TAKEsan:20160504212456p:plain

                evtestを実行している様子

 表示された「FT5406 memory based driver」のイベント名を調べます 私の場合は、念のためUSBマウスを接続しているので event3 であること確認できます。

 今回キーボードの設定は変えませんので、マウス部分だけを修正。まず安全のため、ofAppEGLWindow.cppのバックアップを忘れずに。

変更箇所は、コメントで「By TAKEsan」が書き込まれている以下14行です。(ofAppEGLWindow.cppのソースを変更)

f:id:TAKEsan:20160504211955p:plain

           110行付近 event-mouse を event○○ に変更

f:id:TAKEsan:20160504211953p:plain

            200行付近 mouSescaleX、Yを 1.0fに変える

f:id:TAKEsan:20160504211951p:plain

          400行付近 ここも、mouSescaleX、Yを 1.0fに変える

f:id:TAKEsan:20160504211948p:plain

        1350行付近 /dev/input/by-path をdev/input/ に変更。上記2箇所

f:id:TAKEsan:20160504211944p:plain

1670行付近 上記6箇所(By TAKEsan 部分)。上から、2行追加。次の2箇所も追加。この4箇所追加した部分がタッチパネル設定のキモ。次にコメントを入れ(ofLogNotice部分)、最後にBTN_LEFTを330に変更。見にくいですが拡大すると文字が見えると思います。

 あとは通常どおりコンパイルするだけで、マウスの代わりにタッチディスプレイが使えるようになります。

試しに openframeworkのexamplesからgui guiexample のフォルダに入って 

 make

 make run

してみると、GUIメニューが小さすぎて指では操作しにくいのですが、マウスの代わりにタッチスクリーンが確実に機能します。更にプログラム中でGUIの大きさを変えることでタッチ機能を存分に使いこなせるようになります。

f:id:TAKEsan:20160504221851j:plain

                  庭に咲いたチューリップがあまりにも綺麗だったので。

 

ではまた。