右向き矢印のメモ帳

技術系の備忘録とか

Raspberry Pi3 + Volumio2でタッチディスプレイが使えるようにしてみる

はじめに

外出もなかなか出来ないこのご時世で暇を持て余していたので、Raspberry Pi3にVolumio2をインストールして音楽用端末を作ってみました。

タッチ操作出来たら格好良さそうじゃん?って思ってタッチディスプレイもつけてみたのですが、設定で結構ハマったので記事に残しておきます。

出来上がった姿がこちら。

f:id:arrow52:20200814141843j:plain
タッチディスプレイでVolumioを操作できる

環境

  • ハードウェア: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ファイルを選択できます。

f:id:arrow52:20200814141750p:plain

Volumio2の初期設定

Raspberry Piの電源を入れ、初期設定を行います。
Wi-Fiのアクセスポイントを探すと「Volumio」という名前のアクセスポイントが見つかるのでそれに接続します。
接続したら、ブラウザで「http://volumio.local」と入力してVolumio2の画面を開きます。
あとは流れで設定をしていきますが、ここはいろんなページで説明されているので割愛。

タッチディスプレイのセットアップ

プラグインのインストール

ここからが本題。

まずはタッチディスプレイ用のプラグインをインストールします。
70%から結構時間がかかるのでとりあえず完了まで待ちましょう。
たまにインストールが70%で止まってしまう現象が発生することがありますが、その時は再起動してあげることで解決します。
(発生する原因はよく分からず...)

f:id:arrow52:20200814144844p:plain
Touch Displayを選択してインストール

インストールが完了したら、プラグインを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通信によってタッチ情報のやりとりをしているっぽいです。

f:id:arrow52:20200814143811j:plain

タッチ操作用の設定にdtparam=spi=onなどがあるのはこのためでしょうねという話。