7インチタッチスクリーン設定

Raspberry Pi3に7インチタッチスクリーンを接続して使用可能にする
     Raspberry Pi  はコンポジット、HDMI、DSI(Display Serial Interface) の 3 種類のビデオ出力に対応しています。
  インチタッチスクリーンは、DSIコネクタを通してラズベリーパイと接続するLCDディスプレイです。
  HDMILCDディスプレイの同時使用が可能です。
  ドライバーのインストールと
タッチスクリーンとして使用する為の設定及び、HDMI同時
使用を可能にする設定を紹介します。

  ディスプレー仕様は
Raspberry Pi のディスプレイを参照して下さい。

接続方法
  以下のWebサイトを参照して接続して下さい。


 *設定変更する時は原文のHARDWAREを参照して下さい。

DSIディスプレイオート検出(必修)
  
検出を可能にするためには、以下のラインを/boot/config.txtに追加して下さい。

$ sudo nano /boot/config.txt
ignore_lcd=0
$ sudo
reboot

タッチスクリーンが働かない時
  アップデートしたかRaspbianを確認する
  
ケーブルが適切に接続されているか確認する

  正常ならタッチスクリーンの検出をするか確認する。

$ dmesg | grep -i ft5406

[ 5.224267] rpi-ft5406 rpi_ft5406: Probing device
[ 5.225960] input: FT5406 memory based driver as /devices/virtual/input/input3

  検出されたタッチスクリーンのスクリーンの解像度を/proc/cmdlinefbheight480に、fbwidth800にする。 

$ cat /proc/cmdline | grep bcm2708_fb

ラスビアンのアップデート
  タッチスクリーンが検出されない時は、ラスビアンをアップデートして下さい。
  

スプレイ表示が上下逆さまの時
  購入した状態で使用すると天地が逆転した状態で起動する(製品仕様)。Raspberry Pi 3側で画面の回転を設定することで天地逆転を直す設定をする。
  
/boot/config.txtに追加して保存後再起動する。

$ sudo nano /boot/config.txt
lcd_rotate=2
$ sudo
reboot

タッチスクリーンの解像度異常の時

  raspi-configを起動して下記の項目を設定する。これらの設定はラズベリーパイ設定メニューからもできます。

$ sudo raspi-config

タッチスクリーンの画面位置を調整(キャリブレーション)
  画面の表示位置がずれる、モニタタッチが正常に作動しないなどの場合には、画面の位置を調整するタッチスクリーンキャリブレーションして画面補正をします。
  タッチスクリーン画面位置調整アプリをインストールします。

$ sudo apt install xinput-calibrator
$ sudo reboot

  ssh経由では動作しないので、ラズパイにキーボードを接続した状態で下記のように実行して下さい。

$ DISPLAY=:0.0 xinput_calibrator

  実行すると下記の画像のように、赤い十字のマーカーが表示されるのでスタイラスペンでタップする。

  タップせずに一定時間経過するか、キーを押すと中断します。
  4ヶ所タップすると設定ファイルの修正を促すメッセージが表示されます。

  /etc/X11/xorg.conf.d/99-calibration.confファイルの[Section "InputClass"〜EndSection]を上記の内容に変更します。
  保存後再起動すれば有効になります。

  *
数値はキャリブレーションの結果で変化します

$ sudo nano /etc/X11/xorg.conf.d/99-calibration.conf

Section "InputClass"
    Identifier "calibration"
    MatchProduct "FT5406 memory based driver"
    Option "MinX" "55"
    Option "MaxX" "65480"
    Option "MinY" "205"
    Option "MaxY" "65740"
    Option "SwapXY" "0" # 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 reboot

99-calibration.confファイルの作成
  99-calibration.confファイル書き込み時エラーになった時の対処方法を記述します。
  この様な時”xorg.conf.d”ディレクトリも無いと思われので、ディレクトリを作成して下さい。(linuxコマンドを参照)
  所有権が無い時は、所有者を変更するか、su(スーパーユーザ)で作成します。
  今回はsuで作成する方法を記載します。
  rootディレクトリに移動して、su状態にします。パスワードを入力するとスーパーユーザになります。(ホスト名の変更と地域設定で変更したパスワードを入力します)
  ls、chmodコマンドはlinuxコマンドを参照して下さい。
  作成後にパーミッションを元に戻すことを忘れに処理して下さい。



