ラズパイ3に7インチディスプレイ追加 キオスクモードでWebIOPiボタン操作&Grafanaグラフ表示

メインのラズパイ3B+にセンサー管理やらセサミ鍵やらたくさんのデータが集まり過ぎてすぐに落ちてしまうようになったので2台目のラズパイ3B+を導入しました。

それを機に7インチタッチセンサー付きディスプレイでキオスクモードにしてリレーのスイッチ オン・オフの表示専用にしました。その様子など書いていきます。

この記事は複数のページに別れています
  1. (今このページを見ています)
2台目ラズパイ3Bに7インチディスプレイでキオスクモードしてみる

キオスクモードの7インチディスプレイを棚に設置して完成の図

7インチ・HDMI 1024x600 タッチスクリーンモニタ

ebayで買った

買ったお店は在庫切れになってしまいましたが、こちら↓と同じものを買いました。

7

7″ Display HDMI 1024*600 LCD with Touch Screen

LCD 1024x600ドライバ

ドライバーは以下からダウンロードしました。

https://www.waveshare.com/w/upload/1/1e/LCD-show-180817.tar.gz
$ wget https://www.waveshare.com/w/upload/1/1e/LCD-show-180817.tar.gz

こちらに↓数種類のサイズのドライバーがおいてあるようです。

GitHub - goodtft/LCD-show: 2.4" 2.8"3.2" 3.5" 5.0" 7.0" TFT LCD driver for the Raspberry PI 3B+/A/A+/B/B+/PI2/ PI3/ZERO/ZERO W
2.4" 2.8"3.2" 3.5" 5.0" 7.0" TFT LCD driver for the Raspberry PI 3B+/A/A+/B/B+/PI2/ PI3/ZERO/ZERO W - GitHub - goodtft/LCD-show:...

こちら↓は製造元の取説など。

7inch HDMI Display-C - LCD wiki

ドライバーインストール

ドライバーは/bootにコピーしてそこで解凍してインストールします。

$ sudo cp /home/pi/LCD-show-180817.tar.gz /boot/
$ cd /boot
$ sudo tar xzvf /boot/LCD-show-180817.tar.gz
$ cd LCD-show
$ sudo chmod +x LCD35-show
$ ./LCD35-show

インストールが終わったら自動的に再起動。

LCD35-showを実行したら続いて1024×600のドライバーもインストール

$ cd /boot/LCD-show
$ sudo chmod +x LCD7-1024x600-show
$ ./LCD7-1024x600-show

こちらも再起動する。

1024x600解像度変更

設定はドライバーで設定してくれているのでdisplay_rotate=3だけ設定する。その他のオプションはうまく行かない時に使うといいかもしれません。

$ sudo vim /boot/config.txt
#max_usb_current=1
#hdmi_group=2
#hdmi_mode=87
#hdmi_cvt=1024 600 60 3 0 0 0

display_rotate=3 #回転

#hdmi_ignore_edid=0xa5000080

LCD35-showだとタッチができないのでLCD7C-showを入れた

タッチができないので、違うのを試す。↓これでうまくいった。

$ cd /home/pi
$ git clone https://github.com/goodtft/LCD-show.git
$ chmod -R 755 LCD-show
$ cd LCD-show/
$ sudo ./LCD7C-show

7インチタッチスクリーンディスプレイの注意点

以下の注意点を理解しておきましょう。

  • ディスプレイの電源は、ラズパイのUSBに接続しないとタッチパネル使えない!!
  • 電源オフにしてバックライトを消してもタッチセンサーは生きているのでタッチはできます。

Chromiumを全画面に設定

2つ目のラズパイ3+のモニタをGPIOコントロール画面にする。

起動時にchromium/Singleton*削除

~/.config/chromium/Singleton*、正常に終了できなかった場合に残るので再起動前にCronで削除する。

$ crontab -e #以下追加
@reboot rm -rf ~/.config/chromium/Singleton*

.config/lxsession/LXDE-pi/autostartを編集する

これを変更、いらないのはコメントアウト「#」しておく。

$ vim /home/pi/.config/lxsession/LXDE-pi/autostart
@lxpanel --profile LXDE-pi
@pcmanfm --desktop --profile LXDE-pi
@xscreensaver -no-splash
#@point-rpi これいらない

こちらでchromiumを起動する。

$ vim /home/pi/.config/lxsession/LXDE-pi/autostart #無い場合は新規
@xset s off #スクリーンセーバーをオフ
@xset -dpms #Energy Star (DPMS)をオフ
@xset s noblank #Xのロゴマークを表示する
#@unclutter #マウスカーソルの表示を消す。使う場合はapt-getでunclutterしておく↓
@xserver-command=X -nocursor #マウスカーソルの表示を消すunclutterのどちらでも可
#chromiumをキオスクモードで起動
@chromium-browser --noerrdialogs --kiosk --incognito http://192.168.31.53:8000/test.html

マウスカーソルをunclutterを使って消す場合は、以下のようにインストールしておく。

$ sudo apt-get install unclutter

