PibrellaはRaspberry Piのエレクトロニクス学習ボードで、LEDやタクトスイッチやスピーカーなどがついていて、いわゆるLチカ(LEDを点滅)などを試す際に電子工作的な作業を飛ばしてプログラムに集中させてくれるものだと思う。
「ラズベリーパイの調理法」でいろいろ応用法が紹介されている。
http://raspi10.blog.fc2.com/blog-entry-138.html
Raspberry Piで目覚まし時計みたいなことしたいと思って調べている時にスピーカーを持っているということで見つけた。学習ボードだけど目覚ましやアラームに使えないかと思って買ってみた。
Amazonで調達。
セットアップ
- Raspberry Piをシャットダウンする
- Pibrellaを接続する
- Pibrellaに電源(USB)を接続する
PibrellaはRaspberry Piに収まる程よいサイズなんだけど、電源をPibrellaから供給するようになるのでそのままだとケースが使えなくなる。GPIOケーブル使うか、ケースを修正するかなどが必要。
操作の準備
PythonやScratchから操作できる。今回はPythonライブラリを使う。
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install python-pip
sudo pip install pibrella
Lチカ
とりあえずLチカする。
試す時は sudo python -i
で対話的にやるのが吉。(GPIOにアクセスするのにroot権限が必要になる。)
赤LEDの点滅。0.2
のところ変えると間隔を変えられる。
import pibrella
pibrella.light.red.blink(0.2, 0.2)
止める。
pibrella.light.red.off()
全部点滅
pibrella.light.pulse(0.2)
止める
pibrella.light.off()
終了はquit()
をうつ。
音を鳴らす
pibrella.buzzer
がある。コード読んだところ以下のようなメソッドがある。
- buzz(frequency)
- note(note)
- success()
- fail()
- alarm()
- stop()
fail()
を試す。
pibrella.buzzer.fail()
変な音が鳴る。success()
を試す。
pibrella.buzzer.success()
failを逆再生した変な音が鳴る。buzz()
を試す。
pibrella.buzzer.buzz(1)
CDが音飛びしたようなカチカチ言う。
止める。
pibrella.buzzer.stop()
alarm()
を試す。
pibrella.buzzer.alarm()
警報音のような面白い音が鳴る。
止める。
pibrella.buzzer.stop()
最後にnote()
を試す。
pibrella.buzzer.note( 1 )
普通にビープ音的なものが鳴る。
止める。
pibrella.buzzer.stop()
さらにコードを読むとsuccess()
,fail()
,alarm()
が note(note)
を呼び出し、 note(note)
は buzz(frequency)
を呼び出している。frequency
ってブザーの間隔だと思ったらまんま周波数のようだ。
success()
,fail()
,alarm()
はある範囲のnoteをsleepを入れながら変えているだけ。
# Play a single note, mathmatically
# deduced from its index, offset from 440Hz
def note(self,note):
note = float(note)
a = pow(2.0, 1.0/12.0)
f = 440.00 * pow(a,note)
self.buzz(f)
return True
肝心の音の大きさだけど、buzzerはパソコンのピープ音と比べても少し小さいのでこれが目覚ましになるかどうかは微妙なところ。何かの通知音としても使えるかもしれないけど、ヘッドフォンをしていたり、騒がしいところだと難しいかもしれない。でも、一応Buttonと組み合わせて実験してみるつもり。
まとめ、Pibrella楽しい
プログラミングの楽しさというのは自分のコードで何かを好きなようにコントロールできるところにあると思うので、こういう単純なものでも意外に楽しかった。Pythonのライブラリがうまくラップしてくれてる。確かに学習や教育用には良さそうだ。
自動ビルドが失敗したら赤LEDをつけるとか、天気が晴れだったら緑LEDをつけるとか、メールが来たらbuzzerを鳴らすとか、アイディア次第ではそのままでも実用的にも使える気がするし、4入力と4出力のポートがあるのでいろいろ応用もできそう。