25.液晶タッチパネルの使用 (2021.8.4)

RasPiのGPIOに接続して使える小型液晶タッチパネルが入手できたので、将来的に何かの役に立つかもしれないと思いセットアップしてみました。実はこの商品、RasPiモデル3Bの中古を譲り受けた時のおまけで、何も表示されないので壊れているかもしれないという話でした。その時はドライバをちゃんと組み込んでいないからだろうくらいに考えていたのですが、そんな単純な話ではありませんでした。ネットで商品を調べて(型番等もわからず、裏の基板の部品レイアウト等から調査)ドライバを組み込むも、やはり画面には何も表示されませんでした。正確にはバックライトは点灯するものの、真っ白で画像表示されないという症状です。HDMI出力はモニターに接続しているのですが、起動途中の画面のまま変化が無くなります。恐らくドライバが出力先を液晶タッチパネルに切り替え、HDMI出力が更新されないのでしょう。バッファに残った最後のデータをHDMIに出力し続ける感じです。

実験に使用したRasPiはVNCでWindowsPCからリモート操作できるようにしてあったため、こちらではモニター解像度が低くなってきちんとデスクトップが表示されています。つまり起動自体はきちんとできていると言う訳で、やはり壊れているのだろうかと思うに至りました。後出しになりましたが、この液晶タッチパネルはElecrowのLCD35と言う商品でした。まったく同じ外観のものがamazon等でも売られており、価格は3000円前後のようです。3.5インチのカラーTFT液晶タッチパネル(480×320ドット)搭載で、モバイルモニターとも呼ばれているようです。GPIOに直接接続するコネクタを備え、サイズがちょうどRasPiのB/B+にぴったり合うようにできています。この手のモニターはRasPiのHDMI端子に接続するタイプもあり、そちらであればドライバは不要(タッチパネル用は別途必要)で扱いが楽なのですが。RasPiとはSPIを使って通信するため、設定でSPIを有効にしておく必要があります。SPI通信が確立されるまでは画面表示されず、それまではHDMIからの出力になります。つまり起動プロセスがある程度進まないと、タッチパネル画面は白いままになるわけです。

液晶パネルに画像が表示されないのは、接続コネクタの接触不良であることも多いので、パネルと基板を分離してみることにしました。両面テープで固定しているのだろうとの予想通りで、両者の間にマイナスドライバーを入れてこじったら簡単に分離することができました。ケーブルを断線させないよう注意して接続部分を見たところ、基板とフィルムケーブルは半田付けされており、接触不良の可能性は皆無でした。やはり壊れているのかとの思いが強まりましたが、ネットで色々検索をしていたら新しいRaspberry OSでは動作しないらしいとの情報を見つけました。実は頭の中では一方で故障には懐疑的(あくまでも直感ですが)でもあったので、手元にあった初代モデルのB+に少し古いOS(インストールしたのはNOOBSのバージョン3.2.1)をインストールして、LCD35のドライバを組み込んでテストすることにしたのです。するとどうでしょう、起動途中でパネルに文字が表示されて、最終的にデスクトップが表示されたではありませんか。

長々といきさつを書きましたが、無事動作を確認することができた次第です。めでたし、めでたし・・・
それにしても、現行商品でもあるパネルが古いOSでしか動作しないのは問題です。最初に試したのはRaspberry Pi Imagerを使う最新版で、どのバージョンから使用できなくなるかは不明ですが、少なくとも今回使用したやや古いバージョンでは大丈夫でした。amazonでの商品説明をよく読むと、インストールに関しての説明が書かれていて、そこで推奨しているのは2017年時点のOSです。確かにこの写真のデスクトップは、かなり前に見たデスクトップの画面デザインでした(一時期のデフォルトの壁紙)。なるほど、そこまで深読みすべきでしたが普通は気付かないでしょうね。ファームが古いことから、現行のOSには対応しきれていないのでしょうか。もしかすると現在売られているものは対策済みかもしれませんが、何の注釈も無いので購入する場合は注意が必要です。もちろん製品自体には説明書も何も添付されていません。おかげで私も故障と考え、危うくあきらめて捨てるところでした。

紆余曲折がありましたが、とりあえず動作したのでLCD35についてまとめておきたいと思います。実際の起動画面(デスクトップ)を見て下さい。写真ではコントラストが低く見えますが、実物は色合いも良くもっときれいに見えます。解像度が480×320ドットしか無いので、実用的にはかなりきびしいところがあります。とにかく表示が細かい上に領域が狭いので、使いこなすには覚悟が必要です。簡単な表示パネルとか操作パネルとして、開発したプログラムの応用で利用するには重宝するかもしれません。タッチパネルは付属のペンで思ったより強く押す必要があり、総合的に見て個人的にはリモート環境で他のPCからコントロールした方が扱い易そうです。

LCD35を使用するための手順等を備忘録として記しておきます。(amazonでの商品説明を参考)

参考OS (動作するOSは限定されると思われます)
Tips:Basic for Raspbian Jessie with PIXEL (2017-04-10-raspbian-jessie.img)

●Step 1:
Raspbian IMGファイルをダウンロード。
https://www.raspberrypi.org/downloads/raspbian/

●Step 2:
IMGファイルをSDカードに書き込み、次のリンクでの文章を参照する。
https://www.raspberrypi.org/documentation/installation/installing-images/README.md

●Step 3: Terminalウィンドウを開いてRPIにドライバーをダウンロード。
git clone https://github.com/Elecrow-keen/Elecrow-LCD35.git

●Step 4: ドライバーをインストール。
cd Elecrow-LCD35
sudo ./Elecrow-LCD35

●タッチパネルのキャリブレーションステップ:
xinput_calibratorによりLCDをキャリブレーションする。次のコマンドと一緒にxinput_calibratorをインストール。
cd Elecrow-LCD35
sudo dpkg -i -B xinput-calibrator_0.7.5-1_armhf.deb

xinput_calibratorでキャリブレーションを実行

画面が小さくてGUIではかなり制約を受けるため、操作自体も限定的になると思います。へたにアプリを動かすと、表示外にボタンがあったりして操作不能に陥りかねません。やはりHDMIの表示に戻して、広い画面を使いたいと思うこともあるでしょう。ドライバにはオプションを付けることで実行できるコマンドがいくつか用意されています。HDMIに戻すにはターミナル上から次のように指示します。
sudo ./Elecrow-LCD35 hdmi

再びタッチパネルLCDに表示を行うには、オプション無しで上記コマンドを実行します。