Arduinoで作る野球ゲームの部品セット 紹介ページ
トラ技ジュニア 2014年1・2月号の記事「ひとりでできるマイコンArduino ~電子回路のプログラムもコピペッペ~」で紹介されている「LED野球ゲーム」にピッタリのキットです。
キット内容物
- Arduino Uno
- ブレッドボード
- 柔らかいジャンパ 1袋(10本入り)
- LED5個(赤4個、緑1個)
- 抵抗1kΩ 1個
- タクトスイッチ 1個
- 圧電スピーカ 1個
- USBケーブル
野球ゲーム 回路図

実際の部品をブレッドボード上でどうつなぐといいかはトラ技ジュニア 12・1月号を見てみてください。
野球ゲーム スケッチ
野球ゲーム スケッチ baseball.zip
ダウンロードしたbaseball.zipファイルを展開して、出てきた「baseball」フォルダをスケッチブックの保存場所フォルダにコピーしてArduino IDEから開いてください。
スケッチブックの保存場所は、Arduino IDEの[ファイル]-[環境設定](Windowsの場合)または[Arduino]-[環境設定](Macの場合)でわかります。
#define BUTTON 2
#define SPEAKER 3
#define BALL5 9
#define BALL4 10
#define BALL3 11
#define BALL2 12
#define BALL1 13
#define DURATION 500000
unsigned long duration = DURATION;
int level = 0;
int strike = 0;
int last = 0;
void setup() {
pinMode(BALL1, INPUT);
pinMode(BALL2, INPUT);
pinMode(BALL3, INPUT);
pinMode(BALL4, INPUT);
pinMode(BALL5, INPUT);
pinMode(SPEAKER, OUTPUT);
pinMode(BUTTON, INPUT_PULLUP);
Serial.begin(9600);
}
boolean ball(int pin) {
tone(SPEAKER, 880, 20);
pinMode(pin, OUTPUT);
digitalWrite(pin, HIGH);
last = pin;
unsigned long start = micros();
while (micros() - start < duration) {
if (digitalRead(BUTTON) == LOW) {
return true;
}
}
digitalWrite(pin, LOW);
pinMode(pin, INPUT);
return false;
}
void loop() {
Serial.print("Level: ");
Serial.println(level);
Serial.print("Strike: ");
Serial.println(strike);
Serial.println("Hit the button to start");
// ボタンが押されてから離されるのを待つ。
while (digitalRead(BUTTON) == HIGH) {
}
while (digitalRead(BUTTON) == LOW) {
}
delay(50);
// ボールを投げる。
if (ball(BALL1) || ball(BALL2) || ball(BALL3) || ball(BALL4)) {
// ボタンを押したのが早すぎる。
++strike;
tone(SPEAKER, 50, 500);
delay(700);
} else
if (ball(BALL5)) {
// ヒット!
strike = 0; // ストライクの数を0に戻す。
++level; // レベルを上げる。
duration *= 0.8; // ボールを速くする。
tone(SPEAKER, 554, 300);
delay(300);
tone(SPEAKER, 440, 300);
delay(300);
} else {
// 遅すぎる。
++strike;
tone(SPEAKER, 50, 500);
delay(700);
}
// ボタンがオフになるまで待つ。
while (digitalRead(BUTTON) == LOW) {
}
Serial.println();
digitalWrite(last, LOW); // 最後に光らせたLEDを消す。
pinMode(last, INPUT);
if (strike == 3) {
// 3ストライク、バッターアウト。
Serial.print("Last Level: ");
Serial.println(level);
Serial.println("Hit the button to start over.");
tone(SPEAKER, 50, 500);
delay(700);
tone(SPEAKER, 50, 500);
// ボタンが押されてから離されるのを待つ。
while (digitalRead(BUTTON) == HIGH) {
}
while (digitalRead(BUTTON) == LOW) {
}
duration = DURATION;
level = strike = last = 0;
}
}
Last modified
11 years ago
Last modified on Dec 9, 2013, 4:57:40 PM
Attachments (2)
- baseball.zip (1.2 KB ) - added by 11 years ago.
-
baseball.png
(7.2 KB
) - added by 11 years ago.
野球ゲーム回路図
Download all attachments as: .zip
Note:
See TracWiki
for help on using the wiki.