どうも、CHASUKEです。
Raspberry Pi(ラズパイ)のアドオンボード『Scroll pHAT HD』で遊んでみました。
画像を見ると大きいボードに見えますが、ラズパイZeroと同サイズ「約6.5cm x 3cm x 0.5cm」しかありません。とってもスモール。
前回紹介した大盛りセンサー『Environ pHAT』と同様にイギリスのPimoroni社(※ピモロニと読みます)の製品になります♪
▼前回の記事はこちら
https://chasuke.com/wp/envirophat/
こちらの製品もPythonライブラリが公開されており、簡単に好きなメッセージや様々な情報をドットLEDでティッカー表示できます。
▼時計表示も可能なので、ミニマルなLaMetricのようです。
https://chasuke.com/wp/lametric/
『Scroll pHAT HD』をラズパイZEROに取り付けて、WebAPIから取得した情報を日本語表示させたりして遊んでみましたので、ご紹介してきます♪
『Scroll pHAT HD』とは
17 x 7個の高輝度白色LEDが搭載されたドットマトリクスLEDモジュールです。合計で119個も。
各ピクセルの輝度を個別に制御できるので、時計にしたり、テキスト情報のスクロール表示やグラフやアニメーション表現も可能です。
頑張ればテトリスとかもいけるらしい♪
『Scroll pHAT HD』をラズパイZeroに装備
スイッチサイエンスにて購入。秋月電子通商でも販売されています。
イギリスのPimoroni社が開発・販売するものなので、パッケージは英語仕様です。
内容物
内容物はピンソケットとLEDモジュールのみ
▼こんな感じにソケットをはんだ付けしてやります。
ピンソケットのはんだ付け
はんだ付けが必要です。
こんな感じで頑張りました。慣れない作業ですが、コツを掴むとすんなりいけます。ちょっとくらいぐちゃぐちゃになっても動くので、失敗を恐れずにやったりましょう♪
▼Amazon.co.jpで人気のはんだこて。温度調整とLEDが便利
▼ラズパイZERO側に付いているピンヘッダーに差し込みます。
画像のラズパイは最近購入した「ラズパイZero WH」といって最初からピンヘッダーが用意されているものになります。
▼詳しくはこちらから
https://chasuke.com/wp/pizerostarterkit/
『Scroll pHAT HD』を使ってみた
公開されているPythonライブラリを使って、簡単にテキストをスクロール表示できちゃいます。
Pythonライブラリをインストール
前回ラズパイにインストールした「pimoroni-dashboard」を使って、必要なPythonライブラリをダウンロードします。
▼「pimoroni-dashboard」を起動。
pi@raspberrypi:~ $ pimoroni-dashboard
▼「My Pimoroni product is a pHAT」を選択。
▼「Scroll pHAT HD」を選択
これで、必要なライブラリがダウンロードされます♪
「Hello World」をティッカー表示
「/home/pi/Pimoroni/envirophat/examples」にサンプルスクリプトがダウンロードされているはずです。
▼この中の「hello-world.py」を起動。Pythonはラズパイに最初からインストールされているので、使えるはず。
pi@raspberrypi:~/Pimoroni/scrollphathd/examples $ python3 hello-world.py
Scroll pHAT HD: Hello World
Scrolls "Hello World" across the screen
using the default 5x7 pixel large font.
Press Ctrl+C to exit!
キタキター!!
スクリプト実行からLED点灯まで少し時間がかかるのが気になるが、見事にテキストスクロールされました^^
▼中身のスクリプトは単純なので、カスタマイズも楽々。
# 表示したいテキストとLEDの明るさをセット
scrollphathd.write_string(" Hello World!", brightness=0.5)
# 処理繰り返す
while True:
# バッファ内をLED点灯
scrollphathd.show()
# バッファ内を1ドット分ずらす
scrollphathd.scroll()
# 0.1s待ち。スクロール速度
time.sleep(0.1)
あとはWebから情報取ってきて、テキストをセットしてやれば、自分専用の通知装置の完成ですぜ。他にも面白いサンプルスクリプトが沢山ありましたよ♪
日本語表示もできました!!
日本語フォントはデフォルトでは使えません。ですが、ここは先達の知恵を貸していただきました。こちらに公開されている「MISAKI.FNT」と「misaki.py」を使うことで、日本語表示に成功しました♪
▼試しに、Livedoorの天気APIからの「天気予報/最高気温/最低気温」を表示させてみた。
漢字は、若干読みづらいですねw
▼上の2ファイルと同じ階層に下記のスクリプトを用意して起動させました。
import urllib.request
import json
import scrollphathd
import misaki
import time
with urllib.request.urlopen("http://weather.livedoor.com/forecast/webservice/json/v1?city=230010") as response:
data = response.read().decode("utf-8")
weather = json.loads(data)
max_tmp = weather["forecasts"][1]["temperature"]["max"]["celsius"]
min_tmp = weather["forecasts"][1]["temperature"]["min"]["celsius"]
forecast = weather["forecasts"][1]["telop"]
msg = " 名古屋市の天気は" + forecast + "です。最高気温:" + max_tmp + "℃ 最低気温:" + min_tmp + "℃"
lengs = scrollphathd.write_string(msg, font=misaki, brightness=0.2)
for i in range((lengs - 17) * 2):
scrollphathd.show()
scrollphathd.scroll()
time.sleep(0.05)
exit()
最後に
Scroll pHAT HDを試してみました。
グラフ表示も可能なので、前回紹介した『Enviro pHAT』と一緒につけれれば面白いと思しろそうです。
1つのラズパイに複数pHATボードを取り付けるには、下記の拡張基盤があればイケます。→拡張基盤「pHAT Stack」
AIスピーカーとの連携、各種アプリとの連携も自由自在なので、気になった方は是非お試しを♪
それではまた!!