【親子で作る自由研究】初心者キットで作る「早押しクイズランプ」|先に押した方のLEDだけ光る対戦装置

親子で作って遊ぶ! 早押しクイズランプ

親子で一緒に作って、家族で遊べる電子工作

夏休みに子どもと電子工作をやりたいんだ。完成したあとも家族で楽しめるような作例ってある?

最高の質問だね。今日は「早押しクイズランプ」を紹介するよ。先にボタンを押した方のLEDだけが光って、もう片方は反応しなくなる、テレビのクイズ番組と同じ仕組みなんだ。完成したらそのまま家族で対戦できるよ!

今回は、夏休みに親子で電子工作を楽しみたい方に向けて、Arduino初心者キットだけで作れる「早押しクイズランプ」を紹介します。

2人がそれぞれボタンを構えて、出題者の合図でクイズ番組のように早押し勝負ができる装置です。先に押した方のLEDだけが光り、もう片方は無効になります。作るのも遊ぶのも親子で一緒にでき、完成後にも家族で動作確認を続けやすい工作です。

この記事で作るもの
  1. 緑LEDと赤LEDをそれぞれの席に置く
  2. 2つのボタンを構えて、出題者が「スタート!」と合図
  3. 先に押した方のLEDだけが光る
  4. もう片方を押しても反応しない (テレビと同じ)
  5. リセットボタンで次の問題へ

使う部品

部品役割個数
Arduino UNO R3装置の頭脳1
LED (緑、赤)勝者のランプ各1
抵抗330ΩLEDを保護2
タクトスイッチ早押しボタン3 (Aさん、Bさん、リセット)
パッシブブザー勝者の合図音1
ブレッドボード配線をする台1
ジャンパーワイヤーつなぐ線10本前後

親子での分担のすすめ

全部を一緒にやると進みません。次のように分担すると親子ともストレスなく進められます。

工程親の役割子の役割
部品の準備キットから必要な物を取り出す表に並べて確認
配線配線図を見せる、見守る実際に挿す
書き込みPCの準備、IDEの操作USBの接続、書き込みボタン
動作確認動かない時の原因を一緒に考える遊んでみる、感想を言う

大事なのは、親が先回りして全部やらないことです。子どもが詰まったら一緒に考える、というスタンスで進めましょう。

配線図 (ブレッドボード)

        a b c d e
       +─────────+
[+]rail| . . . . . | ← 使わない (今回は内蔵プルアップのみ)
[-]rail| . . . . . | ← GND (Arduino GND から)
       +─────────+
row 3  | X . . . . | ← SW_A (D2)
row 5  | X . . . . | ← SW_A 反対足 ([-]rail)
row 7  | X . . . . | ← SW_B (D3)
row 9  | X . . . . | ← SW_B 反対足 ([-]rail)
row 11 | X . . . . | ← SW_R リセット (D4)
row 13 | X . . . . | ← SW_R 反対足 ([-]rail)
row 17 | X . . . . | ← 330Ω 上足 (D7 から)
row 18 | X . . . . | ← 330Ω 下足+緑LED アノード
row 20 | X . . . . | ← 緑LED カソード ([-]rail)
row 23 | X . . . . | ← 330Ω 上足 (D8 から)
row 24 | X . . . . | ← 330Ω 下足+赤LED アノード
row 26 | X . . . . | ← 赤LED カソード ([-]rail)
row 29 | X . . . . | ← ブザー+足 (D9 から)
row 30 | X . . . . | ← ブザー-足 ([-]rail)
       +─────────+

部品同士のつながり

Arduino   役割
  D2  ←──  Aさん早押しボタン
  D3  ←──  Bさん早押しボタン
  D4  ←──  リセットボタン
  D7  ──→  緑LED (Aさん勝利)
  D8  ──→  赤LED (Bさん勝利)
  D9  ──→  パッシブブザー

ボタンは中央の溝をまたぐように挿して、対角の2本のうち片方をArduinoのピン、もう片方をGNDに繋ぐだけです。プルアップは内蔵を使うので、抵抗は不要です。LEDはそれぞれ330Ω抵抗を直列に入れます。

プログラム

次のスケッチをコピーして書き込みましょう。

