Day 4|性格:if文で「わがまま」にする
1. 今日やること
Section titled “1. 今日やること”- 配線は昨日のまま(LED + ボタン)
- プログラムだけ を書き換える
- トグル動作(押すたびにON/OFF切り替え)を作る
スポンサーリンク(開発中はプレースホルダー)
2. 使う部品
Section titled “2. 使う部品”- Day 3と同じ構成です。そのままでOK。
3. 完成形(今日のゴール)
Section titled “3. 完成形(今日のゴール)”昨日は「押している間だけ」でしたが、今日は 「一回押すと点灯、もう一回押すと消灯」 させます。 部屋の照明スイッチのような動作です。
Step 1: 「状態」を覚えさせる
Section titled “Step 1: 「状態」を覚えさせる”Picoに「今、電気は点いてる?消えてる?」という記憶を持たせます。 これを 変数(へんすう) と言います。
Step 2: ロジックを考える
Section titled “Step 2: ロジックを考える”- もしボタンが押されたら…
- 今の状態を確認する。
- 点いてれば消す。消えてれば点ける。
- 少し待つ(チャタリング防止)。
5. コード
Section titled “5. コード”import machineimport time
led = machine.Pin(15, machine.Pin.OUT)button = machine.Pin(14, machine.Pin.IN, machine.Pin.PULL_DOWN)
# 今の状態を覚えておく「変数」is_light_on = False # 最初は消えている
while True: if button.value() == 1: # ボタンが押されたときだけ仕事をする
if is_light_on == True: # 今点いてるなら、消す led.value(0) is_light_on = False print("OFFにしました") else: # 今消えてるなら、点ける led.value(1) is_light_on = True print("ONにしました")
# 連続入力を防ぐために少し待つ time.sleep(0.3)6. つまずきログ
Section titled “6. つまずきログ”⚠️ 一瞬で点いて消える / 反応が良すぎる
- 原因: 処理が速すぎる
- → コンピュータは一瞬で数千回ループします。あなたが「ポンッ」と押した一瞬の間に、「点けた!消した!点けた!消した!」と100回くらい処理してしまっているかも。
- →
time.sleep(0.3)で「余韻」を持たせることで解決します。
7. 文系への翻訳
Section titled “7. 文系への翻訳”- if文: ロボットの「好み」や「性格」。
- 「もし〜なら、こうする」というルールが増えるほど、生き物らしくなります。
- 変数: ロボットの「記憶メモ」。
- これがないと、昨日のこと(さっき点けたこと)をすぐ忘れてしまいます。
8. 今日の達成
Section titled “8. 今日の達成”「記憶と判断力を持たせた!」
光るだけでは孤独です。次は「音」を出してみましょう。 ブザーを使って、Picoに歌を歌わせます。