Arduinoでリズムゲームを作ろう!

Arduino

始めに

Arduinoを使って楽しく遊べるリズムゲームを作ってみませんか?
本記事では、LEDの点灯に合わせてボタンを押す シンプルだけどハマるリズムゲーム をご紹介します!
初心者でも簡単に作れるので、電子工作の入門にもおすすめです。ぜひゲームクリアを目指してチャレンジしてみてください!

必要なもの

  • PC
  • USBケーブル
  • Arduino
  • ブレッドボード
  • ジャンパ線
  • スイッチ
  • LED×4
  • 抵抗(330Ω) ×4 ※1 LED用の抵抗なので、300Ω~1kΩであればOK
  • 抵抗 10k (プルアップ抵抗) ※2 1k~10kΩであればOK。Arduino内部のプルアップ抵抗を使用するも良し
  • ブザー(あればより楽しめる)

回路図

回路図は下記画像です。
LEDには極性があるので、配線には気を付けて下さい。

電子ブザーをお持ちの方は、ピン3に電子ブザーを取り付けてください。

プログラム

プログラムは下記です。

void setup() {
pinMode(2, INPUT); // スイッチのピン(LOW で押されたことを検知)
pinMode(9, OUTPUT); // LED1(1番目のLED)
pinMode(10, OUTPUT);// LED2(2番目のLED)
pinMode(11, OUTPUT);// LED3(3番目のLED)
pinMode(12, OUTPUT);// LED4(4番目のLED)
pinMode(3, OUTPUT); // 電子ブザー(音を鳴らす)
}

void loop() {
static int wait_t = 1000; // LEDが点灯する間隔(初期値1000ms)

// 【1つ目のLED処理】
digitalWrite(9, HIGH); // LED1を点灯
delay(wait_t); // 設定時間待つ
while (digitalRead(2) == LOW) { // スイッチが押されたら
wait_t = 1000; // 速度をリセット(ミス判定)
tone(3, 587, 500); // ブザーを鳴らして失敗を知らせる
}
digitalWrite(9, LOW); // LED1を消灯

// 【2つ目のLED処理】
digitalWrite(10, HIGH);// LED2を点灯
delay(wait_t);
while (digitalRead(2) == LOW) { // スイッチが押されたら
wait_t = 1000; // 速度リセット
tone(3, 587, 500); // ブザーを鳴らす
}
digitalWrite(10, LOW); // LED2を消灯

// 【3つ目のLED処理】
digitalWrite(11, HIGH);// LED3を点灯
delay(wait_t);
while (digitalRead(2) == LOW) { // スイッチが押されたら
wait_t = 1000; // 速度リセット
tone(3, 587, 500); // ブザーを鳴らす
}
digitalWrite(11, LOW); // LED3を消灯

// 【4つ目のLED処理(成功判定)】
digitalWrite(12, HIGH);// LED4を点灯
delay(wait_t);

if (digitalRead(2) == LOW) { // スイッチが押されたら成功
while (digitalRead(2) == LOW); // ボタンが離されるのを待つ
wait_t -= 200; // 成功したので速度アップ(間隔短縮)

// 【ゲームクリア処理】
if (wait_t < 100) { // 一定速度以下ならクリア
  digitalWrite(9, HIGH);
  digitalWrite(10, HIGH);
  digitalWrite(11, HIGH);
  digitalWrite(12, HIGH);
  delay(1000); // 全LEDを1秒間点灯(クリア演出)

  // すべてのLEDを消灯
  digitalWrite(9, LOW);
  digitalWrite(10, LOW);
  digitalWrite(11, LOW);
  digitalWrite(12, LOW);

  wait_t = 1000; // ゲームをリセット(速度を初期値に戻す)
}

}
digitalWrite(12, LOW); // LED4を消灯
}

ゲームの遊び方

  1. ゲーム開始
    • LEDが1つずつ順番に点灯する。
  2. ボタンの押し方
    • 4個目のLED(右端)が点灯した瞬間にボタンを長押し
    • 正しく押せたら次の周回で速度アップ(点灯間隔が200ms短縮)。
    • タイミングがズレると失敗!
      → 速度がリセットされ、ブザーが鳴る。
  3. クリア条件
    • 速度が 100ms以下 になるまで成功し続けると ゲームクリア!
    • 全LEDが1秒間点灯 してリセットされる。
  4. リスタート
    • 失敗・クリア後は自動的に再挑戦可能!

正しいタイミングでボタンを 長押し して、最高速度を目指そう! 🚀

発展・応用

「ゲームクリア条件」や「LED点灯のスピード」をプログラムから調整できます。
現在の成功回数をカウントして、ディスプレイに表示するのも面白いと思います。
ぜひゲームを改良して、自分好みにアレンジしてみて下さい。

まとめ

今回は、ArduinoとLEDを使ったシンプルなリズムゲーム を紹介しました。
LEDの点灯に合わせてボタンを押すだけの簡単な仕組みですが、遊びながら反射神経も鍛えられます!

さらに、LEDの数を増やしたり、スコア機能を追加したりすれば、もっと楽しいゲームに進化させることも可能です。
ぜひ、実際に作って遊んでみてください! 🚀

コメント

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