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.