Sadržaj:
- Supplies
- Korak 1: Lemljenje svih komponenti
- Korak 2: Rasporedite sve stvari na mjesta
- Korak 3: Programiranje
- Korak 4: Uživajte !
Video: Napravi sam igraću konzolu pomoću Arduina: 4 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:04
U ovom vodiču ću vam pokazati kako možete napraviti igraću konzolu koristeći Arduino nano. Dakle, ako želite vidjeti detaljan video o tome, pogledajte ga na mom youtube kanalu
Supplies
Ako kupujete na ovim linkovima, to će mi pomoći da vam dam više projekata
1) ARDUINO NANO2) OLED ZASLON3) POKRENI TIPKE4) ŽICE
Korak 1: Lemljenje svih komponenti
Dakle, nakon što nabavite sve komponente, morate lemiti sve komponente kako je prikazano na ovoj shemi kola
Korak 2: Rasporedite sve stvari na mjesta
Nakon lemljenja sve rasporedite tako da sve komponente daju lijep izgled
Korak 3: Programiranje
Dakle, konačno, nakon što ste pravilno slijedili sve korake, vrijeme je da postavite donji kod na Arduino
#include
#include #include #include #include // #include #define OLED_RESET 4 Adafruit_SSD1306 ekran (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, 0xF, 0xF, 0x7, 0,, 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, 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, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xD7, 0xFF, 0xFF, 0xE1, 0x00, 0x01, 0xBF, 0x,, 0xBF, 0xF1, 0xCF, 0xFA, 0x80, 0x01, 0x3F, 0xC2, 0x37, 0xF7, 0x80, 0x01, 0xEF, 0x9C, 0x01, 0xE7, 0xC0, 0x01, 0xE0, 0x06, 0x0, 0x0,, 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, 0x0, 0x0B, 0x90, 0xF0, 0x0F, 0xC0, 0xFC, 0x0F, 0x07, 0x90, 0x0D, 0x43, 0xC0, 0x03, 0x07, 0x90, 0x05, 0x64, 0x00, 0x00, 0xCF, 0x10, 0x07, 0xFC, 0x26, 0x00, 0x00, 0x0 0x01, 0x80, 0x00, 0x00, 0x10, 0x20, 0x01, 0x00, 0x00, 0x00, 0x0E, 0x40, 0x01, 0x80, 0x07, 0xF0, 0x01, 0x80, 0x00, 0x80, 0x07, 0xC8, 0x00, 0x000 0x80, 0x0B, 0xE8, 0x00, 0x80, 0x00, 0x87, 0x97, 0xE9, 0xE0, 0x80, 0x00, 0x87, 0xDF, 0xEF, 0xA0, 0x80, 0x00, 0x4B, 0xFF, 0xFF, 0xA0, 0xA0 0xDF, 0xFB, 0xA3, 0x00, 0x00, 0x24, 0x97, 0xE8, 0x24, 0x00, 0x00, 0x1E, 0x1F, 0xC0, 0x2C, 0x00, 0x00, 0x07, 0xF8, 0x1F, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 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, oluja, 48, 48, 1); display.setFont (& FreeSans9pt7b); display.setTextColor (BIJELO); display.setCursor (65, 14); display.println ("xWing"); display.setFont (); display.setCursor (65, 17); display.setTextSize (0); display.println ("vs"); display.setCursor (0, 0); plutajuća voltaža = readVcc ()/1000; display.println (voltaza);; display.setFont (& FreeSans9pt7b); display.setCursor (65, 39); display.println ("Smrt"); display.setFont (); display.setCursor (65, 42); display.println ("zvjezdica"); display.setTextSize (0); display.setCursor (65, 55); display.println ("od VRAJ -a"); display.setCursor (65, 20); display.display (); display.setFont (); bip (a, 500); bip (a, 500); bip (a, 500); zvučni signal (f, 350); zvučni signal (cH, 150); bip (a, 500); zvučni signal (f, 350); zvučni signal (cH, 150); bip (a, 650); kašnjenje (500); kašnjenje (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; // brzina metka 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; unsigned long pocetno = 0; bez potpisa dugo odabrano = 0; unsigned long trenutno = 0; nepotpisani dugi 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 = random (400, 1200); poc = 1; } trenutno = millis (); // nivoi if ((trenutno-nivovrije)> 50000) {nivovrije = trenutno; nivo = nivo+1; brzina = brzina+1; // brizna neprijateljskog metka if (nivo % 2 == 0) {bkugle = bkugle+1; promjer = promjer-1; } najmanja = najmanja-50; najveca = najveca-50; } if ((odabrano+početno) 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; ton (9, 100, 100); zivoti = zivoti-1; } if (ry2> = pozicija-8 && ry2 <= pozicija+8) if (rx24) {rx2 = -50; ry2 = -50; ton (9, 100, 100); zivoti = zivoti-1; } if (ry3> = pozicija-8 && ry3 <= pozicija+8) if (rx34) {rx3 = -50; ry3 = -50; ton (9, 100, 100); zivoti = zivoti-1; } if (ry4> = pozicija-8 && ry4 <= pozicija+8) if (rx44) {rx4 = 200; ry4 = -50; ispaljeno = 0; ton (9, 100, 100); zivoti = zivoti-1; } if (rx4 <1) {ispaljeno = 0; rx4 = 200;} if (zivoti == 0) go = 1; } if (go == 1) {if (zivoti == 0) {ton (9, 200, 300); kašnjenje (300); ton (9, 250, 200); kašnjenje (200); ton (9, 300, 300); kašnjenje (300); zivoti = 5; } display.clearDisplay (); display.setFont (); display.setTextSize (2); display.setTextColor (BIJELO); display.setCursor (7, 10); display.println ("IGRA JE ZAVRŠENA!"); display.setTextSize (1); display.setCursor (7, 30); display.println ("rezultat:"); display.setCursor (44, 30); display.println (bodovi); display.setCursor (7, 40); display.println ("nivo:"); display.setCursor (44, 40); display.println (nivo); display.setCursor (7, 50); display.println ("vrijeme (i):"); display.setCursor (60, 50); display.println (trenutno/1000); display.display (); if (digitalRead (3) == 0) {ton (9, 280, 300); kašnjenje (300); ton (9, 250, 200); kašnjenje (200); ton (9, 370, 300); kašnjenje (300); ponovo (); }}} void ponovo () {metx = 0; mety = 0; postoji = 0; nep = 8; smjer = 0; go = 0; rx = 95; ry = 0; rx2 = 95; ry2 = 0; rx3 = 95; ry3 = 0; bodovi = 0; brzina = 3; // brizna neprijateljskog metka bkugle = 1; najmanja = 600; najveća = 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 () {// Pročitajte 1,1V referencu prema AVcc // postavite referencu na Vcc i mjerenje na internu 1,1 V referencu #ako je definirano (_ AVR_ATmega32U4_) || definirano (_ AVR_ATmega1280_) || definirano (_ AVR_ATmega2560_) ADMUX = _BV (REFS0) | _BV (MUX4) | _BV (MUX3) | _BV (MUX2) | _BV (MUX1); #elif defined (_AVR_ATtiny24_) || definirano (_ AVR_ATtiny44_) || definirano (_ AVR_ATtiny84_) ADMUX = _BV (MUX5) | _BV (MUX0); #elif defined (_AVR_ATtiny25_) || definirano (_ AVR_ATtiny45_) || definirano (_ AVR_ATtiny85_) ADMUX = _BV (MUX3) | _BV (MUX2); #else ADMUX = _BV (REFS0) | _BV (MUX3) | _BV (MUX2) | _BV (MUX1); #endif delay (2); // Pričekajte da Vref podmiri ADCSRA | = _BV (ADSC); // Pokreni konverziju while (bit_is_set (ADCSRA, ADSC)); // mjerenje uint8_t nisko = ADCL; // mora prvo pročitati ADCL - tada zaključava ADCH uint8_t high = ADCH; // otključava oba dugačka rezultata = (visoko << 8) | niska; rezultat = 1125300L / rezultat; // Izračunaj Vcc (u mV); 1125300 = 1,1*1023*1000 povratni rezultat; // Vcc u milivoltima} void beep (int note, int duration) {// Reproduciraj ton na zujaliciPin ton (9, note, duration); kašnjenje (trajanje); noTone (9); kašnjenje (50); }
Korak 4: Uživajte !
Čestitam? napokon ste uspjeli pa ako vam se svidi pretplatite se na moj youtube kanal
Preporučuje se:
Napravite svoju prijenosnu retro igraću konzolu! koja je ujedno i Win10 tablet!: 6 koraka (sa slikama)
Napravite svoju prijenosnu konzolu za retro igre! …… koja je ujedno i Win10 tablet !: U ovom projektu ću vam pokazati kako stvoriti prenosivu konzolu za igru koja se može koristiti i kao Windows 10 tablet. Sastojat će se od 7 " HDMI LCD sa ekranom osjetljivim na dodir, LattePanda SBC, USB napajanje PC Type C PD i još nekoliko komplementarnih
Napravite igraću konzolu koristeći svoj Raspberry Pi !: 6 koraka
Napravite igraću konzolu koristeći svoj Raspberry Pi !: Želite li igrati retro igre bez plaćanja skupih starih konzola? To možete učiniti upravo s Raspberry Pi. Raspberry Pi je "računar veličine kreditne kartice" koji je sposoban za mnoge kul stvari. Postoji mnogo različitih tipova
Napravi sam promjenjivo napajanje pomoću LM317: 6 koraka
Uradi sam promjenjivo napajanje pomoću LM317: Napajanje jednim od najvažnijih alata koje tinker može imati. Omogućuje nam jednostavno testiranje prototipova kola bez stalnog snabdijevanja. omogućava nam testiranje krugova na siguran način jer neka napajanja imaju značajke poput
Napravi sam zvono na vratima bez dodira bez Arduina !: 7 koraka
Napravite sami zvono na vratima bez dodira bez Arduina!: Prekidači za zvono na vratima jedna su od stvari koje stranci najviše dodiruju. S obzirom da je pandemija COVID -19 postala ozbiljan problem, održavanje dobre higijene postalo je glavni prioritet ovih dana. Pa ću vam u ovom uputstvu pokazati jednostavan način
Kako napraviti vlastitu igraću konzolu: 6 koraka (sa slikama)
Kako napraviti vlastitu igraću konzolu: Jeste li ikada poželjeli napraviti svoju konzolu za video igre? Jeftina, mala, moćna konzola koja čak savršeno pristaje u džep? U ovom projektu ću vam pokazati kako napraviti igraću konzolu koristeći Raspberry Pi. Ali šta je to Raspberry