Raspberry Pi Zeroで目覚ましライトを作ろう!①
春眠、暁を覚えず。
そろそろ冬眠の季節なのですが…。まあ、どんな季節でも朝は眠いのです><
目覚ましの音で起きるのもちょっと嬉しくないので、朝になったらじんわり明るくなる仕掛けとかつくろーかなーと思っている今日この頃なのです。
とゆーわけで、目覚まし時計ならぬ目覚ましライトを作る記事です。
今回は、RaspberryPi Zeroというちびっさいコンピュータを使ってみます。
こんなやつね。
はじめに
まず、既にあるものを活用しようかなと、周りを見回してみます。
基本、明るくするわけだから、
このシーリングライトの光量調節でやってもいいのですが、最低レベルでもかなり明るくて、暗い部屋で急につくとけっこうまぶしい。もっとじんわり明るくなってほしいなあー。と、いうわけでこの案はボツ。
なにかいいものないかなあと、結局ネットショップを巡回してさがしてみると
光モノ発見
こんな商品をみっけました。RaspberryPi Zeroにかぶさる電光掲示板用のHATです。(HAT、つまり帽子ですね。本体にちょうどよく乗っかる追加ボードとかをそう呼んでいます)
これはLEDマトリクスですね~。17x7ピクセルのLEDを個別に明るさ調整できるようだし、マトリクスになっているからデジタル時計の表示とかもできるかもしんない。
ちょっと面白そうだからこれいってみよー(∩´∀`)∩☆
と、いうわけで、さっそくポチってすぐ届きました。
「海賊ロボ忍者さる」って書いてありますw
海賊ロボ忍者さるとは?
何それ!? という疑問は
こちらを参照してくださいw
Pi = Pirate = 海賊
Mo = Monkey = さる
Ro = Robot = ロボ
Ni = Ninja = 忍者
という意味なんだそう。じゃあ「海賊さるロボ忍者」じゃないのよ! とも思いますケドねw
さてさて、袋から取り出して、(残念ながらはんだ付けは必要です)ちょこちょこっとはんだ付けして、RaspberryPi Zeroに乗っけてみました。
こんなかんじですね。下にある緑色の基板はRaspberryPi Zero、上に被っているブツブツがついた基板がPimoroniの Scroll PHat HD というやつです。ブツブツが高輝度LEDになっていて、それぞれを自由に光らせることができます。
RaspberryPi設定
では、ラズパイの設定をしちゃいます。
基本、おやくそくは
これのままでOK。
SSH接続を許可したうえで、
$ sudo raspi-config
で、
・I2C許可
・HostName(RasPiの名前)を alarmpi に変更
あたりをやっておきます。
I2Cというのは「愛・スクエア・C」とよみます。(嘘。本当は・アイ・スクエア・シー。なので読みはおんなじ??)
あのツブツブのLEDマトリクスのようなデバイスとの通信規格ですね。
※HostNameを変えておくと、今後、 alarmpi.local でこの子に接続できるようになるわけです。raspberrypiのままだとどのRasPiに接続しているかわかんなくなっちゃうので!。詳しくはこちら!
それから、
$ sudo apt-get update
$ sudo apt-get upgrade
の(続)おやくそくをやって、
pigpioも入れておきます。
$ sudo apt install pigpio
$ sudo pigpiod
でOK。
HATインストール&設定
さる忍者さんのところからサンプルコードをもってきて…
と思ったらワンライナー(一行でOK)なインストール方法が書いてありますね。ありがたやー☆
そのまま実行します。
$ curl https://get.pimoroni.com/scrollphathd | bash
とすればOK☆
手動でやるとしても、
$ sudo apt-get install pimoroni
$ sudo apt-get install python3-scrollphathd
とやって、
$ cd scroll-phat-hd/
$ sudo python3 setup.py install
とすればインストール&セットアップができちゃう模様。らくちん♪
サンプルを実行してみる
/home/pi/Pimoroni/scrollphathd/examples を見てみると、
沢山のサンプルソースが入っています。
ためしに hello-world.py を実行してみます。
すると、
\ぺかー!!/
まっぶし!!
↑のテキストがスクロールしていきます。
ソースを見ると、スクロールの方向やスピード等も自由に変えられるようです。
#!/usr/bin/env python
import time
import scrollphathd
print("""
Scroll pHAT HD: Hello World
Scrolls "Hello World" across the screen
using the default 5x7 pixel large font.
Press Ctrl+C to exit!
""")
# Uncomment the below if your display is upside down
# (e.g. if you're using it in a Pimoroni Scroll Bot)
# scrollphathd.rotate(degrees=180)
# Write the "Hello World!" string in the buffer and
# set a more eye-friendly default brightness
scrollphathd.write_string(" Hello World!", brightness=0.5)
# Auto scroll using a while + time mechanism (no thread)
while True:
# Show the buffer
scrollphathd.show()
# Scroll the buffer content
scrollphathd.scroll()
# Wait for 0.1s
time.sleep(0.1)
ってソースこれだけ!?
最初の半分はコンソールへの説明文なので、文字を表示してスクロールするのは後半の数行のみ。めちゃくちゃラクチン。とても簡単っぽいですね。
おっと、これだけまぶしいのに brightness=0.5 ですって?
試しに1.0にしてみましょう。むひひ☆
どん!
めちゃまぶしッ!><
写真じゃわかりにくいですが、直視が難しいぐらい(目がちかちかする!)まぶしいです><
残像に耐えながら brightness=0.1 にしてみましょう。
ふう。ようやく目に優しい明るさになりましたw
目覚ましライト化する時は、0.1~1.0へゆっくり明るさを増していくようにしましょう♪
※このようにサンプルをいろいろ書き換えていじってみて、経験値を稼ぐのがこういうおもちゃを使いこなすコツですw
その他にもいろんな(いじりがいのある)サンプルがあって参考になります。
plasma.py
や、
swirl.py
なんかはそのまま目覚ましの画面に使えそう♪
別に目覚まし用じゃないので、目覚まし以外にもいろんな活用法ありそうですね!☆
というかんじで、今回はここまで。
次回は、朝の指定した時間に光らせたり(出来たらオーディオデバイスと連携して好きな音楽ながしたり…までは無理かなー?)してみようと思います♪