Raspberry Pi3 + Volumio2でタッチディスプレイが使えるようにしてみる
はじめに
外出もなかなか出来ないこのご時世で暇を持て余していたので、Raspberry Pi3にVolumio2をインストールして音楽用端末を作ってみました。
タッチ操作出来たら格好良さそうじゃん?って思ってタッチディスプレイもつけてみたのですが、設定で結構ハマったので記事に残しておきます。
出来上がった姿がこちら。
環境
- ハードウェア:Raspberry Pi3 Model B+
- ディストリビューション:Volumio2 バージョン2.806 (2020年8月現在)
- タッチディスプレイ:Kuman 5インチ (800x480) タッチディスプレイ
Volumio2のインストール
公式サイトからRaspberry Pi用のimgファイルをダウンロードしてきます。
https://volumio.org/get-started/
ダウンロードが終わったらSDカードにimgファイルを書き込みます。
Raspberry Pi Imagerを使うのが簡単でオススメです。
「CHOOSE OS」で「Use custom」を選ぶことで任意のimgファイルを選択できます。
Volumio2の初期設定
Raspberry Piの電源を入れ、初期設定を行います。
Wi-Fiのアクセスポイントを探すと「Volumio」という名前のアクセスポイントが見つかるのでそれに接続します。
接続したら、ブラウザで「http://volumio.local」と入力してVolumio2の画面を開きます。
あとは流れで設定をしていきますが、ここはいろんなページで説明されているので割愛。
タッチディスプレイのセットアップ
プラグインのインストール
ここからが本題。
まずはタッチディスプレイ用のプラグインをインストールします。
70%から結構時間がかかるのでとりあえず完了まで待ちましょう。
たまにインストールが70%で止まってしまう現象が発生することがありますが、その時は再起動してあげることで解決します。
(発生する原因はよく分からず...)
インストールが完了したら、プラグインをOnにすることで有効化できます。
ディスプレイにブラウザで開いている画面と同じ画面が映るようになります。
タッチ操作用の設定
タッチ情報がUSBで入力されるタイプのディスプレイでは恐らく問題ないですが、
今回使用しているKumanの5インチディスプレイなど、GPIOと接続するタイプのディスプレイだと、タッチ操作ができるように設定を行う必要があります。
この設定はSSHで接続して行う必要があるので、まずはSSH接続用の設定をします。
http://volumio.local/DEVにアクセスして、SSHのEnableをクリックするだけでOKです。
ターミナルでssh volumio@volumio.localと入力してRaspberry Piに接続します。
パスワードはデフォルトで"volumio"に設定されています。
ログインしたら /boot/userconfig.txt に以下の設定を追記します。
(/boot/config.txtでも良いのですが、カスタマイズした設定はuserconfig.txtに書いた方が分かりやすいです。)
ちなみにviやvimは入っていないので、nanoで編集することになります。
/boot/userconfig.txt
# 解像度の設定 hdmi_group=2 hdmi_mode=87 hdmi_cvt 800 480 60 6 0 0 0 # タッチ操作の設定 dtparam=spi=on 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
※注意
製品付属のQuickStartには下記のコマンドで設定するように指示していますが、Volumioの場合は絶対に下記のコマンドで設定しないでください。
カーネルパニックを起こしてVolumioが死にます。
(もしやってしまった場合は大人しくVolumioのimgを再度書き込み直しましょう。)
sudo rm -rf LCD-show git clone https://github.com/goodtft/LCD-show.git chmod -R 755 LCD_show cd LCD-show/ sudo ./LCD5-show
VolumioではなくRaspberry Pi OSなどでタッチディスプレイを使用する場合は問題ないと思います。
上のコマンドでも/boot/config.txtに設定値を書き込んでいるだけなので、やっていることは同じです。
日本語フォントのインストール
現状だと文字化けを起こしているはずなので、日本語フォントをインストールします。
sudo apt-get install fonts-ipafont
ここまで設定すれば、あとは再起動することで、タッチディスプレイが使用できるようになります。
ちょっと小話
製品に付属しているQuickStartのinterfaceを見れば分かるのですが、GPIOと接続するタイプのディスプレイはSPI通信によってタッチ情報のやりとりをしているっぽいです。
タッチ操作用の設定にdtparam=spi=onなどがあるのはこのためでしょうねという話。