【Raspberry Pi & Scratch】LED信号機を作る

信号機を作る

こちらの公式ページの作例を実際に作成してみました

https://www.raspberrypi.org/learning/physical-computing-with-scratch/trafficlights/


という信号の動きを再現する電子工作です。
イギリスの信号は日本の信号とはちょっと違って、赤から緑に変わる前に赤と黄色が同時に点灯するそうです

また、原文では黄色はYellow(黄色)ではなくAmber(琥珀色)になっていますが、イギリスでは信号の黄色は琥珀色という認識なのだそうです

というわけで、今回はイギリス式の信号の再現です

用意するパーツ

  • ブレッドボード 1つ
  • アクティブブザー 1つ
  • ジャンパーワイヤー(オス-メス)6本
  • ジャンパーワイヤー(オス-オス)1本
  • LED赤色 1つ
  • LED黄色 1つ
  • LED緑色 1つ
  • タクトスイッチ 1つ
  • 330Ωの抵抗 3つ

黄色のLEDを持っていなかったので、青色LEDで代用しました

信号機を作る

GPIOピンへの接続

公式サイトの図です

信号機を作る

実際の回路はこのようになります

信号機を作る

パーツGPIOピン
タクトスイッチGPIO 21
赤色LEDGPIO 25
黄色LEDGPIO 8
緑色LEDGPIO 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 国際 ライセンスの下に提供されています。

タイトルとURLをコピーしました