Raspberry Piに小型タッチモニタをつける【Elecrow RR040I】

Raspberry Piに小型のタッチモニタを付けてみました。HDMIの設定が思いの外大変でした。

Raspberry Piに小型タッチモニタを付けます。
普段はモニタなど付けずにsshやVNCで操作することがほとんどです。でも時々外で使いたいと思うことがありました。そんな時はスマホのテザリングへ接続してVNCとかしてたんですけど、WiFi設定をミスると手も足も出ない事に・・・小さいモニタがあればいいなぁと思ってました。

小型モニタと言ってもサイズが3.5インチから7インチほどまであります。どのサイズにするか?目的によって最適なサイズが異なります。外でもガシガシ使いたいなら大きいサイズが欲しいです。気軽に持ち歩きたいなら小さいサイズが欲しいです。
今回はRaspberry Piとほぼ同じサイズの4インチを買ってみました。

買った商品はこちら

ElecrowのRR040Iです。アマゾンのページには型番が書いてないんです。中華製品あるあるです。
液晶はIPSパネル、タッチパネルは感圧抵抗膜式です。解像度は800x480、ちょっと低い気がしますが4インチじゃ細かい文字が見えないのでこのくらいが丁度よいでしょう。

Raspberry Piとの接続はHDMI接続です。テレビやモニタにつなぐのといっしょ。Raspberry Piに載せるなら専用のHDMIアダプタでスッキリ接続できます。
電源とタッチパネルの通信はGPIO端子からです。GPIO端子に挿すだけです。

Raspberry Pi 3Bに載せてすぐに表示できるだろうと思っていたのですが、全く表示されませんでした。
HDMI出力の設定を800x480にしてもダメです。
Raspberry Pi 3Bで表示できない
青い画面が点滅します。時々No Signalと文字が見えます。

いろいろ試すとこのモニタは縦表示がデフォルトのようです。HDMIの設定を800x480ではなく480x800にしなくてはなりません。
縦表示

モニタが映った次はタッチパネルが動きません。

ドライバのインストール

色々設定しましたが、製品ページに設定用スクリプトがありました。最初にコレをやれば大丈夫。
アマゾンのページに型番が無かったので辿り着くまで時間がかかりました。
1: Use with Raspbian
ターミナルで次のコマンドを入れます。
cd ~/Downloads
git clone https://github.com/goodtft/LCD-show.git
cd LCD-show/
sudo ./MPI4008-show
スクリプト実行後に自動で再起動されます。

ソフトウエアキーボードを入れる

モニタとタッチができるようになりましたが文字を入れられません。ソフトウエアキーボードを入れますスマホでお馴染みのやつです。
ElecrowのGithubにインストール方法が紹介されています。
matchbox-keyboardというソフトキーボードをビルドしてインストールするようです。matchbox-keyboardはレポジトリにもありますがバージョンが古いようなのでビルドできるならした方が気持ちいいです。
書かれているとおりにやって行きます。
sudo apt update
sudo apt install libfakekey-dev libpng-dev libxft-dev autoconf libtool -y

cd ~/Downloads
git clone https://github.com/Elecrow-keen/matchbox-keyboard.git
cd matchbox-keyboard
chmod +x ./autogen.sh
sudo ./autogen.sh
sudo make
sudo make install
sudo ldconfig
終わったら再起動しておきましょう。
メニューのアクセサリにキーボードが追加されています。ターミナルから動かすには
DISPLAY=:0.0 matchbox-keyboard
と入れます。リモートのsshでコマンドを入れる時、どのデスクトップにキーボードを表示させるかをはっきりさせるため"DISPLAY=:0.0"と入れます。複数のモニタをつないでいると番号が違うかもしれません。

コマンドにオプションを指定するとテンキーも表示できます。
DISPLAY=:0.0 matchbox-keyboard extended
デスクトップのメニューから動かす時もextendedを追加しておきます。アクセサリーのkeyboadの上で右クリックしてプロパティを表示し、コマンドに”extended”を追加します。

長押しを右クリックにする

ここで問題に気づきました。タッチパネルで右クリックができない!
普通は長押しが右クリックになっているでしょう。なぜできない?
ドライバをインストールしたスクリプトでは長押しまで設定してくれないようです。この記事公開時点では。
/etc/X11/xorg.conf.d/99-calibration.conf ファイルに追加の設定が必要です。
編集します。
sudo nano /etc/X11/xorg.conf.d/99-calibration.conf
ここのEnd Sectionの上に次の3行を追加します。
Option "EmulateThirdButton" "1"
Option "EmulateThirdButtonTimeout" "750"
Option "EmulateThirdButtonMoveThreshold" "30"
保存した後に再起動すれば長押しが使えるようになっているでしょう。

Chromiumでスクロール

スクロールバーが画面の端っこで狭いのでブラウザのスクロールがやりにくいです。スマホのようにスクロールするにはどうしたら良いのでしょう。
次のコマンドでTouchscreenのidを調べます。
xinput list
Raspberry Piが認識している入力デバイスが表示されます。Virtual core pointerにTouchscreenがあるはずなので表示されているid番号を確認します。
メニューのchromiumのプロパティで起動コマンドにオプションを追加します。デスクトップエントリーのコマンドに
例えばid番号が6だったら
chromium-browser --touch-devices=6 %U
とオプションを追加指定します。
chromiumを起動するとタッチでスクロールできるようになっているでしょう。

まとめ

ただのモニタなんだからつなげば映るだろうと軽い気持ちで買いました。でも意外と面倒でした。
モニタの解像度が低く、しかも縦表示という今どきの小型モニタらしさに少し古い設計のRaspberry Pi 3が対応できませんでした。Raspberry Pi 4なら表示できます。Raspberry Pi 3でもHDMIの設定をすれば表示できます。
メーカーのHPに従ってドライバを入れるスクリプトを動かせば問題なく表示できます。
タッチパネルの設定は最初に出処不明のネット情報でやったのですが、画面の端っこがタッチできない状態になりました。デスクトップのメニューボタンを押せない!
真面目に型番を調べてメーカーの情報を追っていけば正常に使えるようになりました。
【2020/10/30追記
720 x 1200 OK
720x1280 OK
768 x 1280 OK アスペクト比良い
864 x 1200 OK
864 x 1280 OK
960 x 1200 OK
960 x 1280 OK
768x1366  映るが1280になる
これ以上は Not Support のようだ。
もちろん文字はつぶれます。アスペクト比は無視されて引き伸ばされる?



コメント

  1. chromium-browser --touch-devices=6 %Uとプロパティのコマンド欄に入力しましたがタッチスクロールできませんでしたちなみに機種はRaspberrypi3bです。

    返信削除

コメントを投稿

最近のコメント

Threaded Recent Comments will be here.