こちらの公式ページの作例を実際に作成してみました
赤 → 赤&黄 → 緑 → 黄 → 赤
という信号の動きを再現する電子工作です。
イギリスの信号は日本の信号とはちょっと違って、赤から緑に変わる前に赤と黄色が同時に点灯するそうです
また、原文では黄色はYellow(黄色)ではなくAmber(琥珀色)になっていますが、イギリスでは信号の黄色は琥珀色という認識なのだそうです
というわけで、今回はイギリス式の信号の再現です
用意するパーツ
- ブレッドボード 1つ
- アクティブブザー 1つ
- ジャンパーワイヤー(オス-メス)6本
- ジャンパーワイヤー(オス-オス)1本
- LED赤色 1つ
- LED黄色 1つ
- LED緑色 1つ
- タクトスイッチ 1つ
- 330Ωの抵抗 3つ
黄色のLEDを持っていなかったので、青色LEDで代用しました
GPIOピンへの接続
公式サイトの図です
実際の回路はこのようになります
パーツ | GPIOピン |
---|---|
タクトスイッチ | GPIO 21 |
赤色LED | GPIO 25 |
黄色LED | GPIO 8 |
緑色LED | GPIO 7 |
ブザー | GPIO 15 |
Scratchでプログラミング
Scratch 1.4でプログラミングします
アクティブブザーはピーー!というすごい音がなるので注意して実行してください
GPIOの設定
タクトスイッチは入力なのでin、それ以外はoutでGPIOの初期設定を行います
信号の動き
信号は基本的にこの動きを繰り返します
赤色LEDを点灯
5秒待つ
黄色LEDを点灯
2秒待つ
赤色LEDを消灯
黄色LEDを消灯
緑色LEDを点灯
5秒待つ
緑色LEDを消灯
黄色LEDを点灯
2秒待つ
黄色LEDを消灯
プログラムにするとこのようになります
ボタンを押して道路を渡る
タクトスイッチを押すと、信号が赤になるタイミングで、通常より長めに赤信号が続き、目の不自由な人でもわかるようにブザーを鳴らします
「pushed」という変数を作成して、ボタンが押されているかどうかを管理します。タクトスイッチが押されると、gpio21の値が0になるので、変数pushedをTrueにします
beepメッセージを受け取ると・・・
赤色LEDを点灯
ブザーを0.5秒間隔で10回ON/OFFにする
これが終わると赤色LEDを消灯
最後にpushed変数をFalseに(これで信号が通常動作に戻ります)
最終的な信号のプログラムはこのようになります
途中でプログラムを止めた場合、LEDが点灯したままになったり、ブザーが鳴りっぱなしになる場合があります。こういう時のために、全てをoffにするスクリプトを作成しておくと便利です
この 作品 は クリエイティブ・コモンズ 表示 – 継承 4.0 国際 ライセンスの下に提供されています。