Raspberry Pi4 で Epaperに画像を表示させるまで


デバイスの購入

Raspberry Pi4

Raspberry Pi 4 Computer Model B 4GB を利用しました。
Amazonのリンク

最近メモリが8GBのものが発売されたようですが、今回の用途では大きなメモリは必要ではないので好きなもので良いと思います。
Raspberry Pi3B+などでも大丈夫です。

今回購入したRaspberry Pi4

Raspberry Pi 4のケース

勇んで買ったものの、ケースに入れるとGPIOへの接続が面倒になるので結局今のところ入れていません。
USB-C電源アダプタは必要なので、持っていないない人は単体で買う必要があります。Raspberry Pi4とセットで売っているものもあります。
Amazonのリンク

今回利用しなかったRpi4のケース

GPIOとは
Raspberry Piの端に40本くらい立っている端子のことです。
電源やGroundから、今回利用するEpaperへ信号を送るためのピンもここにあります。

電子ペーパー

7.5インチ E-Inkディスプレイ HATを利用しました。
Raspberry Piと簡単に接続できるようになっています。
Amazonのリンク

Micro SDカード

Raspberry PiのOSやファイルを記憶するデバイスとして別途Micro SDカードが必要です。
16GBのマイクロSDカードを購入しました。
今回は手っ取り早くコンビニで買いましたが、ネットのほうが安いと思うのでRaspberry Pi4と一緒に買うのが良いと思います。
16GBもあれば十分ですが、32GBでも大丈夫です。

SDカードリーダー

これは最初から持っていたのですが、最近のMac BookにはSDカードリーダーがついていないのでこちらも購入しました。

USB-C 有線LAN 変換アダプターとLANケーブル

Raspberry PiとMac bookをSSHで繋ぐためにLANケーブルと変換コネクタが必要です。
色々と設定するとLAN内で無線でSSHできるようですが、私はだいたいこちらの有線SSHを利用しています。

作業

① Raspberry PiのOSのインストール

最近Raspberry PiのOSをSDカードに保存する専用のアプリケーション「Raspberry Pi Imager」ができたようです。
OSも選ばないようですっごい簡単になりました。
Raspberry Pi Imagerダウンロード

ダウンロード→インストールの後にSDカードをパソコンに接続して、利用したいOSと接続したSDカードを選択します。
今回は「Raspberry Pi OS (32-bit) with desktop」を利用しました。

② Raspberry PiにSSHできるようにする

Macの場合SDカードを接続して touch /Volumes/boot/ssh というコマンドを打つとSDカード内にsshというからファイルが作成されます。
このsshというファイルがあると、Raspberry Piを起動した際にSSH接続を受け付けるようになります。
Windowsの場合はエクスプローラーで開いて「ssh」というファイルをつくればOKです。

③ Raspberry PiにSSHする

Raspberry PiにMicro SDカードを差し込んで、電源を繋ぐと起動します。
ON/OFFのスイッチはありません。

その後LANケーブルを接続して、下記のコマンドでSSH接続します。
ssh [email protected]
デフォルトのパスワードは raspberry です。

② 必要なパッケージをインストールする

fontや画像処理のライブラリをインストールします。
$ sudo apt install fonts-noto-cjk python-spidev python-pil python-tz

③ SPIを利用可能にする

$ sudo raspi-config
のコマンドを打って「5 Advanced Options」→「P4 SPI」を選択し、 → の順に選択します。

④ E-paperを接続する

E-paperをRaspberry Piに接続するには付属のコネクタを利用します。
今回は写真のようにRaspberry Piの対応する各端子に接続しましたが、わざわざ色を確認したり端子を数えたりと大変です。

本来は、こちらの黒い部分をRaspberry PiのGPIOの部分にガチャっと差し込むだけで良いようです。

全体図

⑤ サンプルプログラムのダウンロード

$ sudo apt install p7zip
$ wget https://www.waveshare.com/w/upload/0/01/7.5inch_e-paper_hat_b_code.7z
$ 7zr x 7.5inch_e-paper_hat_b_code.7z
の3つのコマンドでサンプルプログラムがダウンロードから解答までができます。

⑥ サンプルプログラムの起動

$ cd RaspberryPi/python3/
$ python3 main.py
でサンプルプログラムを起動できます。
デフォルトの状態だと下記のようなエラーが出ました。fontファイルが見つからないようです。

$ python3 main.py 
e-Paper busy
e-Paper busy release
Clear...
e-Paper busy
e-Paper busy release
Drawing
traceback.format_exc():
%s Traceback (most recent call last):
  File "main.py", line 23, in <module>
    font24 = ImageFont.truetype('/usr/share/fonts/truetype/wqy/wqy-microhei.ttc', 24)
  File "/usr/lib/python3/dist-packages/PIL/ImageFont.py", line 280, in truetype
    return FreeTypeFont(font, size, index, encoding, layout_engine)
  File "/usr/lib/python3/dist-packages/PIL/ImageFont.py", line 145, in __init__
    layout_engine=layout_engine)
OSError: cannot open resource

⑥-1 サンプルプログラムの修正

vimmerなのでvimをインストールしました。
Raspberry Piデフォルトのテキストエディタnanoを利用しても問題ありません。
$ sudo apt install vim

$ vim main.py

font24 = ImageFont.truetype('/usr/share/fonts/truetype/wqy/wqy-microhei.ttc', 24)
font18 = ImageFont.truetype('/usr/share/fonts/truetype/wqy/wqy-microhei.ttc', 18)

の2行の /usr/share/fonts/truetype/wqy/wqy-microhei.ttcの部分を /opt/vc/src/hello_pi/hello_font/Vera.ttf に変更しました。

⑦ サンプルプログラムの起動2

再度 $ python3 main.py をコマンドすると、画像のようにE-paperに順に画像や文字が表示されました。