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

LEDルーレットゲーム

コンポーネントと消耗品

>
LED(汎用)
6個の赤、2個の黄色、1個の緑
× 9
SparkFunプッシュボタンスイッチ12mm
× 1
Arduino Nano R3
× 1
>
メスヘッダー8位置1行(0.1 ")
× 1
DCバレルジャック
× 1

必要なツールとマシン

CNCルーター

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

>
Arduino IDE

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

ビデオ:

概要

ずっと前から、一人で遊べるシンプルで楽しいゲームを作りたいと思っていました。非常にシンプルで、ArduinoNanoを1つだけ実行できます。 LEDルーレットです。ゲームの目的は、赤と黄色のLEDを避けて、緑のLEDで停止することです。遊びやすく、作りやすいようです。

<図>

ステップ1

まず、Fusion 360でデバイスを設計することから始めました。前面プレートには、9個のLED、6個の赤、2個の黄色、1個の緑が含まれるように設計しました。また、下部にタクトスイッチを入れるスペースを作りました。次に、Millright CNCルーターを使用して、設計した部分を切り取りました。

<図> <図> <図>

ステップ2

ゲームの仕組みは次のようになります。ライトは2つのエッジの間を前後に「移動」し、ボタンを押すたびに停止します。すぐに反応するように、割り込みを使用しました。各LEDは、循環する配列内のインデックスに対応します。現在のLEDインデックスも独自の変数を取得します。難易度に応じて、各ステップの間に遅延もあります。起動時に、ユーザーはボタンを押して難易度を選択し、LEDが変化するたびに遅延を減らします。正しいLEDが点灯したら、ユーザーはダブルクリックしてロックすることができます。

ステップ3

<図>

合板の部分に素敵な仕上げと丸みを加えるために、サンドペーパーを使用しました。その後、ホットグルーを使ってピースを固定しました。

結論

<図>

今、私が簡単なゲームをプレイしたい気分になっているときはいつでも、外出先であろうと、画面から離れるだけであろうと、このデバイスは私に素晴らしい休息を与えてくれます。また、各LEDを緑色から一定のポイントだけ離して、最後にポイントを最も少なく獲得した人が勝つようにすることで、マルチプレイヤーにすることもできます。

コード

  • コード
コード C / C ++
 / *ピン2〜10を使用TTBOUNCEライブラリは次の場所で入手できます:https://github.com/TOLDOTECHNIK/TTBOUNCE * /#include  int delay_time =0; const uint8_t led_array [9] ={ 4,3,5,6,7,8,9,10,11}; constuint8_tボタン=2; uint8_t難易度=0; uint8_t current_led =0; bool dir_flag =true; // trueは右に、falseは左に行くbool game_ended =false; bool is_win =false; bool is_finished_selecting =false; TTBOUNCE b =TTBOUNCE(button); void doubleClick(){Serial.println( "double click"); is_finished_selecting =true; delay_time =floor(500 /(difficulty + 1)); //式:delay(in ms)=500 /(difficulty + 1)Serial.println( "difficulty:" + String(delay_time));スイープ();} void click(){Serial.print( "Click |"); digitalWrite(led_array [difficulty]、LOW);難易度++; if(difficulty> 8){難易度=0; } digitalWrite(led_array [difficulty]、HIGH); Serial.println( "難易度:" + String(difficulty)); delay(100);} void setup(){Serial.begin(9600); b.attachDoubleClick(doubleClick); b.attachClick(クリック); b.setActiveLow(); b.enablePullup(); for(int i =0; i <9; i ++){pinMode(led_array [i]、OUTPUT); } 掃く();脈();難易度=0; digitalWrite(led_array [difficulty]、HIGH); while(!is_finished_selecting){b.update(); } b.update(); pinMode(button、INPUT_PULLUP); attachInterrupt(digitalPinToInterrupt(button)、button_pressed、FALLING); delay(1000);} void loop(){if(game_ended ==false){move_led(); delay(delay_time); } else if(game_ended){Serial.println(game_ended); Serial.println( "ゲームオーバー"); if(is_win){Serial.println( "あなたが勝った"); for(int i =0; i <5; i ++){pulse(); delay(100); } } 掃く(); game_ended =false; is_win =false; delay(2000); }} void move_led(){digitalWrite(led_array [current_led]、LOW); if(current_led ==8){dir_flag =false; current_led- =1; } else if(current_led ==0){dir_flag =true; current_led + =1; } else if(dir_flag){current_led + =1; } else if(!dir_flag){current_led- =1; } digitalWrite(led_array [current_led]、HIGH);} void pulse(){for(int i =0; i <9; i ++){digitalWrite(led_array [i]、HIGH); } delay(100); for(int i =0; i <9; i ++){digitalWrite(led_array [i]、LOW); }} void swap(){for(int i =0; i <9; i ++){digitalWrite(led_array [i]、HIGH); delay(50); digitalWrite(led_array [i]、LOW); } for(int i =8; i> =0; i-){digitalWrite(led_array [i]、HIGH); delay(50); digitalWrite(led_array [i]、LOW); }} void button_pressed(){Serial.println( "ボタンがLEDで押されました:" + String(current_led)); game_ended =true; if(current_led ==4){is_win =true; } else if(current_led!=4){is_win =false; } current_led =0; delay(500);} 

回路図


製造プロセス

  1. MPU-6050を搭載したArduinoジャイロスコープゲーム
  2. Arduino Digital Dice
  3. DIY 37LEDルーレットゲーム
  4. Arduinoゲームコントローラー
  5. 自家製16x8マトリックス上のArduinoNanoTetr​​isゲーム
  6. LEDを制御するBluetoothを搭載したArduino!
  7. Arduino Quadruped
  8. ピクセルチェイサーゲーム
  9. BoltとArduinoを使用したLEDの明るさの制御
  10. シングルLEDマトリックスArduinoフリップクロック
  11. ArduinoRGBカラーミキサー