![„Pasidaryk pats“žaidimų konsolė naudojant „Arduino“: 4 žingsniai „Pasidaryk pats“žaidimų konsolė naudojant „Arduino“: 4 žingsniai](https://i.howwhatproduce.com/images/001/image-2784-11-j.webp)
Turinys:
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-23 14:55
![Image Image](https://i.howwhatproduce.com/images/001/image-2784-13-j.webp)
![](https://i.ytimg.com/vi/swgvl7hp-tA/hqdefault.jpg)
Šioje pamokoje aš jums parodysiu, kaip galite sukurti žaidimų konsolę naudodami „Arduino nano“. Taigi, jei norite pamatyti išsamų vaizdo įrašą, patikrinkite jį mano „YouTube“kanale
Prekės
Jei perkate iš šių nuorodų, tai padės man pateikti daugiau projektų
1) ARDUINO NANO2) OLED EKRANAS3) PUSH mygtukai
1 žingsnis: visų komponentų litavimas
![Mėgautis!!! Mėgautis!!!](https://i.howwhatproduce.com/images/001/image-2784-14-j.webp)
Taigi, gavę visus komponentus, turite lituoti visus komponentus, kaip parodyta šioje schemoje
2 žingsnis: sutvarkykite visus dalykus vietose
Po litavimo viską sutvarkykite taip, kad jis atrodytų gražiai
3 žingsnis: programavimas
Taigi, pagaliau tinkamai atlikus visus veiksmus, laikas įkelti žemiau esantį kodą į „Arduino“
#įtraukti
#include #include #include #include // #include #define OLED_RESET 4 „Adafruit_SSD1306“ekranas (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, 0xF3, 0xFF, 0xFx, 0xF3, 0x00, 0x3C, 0x00, 0x1F, 0xF0, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00}; const unsigned char PROGMEM audra = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x00, 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, 0xBx, 0xF0, 0xBF, 0xF1, 0xCF, 0xFA, 0x80, 0x01, 0x3F, 0xC2, 0x37, 0xF7, 0x80, 0x01, 0xEF, 0x9C, 0x01, 0xE7, 0xC0, 0x01, 0xE0, 0x70, 0x06, 0x06, 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, 0x0x, 0x0x 0xF0, 0x0F, 0xC0, 0xFC, 0x0F, 0x07, 0x90, 0x0D, 0x43, 0xC0, 0x03, 0x07, 0x90, 0x05, 0x64, 0x00, 0x00, 0xCF, 0x10, 0x07, 0x26, 0x0 0x01, 0x80, 0x00, 0x00, 0x10, 0x20, 0x01, 0x00, 0x00, 0x00, 0x0E, 0x40, 0x01, 0x80, 0x07, 0xF0, 0x01, 0x80, 0x00, 0x80, 0x07, 0xC8, 0x00 0x80, 0x0B, 0xE8, 0x00, 0x80, 0x00, 0x87, 0x97, 0xE9, 0xE0, 0x80, 0x00, 0x87, 0xDF, 0xEF, 0xA0, 0x80, 0x00, 0x4B, 0xFF, 0xFF, 0xA0 0xDF, 0xFB, 0xA3, 0x00, 0x00, 0x24, 0x97, 0xE8, 0x24, 0x00, 0x00, 0x1E, 0x1F, 0xC0, 0x2C, 0x00, 0x00, 0x07, 0xF8, 0x1F, 0x0x 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, audra, 48, 48, 1); display.setFont (& FreeSans9pt7b); display.setTextColor (BALTA); display.setCursor (65, 14); display.println ("xWing"); display.setFont (); display.setCursor (65, 17); display.setTextSize (0); display.println ("prieš"); display.setCursor (0, 0); plūdė voltaza = skaitytiVcc ()/1000; display.println (voltaza);; display.setFont (& FreeSans9pt7b); display.setCursor (65, 39); display.println („Mirtis“); display.setFont (); display.setCursor (65, 42); display.println ("žvaigždė"); display.setTextSize (0); display.setCursor (65, 55); display.println ("VRAJ"); display.setCursor (65, 20); display.display (); display.setFont (); pyptelėjimas (a, 500); pyptelėjimas (a, 500); pyptelėjimas (a, 500); pyptelėjimas (f, 350); pyptelėjimas (cH, 150); pyptelėjimas (a, 500); pyptelėjimas (f, 350); pyptelėjimas (cH, 150); pyptelėjimas (a, 650); vėlavimas (500); vėlavimas (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; // kulkos greitis 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 centras = 95; nepasirašytas ilgasis pocetno = 0; nepasirašytas ilgas odabrano = 0; nepasirašytas ilgas trenutno = 0; nepasirašytas ilgas 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); jei (poc == 0) {pocetno = millis (); odabrano = atsitiktinis (400, 1200); poc = 1; } trenutno = milis (); // 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; tonas (9, 100, 100); zivoti = zivoti-1; } if (ry2> = pozicija-8 && ry2 <= pozicija+8) if (rx24) {rx2 = -50; ry2 = -50; tonas (9, 100, 100); zivoti = zivoti-1; } if (ry3> = pozicija-8 && ry3 <= pozicija+8) if (rx34) {rx3 = -50; ry3 = -50; tonas (9, 100, 100); zivoti = zivoti-1; } if (ry4> = pozicija-8 && ry4 <= pozicija+8) if (rx44) {rx4 = 200; ry4 = -50; ispaljeno = 0; tonas (9, 100, 100); zivoti = zivoti-1; } jei (rx4 <1) {ispaljeno = 0; rx4 = 200;} if (zivoti == 0) go = 1; } if (go == 1) {if (zivoti == 0) {tone (9, 200, 300); vėlavimas (300); tonas (9, 250, 200); vėlavimas (200); tonas (9, 300, 300); vėlavimas (300); zivoti = 5; } display.clearDisplay (); display.setFont (); display.setTextSize (2); display.setTextColor (BALTA); display.setCursor (7, 10); display.println ("ŽAIDIMAS PABAIGAS!"); display.setTextSize (1); display.setCursor (7, 30); display.println ("rezultatas:"); display.setCursor (44, 30); display.println (bodovi); display.setCursor (7, 40); display.println ("lygis:"); display.setCursor (44, 40); display.println (nivo); display.setCursor (7, 50); display.println ("laikas (-ai):"); display.setCursor (60, 50); display.println (trenutno/1000); display.display (); if (digitalRead (3) == 0) {tone (9, 280, 300); vėlavimas (300); tonas (9, 250, 200); vėlavimas (200); tonas (9, 370, 300); vėlavimas (300); ponovo (); }}} negaliojantis ponovo () {metx = 0; mety = 0; postoji = 0; nep = 8; smjer = 0; eiti = 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 () {// Skaitykite 1.1V nuorodą prieš AVcc // nustatykite nuorodą į Vcc, o matavimą į vidinę 1.1V atskaitą #jei apibrėžta (_ AVR_ATmega32U4_) || apibrėžta (_ AVR_ATmega1280_) || apibrėžta (_ AVR_ATmega2560_) ADMUX = _BV (REFS0) | _BV (MUX4) | _BV (MUX3) | _BV (MUX2) | _BV (MUX1); #elif apibrėžtas (_AVR_ATtiny24_) || apibrėžta (_ AVR_ATtiny44_) || apibrėžta (_ AVR_ATtiny84_) ADMUX = _BV (MUX5) | _BV (MUX0); #elif apibrėžtas (_AVR_ATtiny25_) || apibrėžta (_ AVR_ATtiny45_) || apibrėžta (_ AVR_ATtiny85_) ADMUX = _BV (MUX3) | _BV (MUX2); #else ADMUX = _BV (REFS0) | _BV (MUX3) | _BV (MUX2) | _BV (MUX1); #endif delsa (2); // Palaukite, kol „Vref“sureguliuos ADCSRA | = _BV (ADSC); // Pradėti konversiją tuo metu (bit_is_set (ADCSRA, ADSC)); // matavimas uint8_t low = ADCL; // pirmiausia turi perskaityti ADCL - tada jis užrakina ADCH uint8_t high = ADCH; // atrakina abu ilgus rezultatus = (aukštas << 8) | žemas; rezultatas = 1125300L / rezultatas; // Apskaičiuoti Vcc (mV); 1125300 = 1,1*1023*1000 grąžinimo rezultatas; // Vcc milivoltais} void pyptelėjimas (int užrašas, int trukmė) {// Play tone on buzzerPin tone (9, pastaba, trukmė); vėlavimas (trukmė); noTone (9); vėlavimas (50); }
4 žingsnis: Mėgaukitės !
Sveikinu? pagaliau padarei, jei patiko, užsiprenumeruok mano youtube kanalą
Rekomenduojamas:
„Pasidaryk pats“rankinė žaidimų konsolė naudojant „RetroPie“: 7 žingsniai
![„Pasidaryk pats“rankinė žaidimų konsolė naudojant „RetroPie“: 7 žingsniai „Pasidaryk pats“rankinė žaidimų konsolė naudojant „RetroPie“: 7 žingsniai](https://i.howwhatproduce.com/images/002/image-3922-j.webp)
„Pasidaryk pats“rankinių žaidimų konsolė naudojant „RetroPie“: žiūrėkite aukščiau pateiktą vaizdo įrašą, kad geriau suprastumėte šį projektą. Puiku. Atėjo laikas pradėti! Pirmiausia mes naudosime „RetroPie“. Tai mums palieka dvi galimybes. Jei jau įdiegėme „Raspbian“savo SD kortelėje, galime įdiegti „RetroP“
„Pasidaryk pats“Raspberry Pi Zero rankinė žaidimų konsolė: 6 žingsniai (su nuotraukomis)
![„Pasidaryk pats“Raspberry Pi Zero rankinė žaidimų konsolė: 6 žingsniai (su nuotraukomis) „Pasidaryk pats“Raspberry Pi Zero rankinė žaidimų konsolė: 6 žingsniai (su nuotraukomis)](https://i.howwhatproduce.com/images/002/image-5450-4-j.webp)
Pasidaryk pats „Raspberry Pi Zero“rankinė žaidimų konsolė: Šiame projekte aš jums parodysiu, kaip aš panaudojau „Raspberry Pi Zero“, NiMH baterijas, naminę apsaugos nuo perkaitimo grandinę, galinio vaizdo LCD ir garso stiprintuvą, kad sukurtumėte rankinę žaidimų konsolę, kurią galima žaisti retro žaidimai. Pradėkime
„Arduino“pagrindu sukurtas „pasidaryk pats“žaidimų valdiklis - „Arduino PS2“žaidimų valdiklis - Žaidimas „Tekken“naudojant „pasidaryk pats“„Arduino“žaidimų pultą: 7 žingsniai
![„Arduino“pagrindu sukurtas „pasidaryk pats“žaidimų valdiklis - „Arduino PS2“žaidimų valdiklis - Žaidimas „Tekken“naudojant „pasidaryk pats“„Arduino“žaidimų pultą: 7 žingsniai „Arduino“pagrindu sukurtas „pasidaryk pats“žaidimų valdiklis - „Arduino PS2“žaidimų valdiklis - Žaidimas „Tekken“naudojant „pasidaryk pats“„Arduino“žaidimų pultą: 7 žingsniai](https://i.howwhatproduce.com/images/011/image-30363-j.webp)
„Arduino“pagrindu sukurtas „pasidaryk pats“žaidimų valdiklis | „Arduino PS2“žaidimų valdiklis | Žaidimas „Tekken“naudojant „pasidaryk pats“„Arduino Gamepad“: Sveiki, vaikinai, žaisti žaidimus visada smagu, tačiau žaisti su savo „pasidaryk pats“žaidimo valdikliu yra smagiau. Taigi, mes padarysime žaidimų valdiklį naudodami „arduino pro micro“šioje instrukcijoje
Rankinė „Recalbox“žaidimų konsolė naudojant 2,2 TFT: 6 žingsniai
![Rankinė „Recalbox“žaidimų konsolė naudojant 2,2 TFT: 6 žingsniai Rankinė „Recalbox“žaidimų konsolė naudojant 2,2 TFT: 6 žingsniai](https://i.howwhatproduce.com/images/004/image-9199-18-j.webp)
Rankinio atkūrimo dėžutės žaidimų konsolė, naudojant 2.2 TFT: rankinio atkūrimo dėžutės žaidimų konsolės „pasidaryk pats“instrukcijos, naudojant 2,2 colio TFT LCD ekraną ir „Raspberry Pi 0 W“ir GPIO mygtukus. Galite peržiūrėti šį „YouTube“vaizdo įrašą, kad pamatytumėte visus susijusius veiksmus: A. Gaukite visas dalis.B. Lituokite dalis kartu
„Ardubaby“mini žaidimų konsolė su 500 žaidimų: 10 žingsnių
![„Ardubaby“mini žaidimų konsolė su 500 žaidimų: 10 žingsnių „Ardubaby“mini žaidimų konsolė su 500 žaidimų: 10 žingsnių](https://i.howwhatproduce.com/images/006/image-15843-35-j.webp)
„Ardubaby“mini žaidimų konsolė su 500 žaidimų: Kreditas kūrėjui (Kevinui Batesui), „Arduboy“yra labai sėkminga 8 bitų žaidimų konsolė. Mėgėjas parašė tūkstančius žaidimų, kurie jais laisvai dalijosi „Arduboy“bendruomenės forume, kad daugiau žmonių galėtų išmokti koduoti