信号機
paypal@vpaso.net
レッスンの目的
- Codey Rockyを使用して信号機の基本的な動作を再現する
- タイマーを活用して信号の時間制御を学ぶ
- 押しボタン式信号機の動作をプログラムする
1. 信号機の基本制御
赤→黄→緑の順に信号を切り替え、一定時間ごとに繰り返すプログラムを作成します。
Pythonコード例:
import codey
import time
def traffic_light():
while True:
codey.led.show(255, 0, 0) # 赤信号
time.sleep(5)
codey.led.show(255, 255, 0) # 黄信号
time.sleep(2)
codey.led.show(0, 255, 0) # 緑信号
time.sleep(5)
traffic_light()
ポイント:
time.sleep()
を使用して信号の切り替え時間を設定。- 赤→黄→緑の順で自動的に切り替わる。
- 実際の交通信号機と同様の動作を再現。
2. 押しボタン式信号機の再現
ボタンを押すと赤信号が表示され、一定時間経過後に緑信号へ戻る押しボタン式信号機を作成します。
Pythonコード例:
import codey
import time
def push_button_signal():
codey.led.show(0, 255, 0) # 初期状態は緑信号
while True:
if codey.button_a.is_pressed():
codey.led.show(255, 0, 0) # 赤信号
time.sleep(3)
codey.led.show(255, 255, 0) # 黄信号
time.sleep(1)
codey.led.show(0, 0, 0) # 黄信号
time.sleep(1)
codey.led.show(255, 255, 0) # 黄信号
time.sleep(1)
codey.led.show(0, 0, 0) # 黄信号
time.sleep(1)
codey.led.show(0, 255, 0) # 緑信号へ戻る
push_button_signal()
ポイント:
button_a.is_pressed()
を利用してボタン押下を検出。- 一定時間後に信号が元に戻る動作を実装。
- 繰り返しの動作が可能。
3. 歩行者用信号機の追加
歩行者用信号機を追加し、自動車信号と連動するプログラムを作成します。
Pythonコード例:
import codey
import time
def pedestrian_signal():
while True:
codey.led.show(0, 255, 0) # 車の信号(緑)
codey.display.show("Walk") # 歩行者信号(歩行可)
time.sleep(5)
codey.led.show(255, 255, 0) # 車の信号(黄)
codey.display.show("Wait") # 歩行者信号(待機)
time.sleep(2)
codey.led.show(255, 0, 0) # 車の信号(赤)
codey.display.show("Stop") # 歩行者信号(停止)
time.sleep(5)
pedestrian_signal()
ポイント:
display.show()
を使用して歩行者信号の状態を表示。- 自動車と歩行者の信号を同期。
- 実際の交通システムを模倣。
4. 交差点の信号システムの再現
複数の信号を同期して、交差点の信号制御をシミュレートします。
Pythonコード例:
import codey
import time
def intersection_signal():
while True:
codey.led.show(0, 255, 0) # 主要道路(緑)
codey.display.show("STOP") # 側道(赤)
time.sleep(5)
codey.led.show(255, 255, 0) # 主要道路(黄)
time.sleep(2)
codey.led.show(255, 0, 0) # 主要道路(赤)
codey.display.show("GO") # 側道(緑)
time.sleep(5)
intersection_signal()
ポイント:
- 交差点のメインロードとサイドロードの信号を交互に制御。
- 走行パターンを追加してシミュレーション可能。
5. まとめと次回のレッスン
今日学んだこと
- 自動信号機の基本的な動作制御
- 押しボタン式信号機の仕組み
- 歩行者用信号機の追加と同期
- 交差点の信号システムの制御
これでCodey Rockyの信号機1は終了です。
次回も楽しみながら学びましょう!
ABOUT ME