Raspi用表示装置4種を試す -3-

Raspberry Pi 3B+ HAT拡張ボード 1.3インチOLEDディスプレイ 128 x 64 4線式SPI SH1106 3.3V Raspberry Pi 3B + / 3B / 2B / Zero/ZeroW/Zero WH用
https://www.amazon.co.jp/dp/B07Q3DGQWF/
¥1,899

 青色単色のOLEDボード。ジョイスティックとボタン3つが付いている。OLEDドライバチップはSH1106。4線式SPI、青単色表示、動作電圧3.3V。
 比較的安価なのだけど、作りは全体に雑で悪い。ハンダの乗りがイマイチだし、ジョイスティックに焦げたような跡がある。

 今、このURIにアクセスすると、まったく違うI2C/SPIで通信する128x160のLCDパネル製品が表示される。中華出品勢のAmazon汚染は、どうしようもないところまで来ている感じだ。

 同じものをAliexpressで探してみる。Waveshareから出ているものがそれっぽい。作りはこちらのほうが良さそう。

Waveshare 1.3 インチ OLED ディスプレイ帽子ラズベリーパイ 2B/3B/3B +/ゼロ/ゼロワット、 128 × 64 ピクセル、 SPI 、 I2C インタフェース
https://ja.aliexpress.com/item/32844614245.html
https://ja.aliexpress.com/item/33038703307.html

 似たようなものもある。作りの適当さは、こちらのほうが近いか。その分、価格も数ドル安くなっている。

1.3 インチ OLED ディスプレイ帽子拡張ボードラズベリーパイ 2B/3B ゼロワット
https://ja.aliexpress.com/item/32909258116.html

 上記の2つは、ボード上の抵抗値を変えることで、4ワイヤSPI、3ワイヤSPI、I2Cとインターフェイスを変更することができるが、購入したものはSPIで固定のようだ。

 購入したボードのメーカーは、Heltecなのだけど、すでにWebサイトにはこの商品は掲載されていない。ボードに書かれたheltec.cnにアクセスすると、orgに転送された。

 Heltec Automation – 成都惠利特自动化科技有限公司
 https://heltec.org/

 Raspiに取り付けてみる。

 もともとは、Raspberry Pi Zero系向けのサイズなので、普通のRaspiに取り付けると、ピンだけで支える必要がある。ボタンを使うには、ちょっと不安だ。かと言って、何かスペーサーを挟むにしても、位置的にSoCの真上なので放熱に問題が出そうだ。

 動かしてみる。  当然のことながら、電源を入れてもOLEDには何も表示されない。

 まず、raspi-config->Interfacing Options->SPIを選んで有効にする。

pi@raspberrypi:~ $ sudo raspi-config

 まだSPIデバイスは生えてきていないので、再起動する。

pi@raspberrypi:~ $ ls /dev/spi*
ls: cannot access '/dev/spi*': No such file or directory
pi@raspberrypi:~ $ sudo reboot

 再起動後、SPIデバイスが生えてきたのを確認する。生えてない。

pi@raspberrypi:~ $ ls /dev/spi
ls: cannot access '/dev/spi': No such file or directory

 SoCのデバイスドライバはロードされているが、spidevがロードされていない。

pi@raspberrypi:~ $ lsmod | grep spi
spi_bcm2835            20480  0

 前の設定が有効になっているからかな?

pi@raspberrypi:~ $ dmesg | grep spi
[    5.487912] ads7846 spi0.1: spi0.1 supply vcc not found, using dummy regulator
[    5.487995] ads7846 spi0.1: Linked as a consumer to regulator.0
[    5.492383] ads7846 spi0.1: touchscreen, irq 166
[    5.510859] input: ADS7846 Touchscreen as /devices/platform/soc/3f204000.spi/spi_master/spi0/spi0.1/input/input0

 前のタッチスクリーンドライバの設定をコメントアウトして再起動する。SPI1を使いたい場合は、dtoverlay=spi1-3csの設定を追記する必要があるのだそう。今回は使わない。

pi@raspberrypi:~ $ sudo vi /boot/config.txt
dtparam=spi=on
#dtoverlay=ads7846,penirq=25,speed=10000,penirq_pull=2,xohms=150
pi@raspberrypi:~ $ sudo reboot

 デバイスが生えてきた。

pi@raspberrypi:~ $ ls /dev/spi*
/dev/spidev0.0  /dev/spidev0.1

 spidevモジュールも読み込まれている。

pi@raspberrypi:~ $ lsmod | grep spi
spidev                 20480  0
spi_bcm2835            20480  0

 SPIの簡単な動作テストを行う。SPI0の応答はあるようだ。

pi@raspberrypi:~ $ wget wget https://raw.githubusercontent.com/raspberrypi/linux/rpi-3.10.y/Documentation/spi/spidev_test.c
pi@raspberrypi:~ $ gcc -o spidev_test spidev_test.c
pi@raspberrypi:~ $ ./spidev_test -D /dev/spidev0.0
spi mode: 0
bits per word: 8
max speed: 500000 Hz (500 KHz)

00 00 00 00 00 00
00 00 00 00 00 00
00 00 00 00 00 00
00 00 00 00 00 00
00 00 00 00 00 00
00 00 00 00 00 00
00 00

つづく


オリジナル投稿: Raspi用表示装置4種を試す -3-|kinneko|pixivFANBOX
https://www.fanbox.cc/@kinneko/posts/654002