Tabla de contenido:
- Suministros
- Paso 1: Soldar todos los componentes
- Paso 2: Organice todas las cosas en lugares
- Paso 3: programación
- Paso 4: ¡¡¡Disfruta !
Video: Consola de juegos de bricolaje con Arduino: 4 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:40
En este tutorial, te mostraré cómo puedes hacer una consola de juegos usando Arduino nano. Entonces, si desea ver un video detallado, compruébelo en mi canal de youtube
Suministros
Si compras desde estos enlaces, me ayudará a darte más proyectos.
1) ARDUINO NANO2) PANTALLA OLED3) PULSADORES4) CABLES
Paso 1: Soldar todos los componentes
Entonces, después de obtener todos los componentes, debe soldar todos los componentes como se muestra en este diagrama de circuito
Paso 2: Organice todas las cosas en lugares
Después de soldar todo, coloque todos los componentes de esta manera para darle un aspecto agradable.
Paso 3: programación
Entonces, finalmente, después de seguir todos los pasos correctamente, es hora de cargar el siguiente código en Arduino.
#incluir
#include #include #include #include // #include #define OLED_RESET 4 Pantalla Adafruit_SSD1306 (OLED_RESET); const int c = 261; const int d = 294; const int e = 329; const int f = 349; const int g = 391; const int gS = 415; const int a = 440; const int aS = 455; const int b = 466; const int cH = 523; const int cSH = 554; const int dH = 587; const int dSH = 622; const int eH = 659; const int fH = 698; const int fSH = 740; const int gH = 784; const int gSH = 830; const int aH = 880; const unsigned char PROGMEM dioda16 = {0x00, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x3F, 0xF0, 0x3C, 0x00, 0x3C, 0x00, 0xFF, 0x00, 0x7F, 0xFF, 0x7F, 0x3Cx, 0xFF, 0x7F, 0x3Cx, 0xFF, 0x00, 0x3C, 0x00, 0x1F, 0xF0, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00}; const unsigned char PROGMEM storm = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0Fx00, 0x7, 0xFE, 0x00, 0x00, 0x00, 0x07, 0x80, 0x01, 0xE0, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x20, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x30,, 0x04, 0x00, 0x00, 0x20, 0x00, 0x00, 0x04, 0x00, 0x00, 0x20, 0x00, 0x00, 0x04, 0x00, 0x00, 0x60, 0x00, 0x00, 0x02, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x00, 0x00, 0x7F, 0xE0, 0x00, 0, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xD7, 0xFF, 0xFF, 0xE1, 0x00, 0x01, 0xBF, 0xFC, 0xFA, 0x1F, 080, 0xBF, 0xF1, 0xCF, 0xFA, 0x80, 0x01, 0x3F, 0xC2, 0x37, 0xF7, 0x80, 0x01, 0xEF, 0x9C, 0x01, 0xE7, 0xC0, 0x01, 0xE0, 0x70, 0x0x06, 0x06, 0x70, 0x0x06,, 0xC0, 0x03, 0x06, 0x80, 0x01, 0xFF, 0x80, 0x01, 0xFF, 0x80, 0x01, 0xF8, 0x00, 0x00, 0x1D, 0xC0, 0x03, 0x70, 0x00, 0x80, 0x0C, 0x60, 0x05, 0xB0, 0x07, 0xF0, 0x08, 0x90, 0x09, 0x10, 0x1F, 0xF8, 0x09, 0xD0, 0x03x1 0xF0, 0x0F, 0xC0, 0xFC, 0x0F, 0x07, 0x90, 0x0D, 0x43, 0xC0, 0x03, 0x07, 0x90, 0x05, 0x64, 0x00, 0x00, 0xCF, 0x10, 0x07, 0x, 0xFC, 0x10, 0x07, 0x, 0xFC, 0 0x01, 0x80, 0x00, 0x00, 0x10, 0x20, 0x01, 0x00, 0x00, 0x00, 0x0E, 0x40, 0x01, 0x80, 0x07, 0xF0, 0x01, 0x80, 0x00, 0x80, 0x07, 0xC8, 0x00, 0x00, 0x80, 0x0B, 0xE8, 0x00, 0x80, 0x00, 0x87, 0x97, 0xE9, 0xE0, 0x80, 0x00, 0x87, 0xDF, 0xEF, 0xA0, 0x80, 0x00, 0x4B, 0xFF, 0xFF, 0x80, 0xA0, 0 0xDF, 0xFB, 0xA3, 0x00, 0x00, 0x24, 0x97, 0xE8, 0x24, 0x00, 0x00, 0x1E, 0x1F, 0xC0, 0x2C, 0x00, 0x00, 0x07, 0xF8, 0x1F, 0xF0, 0xF0, 0x1F, 0xF0, 0xF0 0xF8, 0x00, 0x00}; configuración vacía () {pinMode (3, INPUT_PULLUP); pinMode (12, INPUT_PULLUP); pinMode (11, INPUT_PULLUP); display.begin (SSD1306_SWITCHCAPVCC, 0x3C); display.display (); display.clearDisplay (); display.setTextSize (0); display.drawBitmap (6, 11, tormenta, 48, 48, 1); display.setFont (& FreeSans9pt7b); display.setTextColor (BLANCO); display.setCursor (65, 14); display.println ("xWing"); display.setFont (); display.setCursor (65, 17); display.setTextSize (0); display.println ("frente a"); display.setCursor (0, 0); flotar voltaza = readVcc () / 1000; display.println (voltaza);; display.setFont (& FreeSans9pt7b); display.setCursor (65, 39); display.println ("Muerte"); display.setFont (); display.setCursor (65, 42); display.println ("estrella"); display.setTextSize (0); display.setCursor (65, 55); display.println ("por VRAJ"); display.setCursor (65, 20); display.display (); display.setFont (); bip (a, 500); bip (a, 500); bip (a, 500); bip (f, 350); bip (cH, 150); bip (a, 500); bip (f, 350); bip (cH, 150); bip (a, 650); retraso (500); retraso (500); } int metx = 0; int mety = 0; int postoji = 0; int nep = 8; int smjer = 0; int go = 0; int rx = 95; int ry = 0; int rx2 = 95; int ry2 = 0; int rx3 = 95; int ry3 = 0; int bodovi = 0; int brzina = 3; // velocidad de la bala int bkugle = 1; int najmanja = 600; int najveca = 1200; int promjer = 10; int rx4 = 95; int ry4 = 0; int zivoti = 5; int poc = 0; int ispaljeno = 0; int nivo = 1; int centar = 95; pocetno largo sin signo = 0; odabrano largo sin firmar = 0; trenutno largo sin firmar = 0; unsigned long nivovrije = 0; int poz = 30; bucle vacío () {if (ir == 0) {display.clearDisplay (); display.drawPixel (50, 30, 1); display.drawPixel (30, 17, 1); display.drawPixel (60, 18, 1); display.drawPixel (55, 16, 1); display.drawPixel (25, 43, 1); display.drawPixel (100, 43, 1); display.drawPixel (117, 52, 1); display.drawPixel (14, 49, 1); display.drawPixel (24, 24, 1); display.drawPixel (78, 36, 1); display.drawPixel (80, 57, 1); display.drawPixel (107, 11, 1); display.drawPixel (150, 11, 1); display.drawPixel (5, 5, 1); display.drawPixel (8, 7, 1); display.drawPixel (70, 12, 1); display.drawPixel (10, 56, 1); display.drawPixel (70, 25, 1); si (poc == 0) {pocetno = millis (); odabrano = aleatorio (400, 1200); poc = 1; } trenutno = millis (); // nivoi if ((trenutno-nivovrije)> 50000) {nivovrije = trenutno; nivo = nivo + 1; brzina = brzina + 1; // brizna neprijateljevog metka if (nivo% 2 == 0) {bkugle = bkugle + 1; promjer = promjer-1; } najmanja = najmanja-50; najveca = najveca-50; } if ((odabrano + pocetno) 0) {display.drawCircle (rx, ry, 2, 1); rx = rx-brzina;} if (ispaljeno> 1) {display.drawCircle (rx2, ry2, 1, 1); rx2 = rx2-brzina;} if (ispaljeno> 2) {display.drawCircle (rx3, ry3, 4, 1); rx3 = rx3-brzina;} if (ispaljeno> 3) {display.drawCircle (rx4, ry4, 2, 1); rx4 = rx4-brzina;} if (digitalRead (12) == 0 && poz> = 2) {poz = poz-2;} if (digitalRead (11) == 0 && poz128) postoji = 0; if (smjer == 0) {nep = nep + bkugle;} else {nep = nep-bkugle;} if (nep> = (64-promjer)) smjer = 1; if (nep = nep-promjer && mety (centar-promjer) && metx = pozicija-8 && ry <= pozicija + 8) if (rx4) {rx = 95; ry = -50; tono (9, 100, 100); zivoti = zivoti-1; } if (ry2> = pozicija-8 && ry2 <= pozicija + 8) if (rx24) {rx2 = -50; ry2 = -50; tono (9, 100, 100); zivoti = zivoti-1; } if (ry3> = pozicija-8 && ry3 <= pozicija + 8) if (rx34) {rx3 = -50; ry3 = -50; tono (9, 100, 100); zivoti = zivoti-1; } if (ry4> = pozicija-8 && ry4 <= pozicija + 8) if (rx44) {rx4 = 200; ry4 = -50; ispaljeno = 0; tono (9, 100, 100); zivoti = zivoti-1; } si (rx4 <1) {ispaljeno = 0; rx4 = 200;} si (zivoti == 0) ir = 1; } si (ir == 1) {si (zivoti == 0) {tono (9, 200, 300); retraso (300); tono (9, 250, 200); retraso (200); tono (9, 300, 300); retraso (300); zivoti = 5; } display.clearDisplay (); display.setFont (); display.setTextSize (2); display.setTextColor (BLANCO); display.setCursor (7, 10); display.println ("¡JUEGO TERMINADO!"); display.setTextSize (1); display.setCursor (7, 30); display.println ("puntuación:"); display.setCursor (44, 30); display.println (bodovi); display.setCursor (7, 40); display.println ("nivel:"); display.setCursor (44, 40); display.println (nivo); display.setCursor (7, 50); display.println ("hora (s):"); display.setCursor (60, 50); display.println (trenutno / 1000); display.display (); if (digitalRead (3) == 0) {tono (9, 280, 300); retraso (300); tono (9, 250, 200); retraso (200); tono (9, 370, 300); retraso (300); ponovo (); }}} void ponovo () {metx = 0; mety = 0; postoji = 0; nep = 8; smjer = 0; ir = 0; rx = 95; ry = 0; rx2 = 95; ry2 = 0; rx3 = 95; ry3 = 0; bodovi = 0; brzina = 3; // brizna neprijateljevog metka bkugle = 1; najmanja = 600; najveca = 1200; promjer = 12; rx4 = 95; ry4 = 0; zivoti = 5; poc = 0; ispaljeno = 0; nivo = 1; pocetno = 0; odabrano = 0; trenutno = 0; nivovrije = 0; } long readVcc () {// Lee la referencia 1.1V contra AVcc // establece la referencia a Vcc y la medida a la referencia interna 1.1V # si está definida (_ AVR_ATmega32U4_) || definido (_ AVR_ATmega1280_) || definido (_ AVR_ATmega2560_) ADMUX = _BV (REFS0) | _BV (MUX4) | _BV (MUX3) | _BV (MUX2) | _BV (MUX1); #elif definido (_AVR_ATtiny24_) || definido (_ AVR_ATtiny44_) || definido (_ AVR_ATtiny84_) ADMUX = _BV (MUX5) | _BV (MUX0); #elif definido (_AVR_ATtiny25_) || definido (_ AVR_ATtiny45_) || definido (_ AVR_ATtiny85_) ADMUX = _BV (MUX3) | _BV (MUX2); #else ADMUX = _BV (REFS0) | _BV (MUX3) | _BV (MUX2) | _BV (MUX1); #endif delay (2); // Espere a que Vref se establezca ADCSRA | = _BV (ADSC); // Iniciar la conversión mientras (bit_is_set (ADCSRA, ADSC)); // midiendo uint8_t low = ADCL; // debe leer ADCL primero - luego bloquea ADCH uint8_t high = ADCH; // desbloquea ambos long result = (high << 8) | bajo; resultado = 1125300L / resultado; // Calcular Vcc (en mV); 1125300 = 1,1 * 1023 * 1000 devuelve el resultado; // Vcc en milivoltios} void beep (nota int, duración int) {// Toca tono en buzzerPin tone (9, nota, duración); retraso (duración); noTone (9); retraso (50); }
Paso 4: ¡¡¡Disfruta !
Felicidades ? finalmente lo lograste, así que si te gustó, suscríbete a mi canal de youtube
Recomendado:
Consola de juegos portátil de bricolaje con RetroPie: 7 pasos
Consola de juegos portátil de bricolaje con RetroPie: vea el video anterior para comprender mejor este proyecto. Multa. ¡Es hora de que empieces! En primer lugar, vamos a utilizar RetroPie. Esto nos deja con dos opciones. Si ya hemos instalado Raspbian en nuestra tarjeta SD, entonces podemos instalar RetroP
Controlador de juegos de bricolaje basado en Arduino - Controlador de juegos Arduino PS2 - Jugar a Tekken con el gamepad DIY Arduino: 7 pasos
Controlador de juegos de bricolaje basado en Arduino | Controlador de juegos Arduino PS2 | Jugar a Tekken con DIY Arduino Gamepad: Hola chicos, jugar juegos siempre es divertido, pero jugar con su propio controlador de juego personalizado DIY es más divertido. Así que haremos un controlador de juego usando arduino pro micro en este instructivo
Mini consola de juegos Ardubaby con 500 juegos: 10 pasos
Ardubaby Mini Game Console Con 500 juegos: Créditos para el creador (Kevin Bates), Arduboy es una consola de juegos de 8 bits muy exitosa. Hubo miles de juegos escritos por el aficionado que los compartió libremente en el foro de la comunidad de Arduboy para que más personas puedan aprender a codificar
Consola de juegos retro (N64 Mod) con KODI: 7 pasos (con imágenes)
Consola de juegos retro (N64 Mod) con KODI: ¡Jugar juegos retro en consolas de la vieja escuela es muy divertido, sin embargo, comprar las consolas individuales y todos los juegos que las acompañan es demasiado engorroso y costoso! Sin mencionar si eres un estudiante universitario o universitario y te mudas de apartamento en vísperas
Retro-CM3: una potente consola de juegos con control retroPie: 8 pasos (con imágenes)
Retro-CM3: una potente consola de juegos con control retroPie: este instructivo está inspirado en el PiGRRL Zero de adafruit, la versión original de Gameboy Zero de Wermy y la consola de juegos con control de GreatScottLab. Esas consolas de juegos basadas en RetroPie usan la raspberry pi zero (W) como su núcleo. PERO, después de haber construido varios