WaveShare 1.69インチ液晶モジュールをラズパイで試してみた

エンジニア

千石電商で見つけたLCDモジュール。形状から元々はスマートウォッチ向けのLCDだと思うが、色々表示で遊んでみたくなり購入。とりあえずラズパイでサンプルを動かしてみたものの動かず、原因究明に時間がかかりそうなので、動かなかったところまでのメモ。ハードウェアを変えてみたら動いた。

WaveShare 1.69inch LCD Module 【24382】1.69インチ IPS液晶ディスプレイ 240×280 SPI接続 26万色
千石電商 秋葉原 パーツとツールのスーパーマーケット。半導体・電子部品・コネクタ・ケーブル・基板・工具・パソコン関連・電池・充電器・ボードなどを幅広く扱っています。

製造元のドキュメントはここにあった。

1.69inch LCD Module - Waveshare Wiki

ハードウェアはRaspberry Pi3。OSは現時点最新のものをSDに書き込み。

$ uname -a
Linux pi3-2 6.1.21-v7+ #1642 SMP Mon Apr  3 17:20:52 BST 2023 armv7l GNU/Linux
$cat /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 11 (bullseye)"
NAME="Raspbian GNU/Linux"
VERSION_ID="11"
VERSION="11 (bullseye)"
VERSION_CODENAME=bullseye
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"

まず配線だが、配線図の色は実物と一致していないので、接続図をもとに確認しながら配線する必要がある。

あとはサンプルを動かすための準備。

基本はドキュメントの通り。

SPIなどの設定は有効にしておく。

Cのデモを試す

まずはcのデモを試してみることにした。

Rpiに BCM2835をインストールする。ラズパイにsshログイン。

ドキュメントには”sudo . /configure“ の箇所、ドットとスラッシュの間に空行がかかれているが、多分同ディレクトリの./configure のはずなので、そこだけ直して下記実行。

wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.71.tar.gz
tar zxvf bcm2835-1.71.tar.gz 
cd bcm2835-1.71/
sudo ./configure && sudo make && sudo make check && sudo make install

WiringPiのインストール。

RaspberryPi OSは2019年5月からWiring Piが非推奨となりapt-getインストールできなくなったらしい。少し調べてみたところ、代替としてraspi-gpio に一本化したほうが良いという記事もあるので、基本はそうしたほうが良さそう。

bullseyeベースのRaspberry Pi OSからWiring Piが無くなった、その対処方法(raspi-gpio コマンド) - Qiita
論よりコードraspi-gpio コマンドを使いましょう。$ raspi-gpio getBANK0 (GPIO 0 to 27):GPIO 0: level=1 fsel=0 func=I…

今回はとりあえずサンプルを動かしたいので仕方なくインストールする。説明にある通り、下記を実行。

wget https://project-downloads.drogon.net/wiringpi-latest.deb
sudo dpkg -i wiringpi-latest.deb
gpio -v

gpio -vの結果

gpio version: 2.52
Copyright (c) 2012-2018 Gordon Henderson
This is free software with ABSOLUTELY NO WARRANTY.
For details type: gpio -warranty

Raspberry Pi Details:
  Type: Pi 3, Revision: 02, Memory: 1024MB, Maker: Sony
  * Device tree is enabled.
  *--> Raspberry Pi 3 Model B Rev 1.2
  * This Raspberry Pi supports user-level GPIO access.

ドキュメントにある通り、# Run gpio -v and version 2.52 will appear, if it does not, there was an installation error. version 2.52が入っているので成功。

デモのダウンロード。転送速度が遅くダウンロードに少々時間がかかった。

sudo apt-get install unzip -y
sudo wget https://www.waveshare.com/w/upload/f/fc/LCD_Module_code.zip
sudo unzip LCD_Module_code.zip -d ./LCD_Module_code
cd LCD_Module_code/RaspberryPi/

cのデモを動かす。

cd c
sudo make clean
sudo make -j 8
sudo ./main 1.69

何も表示されない・・・

では、pythonならどうか?

Pythonのデモを試す

cd ../python/example
sudo python 1inch69_LCD_test.py

以下のような実行ログは出ているが、一向に表示されない・・・

INFO:root:draw point
INFO:root:draw rectangle
INFO:root:draw line
INFO:root:draw circle
INFO:root:draw text
Portrait screen
Landscape screen
INFO:root:show image
Portrait screen
Portrait screen
Portrait screen
DEBUG:root:spi end
DEBUG:root:gpio cleanup...
INFO:root:quit:

結局どっちも動かず、一旦諦め

接続を何度も見直したがどう見ても誤りはない。

では、サンプルがなにか食い違っている?(古いものだったりするとたまに変わっていたりする)

と思ったが、プログラム中で指定されているピンはやはり正しい。

というわけで、これをデバッグするとなるとプロトコルを理解しつつ一つ一つ原因究明が必要になりそうなので、時間があるときにじっくりデバッグするとして一旦諦め。

別のハードウェアでやり直してみる

一応別のハードウェアでも試してみることにした。

他にはRaspberry Pi Zero WHがあり、OSも数年前に入れた古いままのものがあったので、一旦これで試してみる。

$ uname -a
Linux pizero-2 4.14.70+ #1144 Tue Sep 18 17:20:50 BST 2018 armv6l GNU/Linux
$ cat /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 9 (stretch)"
NAME="Raspbian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"

ピンの接続は全く同じ。

まずはPython

pythonは2系が入ったままだったので、それで。

その結果、あっさり動いた!

このサンプルはテキストや図形の描画や、スマートウォッチのような画面や背景画像のような画像がいくつか順次表示される。

240×280とはいえ、このサイズなので解像度は意外と高くて美しい。

cのデモも動いた

余談:せっかくなので動画で撮影したものをアニメーションgifに変換してここに貼ってみた。コマンドは以下。これで23MB->4MBくらい。

ffmpeg -ss 1.5 -i PXL_20230813_080554285.mp4 -vf scale=320:-1 -r 60  output.gif

あとは自分で任意のプログラムを書けば色々な遊びができそうでワクワクする。これが千円ちょっとで手に入るのだから、すごい時代だ・・・

コメント

タイトルとURLをコピーしました