Unicorn pHATを試してみる
pHATシリーズはRaspberry PiのGPIOに接続して、機能拡張ができるというもの。
今回買った、Unicorn pHATは 8x4のRGB LEDが乗ったものです。
スイッチサイエンスでRaspberry Pi Zeroを買うついでにノリで買ってしまったので、セットアップして動かしてみました。
ハードウェアの準備
まずは、Unicorn pHATに付属するピンヘッダーのソケットを取り付けます。 久しぶりにはんだ付けしたので、かなり汚いです…
Raspberry Pi ZeroにはGPIOのピンヘッダが付いていないので、こちらもはんだ付けしました。
使ったのは コレ 。 前に他の用途で買ったものだと思うけど、Unicorn pHATを取り付けると長すぎる気がする。
→強く押し込んだらしっかり刺さった…
ソフトウェアの準備
ターミナルから、必要なソフトウェアの準備を行います。
今回は、Macからssh経由で操作し、ファイルはCyberduckを使いsftp経由で転送しました。
UnicornHatをPythonから操作するためのライブラリをインストールします。
まずは、適当なディレクトリで以下を実行。
$ curl https://get.pimoroni.com/unicornhat | bash
一連のインストールスクリプトの実行が終わると再起動を促されるので、yを選択して再起動します。
Would you like to reboot now? [y/N]
再起動後、再度Raspberry Piのターミナルを開きPythonのインタープリタが使用できることと、インストールしたUnicornHatのライブラリがimportできることを確認します。
一般ユーザーpiで実行したところ、unicornhatのライブラリが/dev/memへのアクセスを要求するため、アクセス権限の問題で実行できませんでした。
今回は、以後rootでPythonを実行することにしました。
$ sudo python Python 2.7.9 (default, Sep 17 2016, 20:26:04) [GCC 4.9.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import unicornhat >>>
とりあえず光らせてみる
>>> unicornhat.set_layout(unicornhat.AUTO) >>> unicornhat.brightness(0.5) >>> unicornhat.set_pixel(0,0,255,0,0) >>> unicornhat.show() >>>
すると、次のように左上のLEDが赤色に点灯します。
unicornhat.set_layout(unicornhat.AUTO)
UnicornHATには通常サイズ(HAT)と半分サイズ(PHAT)があるらしく、それぞれLEDのレイアウトが異なるため、ここで使用するHATの種類を設定します。
ここでは、自動で判別させるためAUTOと指定しました。
unicornhat.brightness(0.5)
1.0を最大値としてLEDの明るさを設定します。
最大の明るさだとかなり明るいので、ここでは半分の0.5としています。
unicornhat.set_pixel(0,0,255,0,0)
点灯するLEDと色を指定します。
第1~2引数でLEDの位置を設定し、第3~5引数は色を設定します。
unicornhat.show()
実際に表示させる命令です。
他も試す
全部点灯
import unicornhat as unicorn from time import sleep unicorn.set_layout(unicorn.AUTO) unicorn.brightness(0.5) width,height=unicorn.get_shape() for x in range(width): for y in range(height): unicorn.set_pixel(x, y, 0, 255, 255) unicorn.show() while True: sleep(1)
get_shape()
でレイアウトの幅と高さを取得できるようです。
その他
Unicorn HATのリポジトリにサンプルがたくさんありました。
まずは、ここらへんで遊んでみると楽しいです(雑)。
雑感
ノリで買ったはいいものの1ヶ月ぐらい放置してしまっていたので、ひとまず動作確認?レベルですが触れてよかった。
「GPIOに接続したLEDを操作する」などに比べると、ハードウェアの組み立て的にも、プログラムの容易さ的にも格段と簡単にLED表示が実現できるデバイスだと感じました。
ライブラリさえインストールしてしまえばPythonから操作できるという点は、WebアプリやSlackBotなどとの組み合わせで可能性が広がりそうです。