Raspberry Pi でゼルダのエフェクトーンつくってみる

http://www.bpnavi.jp/kuji/item/1987/13994

ゼルダのエフェクトーンいいなぁ、欲しいなぁ。
でもくじ運に自信ないなぁ…。
そうだ、僕らには Raspberry Pi がある\(^o^)/

用意するものは Raspberry Pi 一式のほか、以下。

  • タクトスイッチ
  • ブレッドボード
  • 各種ケーブル

本物が何センサーを使っているかはわからないけど、とりあえず手元にあったタクトスイッチを使って実装してみた。
仕組みは簡単で、スイッチがOFFになったら音を鳴らすだけだ。
Pythonスクリプトで組んでみた。

配線

ブレッドボード。fritzingの使い方も電子回路もド素人なんで勘弁。
(先の動画ではスイッチ部分をユニバーサル基板に実装)

回路図のつもり。

RaspberryPi GPIO の 3V からタクトスイッチの片方に入る。
タクトスイッチのもう片方から、GPIOの24と、抵抗をはさんでGNDへ。
大電流が流れないようにする抵抗らしい。よくわかってない。残念。

コード

コードの解説

今回はドアに設置するので、ドアが閉まっているときはタクトスイッチが押されており、ドアが開くとスイッチがOFFになるようにした。
ということで、初期値は current、prev どちらもON(GPIO.HIGH)だ。

0.1秒間隔でスイッチの状態をチェックし、ON→OFFになったら音を鳴らすようにした。
簡易的ではあるが前回の値(prev)と今回チェック値(current)が不一致のときだけ音を鳴らす。
音は nazo.ogg でスクリプトと同じ階層に準備しておく。

音はひとつだけでは芸がないので、配列にした。
好きなだけ配列に append すれば、ランダムに choice されて再生される。

SUPER+C のキーボード割り込みで終了。

設置

前述の通り、ドアでボタンを押しておき、離れるとOFFになるようにする。
タクトスイッチをこういう使い方すると職人に怒られそうなので、他のセンサーを使ったほうがいいかもしれないw

コメントを残す

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