公式ストア:

本文紹介された3.5”HDMIタッチスクリーン:

AMAZON-jp

ドライバ不要のDSIタッチスクリーンもお勧めます:

AMAZON-jp

概要

OSOYOO 3.5インチHDMIタッチスクリーンのタッチ機能はRaspberry Pi 5BでデフォルトのWayfireグラフィックシステムを使用すると正しく動作しません。しかし、これらのモデルのデフォルトのグラフィックシステムをX11に変更すれば、問題なく動作します。

OSOYOO 3.5HDMI抵抗膜式タッチスクリーンをBullseyeシステム に適応させるために紹介したチュートリアルは、まだ適用できるはずです。ただし、タッチスクリーンの機能はBookwormのデフォルトのWayfireグラフィックシステムでは動作しないようです。この抵抗膜式タッチスクリーンをBookwormのデフォルトのWayfireグラフィックス・システムに合わせたい場合は、追加の設定手順が必要になるかもしれません。この場合、ADS7846タッチスクリーンをBookwormのWayfireと互換性を持たせるために、他の方法や設定を検討する必要があるかもしれません。タッチスクリーンの調整については、BookwormやWayfireの公式ドキュメントやコミュニティフォーラムを参照されることをお勧めします。

Bookwormについての詳細はこちらをご覧ください。

はじめに

ハードウェア接続

GPIOとHDMIインターフェースを接続する

Raspberry Piは40本のGPIOピンを、スクリーンは12本のピンを出力しています。接続の際は、対応するピンとRaspberry Piのピンに注意してください。

 

OSのインストール

1) 公式サイト または 弊社のチュートリアルに従ってBookwormのOSをインストールします。
2)イメージの書き込みが終わったら、TFカードを安全に保存して終了します。
3) TFカードをRaspberry Piに挿入し、Raspberry Piの電源を入れ、10秒以上待つと正常に表示される。ただし、このときタッチに異常があるため、以下の手順でタッチのキャリブレーションを行う必要があります。

 

タッチの設定

ご注意: デフォルトでは解像度が高すぎるため、sshやVNCなどのリモートデスクトップツールを使ってRaspberry Piを遠隔操作することをお勧めします。(ここではWindowsユーザー向けにputtyを使用しています。Raspberry Piのリモートコントロールについては: https://osoyoo.com/ja/?p=56660 )
Step 1) Waylandの代わりにX11を使うように設定する

1. まず、以下のコマンドを実行します:
sudo raspi-config

2. 次にAdvanced Optionsを選択し、Waylandを選択して、デスクトップに使用するバックエンドを制御し、次にX11を選択します。設定を保存し、Raspberry Piを再起動する。



Step 2) 画面設定の変更
マウスを使って、Raspberry Piのアイコン> Preferences -> Screen Configurationを選択して、新しいウィンドウで layout -> screen -> HDMI -> resolution -> 680×480を選択して、 Applyをクリックして、 OKをクリックしてください。解像度を640×480に設定することをお勧めします。
ご注意: Raspberry Pi OS Bookwormブランチシステムでは、dtoverlay=vc4-kms-v3dがデフォルトでロードされているため、/boot/config.txtで解像度を変更することは無効です。

Step 3) config.txtファイルに設定を追加する
1. 以下のコマンドを実行して、config.txtを編集します。(xpt2046(ads7846)ドライバをインストールする前に、config.txtファイルに設定を追加する必要があります)。

sudo nano /boot/config.txt

2. config.txtファイルの最後に、以下のパラメータを追加します。

hdmi_group=2
hdmi_mode=87
hdmi_drive=1
hdmi_pixel_freq_limit=20000000
hdmi_cvt 480 320 60 6 0 0 0
dtoverlay=ads7846,cs=1,penirq=25,penirq_pull=2,speed=50000,keep_vref_on=0,swapxy=0,pmax=255,xohms=150,xmin=200,xmax=3900,ymin=200,ymax=3900

3.ctrl + X、Y、Enterの順に押してこのファイルを保存し、次のコマンドを実行してRaspberry Piを再起動する。

sudo reboot 

Step 4)以下のコマンドを入力して、xpt2046ドライバとキャリブレータをインストールします。
sudo apt install xserver-xorg-input-evdev
sudo apt install -y xinput-calibrator


Step 5)タッチキャリブレーションファイルの設定

1. 以下のコマンドを実行します。
sudo cp -rf /usr/share/X11/xorg.conf.d/10-evdev.conf /usr/share/X11/xorg.conf.d/45-evdev.conf
sudo nano /usr/share/X11/xorg.conf.d/99‐calibration.conf

2. 99-calibration.confに以下のパラメーターを追加する、

Section "InputClass"
Identifier "calibration"
MatchProduct "ADS7846 Touchscreen"
Option "Calibration" "211 3942 3905 141"
Option  "SwapAxes"  "1"
EndSection

3. ctrl + X、Y、Enterの順に押してこのファイルを保存し、次のコマンドを実行してRaspberry Piを再起動します。

sudo reboot

Step 6) タッチの校正

a. マウスを使って画面を操作し、メインメニューから[Preferences]-[Calibrate Touchscreen]をクリックします(またはターミナルでDISPLAY=:0.0 xinput_calibratorと入力します)。

b. 校正後(四隅のクロスバーをクリック)、99-calibration.conf ファイルに書き込まれた校正値と同様の校正値が表示される。

c. 99-calibration.confファイルを再度編集する:

sudo nano /usr/share/X11/xorg.conf.d/99‐calibration.conf

d. 以下の行をキャリブレーション結果(ステップb)に示された新しい値に置き換えます。タッチを確認し、正しくない場合はキャリブレーションを繰り返します。
Option  “Calibration” “211 3942 3905 141”
Option  “SwapAxes” “1”


備考 これを行うと、Waylandを使用しなくなります。すべてのPiがWaylandを使用するように’変換’され、そのオプションはおそらく削除されるため、一時的な解決策になるかもしれません。そうですね。Waylandでキャリブレーションする方法を見つけられれば最高なんですが、何も見つけられませんでした。

今のところ、WaylandはRaspberry Pi 4と5でのみデフォルトです。それ以前のプラットフォームでのWayfireのパフォーマンスはまだ最適化中なので、今のところは古いX11ディスプレイサーバーとOpenboxウィンドウマネージャーを動かし続けますが、いつかはこれらのプラットフォームもWayfireに切り替わるでしょう。

Raspberry Piの公式投稿を追って、チュートリアルを更新していきます

X11デスクトップシステムが正しく動作しているか確認する方法

ターミナルで “echo $GDMSESSION “を使えば、どのX11デスクトップが動作しているかわかります(SSHのようなツールを使ってシステムに接続し、このコマンドを実行しても結果は得られません)。
“LXDE-pi-wayfire “はWaylandを意味します。
「LXDE-pi-x “はX11を意味します。