chmodで”777”フルアクセス可能にしてファイル作成後”755”で元に戻しています。

右クリックをタッチスクリーンで使用出来る様にする

  xorg.conf/strong>に以下の記述を追加後、再起動する。

$ sudo nano /etc/X11/xorg.conf/strong

Section "InputClass"

    Identifier "calibration"
    Driver "evdev"
    MatchProduct "FT5406 memory based driver"

    Option "EmulateThirdButton" "1"
    Option "EmulateThirdButtonTimeout" "750"
    Option "EmulateThirdButtonMoveThreshold" "30"
EndSection

$ sudo reboot

仮想キーボードのインストール
  仮想キーボードを使用するには、ソフトのインストールとそのソフトの設定をする必要が有ります。
  日本語環境はディストリビューションのインストールに設定済みのはずですが、変更した時は日本語入力と日本語フォントのインストールを参照して下さい。

 

 Florence

$ sudo apt-get install florence
$
sudo apt-get install at-spi2-core
  

 matchbox

$ sudo apt-get install matchbox-keyboard

  ログイン画面でも仮想キーボードを使用出来る様に設定します。赤字の部分を変更すれば、他の仮想キーボードも可能です。(matchbox-keyboard)

$ sudo nano /etc/lightdm/lightdm-gtk-greeter.conf

show-indicators=~language;~a11y;~session;~power
keyboard=florence

 実行用スクリプト
  「matchbox-keyboard」という名前のプロセスが起動していなければ、 日本語配列でmatchbox-keyboard を 60% のサイズで起動します。
  起動済みの場合は matchbox-keyboard という名前のプロセスを終了させるシェルスクリプトです。
  toggle_mkb.shに記述します。

$ sudo nano /usr/local/bin/toggle_mkb.sh

#!/bin/sh
PID=`pidof matchbox-keyboard`
if [ ! -e $PID ]; then
    killall matchbox-keyboard
else
    matchbox-keyboard -s 60 jp &
fi

 コマンドでキーボードの画面サイズを変更する
  初期値の仮想キーボードの表示は画面一杯に表示されます。その表示サイズをコマンドで変更することが出来ます。
  上の行では 70%のサイズで表示し、下の行では60%のサイズを指定しています。

$ DISPLAY=:0.0 matchbox-keyboard -s 70 jp
$ DISPLAY=:0.0 matchbox-keyboard -s 60 jp

 メニューやディスクトップから起動出来る様にする
  初期値の仮想キーボードの表示は画面一杯に表示されます。その表示サイズをコマンドで変更することが出来ます。

$ sudo nano /usr/local/share/applications/inputmethods/matchbox-keyboard.desktop

[Desktop Entry]
Name=Keyboard
Comment=Virtual Keyboard
Exec=toggle_mkb.sh
Type=Application
Icon=matchbox-keyboard.png
Categories=Panel;Utility;MB
X-MB-INPUT-MECHANSIM=True



コーデック(H254)の映像の表示先を切り替えるには
  ビデオをタッチスクリーン又はモニターに表示させるには下記の様にコマンド指定して下さい。

 LCDディスプレイ(デフォルトディスプレイ)にビデオを表示する

$ omxplayer ファイル名

 HDMIタイプのディスプレイにビデオを表示する

$ omxplayer --display=5 ファイル名

  ビデオが1080P.適合であるならば、config.txtgpu_memの値(gpu_mem=64を128MBGPUに割り当てられたメモリーの量を増大させる必要があるます

タッチスクリーンのディスクトップ画面をHDMI接続モニタに表示するマルチディスプレイ化は出来ないみたいです。(自分には知識がないので、どなたか表示出来る様にして欲しいな ミラーだけでもよいので)