ラズベリーパイ用の5インチのタッチパネルLCDモニタを買ってみた。HDMIなので、タッチパネル無しでよければ、ラズベリーパイの限りではない。
3.5インチのラズパイと同サイズのものも多く出回っているが、HDMIでなくSPIのものがほとんどなので、こちらを選んだ。
例によってAliexpress
27.03ドル(送料込) お店は、DIY ZONE。
発注からshippedまで1日、受取まで計14日。
玄関受け渡しで、受取サイン要。
梱包は、サイズ合わせた緩衝材付きの箱入り。意図して叩きつけたりしない限り、大丈夫と思う。
お約束どおり、取説の類は一切無い。(´・ω・`)
例によってまず動かしてみる
今回は、ラズベリーパイ3を使った。IOをはめ込み、付属のHDMI折り返し治具を繋ぐ。組み立ては、以上(´・ω・`)
普通にラズパイのUSBコネクタにのみ給電する。
5V2Aの電源で、IO接続の給電でパネルも駆動した。ちなみに、パネルの右上には、もともと電圧不足アイコンがたまに出てたので、それで大丈夫ということは、LCDモニタ自体の消費電力は低そう。
そして、苦もなく画面が表示され・・・・おや?欠けてる。
横800に対して、VGAで表示してるみたいだ。自動では切り変わらないのね。
たしか、config.txtにディスプレイの設定があったような。。。
ラズパイ.orgのconfig.txtの資料を確認する。
ん・・・あれ、まじか!!DMTの800x480ってない。と、思ったら、そのずっと下のほうに、カスタマイズ設定の方法が載っていた。以下の内容をすでにhdmi_groupの記述があるところあたりに書き足す。
> sudo nano /boot/config.txt # DMT hdmi_group=2 # CUSTOM MODE hdmi_mode=87 # width 800 height 480 framerate 60Hz aspect 6(15:9) hdmi_cvt=800 480 60 6 # Normal DVI mode (No sound) hdmi_drive=1
で、rebootする。
タッチパネル
さて、タッチパネル・・・
何を設定すれば良いのか。SPIを使ってるということはわかるけど、ドライバとか必要なんだろうか。そう、こんなときは、グーグル先生に聞いてみよう。
すると、ほどなく判明。同じくconfig.txtに書き足せば、良いようだ。
framebufferは、後述のキャリブレーションでうまくいかなくなるので、追記。dtparam=spi=onがコメントアウトされてるところあたりに書き足す。
> sudo nano /boot/config.txt # the console framebuffer width in pixels framebuffer_width=800 # the console framebuffer height in pixels framebuffer_height=480 # SPI enable dtparam=spi=on # touch panel param dtoverlay=ads7846,penirq=25,speed=10000,penirq_pull=2,xohms=150
これでrebootすると、タッチパネルが使えるようになった。
キャリブレーション
タッチパネルが使えるようになったけど、若干位置があってないので、キャリブレーションを行う。Xのアプリでできるようだ。
「xinput_calibrator」をインストールして実行する。'-'と'_'が、変わるので注意。
> sudo apt-get install xinput-calibrator > xinput_calibrator
赤い十字表示が4ヶ所順に表示されるので、タッチパネルを正確にタッチする。
このとき、十字が4ヶ所表示されなかったり、ミスクリック判定される場合は、config.txtの記述が間違ってる可能性がある。
終了すると、結果が表示される。
結果の「Section "InputClass”」の内容を、指定の'/etc/X11/xorg.conf.d/99-calibration.conf'に記述する。ほとんどの場合、フォルダごと無いと思うので、以下な感じで。"186 3956 288 3924"のところは、 実際のキャリブレーション結果を反映のこと。
> sudo mkdir /etc/X11/xorg.conf.d > sudo nano /etc/X11/xorg.conf.d/99-calibration.conf Section "InputClass" Identifier "calibration" MatchProduct "ADS7846 Touchscreen" Option "Calibration" "186 3956 288 3924" Option "SwapAxes" "0" EndSection
そして、再びrebootすると、ピッタリになった。
しかし、これが27ドルかぁ、すげぇな。