Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Snake LED Matrix-spel

Componenten en benodigdheden

Arduino Proto Shield
× 1
Arduino UNO
× 1
Analoge joystick (algemeen)
Dit is een normale zwarte joystick
× 1
Mannelijke/Vrouwelijke doorverbindingsdraden
× 1
SparkFun LED-array - 8x7
Dit is gewoon een normale 8 *8 LED-matrix (geen RGB-matrix)
× 1

Apps en online services

Arduino IDE

Over dit project

Ik heb een coole gameconsole gemaakt van een Meccanoid en Erector-set als frame en ik gebruikte Sergey Royz code (CHECK IT OUT) en ik voegde er extra dingen aan toe en verhoogde de snelheid zodat het soepel bewoog. Ik ga niet uitleggen hoe je het frame moet maken, maar ik raad je aan om je eigen frame te maken. Maar je hebt wel een frame nodig. Veel plezier hiermee, doe wat je wilt. IK HOOP DAT JE DIT PROJECT LEUK vindt! Reageer als je een vraag hebt en ik zal deze hopelijk zo snel mogelijk kunnen beantwoorden en als je aanbevelingen hebt voor mijn volgende project, reageer dan en vertel het me. Ook mijn fritzing werkte niet, dus ik zal je gewoon vertellen:

Schema's:

Bevestig het schild aan de Arduino Uno zodat je meer GND- en 5v-uitgangen hebt zonder een breadboard te gebruiken.

Matrix:

  • VCC naar 5V Arduino
  • GND naar GND Arduino
  • DIN naar digitale pin 10 op Arduino
  • CS naar digitale pin 9 op Arduino
  • CLK naar digitale pin 8 op Arduino

Joystick:

  • Gnd naar Gnd pin op Arduino
  • +5v tot 5V op Arduino
  • VRX naar A0 op Arduino
  • VRY naar A1 op Arduino
  • SW naar digitale pin 2

Code

  • Slang
SlangC/C++
Het enige wat je hoeft te doen is de code
/** * Snake * Implementatie van het klassieke Snake-spel * te kopiëren en plakken, waarbij de slang constant bewoog en de speler * kruispunten met zichzelf en grenzen moet vermijden. * Als de slang voedsel eet, groeit hij en versnelt hij een beetje. * * 23 juni 2016 * door Sergey Royz en hunter Buzzell */#include /* Joystick-pincodes */#define VRX A0#define VRY A1#define SW 2/* Display-pincodes */#define CLK 8# definieer CS 9#define DIN 10#define SIZE 8#define ADVANCE_DELAY 20int snake[SIZE*SIZE][2];int length;int food[2], v[2];bool is_game_over =false;long current_time;long prev_advance; int blink_count;const short messageSpeed ​​=5;LedControl lc =LedControl(DIN, CLK, CS, 1);void init_game() {prev_advance =current_time =0; blink_count =3; int half =GROOTTE / 2; lengte =MAAT / 3; for (int i =0; i =SIZE) { delay(1000); showGameOverMessage(); retourneer waar; } if (head[1] <0 || head[1]>=SIZE) { delay(1000); showGameOverMessage(); retourneer waar; } for (int i =0; i =0; i--) { snake[i + 1][0] =snake[i][0]; slang[i + 1][1] =slang[i][1]; } slang[0][0] +=v[0]; slang[0][1] +=v[1]; retourneer false;} ongeldige setup () { pinMode (SW, INPUT_PULLUP); pinMode (VRX, INGANG); pinMode (VRY, INPUT); attachInterrupt(digitalPinToInterrupt(SW), herstart, RISING); lc.shutdown(0, false); lc.setIntensity(0, 8); init_game(); render();}void loop() { if (!is_game_over) { clearScreen(); veroorzaken(); if (current_time - prev_advance> ADVANCE_DELAY) { is_game_over =Advance(); prev_advance =huidige_tijd; } } else { while (blink_count> 0) { clearScreen(); vertraging (300); veroorzaken(); vertraging (300); blink_count--; } } leesControls(); current_time++;}void restart() { init_game(); is_game_over =false;}void readControls() {int dx =map(analogRead(VRX), 0, 906, 2, -2); int dy =map(analogRead(VRY), 0, 906, -2, 2); if (dx !=0) {dx =dx / abs(dx);} if (dy !=0) {dy =dy / abs(dy);} if (dy !=0 &&v[0] !=0 ) { v[0] =0; v[1] =verd; } if (dx !=0 &&v[1] !=0) { v[0] =dx; v[1] =0; }}const PROGMEM bool gameOverMessage[8][90] ={ {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0 ,0,0,0,0,0,0,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,1,1,0,0 ,0,1,1,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,0,0,0 ,1,1,0,0,1,1,0,0,1,1,1,1,1,1,0,0,1,1,1,1,1,0,0,0,0 ,1,1,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,1,1,0,0,1 ,1,0,0,1,1,0,0,1,1,0,0,1,1,1,0,1,1,1,0,0,1,1,0,0,0 ,0,0,0,0,0,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1 ,0,0,0,0,0,0,1,1,0,0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0 ,0}, {0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,1,1,0 ,0,1,1,1,1,1,1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,0 ,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,0,0,0,0,1,1,0,0 ,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0 ,1,1,0,0,0,0,0,0,1,1,1,1,1,1,0,0,1,1,0,1,0,1,1,0,0 ,1,1,1,1,1,0,0,0,0,0,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1 ,1,0,0,1,1,1,1,1,0,0,0,1,1,1,1,1,0,0,0,0,1,1,0,0,0 ,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,1,1,0,1,1,1,0,0,1,1 ,0,0,1,1,0, 0,1,1,0,0,0,1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,0, 0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,0,0,0,0,1,1,1,1, 0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0, 1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,0,1,1,0,0, 1,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,0,0,0,1,1,1,1, 0,0,0,1,1,0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,1,1, 0,0,1,1,0,0,1,1,0,0,0,1,1,0,0,1,1,1,1,1,1,0,0,0,0, 0,0,0,1,1,1,1,0,0,0,0,0,1,1,0,0,0,0,1,1,1,1,1,1,0, 0,1,1,0,0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0}}; void showGameOverMessage() { for (int d =0; d   

Productieproces

  1. Arduino-gamecontroller
  2. Arduino Pong Game op 24x16 Matrix met MAX7219
  3. Arduino Nano Tetris-spel op zelfgemaakte 16x8 Matrix
  4. Arduino met Bluetooth om een ​​LED te bedienen!
  5. LED-matrix + bewegingssensor deurdisplay [Arduino Holiday]
  6. Arduino Quadruped
  7. Pixel Chaser-game
  8. Enkele LED Matrix Arduino Flip Clock
  9. Arduino RGB-kleurenmixer
  10. Een LED-matrix besturen met Arduino Uno
  11. DIY Arduino 1D Pong-spel met WS2812 LED-strip