Day 3|感覚:スイッチで意思を伝える
1. 今日やること
Section titled “1. 今日やること”- ボタン(タクトスイッチ) を配線する
- Picoで「押されたかどうか」を読み取る(入力)
- 押したら光る 仕組みを作る
スポンサーリンク(開発中はプレースホルダー)
2. 使う部品
Section titled “2. 使う部品”- Day 2のセット(LED回路はそのまま使います)
- タクトスイッチ ×1
3. 完成形(今日のゴール)
Section titled “3. 完成形(今日のゴール)”ボタンを押している間だけ、LEDが光ります。 「あなたの指 → ボタン → Pico → LED」という情報のバトンタッチが行われます。
Step 1: スイッチを配置する
Section titled “Step 1: スイッチを配置する”タクトスイッチは、ブレッドボードの溝をまたぐように配置します。
- スイッチを挿す。
- 片方の足(GP14側) → GP14 へ
- もう片方の足(3.3V側) → 3V3(OUT) へ
- ※Picoの36番ピンなどが3V3です。
Step 2: 内部プルダウンを設定する
Section titled “Step 2: 内部プルダウンを設定する”ここで「魔法」を使います。 スイッチには「押してないとき、電気はどうなってるの?」という問題(不定)があります。 これを解決するために、プログラムで 「普段は0(GND)に引っ張っておく(プルダウン)」 設定をします。
Step 3: プログラムを書く
Section titled “Step 3: プログラムを書く”5. コード
Section titled “5. コード”import machineimport time
# LEDは使い回し(GP15)led = machine.Pin(15, machine.Pin.OUT)
# ボタンは「入力」かつ「プルダウン」button = machine.Pin(14, machine.Pin.IN, machine.Pin.PULL_DOWN)
while True: if button.value() == 1: # もしボタンが押されたら led.value(1) # 光れ else: # そうでなければ led.value(0) # 消えろ time.sleep(0.1) # 少し休む(誤動作防止)6. つまずきログ
Section titled “6. つまずきログ”⚠️ ボタンを押してないのに光る / 反応しない
- 原因1: スイッチの足の向き(90度間違っている)
- → タクトスイッチは、足が出ている方向と、繋がっている方向が決まっています。90度回転させて挿し直してみてください。
- 原因2: PULL_DOWNの書き忘れ
- →
machine.Pin.PULL_DOWNがないと、空気中の電波などを拾って勝手に「1(押された)」と誤解することがあります(ゴースト入力)。
- →
7. 文系への翻訳
Section titled “7. 文系への翻訳”- 入力 (Input): Picoの耳。外の状況を聞くこと。
- 出力 (Output): Picoの口。外にアクションすること。
- プルダウン: 「基本はNO(0)だよ」という初期設定。これがないと、Picoは「どっちかな〜?」と迷ってフラフラします。
8. 今日の達成
Section titled “8. 今日の達成”「Picoに『触覚』を与えた!」
単純なON/OFFはできましたが、もっと複雑なことをしたくありませんか? 「1回押したら点きっぱなし」「2回押したら点滅」など。 そのためには「性格(条件分岐)」を詳しく学ぶ必要があります。