Sommario:
- Forniture
- Passaggio 1: saldatura di tutti i componenti
- Passaggio 2: disporre tutte le cose in luoghi
- Passaggio 3: programmazione
- Passaggio 4: divertiti!
Video: Console di gioco fai-da-te con Arduino: 4 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:00
In questo tutorial ti mostrerò come puoi creare una console di gioco usando Arduino nano. Quindi, se vuoi vedere un video dettagliato su di esso, dai un'occhiata sul mio canale YouTube
Forniture
Se acquisti da questo link mi aiuterà a darti più progetti
1) ARDUINO NANO2) DISPLAY OLED3) PULSANTI 4) CAVI
Passaggio 1: saldatura di tutti i componenti
Quindi, dopo aver ottenuto tutti i componenti, devi saldare tutti i componenti come mostrato in questo schema elettrico
Passaggio 2: disporre tutte le cose in luoghi
Dopo aver saldato tutto, sistema tutti i componenti in questo modo per dargli un bell'aspetto
Passaggio 3: programmazione
Quindi, finalmente, dopo aver seguito correttamente tutti i passaggi, è il momento di caricare il codice qui sotto su Arduino
#includere
#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, 0x00,, 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, 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,, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xD7, 0xFF, 0xFF, 0xE1, 0x00, 0x01, 0xBF, 0xFC, 0x1F, 0xFA, 0x1F, 0x, 0xBF, 0xF1, 0xCF, 0xFA, 0x80, 0x01, 0x3F, 0xC2, 0x37, 0xF7, 0x80, 0x01, 0xEF, 0x9C, 0x01, 0xE7, 0xC0, 0x01, 0xE0, 0x70, 0x06, 0x06,0, 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, 0x0B, 0x90, 0xF0, 0x0F, 0xC0, 0xFC, 0x0F, 0x07, 0x90, 0x0D, 0x43, 0xC0, 0x03, 0x07, 0x90, 0x05, 0x64, 0x00, 0x00, 0xCF, 0x10, 0x07, 0xFC, 0x00, 0x00 0x01, 0x80, 0x00, 0x00, 0x10, 0x20, 0x01, 0x00, 0x00, 0x00, 0x0E, 0x40, 0x01, 0x80, 0x07, 0xF0, 0x01, 0x80, 0x00, 0x80, 0x07, 0xC8, 0x00, 0x 0x80, 0x0B, 0xE8, 0x00, 0x80, 0x00, 0x87, 0x97, 0xE9, 0xE0, 0x80, 0x00, 0x87, 0xDF, 0xEF, 0xA0, 0x80, 0x00, 0x4B, 0xFF, 0xFF, 0xA0, 0, 0x 0xDF, 0xFB, 0xA3, 0x00, 0x00, 0x24, 0x97, 0xE8, 0x24, 0x00, 0x00, 0x1E, 0x1F, 0xC0, 0x2C, 0x00, 0x00, 0x07, 0xF8, 0x1F, 0xF0, 0x00, 0, 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(BIANCO); display.setCursor(65, 14); display.println("xWing"); display.setFont(); display.setCursor(65, 17); display.setTextSize(0); display.println("contro"); display.setCursor(0, 0); float voltaza=readVcc()/1000; display.println(voltazza);; display.setFont(&FreeSans9pt7b); display.setCursor(65, 39); display.println("Morte"); display.setFont(); display.setCursor(65, 42); display.println("stella"); display.setTextSize(0); display.setCursor(65, 55); display.println("di 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); ritardo (500); ritardo (500); } int metx=0; int met=0; int postoji=0; int nep=8; int smjer=0; int vai=0; int rx=95; intero=0; int rx2=95; int ry2=0; int rx3=95; int ry3=0; int bodovi=0; int brsina=3; //velocità del proiettile 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 cent=95; unsigned long pocetno=0; unsigned long odabrano=0; trenutno lungo senza segno=0; unsigned long nivovrije=0; int poz=30; void loop() { 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= casuale(400, 1200); poc=1; } trenutno=millis(); //nivoi if((trenutno-nivovrije)>500000) {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; } if(rx4<1){ ispaljeno=0; rx4=200;} if(zivoti==0) go=1; } if(go==1) { if(zivoti==0){ tone(9, 200, 300); ritardo(300); tono (9, 250, 200); ritardo(200); tono (9, 300, 300); ritardo(300); zivoti=5; } display.clearDisplay(); display.setFont(); display.setTextSize(2); display.setTextColor(BIANCO); display.setCursor(7, 10); display.println("GIOCO FINITO!"); display.setTextSize(1); display.setCursor(7, 30); display.println("punteggio:"); display.setCursor(44, 30); display.println(bodovi); display.setCursor(7, 40); display.println("livello:"); display.setCursor(44, 40); display.println(nivo); display.setCursor(7, 50); display.println("ora(e):"); display.setCursor(60, 50); display.println(trenutno/1000); display.display(); if(digitalRead(3)==0) { tone(9, 280, 300); ritardo(300); tono (9, 250, 200); ritardo(200); tono (9, 370, 300); ritardo(300); ponovo(); } } } void ponovo() { metx=0; met=0; postoji=0; nep=8; smjer=0; vai=0; rx=95; ry=0; rx2=95; ry2=0; rx3=95; ry3=0; bodovi=0; brsina=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() { // Legge il riferimento 1.1V rispetto a AVcc // imposta il riferimento su Vcc e la misura sul riferimento interno 1.1V #se definito(_AVR_ATmega32U4_) || definito(_AVR_ATmega1280_) || definito(_AVR_ATmega2560_) ADMUX = _BV(REFS0) | _BV(MUX4) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1); #elif definito (_AVR_ATtiny24_) || definito(_AVR_ATtiny44_) || definito(_AVR_ATtiny84_) ADMUX = _BV(MUX5) | _BV(MUX0); #elif definito (_AVR_ATtiny25_) || definito(_AVR_ATtiny45_) || definito(_AVR_ATtiny85_) ADMUX = _BV(MUX3) | _BV(MUX2); #else ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1); #endif ritardo(2); // Attendi che Vref stabilisca ADCSRA |= _BV(ADSC); // Avvia la conversione while (bit_is_set(ADCSRA, ADSC)); // misura uint8_t low = ADCL; // deve prima leggere ADCL - quindi blocca ADCH uint8_t high = ADCH; // sblocca entrambi i risultati lunghi = (high<<8) | basso; risultato = 1125300L / risultato; // Calcola Vcc (in mV); 1125300 = 1,1*1023*1000 restituisce il risultato; // Vcc in millivolt } void beep(int note, int duration) { //Riproduci tono su buzzerPin tone(9, note, duration); ritardo (durata); noTono(9); ritardo(50); }
Passaggio 4: divertiti!
Congratulazioni? finalmente ce l'hai fatta quindi se ti è piaciuto allora iscriviti al mio canale youtube
Consigliato:
Console di gioco portatile fai-da-te con RetroPie: 7 passaggi
Console di gioco portatile fai-da-te con RetroPie: guarda il video sopra per capire meglio questo progetto. Bene. È ora di iniziare! Prima di tutto, useremo RetroPie. Questo ci lascia con due opzioni. Se abbiamo già installato Raspbian sulla nostra scheda SD, possiamo installare RetroP
Console di gioco portatile Raspberry Pi Zero fai da te: 6 passaggi (con immagini)
Console di gioco portatile Raspberry Pi Zero fai-da-te: in questo progetto ti mostrerò come ho utilizzato un Raspberry Pi Zero, batterie NiMH, un circuito di protezione da sovraccarico fatto in casa, un lcd retrovisore e un amplificatore audio per creare una console di gioco portatile che può giocare giochi retrò. Iniziamo
Controller di gioco fai-da-te basato su Arduino - Controller di gioco Arduino PS2 - Giocare a Tekken con il gamepad Arduino fai da te: 7 passaggi
Controller di gioco fai-da-te basato su Arduino | Controller di gioco Arduino PS2 | Giocare a Tekken con il gamepad Arduino fai da te: Ciao ragazzi, giocare è sempre divertente, ma giocare con il tuo controller di gioco personalizzato fai-da-te è più divertente. Quindi creeremo un controller di gioco usando arduino pro micro in queste istruzioni
Controller di gioco Arduino con luci che rispondono al tuo gioco Unity:: 24 passaggi
Controller di gioco Arduino con luci che rispondono al tuo gioco Unity:: Prima di tutto ho scritto questa cosa a parole. Questa è la prima volta che uso istruibile, quindi ogni volta che dico: scrivi il codice in questo modo sappi che mi riferisco all'immagine nella parte superiore di quel passaggio. In questo progetto uso 2 arduino per eseguire 2 bit separati
Console di gioco retrò (mod N64) con KODI: 7 passaggi (con immagini)
Retro Gaming Console (N64 Mod) con KODI: giocare a giochi retrò su console della vecchia scuola è molto divertente, tuttavia acquistare le singole console e tutti i giochi che ne derivano è troppo ingombrante e costoso! Per non parlare del fatto che sei uno studente universitario/universitario e traslochi appartamenti ogni sera