RaspberryPiでペーパーディスプレイ(PaPiRus)を使ってみた
新元号が発表されました。
僕が産まれてから世間はずっと平成だったので
とても不思議な気持ちです。
順調にいけば僕は2年度にドクターが取れるはずなのですが 令和2年度の博士になるんですね。 平成最後or令和最初の博士号だったらレア感合ってよかったのですが・・・
ちょっと前にRaspberryPi用のペーパーディスプレイ、PaPiRusを手に入れました。
kindle paperwhite等にも使われている電子ペーパーディスプレイは
電源を切っても画面が表示続けられるため省電力での運用ができ、視認性にも優れています。
PaPiRusは海外のクラウドファンティングにより産まれたプロダクトで
電子ペーパーをRaspberryPiでお手軽に試せるモジュールに仕上がっています。
手に入れたのはいいですが、 テストも全然してなかったので少し遊んで見ました。
下準備
RaspberryPiのSPIが有効になっていないとPaPiRusは動きません。
sudo raspi-config
からAdvanced Options
内にある
SPIをEnable
に変更して、RaspberryPiを再起動しておきます。
モジュールのインストール
RaspberryPiにPaPiRusを制御するための諸々をいれます。
簡単にやる方法はターミナルから
curl -sSL https://pisupp.ly/papiruscode | sudo bash
を実行すればオートで済ませてくれます。
マニュアルで設定したい人はこちらを参照。
github.com
画面のサイズは持っているPaPiRusにあわせて選択します。
無事に入ったらsudo papirus-clock
で現在の時刻を試しに表示。
文字を表示したかったらsudo papirus-write[文字]
画像を表示したければsudo papirus-draw[画像のパス]
でターミナルからお手軽に表示ができます。
PaPiRusをPythonで扱う
PaPiRusをPythonで扱うには、PaPiRusAPIを使うのですが、そのためにはソースを変更する必要があります。
PaPiRus/papirus/image.py
に
from epd import EPD epd = EPD()
を追加。これでPython上からPaPiRusが使えるようになります。
文字を表示
from papirus import PapirusText Text = PapirusText(rotation=0) text.write("hello paper")
でディスプレイ上に文字を表示。rotation=数字
は
0,90,180,270と変更することで画面の向きを変えられることができます。
画像を表示
画像の場合もそんなに違いはなく
from papirus import Papirus screen = Papirus(rotation=0) screen.display('画像のパス')
で表示可能。サイズはディスプレイにあわせて適当に縮小してくれます。
カラー画像でもモノクロで適当に表示してくれます。
日本語を普通に表示するにはフォントの問題等ありますが
任意の画像を簡単に表示できるので、なんでも画像に変換してから表示させると良さそうです。
画面を消す
電子ペーパーの特徴の1つとして、電源を切っても画面が表示され続けます。
画面をまっさらにしたいときは、明示的にコマンドラインから
papirus-clear
を実行することで消せます。
PaPiRusAPIを見た感じだと、text.Clear()
のような感じで
pythonスクリプト上からも画面を消せるようです。
ところで、調べてみると白黒赤の三色で表示できる電子ペーパーもあるようですね。
そのうち安価で多色に対応したものが出てくるんだろうなあ