Arduino consola Dot Matrix (4 / 7 paso)

Paso 4: Programación de la consola

Para el Arduino Sketch funcione necesita LedControl biblioteca adjunta en este paso. Subir el Arduino Sketch completa para teléfono juego Snake de Nokia. Puede desarrollar su propio juego. Para cargar el bosquejo primero Agregar la biblioteca en su entorno de arduino, sólo sube el bosquejo a tu arduino, quite el microcontrolador de la placa de y poner a su consola de juegos. Iré subiendo más juego para la consola en el futuro. . Sólo él.

 #include "LedControl.h" // connection to MAX7219 (data, clik, load, #of dispplay) LedControl lc = LedControl(11,13,10,1); // direction const int TOP = 0; const int RIGHT = 1; const int BOTTOM = 2; const int LEFT = 3; // Snake length const int MAX_SNAKE_LENGTH = 16; // Variables //Adafruit_8x8matrix matrix = Adafruit_8x8matrix(); // Display int direction = RIGHT; // direction of movement int snakeX[MAX_SNAKE_LENGTH]; // X-coordinates of snake int snakeY[MAX_SNAKE_LENGTH]; // Y-coordinates of snake int snakeLength = 3; int score = 3;// unsigned long prevTime = 0; // for gamedelay (ms) unsigned long delayTime = 500; // Game step in ms int fruitX, fruitY; unsigned long fruitPrevTime = 0; unsigned long fruitBlinkTime = 100; unsigned long bonusTime = 0; unsigned long bonusPrevTime = 0; int fruitLed = true; int bonusLed = true; int bonusX, bonusY; void setup(){ ////wake up the MAX72XX from power-saving mode lc.shutdown(0,false); //set a medium brightness for the Leds lc.setIntensity(0, 15); //Switch all Leds on the display off. lc.clearDisplay(0); Serial.begin(9600); randomSeed(analogRead(0)); pinMode(0,INPUT); //pinMode(17,INPUT); pinMode(1,INPUT); pinMode(2,INPUT); pinMode(3,INPUT); pinMode(4,INPUT); pinMode(5,INPUT); //buzzer pinMode(12,OUTPUT); snakeX[0] = 0; snakeY[0] = 4; for(int i=1; i<MAX_SNAKE_LENGTH; i++){ snakeX[i] = snakeY[i] = -1; } makeFruit(); } void loop(){ delay(10); checkButtons(); // if any button is pressed or not unsigned long currentTime = millis(); if(currentTime - prevTime >= delayTime){ nextstep(); prevTime = currentTime; } draw(); // make snack & food } void checkButtons(){ if(digitalRead(3)==0) direction = TOP; else if(digitalRead(4)==0) direction = RIGHT; else if(digitalRead(5)==0) direction = LEFT; else if(digitalRead(2)==0) direction = BOTTOM; } void draw(){ lc.clearDisplay(0); drawSnake(); drawFruit(); } void drawSnake(){ for(int i=0; i<snakeLength; i++){ lc.setLed(0,snakeX[i], snakeY[i], true); } } void drawFruit(){ if(inPlayField(fruitX, fruitY)){ unsigned long currenttime = millis(); if(currenttime - fruitPrevTime >= fruitBlinkTime){ fruitLed = (fruitLed == true) ? false : true; fruitPrevTime = currenttime; } lc.setLed(0,fruitX, fruitY, fruitLed); } } boolean inPlayField(int x, int y){ return (x>=0) && (x<8) && (y>=0) && (y<8); } void nextstep(){ for(int i=snakeLength-1; i>0; i--){ if((direction == RIGHT)&&(snakeX[0]-snakeLength == 7)) snakeX[0] = -1; else if((direction == LEFT)&&(snakeX[0]+ snakeLength == 0)) snakeX[0] = 8; else snakeX[i] = snakeX[i-1]; if((direction == TOP) && (snakeY[0]+snakeLength == 0)) snakeY[0]=8; else if((direction == BOTTOM) && (snakeY[0]-snakeLength == 7)) snakeY[0]=-1; else snakeY[i] = snakeY[i-1]; } switch(direction){ case TOP: snakeY[0] = snakeY[0]-1; break; case RIGHT: snakeX[0] = snakeX[0]+1; break; case BOTTOM: snakeY[0] = snakeY[0]+1; break; case LEFT: snakeX[0]=snakeX[0]-1; break; } if((snakeX[0] == fruitX) && (snakeY[0] == fruitY)){ snakeLength++; score++; tone(12,4500,50); if(snakeLength < MAX_SNAKE_LENGTH){ makeFruit(); } else { fruitX = fruitY = -1; } if(score%8==0) { snakeLength = 3; delayTime = delayTime - 100; } } snakeItSelf(); } void makeFruit(){ int x, y; x = random(0, 8); y = random(0, 8); while(isPartOfSnake(x, y)){ x = random(0, 8); y = random(0, 8); } fruitX = x; fruitY = y; } boolean isPartOfSnake(int x, int y){ for(int i=0; i<snakeLength-1; i++){ if((x == snakeX[i]) && (y == snakeY[i])){ return true; } } return false; } void snakeItSelf(){ // check if snack touch itself for(int i=1;i<snakeLength;i++){ if((snakeX[0] == snakeX[i]) && (snakeY[0] == snakeY[i])) gameOver(); } } void gameOver(){ // game over sound tone(12,1000,100); delay(100); tone(12,1500,200); delay(200); tone(12,2000,300); delay(300); tone(12, 494,500); delay(500); lc.clearDisplay(0); for(int r = 0; r < 8; r++){ for(int c = 0; c < 8; c++){ lc.setLed(0, r, c, HIGH); delay(50); }delay(50); } delay(300); score = 3; snakeLength = 3; direction = RIGHT; snakeX[0]=3; snakeY[0]=4; delayTime = 500; loop(); } void drawBonus(){ if(inPlayField(fruitX, fruitY)){ unsigned long bonusTime = millis(); if(bonusTime - bonusPrevTime >= 300){ bonusLed = (bonusLed == true) ? false : true; bonusPrevTime = bonusTime; } lc.setLed(0,bonusX, bonusY, bonusLed); } } void makeBonus(){ int x, y; x = random(0, 8); y = random(0, 8); while(isPartOfSnake(x, y)){ x = random(0, 8); y = random(0, 8); } bonusX = x; bonusY = y; } 

