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

スネークLED16x16マトリックスゲーム

コンポーネントと消耗品

>
Arduino UNO
× 1
RGB LEDピクセルマトリックス、NeoPixel NeoMatrix
これについてはよくわかりません。私はaliexpressでLEDマトリックスを購入しました。リンクはこちらhttp://ali.pub/4wxs2s
× 1
ジャンパー線(汎用)
× 1
アナログジョイスティック(汎用)
× 1
ブレッドボード(汎用)
× 1

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

やあ!私はarduinoの機会を学んでいます。そして、私は私の古いノキアから古典的なアーケードヘビゲームをコピーすることにしました。それで、ここにあります。

16x16 LEDマトリックス、ジョイスティック、ArduinoUNOを使用しました。それは簡単なことではありませんでした、各LEDは一貫して接続されています。したがって、移動ロジックは少し注意が必要です。

ここでは、ヘビのキャラクターを制御できます。おいしい食べ物を食べて、成長して、死んでください。プログラムコードをアップグレードする準備ができました。

楽しんで楽しんでください。あなたが好きなら、私のユーチューブとインスタグラムを購読することを二度考えないでください:)それらはロシア語ですが、私はすぐに字幕を作るつもりです。

<図>

<図>

<図>

コード

  • コード
コード C / C ++
 #include  // matrix settings#define NUM_LEDS 256#define DATA_PIN 3#define BRIGHTNESS 8 // joystick settings#define pinX A2 //осьXджойстика#definepinY A1 //осьYджойстика#define swPin 2 //кнопкаджойстикаintsnake[256]; //スネーク要素の配列intsnakeSize =2; //実際のスネークサイズintsnakeSpeed =500; int row; //行番号intcol; //列番号intlastDirection =135; // directionint i、newDirection、OlddX =1、OlddY、f; int red、green、blue、fred、fgreen、fblue;を開始します。 // colorsCRGB leds [NUM_LEDS]; void setup(){red =random(0、255);緑=ランダム(0、255);青=ランダム(0、255);フレッド=ランダム(127、255); fgreen =random(127、255); fblue =random(127、255); Serial.begin(9600); pinMode(pinX、INPUT); pinMode(pinY、INPUT); pinMode(swPin、INPUT); digitalWrite(swPin、HIGH); FastLED.addLeds (leds、NUM_LEDS); FastLED.setBrightness(BRIGHTNESS); for(i =0; i <=255; i ++){snake [i] =0; } for(i =0; i <=snakeSize; i ++){snake [i] =lastDirection + i; } f =random(0、255); FastLED.show();} int Snakedirection(int last、int dX、int dY){dX =map(dX、0、1000、-1、1); dY =map(dY、0、1000、-1、1); if(dX ==0 &&dY ==0 &&OlddX!=dX){dX =OlddX; } if(dY ==0 &&dX ==0 &&OlddY!=dY){dY =OlddY; } int newDirection =last; if(dX!=0){// X方向に移動if(row&1){if(col ==0 &&dX ==1){newDirection =last -15; } else if(col ==15 &&dX ==-1){newDirection =last +15; } else newDirection =last + dX; //четная} else {if(col ==0 &&dX ==1){newDirection =last +15; } else if(col ==15 &&dX ==-1){newDirection =last -15; } else newDirection =last --dX; //нечетная}} if(dY <0){// Y DOWN方向に移動if(row ==15 &&dY ==-1){newDirection =col;} else if(row&1){newDirection =last +( col * 2)+1; //четная} else {newDirection =last +(16-col-1)+(16-col); //нечетная}} if(dY> 0){// Y UP方向に移動if(row ==0 &&dY ==1){newDirection =255 --col;} else if(row&1){newDirection =last- (最後-16 *行)-(16-列); //четная} else {newDirection =last-(col * 2)-1; //нечетная}} OlddX =dX; OlddY =dY; return newDirection;} int snakeMove(int snakeDirection){for(i =0; i <=255; i ++){if(snake [i] ==snakeDirection){death(); }} FastLED.clear(); for(i =snakeSize; i> =1; i-){snake [i] =snake [i-1]; } snake [0] =snakeDirection; for(i =0; i <=255; i ++){if(snake [i]){leds [snake [i]]。setRGB(red、green、blue); }} FastLED.show();行=(int)(snakeDirection / 16); //行番号if(row&1){col =(row + 1)* 16 --snakeDirection-1; } else {col =snakeDirection --row * 16; } return snakeDirection;} void food(int eaten){if(eaten ==f){snakeSize ++; f =ランダム(0、255);赤=フレッド;緑=fgreen;青=fblue; fred =random(0、255); fgreen =random(0、255); fblue =random(0、255); snakeSpeed =snakeSpeed / 1.1; } else {leds [f] .setRGB(fred、fgreen、fblue); FastLED.show(); }} void death(){snakeSize =2; snakeSpeed =500;赤=255;緑=0;青=0; } void color(boolean sw){if(!sw){red =random(0,255);緑=ランダム(0,255);青=ランダム(0,255); }} void loop(){color(digitalRead(swPin)); newDirection =Snakedirection(lastDirection、analogRead(pinX)、analogRead(pinY)); lastDirection =snakeMove(newDirection); food(newDirection); delay(snakeSpeed);} 

回路図


製造プロセス

  1. Arduinoゲームコントローラー
  2. MAX7219を搭載した24x16マトリックスのArduinoPongゲーム
  3. 自家製16x8マトリックス上のArduinoNanoTetr​​isゲーム
  4. LEDを制御するBluetoothを搭載したArduino!
  5. LEDマトリックス+モーションセンサードアディスプレイ[ArduinoHoliday]
  6. Arduino Quadruped
  7. ピクセルチェイサーゲーム
  8. シングルLEDマトリックスArduinoフリップクロック
  9. ArduinoRGBカラーミキサー
  10. ArduinoUnoでLEDマトリックスを制御する
  11. WS2812LEDストリップを備えたDIYArduino1Dポンゲーム