マウスカーソルはどちらにしてもタッチすると表示、指を離すと0.5秒くらいは表示されます。

現状はこれでもできるけど、LXDE-pi/autostartがなくなった?みたいなので他の案として、使えなくなったらsystemdでやる。

systemdでやったほうがいいかな?まぁしばらく放置。

画面を回転させたらタッチの位置がおかしくなったので改善

取説通りに設定してみる

この取説↓の「How to rotate Touch direction:」の部分。

http://www.lcdwiki.com/res/MPI7002/7inch_HDMI_Display-C_User_Manual(En).pdf

$ sudo apt-get install xserver-xorg-input-libinput
$ sudo cp /usr/share/X11/xorg.conf.d/40-libinput.conf /etc/X11/xorg.conf.d/
$ sudo vim /etc/X11/xorg.conf.d/40-libinput.conf

# touchscreenの部分Option "CalibrationMatrix" "0-1 1 1 0 0 0 0 1"を追加。
Section "InputClass"
        Identifier "libinput touchscreen catchall"
        MatchIsTouchscreen "on"
        Option "CalibrationMatrix" "0-1 1 1 0 0 0 0 1"
        MatchDevicePath "/dev/input/event*"
        Driver "libinput"
EndSection

でもタッチできなくなった・・・??と思ったらMicroUSBケーブルが電源のみで通信対応のではなかった。通信もできるMicroUSBケーブルだったらちゃんとタッチも使えた。

180度回転の場合は「Option “CalibrationMatrix” “-1 0 1 0 -1 1 0 0 1″」にする。

ここにあったキャリブレーションの取説。キャリブレーションはしなくていい。

http://www.lcdwiki.com/res/PublicFile/How_to_calibrate_the_Capacitive_Touch_Screen-V1.0.pdf

$ sudo apt-get install xserver-xorg-input-evdev
$ sudo rm /etc/X11/xorg.conf.d/99-calibration.conf
$ sudo touch /etc/X11/xorg.conf.d/99-calibration.conf
$ sudo apt-get install xinput-calibrator

起動時にエラーになった。

タッチがうまく行ったと思ったら・・・起動時に以下のようなエラーになった。

エラーになった

エンター押せば先に進むけど・・・キーボード接続しないといけないのが辛い。

「Cannot access to console, the root account is locked」の部分、なにかファイルがおかしいみたい。

$ lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
mmcblk0     179:0    0 119.3G  0 disk
├─mmcblk0p1 179:1    0  41.8M  0 part /boot
└─mmcblk0p2 179:2    0 119.2G  0 part /

fstabがおかしくなってたので以下のようにした。

$ sudo vim /etc/fstab
proc            /proc           proc    defaults          0       0
/dev/mmcblk0p1  /boot           vfat    defaults          0       2
/dev/mmcblk0p2  /               ext4    defaults,noatime  0       1

これ↓で解決した。suloginをバックアップにして新しくする。

$ sudo mv /sbin/sulogin /sbin/sulogin.back

うまく行かなかった方法

こちら↓のやり方はこのディスプレイではうまくいきませんでした。メモとして残しておきます。

$ cd /home/pi/script/LCD-show
$ sudo dpkg -i -B xinput-calibrator_0.7.5-1_armhf.deb
$ DISPLAY=:0.0 xinput_calibrator

赤い+字が表示されるので正確にタップしていく。4回。うまくいくと以下のような表示になる。失敗が多い。

 $ DISPLAY=:0.0 xinput_calibrator
Calibrating standard Xorg driver "Fondar Fondar USB Touch"
        current calibration values: min_x=0, max_x=65535 and min_y=0, max_y=65535
        If these values are estimated wrong, either supply it manually with the --precalib option, or run the 'get_precalib.sh' script to automatically get it (through HAL).
        --> Making the calibration permanent <--
  copy the snippet below into '/etc/X11/xorg.conf.d/99-calibration.conf' (/usr/share/X11/xorg.conf.d/ in some distro's)
Section "InputClass"
        Identifier      "calibration"
        MatchProduct    "Fondar Fondar USB Touch"
        Option  "MinX"  "56387"
        Option  "MaxX"  "57043"
        Option  "MinY"  "19280"
        Option  "MaxY"  "19408"
        Option  "SwapXY"        "1" # unless it was already set to 1
        Option  "InvertX"       "0"  # unless it was already set
        Option  "InvertY"       "0"  # unless it was already set
EndSection

ううん・・・タッチがぜんぜん違う方にタッチされる・・・

$ sudo vim /etc/X11/xorg.conf.d/99-calibration.conf
Section "InputClass"
        Identifier      "calibration"
        MatchProduct    "Fondar Fondar USB Touch"
        Option  "MinX"  "56260"
        Option  "MaxX"  "57498"
        Option  "MinY"  "19290"
        Option  "MaxY"  "19333"
        Option  "SwapXY"        "1" # unless it was already set to 1
        Option  "InvertX"       "0"  # unless it was already set
        Option  "InvertY"       "0"  # unless it was already set
EndSection

コレ入れて再起動してもダメ。

コメント

タイトルとURLをコピーしました