Artículos Relacionados

Arduino - Display Mini Dot Matrix

Arduino - Display Mini Dot Matrix

En este proyecto de Arduino te mostraré cómo hacer una mini matriz de punto pantalla utilizando dos módulos de 8 por 8 LED tablero.Para este proyecto usted necesitará los siguientes componentes:Board compatible con ArduinoCables de puentePlaca de pro
Aceite de parafina Arduino agua Display Dot Matrix

Aceite de parafina Arduino agua Display Dot Matrix

Este fue un proyecto de demostración para el Maker Faire Hannover 2016. El proyecto fue inspirado en la obra de la artista Julius Popp.Estamos utilizando una manguera transparente, 2 bombas peristálticas y un Arduino Uno con el escudo del motor para
DIY LED signo con el MAX7219 Dot Matrix STM8S003F3 módulo MCU para PIC AVR Arduino brazo de MSP430 STM32

DIY LED signo con el MAX7219 Dot Matrix STM8S003F3 módulo MCU para PIC AVR Arduino brazo de MSP430 STM32

para satisfacer a aficionados a los hobbys DIY electrónicas, ICStation ha desarrollado MAX7219 módulo de matriz de puntos. Utiliza el chip Max7219 que hacen un gran trabajo en el ahorro de I/O del MCU. Puede no sólo controlar cada punto individualmen
Reloj binario de Arduino usando LED Matrix

Reloj binario de Arduino usando LED Matrix

