工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

Arduinoメモリゲームを作る

コンポーネントと消耗品

>
Arduino UNO
× 1
SparkFun330オーム抵抗器
必要なのは4つだけです
× 1
SparkFun10kオーム抵抗器
必要なのは4つだけです
× 1
SparkFun各種LED
異なる色の4つのLEDが必要です
× 1
SparkFunミニスピーカー
音を気にしない場合は、これなしで行うことができます
× 1
SparkFunブレッドボード(フルサイズ)
× 1
ジャンパー線(汎用)
× 1

アプリとオンラインサービス

>
Arduino IDE

このプロジェクトについて

ゲーム「サイモン」を覚えていますか?私の年齢(70年代生まれ)の多くの人は、それを演奏するのに多くの時間を失うようになりました。ゲームはシンプルで、順番に点灯する色の異なる4つのボタンがあり、順番を繰り返す必要がありました。毎回、あなたはそれを正しく理解しました、ゲームはあなたに最後に追加の色で再びあなたにシーケンスを与えるでしょう。

私はずっと前にクリスマス用に1つ入手しましたが、その後移動して移動し、さらに移動したため、移動によって開梱されることのない多くのボックスの1つでゲームが失われました...

「大人」として、私はArduinoの喜びを発見し、それによって、長い間失った友人を復活させる機会を得ました。

このチュートリアルでは、Arduino UnoをいくつかのLEDと抵抗器、および比較的単純な回路を使用して同様のゲームを作成する方法を示します。

プログラム自体は初心者には少し複雑かもしれないので、コードでそれが何をどのように行うかを説明しようとしました。

このゲームを実行する最も簡単な方法はこれです。

1)図のように回路を正確に接続します。ワイヤーの色は関係ないので、黒いワイヤーが足りなくなっても大丈夫です。 :)

2)ソースコードをお気に入りのArduinoエディターに貼り付けて、ボードにアップロードします

3)ゲームをプレイする

ゲームは約3秒後に開始され、すべてのLEDが5回ゆっくり点滅します。

<図>

1つまたは複数のLEDが点滅しない場合は、配線を確認してください。私のボードでは、非常に小さなボタンが常に適切に配置されているとは限らず、飛び出す傾向があります。

配線が正しく見える場合は、動作しているLEDと動作していないLEDを反転させて、配線なのかLED自体なのかを確認してください。

5回の点滅が完了すると、1つのLEDが点灯します。どちらかはわかりませんが、驚きです:)そのLEDのボタンを押してください。このLEDが再び点灯し、続いて新しいLEDが点灯します。正しいボタンを順番に押してください...あなたは私がそれでどこに行くのかわかります...

<図>

その後、かなりすぐに、それらすべてが急速に点滅するのがわかります。それはあなたが負けたことを意味します。 :D

与えられた最後のシーケンスが再生されるので、ポイントを数えた後、ゲームが再開していることを示す前の5回のゆっくりとした点滅が続きます。

各ボタンを押す時間は2秒です。

どうぞ!楽しんでください!

もう少し難しくしたいですか?コードの一番上の行を別の値に変更してみませんか?

  #define PLAYER_WAIT_TIME 2000  

または、LEDがある場合は、別のLEDを追加することもできます...このためには、最初に回路のこの部分を再現する必要があります:

<図>

ここのオレンジ色のワイヤーは、Arduinoの未使用のピンに接続されます(ただし、0と1は避けてください)

次に、コードの次の行を変更します。

  byte noPins =4bytepins [] ={2、13、10、8};  

ピン6に1つのLEDを追加すると、コードは次のようになります

  byte noPins =5bytepins [] ={2、13、10、8、6};  

Arduinoコードを書くための小さなヒント:

  void setup(){delay(3000); Serial.begin(9600); Reset(); }  

setup()関数の最初のステートメントとして短い遅延を設定します。 Arduinoを無限ループに入れたり、何らかの方法でロックしたりするのは非常に簡単です。それが起こった場合、その短い遅延により、Arduinoをリセットし、再びロックする前に空白のスケッチをアップロードできます。 。

私は最終的にこの小さなアイデアを採用し、ポータブルにしました...

