Waveshareの2.13inch電子ペーパーHAT(e-paper HAT)のデモ立ち上げ方法

e-paper_hat

Waveshare社の2.13inch電子ペーパーHATは、お手ごろな値段で電子ペーパーが楽しめるHATです。

電子ペーパーは、電源を切っても表示を保持するデバイスです。

ラズパイでちょっとしたメモを表示させ、シャットダウンしてから外して持ち歩く、なんて使い方もできそうです。

(キーホルダーケースとかあるといいですね)

Waveshare社の2.13inch電子ペーパーHATはRapberry Pi Zeroサイズですが、もちろんRaspberry Pi3などでも使えます。

Waveshare社にデモプログラムが用意されているので、試しに使ってみましょう。

(1)デモプログラムのダウンロード先

2.13inch電子ペーパーHATの技術Wikiページは

http://www.waveshare.com/wiki/2.13inch_e-Paper_HAT

です。

このページには色々技術解説が載っていますが、手っ取り早くデモプログラムを動かしたい場合には、

How to use の

Working with Raspberry Pi の

Demo code (clock to download) からプログラム一式(2.13inch_e-Paper_HAT-code.7z)を入手します。

epaper-python-demo

(2)Raspberry Piの設定

電子ペーパーHATは、SPIインタフェースで通信するので、raspi-configでSPIをONにしておきます。

sudo raspi-config

で立ち上げ、9 Advanced Optionsを選択、さらにA6 SPIを選択すると、Yes/Noを聞かれるのでYesを選択します。

これだけで、Waveshareが用意しているPythonのデモプログラムは動きます。

raspi-config1  raspi-config2  raspi-config3

(3) 7zipファイルを展開するには

でも、WaveshareのWikiページから落としてきたプログラムは、7zという拡張子が付いており、7zip形式で圧縮されています。

Windows PC上にダウンロードしてWindows PCの7zipアプリケーションで解凍してからTinker Boardに転送するのが手っ取り早いですが、

これをLinuxで解凍したい場合には、ツールをソースコードからmakeするしか方法が見当たりませんでした。

手順は

https://www.raspberrypi.org/forums/viewtopic.php?f=30&t=41198#p348505

に書いてあるとおりです。

書いてある通り実行すれば作成できますが、念のため手順を述べます。

まず、

http://sourceforge.net/projects/p7zip/files/latest/download

からp7zipのソースコードをダウンロードします。

p7zip_*_src_all.tar.bz2

*のところはバージョン番号が入りますのでダウンロードする時々で変わります。

tar  jxvf p7zip_*_src_all.tar.bz2

で展開後、

cd  p7zip_*/

で作成されたディレクトリに移り、

make

を実行するだけです。

このmakeが意外と時間がかかりましたが、難なく終わります。

あとは、作成したツールをインストールするだけです。

sudo  ./install.sh

これで、7zaという7zip形式を扱うコマンドがインストールされました。

(4) 電子ペーパーHATのデモを実行する

さていよいよ、電子ペーパーHATのデモプログラムを展開しましょう。

Waveshare社のWikiページからダウンロードしたデモプログラム一式のアーカイブを

7za  x  2.13inch_e-Paper_HAT-code.7z

で展開します。

2.13inch_e-Paper_HAT-codeというディレクトリが出来ており、その中にRaspberryPiというディレクトリがありますので、ここまでcd します。

cd  2.13inch_e-Paper_HAT-code/RaspberryPi/

Raspberry Piには、GPIOを動かすための手段が色々提供されており、このディレクトリ下にあるのは、代表的な3つの手段をそれぞれ使ってe-paperを制御するプログラムです。

bcm2835というCライブラリを使いたい場合はbcm2835というディレクトリにcdし、makeを実行して、作成されたmainというバイナリを実行します。

wiringpiを使いたい場合には、wiringpiというディレクトにcdして同様にmakeする、といった感じです。

ここでは、pythonを使いたいので、pythonというディレクトリにcdします。

cd python

この下には、電子ペーパーをpythonで操作するための関数群が定義されたモジュールEPD_driver.pyと、デモプログラム本体main.pyが格納されています。

python main.py

でデモプログラムが動きます。

デモは、時刻表示の画面になると、ひと通り終わりです。

(5) 応用

デモをひと通り見終わった後、ctrl-Cで止めて、main.pyの中味をのぞいてみましょう。

何となく、やっていることと使っている関数の対応が分かると思います。

使えそうな関数は、

egrep “def Dis” EPD_driver.py

で拾い出せる次の関数

def Dis_Clear_full(self):
def Dis_Clear_part(self):
def Dis_full_pic(self,DisBuffer):
def Dis_part_pic(self,xStart,xEnd,yStart,yEnd,DisBuffer):
def Dis_Char(self,acsii,size,mode,next):
def Dis_String(self,x,y,pString,Size):
def Dis_Drawing(self,xStart,yStart,DisBuffer,xSize,ySize):
def Dis_Progress(self,progress_len):
def Dis_showtime(self,hour,minute,sec):

の辺りのようです。

みなさん、お楽しみください!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です