Este sitio tiene muchos puestos finas que describe la construcción de los relojes binarios. Soy tremendamente inestable, sin embargo y tienen dificultad para cualquier soldadura. Por lo tanto quería hacer mío de una matriz de 8 x 8 LED MAX7219-contro
Reloj de 8 * 8 LED Dot Matrix

Reloj de 8 * 8 LED Dot Matrix

Tengo un módulo de LED hace unos días y estaba pensando en usarlo para jugar Tetris o un juego de serpiente, pero pensé que sería cojo. Así que pensé: "¿por qué no hacer un reloj?Como hay solamente sesenta y cuatro puntos en una matriz del módulo, qu
MAX7219 Dot Matrix módulo de exhibición de Control

MAX7219 Dot Matrix módulo de exhibición de Control

MAX7219 módulo de matriz de punto-Inconsútil empalmar y empalmada para que la matriz de puntos puede ser flexible.-Cátodo común con punto luminoso matrix(8*8), Mostrar la imagen fresca y brillante.-Una pantalla de rodar libremente, para lograr la pan
Dot Matrix Smiley cantar con música

Dot Matrix Smiley cantar con música

es este instructable sobre un pequeño circuito que muestra una carita sonriente en una matriz de LED, cantando con la música de entrada.El circuito esquemático, pcb y componentes archivos de colocación están incluidos en el instructivo.El DS 1820 en
Fracaso y éxito de Arduino Watch

Fracaso y éxito de Arduino Watch

Decidí construir un reloj binario de Arduino. Sé que un reloj de pulsera debe ser de tamaño pequeño ya que es un proyecto usable. Para ello, he seleccionado dispositivo de montaje superficial (SMD) como TQFP Atmega IC, SMD LED y resistencia SMD. Como
Utilizando una matriz de puntos LED con Arduino y Shift Register

Utilizando una matriz de puntos LED con Arduino y Shift Register

el Siemens DLO7135 Dot matrix LED es una increíble pieza de la optoelectrónica. Ha anunciado como un 5 x 7 Dot Matrix Display inteligente (r) con controlador de memoria de descodificador. Junto a ese recuerdo, tiene una 96 caracteres ASCII exhibición
Matriz de LED con Arduino

Matriz de LED con Arduino

Hola, soy Javier de Makespace Madrid. La semana pasada organizamos una quedada para jugar con matrices de LED y Arduinos. Esto fue parte de "La noche de la electrónica con Jameco"Este instructivo está basado en el taller. Utiliza una sola matriz
Arduino / procesamiento de analizador de espectro Audio

Arduino / procesamiento de analizador de espectro Audio

En este Instructable voy a mostrar cómo hacer un programa en el proceso que analiza el sonido en su computadora y envía los datos a un Arduino que controla una matriz de LED para mostrar el análisis de espectro.Yo se explicar donde conseguir material
Bluetooth pantalla de matriz de punto con Arduino

Bluetooth pantalla de matriz de punto con Arduino

Si tienes un smartphone y un módulo Bluetooth. Puede ser realmente creativo con tu Arduino. Aquí hemos construido una estructura de pantalla de matriz de puntos controlada por un Arduino. Puede dibujar los patrones en su teléfono inteligente y se mos
Pegatina de ventana digital (controlado por Arduino)

Pegatina de ventana digital (controlado por Arduino)

una calcomanía tamaño de matriz de LED que muestra las imágenes en secuencia desde una tarjeta SD, para producir un signo animado o "etiqueta de la ventana." Arduino controlada! También incluye código de Windows, Mac y Linux para convertir archi
Matriz de puntos LED de 16 x 8 con el MAX7219 módulo

Matriz de puntos LED de 16 x 8 con el MAX7219 módulo

16 x 8 LED de matriz de puntos con el MAX7219 móduloEl objetivo de este proyecto es: mostrar el uso del módulo "MAX7219 dot matrix display módulo MCU control de DIY"En orden para usarlo necesita el módulo que se puede comprar en ebay:http://www.