Juego de matriz de LED de serpiente
Componentes y suministros
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
| × | 1 | ||||
![]() |
| × | 1 | |||
![]() |
| × | 1 |
Aplicaciones y servicios en línea
![]() |
|
Acerca de este proyecto
Hice una consola de juegos genial con un juego de Meccanoid y Erector como marco y usé Sergey Royz código (COMPRUEBE) y agregué cosas adicionales y aumenté la velocidad para que se moviera sin problemas. No te voy a explicar cómo hacer el marco pero te recomiendo que hagas tu propio marco. Pero necesitas un marco. Diviértete con esto haz lo que quieras. ¡ESPERO QUE LE GUSTE ESTE PROYECTO! Comente si tiene alguna pregunta y espero poder responderla lo antes posible y si tiene alguna recomendación para mi próximo proyecto, por favor comente y dígame. Además, mi fritzing no funcionaba, así que solo te diré:
Esquemas:
Conecte el protector al Arduino Uno para que tenga más tomacorrientes GND y 5v sin usar una placa de pruebas.
Matriz:
- VCC a 5V Arduino
- GND a GND Arduino
- DIN a pin digital 10 en Arduino
- CS al pin digital 9 en Arduino
- CLK al pin digital 8 en Arduino
Joystick:
- Pin de Gnd a Gnd en Arduino
- + 5v a 5V en Arduino
- VRX a A0 en Arduino
- VRY a A1 en Arduino
- SW al pin digital 2
Código
- Serpiente
Serpiente C / C ++
Todo lo que tienes que hacer es copiar y pegar el código/ ** * Snake * Implementación del clásico juego Snake * donde la serpiente se mueve constantemente y el jugador * tiene que evitar cruces consigo mismo y fronteras. * Cuando la serpiente come comida, crece y se acelera un poco. * * 23 de junio de 2016 * por Sergey Royz y el cazador Buzzell * / # incluye/ * PIN de joystick * / # define VRX A0 # define VRY A1 # define SW 2 / * Muestra PIN * / # define CLK 8 # define CS 9 # define DIN 10 # define SIZE 8 # define ADVANCE_DELAY 20int serpiente [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 =TAMAÑO / 2; longitud =TAMAÑO / 3; for (int i =0; i =TAMAÑO) {retraso (1000); showGameOverMessage (); devuelve verdadero; } si (cabeza [1] <0 || cabeza [1]> =TAMAÑO) {retraso (1000); showGameOverMessage (); devuelve verdadero; } for (int i =0; i =0; i--) {serpiente [i + 1] [0] =serpiente [i] [0]; serpiente [i + 1] [1] =serpiente [i] [1]; } serpiente [0] [0] + =v [0]; serpiente [0] [1] + =v [1]; return false;} void setup () {pinMode (SW, INPUT_PULLUP); pinMode (VRX, ENTRADA); pinMode (VRY, ENTRADA); attachInterrupt (digitalPinToInterrupt (SW), reiniciar, RISING); lc.shutdown (0, falso); lc.setIntensity (0, 8); init_game (); render ();} bucle vacío () {if (! is_game_over) {clearScreen (); hacer(); if (hora_actual - avance_anterior> FECHA_ADVANCE) {is_game_over =avance (); prev_advance =current_time; }} else {while (blink_count> 0) {clearScreen (); retraso (300); hacer(); retraso (300); blink_count--; }} readControls (); tiempo_actual ++;} reinicio vacío () {juego_inicio (); is_game_over =false;} vacío 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] =dy; } si (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,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,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,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,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
Proceso de manufactura
- Controlador de juego Arduino
- Juego Arduino Pong en Matrix 24x16 con MAX7219
- Arduino Nano Tetris Game en una matriz casera de 16x8
- ¡Arduino con Bluetooth para controlar un LED!
- Matriz LED + Pantalla de puerta con sensor de movimiento [Arduino Holiday]
- Arduino Cuadrúpedo
- Pixel Chaser Game
- Reloj Flip Arduino de matriz de un solo LED
- Mezclador de colores Arduino RGB
- Controlar una matriz de LED con Arduino Uno
- Juego DIY Arduino 1D Pong con tira de LED WS2812