同様の(まだはるかに高度な)ゲームの本当にクールなアイデアを見たい場合。 PeterKentによるこのhttps://www.instructables.com/id/Lego-Mini-Memory-Gameを確認してください。彼はレゴカーへのインターフェースを備えたモバイルでゲームを作りました。本当にすごい!

コード

  • メモリゲームコード
メモリゲームコード Arduino
これはゲームのコード全体です。お気に入りのIDEにコピーして貼り付け、Arduinoにアップロードするだけです。
 #define PLAYER_WAIT_TIME 2000 //ボタンを押すまでの時間-2秒のバイトシーケンス[100]; //ライトシーケンスバイトのストレージcurLen =0; //シーケンスバイトの現在の長さinputCount =0; //プレーヤーが特定のターンバイトで(正しい)ボタンを押した回数lastInput =0; // playerbyteからの最後の入力expRd =0; // playerboolによって点灯すると想定されるLEDbtnDwn =false; //ボタンが押されているかどうかを確認するために使用されますboolwait =false; //プログラムは、ユーザーがボタンを押すのを待っていますか?resetFlag =false; //プレーヤーがバイトを失ったらsoundPin =5であることをプログラムに示すために使用されます。 //スピーカーoutputbytenoPins =4; //ボタン/ LEDの数(これに取り組んでいる間、私は2つのLEDのみを使用していました)//追加のLED /ボタン/抵抗の組み合わせを追加することでゲームを難しくすることができます。bytepins[] ={2、13、10 、8}; //ボタン入力ピンとLED出力ピン-ボタンを他のピンに接続したい場合は、これらの値を変更します//要素の数はlong inputTime =0未満のnoPinsと一致する必要があります。 //ユーザー入力間の遅延のタイマー変数voidsetup(){delay(3000); //これは、arduinoを接続した後に呼吸する時間を与えるためです-Serial.begin(9600);が必要な場合は削除できます。 //シリアルモニターを開始します。 Reset();} ////// 'dir'の値に基づいてすべてのピンをINPUTまたはOUTPUTとして設定する限り、これも削除できます/// void setPinDirection(byte dir){for(byte i =0; i 速い|大きな数->遅い/// void flash(short freq){setPinDirection(OUTPUT); /// LEDをアクティブ化していますfor(int i =0; i <5; i ++){writeAllPins(HIGH);ビープ音(50); delay(freq); writeAllPins(LOW); delay(freq); }} //////この関数は、すべてのゲーム変数をデフォルト値にリセットします/// void Reset(){flash(500); curLen =0; inputCount =0; lastInput =0; expRd =0; btnDwn =false;待機=false; resetFlag =false;} //////ユーザーが失われました/// void Lose(){flash(50); } ////// arduinoはユーザーに何を記憶する必要があるかを示します///最後のシーケンスが何であったかを示すために負けた後にも呼び出されます/// void playSequence(){//保存されたシーケンスをループして適切なものを点灯します次に、LED for(int i =0; i  PLAYER_WAIT_TIME){//プレーヤーが許可された時間を超える場合、DoLoseProcess(); //すべてが失われます:(return;} if(!btnDwn){// expRd =sequence [inputCount]; //プレーヤーに期待する値を見つけますSerial.print( "Expected:"); //シリアルモニターの出力-上記のSerial.beginを削除した場合は削除する必要がありますSerial.println(expRd); //シリアルモニター出力-上記のSerial.beginを削除した場合は削除する必要がありますfor(int i =0; i  

回路図

simonsays_siKds3Jmk2.fzz

製造プロセス

  1. Arduinoを使用してモニターをAmbilightにする
  2. MPU-6050を搭載したArduinoジャイロスコープゲーム
  3. NeoPixelリングでジャイロスコープを楽しむ
  4. ArduinoPongゲーム-OLEDディスプレイ
  5. Arduinoゲームコントローラー
  6. Arduinoタッチブレイクアウトゲーム
  7. Pixie:ArduinoベースのNeoPixel腕時計
  8. ピクセルチェイサーゲーム
  9. arduinoを使用した自動恐竜ゲーム
  10. モバイルリモート監視カメラ
  11. スマートハンドグローブ