#define BTN_A 2
#define BTN_B 3
#define BTN_RESET 4
#define LED_A 7
#define LED_B 8
#define BUZZER 9

int winner = 0;  // 0=未決, 1=Aさん, 2=Bさん

void setup() {
  Serial.begin(9600);
  pinMode(BTN_A, INPUT_PULLUP);
  pinMode(BTN_B, INPUT_PULLUP);
  pinMode(BTN_RESET, INPUT_PULLUP);
  pinMode(LED_A, OUTPUT);
  pinMode(LED_B, OUTPUT);
  pinMode(BUZZER, OUTPUT);
  Serial.println("早押しクイズランプ 準備完了!");
}

void loop() {
  if (winner == 0) {
    if (digitalRead(BTN_A) == LOW) {
      winner = 1;
      digitalWrite(LED_A, HIGH);
      tone(BUZZER, 1500, 300);
      Serial.println("Aさんの勝ち!");
    } else if (digitalRead(BTN_B) == LOW) {
      winner = 2;
      digitalWrite(LED_B, HIGH);
      tone(BUZZER, 1000, 300);
      Serial.println("Bさんの勝ち!");
    }
  }
  if (digitalRead(BTN_RESET) == LOW) {
    winner = 0;
    digitalWrite(LED_A, LOW);
    digitalWrite(LED_B, LOW);
    Serial.println("リセット!");
    delay(300);
  }
}

動きの流れ

flowchart TD A[起動] --> B{"勝者
未決?"} B -->|Yes| C{"Aを
押した?"} C -->|Yes| D["緑LED + 高音
勝者=Aさん"] C -->|No| E{"Bを
押した?"} E -->|Yes| F["赤LED + 低音
勝者=Bさん"] E -->|No| B D --> G{リセット?} F --> G G -->|Yes| H["全消灯
勝者なし"] G -->|No| G H --> B B -->|No| G

遊び方のアイデア

完成したら、いよいよクイズ大会の開始です。家族で楽しむためのテーマ例を紹介します。

クイズの題材アイデア
  1. 家族の誕生日や好きな食べ物 (子ども有利の問題集)
  2. 身の回りの英単語 (机=desk、本=bookなど)
  3. 都道府県や歴史 (中学受験勉強にも)
  4. 家族の昔の写真を見て「これいつ撮ったクイズ」
兄弟3人でやりたいんだけど、ボタン3つにできる?

できるよ! Cさん用のボタンをD5に、LEDをD10に繋ぐ配線を追加して、プログラムにも同じパターンを書き足すだけ。プログラムが「コピーして書き換える」感覚をつかむ、いい練習になるんだ。

自由研究レポートとしてのまとめ方

遊んで終わりじゃもったいないので、レポートにもまとめましょう。親子で取り組んだ過程そのものが評価ポイントです。

親子工作レポートの構成
  1. 研究のきっかけ (なぜ作ろうと思ったか)
  2. 家族で分担した役割の説明
  3. 使った部品と配線図
  4. プログラムの簡単な解説
  5. 完成後に家族で遊んだ感想
  6. つまずいた所と、どう解決したか

6番目の「つまずいた所」を素直に書くと評価が上がります。「LEDが付かなかった → 長い足の向きを間違えていた」のような体験談が、読み手の共感を生みます。

改造のアイデア

発展アイデア
  1. 勝った回数をシリアル出力で記録 (家族のスコアボード)
  2. 3秒以内にボタンを押せないと両方失格にする
  3. LCD画面に「Aさんの勝ち!」と表示する
  4. 3つの音をランダムに鳴らして、当てた人の勝ち (音ゲー化)

まとめ

今回は、親子で作って家族で遊べる「早押しクイズランプ」の作り方を紹介しました。Arduino初心者キットだけで作れて、完成後も継続的に楽しめる、自由研究と家族の時間を一石二鳥でかなえる作例です。

大切なのは、親が手を出しすぎず、お子さんに「自分で作った」という達成感を持たせることです。詰まった時だけ一緒に考える、というスタンスで進めれば、夏休みの素敵な思い出になります。

他にも初心者キットだけで作れる作例を別の記事で紹介しているので、興味があれば見てみてね。