2018年5月25日金曜日

Raspberry Piで3.5インチ(340x480)のタッチLCD(画像:HDMI、タッチ: SPI)を使う方法


背景

Raspberry Piに載せて、HDMI接続して使う3.5インチのタッチLCDを買いました。

備忘録を兼ねて、ドライバの設定方法を共有します。

使ったもの

KeDei 3.5インチLCD





amazonで買いました。

動く状態のRaspberry Pi



Raspberry Pi B+(+ WiFiドングル)、16GB SD、Raspbian (Stretch)、2A電源で動作確認しました。
Raspberry Pi 3BでもLCDを動かせると思います。

接続

GPIOピンをLCDのソケットに差し込みつつ、Raspberry Piに載せます。


HDMIコネクタを付けて、Raspberry PiとLCDをHDMIで接続します。


ドライバを設定せずに利用

ドライバを設定せずにRaspberry Piを動作させると、LCDのピクセル数より大きめの画面(多分640x480px)が小さく表示されます。


ドライバを設定していないので、タッチは使えません。

メーカーのドライバを設定(失敗)

KeDeiというLCDを作ったメーカーのページに従って、ドライバをRaspbianに設定します。

KeDei LCD

しかしながら、記事を書いているときに自分の試した範囲では、上記のページで提供されているドライバではタッチを有効にできませんでした。
(ドライバが更新されれば、動くようになるかもしれません。)

他のメーカーのドライバを設定(成功)

他のHDMI対応LCDを作っているメーカーのドライバを工夫して設定すればKeDeiのHDMI LCDを動かせたので、やり方を紹介します。

e-Paperモジュールや、他のサイズのLCDモジュールを作っているwaveshareというメーカーのドライバを利用します。

3.5inch_HDMI_LCD

まず、ドライバをダウンロードします。
ここでは記事を書いている時点で公開されているurlを利用していますが、更新される可能性があるので、ドライバのurlはResoruceのDriverで確認してください。
cd /boot
sudo wget https://www.waveshare.com/w/upload/3/34/LCD-show-180331.tar.gz
sudo tar xzvf /boot/LCD-show-180331.tar.gz

下記のようなコマンドで、LCDを90度で動かすためのドライバを実行します。
このドライバは関連ファイルをネットからダウンロードするので、Raspberry Piをインダーネットに接続した状態で実行する必要があります。
このドライバは、関連ファイルをインストールをしたら自動的に再起動します。
cd /boot/LCD-show
./LCD35-HDMI-480x320-show 90

再起動したら、LCDのピクセル数と同じ480x320pxの画面が90度回転した状態で表示されます。


しかし、タッチ機能が90度ずれた状態になっています。


このドライバを使うと、LCDの表示やタッチ機能の有効化はできるのですが、タッチ機能とLCDの表示が90度ずれてしまうようです。
タッチかLCD、どちらかの表示方向を変えられれば、それぞれの向き合わせられます。
ここでは自分が変更しやすいと思ったLCDの表示方向を買える方法を紹介します。

/boot/config.txtに表示方向を設定する記述(display_rotate)があるので、その設定値を-1(設定が無かったり、0だったら3を設定)します。
90度に設定するドライバを実行した場合はdisplay_rotateに1が設定されていると思うので、その行を消すか、0にします。
sudo vi /boot/config.txt

上記のコマンドは、viというファイル編集プログラムで/boot/confit.txtを編集するコマンドです。
矢印でカーソルを移動できます。
最初は閲覧モードになっていて、「a」や「i」を入力すると編集モードになり、「Ctrl + c」を入力すると閲覧モードに戻ります。
閲覧モードで「:q!」と入力すると変更を破棄して終了、「:wq」と入力すると保存して終了できます。
viの詳しい使い方は検索などで調べてみてください。

/boot/config.txtを下記のように編集します。
/boot/config.txt
# display_rotate=1
display_rotate=0


上記の設定変更後に再起動すると480x320pxの画面が表示されます。


LCDの表示方向を90度変えたことで、タッチ機能が期待通りに動くようになりました。


まとめ

3.5インチのタッチ機能付きLCDをRaspberry Piで動かせました。
個人的に、以前試したSPI接続で画像を表示するLCDより、今回のLCDが使いやすくて良かったです。

参考になれば嬉しいです。

0 件のコメント :