Taula de continguts:
- Subministraments
- Pas 1: soldar tots els components
- Pas 2: organitzeu totes les coses dels llocs
- Pas 3: Programació
- Pas 4: gaudiu !
Vídeo: Consola de jocs de bricolatge amb Arduino: 4 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:11
En aquest tutorial us mostraré que com podeu fer una consola de jocs mitjançant Arduino nano. Així que si voleu veure-hi un vídeo detallat, mireu-lo al meu canal de youtube
Subministraments
Si compreu aquests enllaços, m’ajudarà a donar-vos més projectes
1) ARDUINO NANO2) PANTALLA OLED3) PULSADORS 4) FILS
Pas 1: soldar tots els components
Per tant, després d'obtenir tots els components, heu de soldar tots els components tal com es mostra en aquest diagrama de circuits
Pas 2: organitzeu totes les coses dels llocs
Després de soldar tot, organitzeu tots els components d'aquesta manera per donar-li un aspecte agradable
Pas 3: Programació
Per tant, finalment, després de seguir tots els passos correctament, és hora de penjar el codi següent a Arduino
#incloure
#include #include #include #include // # include #define OLED_RESET 4 Adafruit_SSD1306 display (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, 0xFF, 0x3, 0x3, 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, 0x00, 0x7F, 0xFE, 0x00, 0x00, 0x00, 0x07, 0x80, 0x01, 0xE0, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x20, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 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, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xD7, 0xFF, 0xFF, 0xE1, 0x00, 0x01, 0xBF, 0xFC, 0x1x, 0x1x,, 0xBF, 0xF1, 0xCF, 0xFA, 0x80, 0x01, 0x3F, 0xC2, 0x37, 0xF7, 0x80, 0x01, 0xEF, 0x9C, 0x01, 0xE7, 0xC0, 0x01, 0xE0, 0x0x, 0x0x,, 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, 0x0, 0x0, 0x0, 0x0 0xF0, 0x0F, 0xC0, 0xFC, 0x0F, 0x07, 0x90, 0x0D, 0x43, 0xC0, 0x03, 0x07, 0x90, 0x05, 0x64, 0x00, 0x00, 0xCF, 0x10, 0x07, 0x00, 0x00, 0x00 0x01, 0x80, 0x00, 0x00, 0x10, 0x20, 0x01, 0x00, 0x00, 0x00, 0x0E, 0x40, 0x01, 0x80, 0x07, 0xF0, 0x01, 0x80, 0x00, 0x80, 0x07, 0x00, 0x0 0x80, 0x0B, 0xE8, 0x00, 0x80, 0x00, 0x87, 0x97, 0xE9, 0xE0, 0x80, 0x00, 0x87, 0xDF, 0xEF, 0xA0, 0x80, 0x00, 0x4B, 0xFF, 0xFF, 0x6, 0x6, 0xDF, 0xFB, 0xA3, 0x00, 0x00, 0x24, 0x97, 0xE8, 0x24, 0x00, 0x00, 0x1E, 0x1F, 0xC0, 0x2C, 0x00, 0x00, 0x07, 0xF8, 0x1F, 0xFx, 0xFx, 0xF 0xF8, 0x00, 0x00}; void setup () {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, tempesta, 48, 48, 1); display.setFont (& FreeSans9pt7b); display.setTextColor (BLANC); display.setCursor (65, 14); display.println ("xWing"); display.setFont (); display.setCursor (65, 17); display.setTextSize (0); display.println ("vs"); display.setCursor (0, 0); float voltaza = readVcc () / 1000; display.println (voltaza);; display.setFont (& FreeSans9pt7b); display.setCursor (65, 39); display.println ("Mort"); display.setFont (); display.setCursor (65, 42); display.println ("estrella"); display.setTextSize (0); display.setCursor (65, 55); display.println ("per VRAJ"); display.setCursor (65, 20); display.display (); display.setFont (); pit (a, 500); pit (a, 500); bip (a, 500); bip (f, 350); bip (cH, 150); pit (a, 500); bip (f, 350); bip (cH, 150); bip (a, 650); retard (500); retard (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; // velocitat de 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; poc signat llarg pocetno = 0; unsigned long odabrano = 0; unsigned long trenutno = 0; unsigned long nivovrije = 0; int poz = 30; bucle buit () {if (go == 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); if (poc == 0) {pocetno = millis (); odabrano = aleatori (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; to (9, 100, 100); zivoti = zivoti-1; } if (ry2> = pozicija-8 && ry2 <= pozicija + 8) if (rx24) {rx2 = -50; ry2 = -50; to (9, 100, 100); zivoti = zivoti-1; } if (ry3> = pozicija-8 && ry3 <= pozicija + 8) if (rx34) {rx3 = -50; ry3 = -50; to (9, 100, 100); zivoti = zivoti-1; } if (ry4> = pozicija-8 && ry4 <= pozicija + 8) if (rx44) {rx4 = 200; ry4 = -50; ispaljeno = 0; to (9, 100, 100); zivoti = zivoti-1; } if (rx4 <1) {ispaljeno = 0; rx4 = 200;} if (zivoti == 0) go = 1; } if (go == 1) {if (zivoti == 0) {tone (9, 200, 300); retard (300); to (9, 250, 200); retard (200); to (9, 300, 300); retard (300); zivoti = 5; } display.clearDisplay (); display.setFont (); display.setTextSize (2); display.setTextColor (BLANC); display.setCursor (7, 10); display.println ("GAME OVER!"); display.setTextSize (1); display.setCursor (7, 30); display.println ("puntuació:"); display.setCursor (44, 30); display.println (bodovi); display.setCursor (7, 40); display.println ("nivell:"); 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) {tone (9, 280, 300); retard (300); to (9, 250, 200); retard (200); to (9, 370, 300); retard (300); ponovo (); }}} void ponovo () {metx = 0; mety = 0; postoji = 0; nep = 8; smjer = 0; anar = 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 () {// Llegiu la referència 1.1V contra AVcc // estableix la referència a Vcc i la mesura a la referència interna 1.1V #if definit (_ AVR_ATmega32U4_) || definit (_ AVR_ATmega1280_) || definit (_ AVR_ATmega2560_) ADMUX = _BV (REFS0) | _BV (MUX4) | _BV (MUX3) | _BV (MUX2) | _BV (MUX1); #elif definit (_AVR_ATtiny24_) || definit (_ AVR_ATtiny44_) || definit (_ AVR_ATtiny84_) ADMUX = _BV (MUX5) | _BV (MUX0); #elif definit (_AVR_ATtiny25_) || definit (_ AVR_ATtiny45_) || definit (_ AVR_ATtiny85_) ADMUX = _BV (MUX3) | _BV (MUX2); #else ADMUX = _BV (REFS0) | _BV (MUX3) | _BV (MUX2) | _BV (MUX1); #endif delay (2); // Espereu que Vref resolgui ADCSRA | = _BV (ADSC); // Inicieu la conversió mentre (bit_is_set (ADCSRA, ADSC)); // mesurant uint8_t baix = ADCL; // primer ha de llegir ADCL: després bloqueja ADCH uint8_t high = ADCH; // desbloqueja els dos resultats llargs = (alt << 8) | baix; resultat = 1125300L / resultat; // Calculeu Vcc (en mV); 1125300 = 1,1 * 1023 * 1000 resultat de retorn; // Vcc en milivolts} bip buit (nota int, durada int) {// To de reproducció en to de timbre Pin (9, nota, durada); retard (durada); noTone (9); retard (50); }
Pas 4: gaudiu !
Felicitats? finalment ho vau fer així que si us va agradar, subscriviu-vos al meu canal de youtube
Recomanat:
Consola de jocs manuals de bricolatge mitjançant RetroPie: 7 passos
Consola de jocs manuals de bricolatge mitjançant RetroPie: mireu el vídeo anterior per entendre millor aquest projecte. Molt bé. És hora de començar! Primer de tot, utilitzarem RetroPie. Això ens deixa dues opcions. Si ja hem instal·lat Raspbian a la nostra targeta SD, podem instal·lar RetroP
Controlador de jocs DIY basat en Arduino - Controlador de jocs Arduino PS2 - Jugar a Tekken amb el bricolatge Arduino Gamepad: 7 passos
Controlador de jocs DIY basat en Arduino | Controlador de jocs Arduino PS2 | Jugar a Tekken amb el bricolatge Arduino Gamepad: Hola nois, jugar sempre és divertit, però jugar amb el vostre propi controlador de jocs de bricolatge és més divertit
Mini consola de jocs Ardubaby amb 500 jocs: 10 passos
Ardubaby Mini Game Console Amb 500 jocs: crèdits per al creador (Kevin Bates), Arduboy és una consola de jocs de 8 bits molt reeixida. Hi havia milers de jocs escrits per l’aficionat que els compartia lliurement al fòrum de la comunitat d’Arduboy perquè més gent pugui aprendre a codificar
Consola Arduino VGA amb cinc jocs: 4 passos
Consola Arduino VGA amb cinc jocs: en els meus instructables anteriors, he reproduït versions simplificades d’alguns dels jocs d’arcade clàssics més populars, mitjançant un Arduino nu i alguns components més. Més tard, vaig unir-ne cinc en un sol esbós. Aquí mostraré
Consola de jocs retro (Mod N64) amb KODI: 7 passos (amb imatges)
Retro Gaming Console (N64 Mod) amb KODI: jugar a jocs retro a les consoles de la vella escola és molt divertit, però comprar les consoles individuals i tots els jocs que s’hi combinen és massa feixuc i car. Per no mencionar si ets estudiant universitari o universitari i et mudes apartaments abans