Sisukord:
- Tarvikud
- Samm: kõigi komponentide jootmine
- Samm: korraldage kõik asjad kohtadesse
- 3. samm: programmeerimine
- Samm: nautige !
Video: DIY mängukonsool Arduino abil: 4 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:46
Selles õpetuses näitan teile, kuidas saate Arduino nano abil mängukonsooli teha. Nii et kui soovite selle kohta üksikasjalikku videot näha, siis vaadake seda minu youtube'i kanalil
Tarvikud
Kui ostate sellelt lingilt, aitab see mul rohkem projekte pakkuda
1) ARDUINO NANO2) OLED -NÄITUS3) PUSH -NUPUD
Samm: kõigi komponentide jootmine
Niisiis, pärast kõigi komponentide hankimist peate kõik komponendid jootma, nagu on näidatud selles skeemis
Samm: korraldage kõik asjad kohtadesse
Pärast kõike jootmist korraldage kõik komponendid niimoodi, et anda sellele kena välimus
3. samm: programmeerimine
Niisiis, lõpuks pärast kõigi toimingute nõuetekohast järgimist on aeg laadida allolev kood Arduinosse
#kaasake
#include #include #include #include // #include #define OLED_RESET 4 Adafruit_SSD1306 kuva (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, 0xFF, 0xFx, 0xF3, 0x00, 0x3C, 0x00, 0x1F, 0xF0, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00}; const unsigned char PROGMEM torm = {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, 0xFF, 0xFF, 0xE1, 0x00, 0x01, 0xBF0, 0xFF, 0xBF, 0xF1, 0xCF, 0xFA, 0x80, 0x01, 0x3F, 0xC2, 0x37, 0xF7, 0x80, 0x01, 0xEF, 0x9C, 0x01, 0xE7, 0xC0, 0x01, 0xE0, 0x70, 0x06, 0x06, 0x00, 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, 0x 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, 0xA0 0xDF, 0xFB, 0xA3, 0x00, 0x00, 0x24, 0x97, 0xE8, 0x24, 0x00, 0x00, 0x1E, 0x1F, 0xC0, 0x2C, 0x00, 0x00, 0x07, 0xF8, 0x1F, 0x0x, 0x08 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, torm, 48, 48, 1); display.setFont (& FreeSans9pt7b); display.setTextColor (VALGE); 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 ("Surm"); display.setFont (); display.setCursor (65, 42); display.println ("täht"); display.setTextSize (0); display.setCursor (65, 55); display.println ("poolt VRAJ"); display.setCursor (65, 20); display.display (); display.setFont (); piiks (a, 500); piiks (a, 500); piiks (a, 500); piiks (f, 350); piiks (cH, 150); piiks (a, 500); piiks (f, 350); piiks (cH, 150); piiks (a, 650); viivitus (500); viivitus (500); } int metx = 0; int mety = 0; int postoji = 0; int nep = 8; int smjer = 0; int minna = 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; // kuuli kiirus 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 keskus = 95; allkirjata pikk pocetno = 0; allkirjastamata pikk odabrano = 0; allkirjastamata pikk trenutno = 0; allkirjastamata pikk 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); kui (poc == 0) {pocetno = millis (); odabrano = juhuslik (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; toon (9, 100, 100); zivoti = zivoti-1; } if (ry2> = pozicija-8 && ry2 <= pozicija+8) if (rx24) {rx2 = -50; ry2 = -50; toon (9, 100, 100); zivoti = zivoti-1; } if (ry3> = pozicija-8 && ry3 <= pozicija+8) if (rx34) {rx3 = -50; ry3 = -50; toon (9, 100, 100); zivoti = zivoti-1; } if (ry4> = pozicija-8 && ry4 <= pozicija+8) if (rx44) {rx4 = 200; ry4 = -50; ispaljeno = 0; toon (9, 100, 100); zivoti = zivoti-1; } kui (rx4 <1) {ispaljeno = 0; rx4 = 200;} if (zivoti == 0) go = 1; } kui (mine == 1) {kui (zivoti == 0) {toon (9, 200, 300); viivitus (300); toon (9, 250, 200); viivitus (200); toon (9, 300, 300); viivitus (300); zivoti = 5; } display.clearDisplay (); display.setFont (); display.setTextSize (2); display.setTextColor (VALGE); display.setCursor (7, 10); display.println ("MÄNG LÕPPENUD!"); display.setTextSize (1); display.setCursor (7, 30); display.println ("skoor:"); display.setCursor (44, 30); display.println (bodovi); display.setCursor (7, 40); display.println ("tase:"); display.setCursor (44, 40); display.println (nivo); display.setCursor (7, 50); display.println ("aeg (id):"); display.setCursor (60, 50); display.println (trenutno/1000); display.display (); if (digitalRead (3) == 0) {tone (9, 280, 300); viivitus (300); toon (9, 250, 200); viivitus (200); toon (9, 370, 300); viivitus (300); ponovo (); }}} tühine ponovo () {metx = 0; mety = 0; postoji = 0; nep = 8; smjer = 0; mine = 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 () {// Loe 1.1V võrdlust AVcc vastu // määrake viide Vcc -le ja mõõtmine sisemisele 1.1V viitele #kui see on määratletud (_ AVR_ATmega32U4_) || määratletud (_ AVR_ATmega1280_) || määratletud (_ AVR_ATmega2560_) ADMUX = _BV (REFS0) | _BV (MUX4) | _BV (MUX3) | _BV (MUX2) | _BV (MUX1); #elif määratletud (_AVR_ATtiny24_) || määratletud (_ AVR_ATtiny44_) || määratletud (_ AVR_ATtiny84_) ADMUX = _BV (MUX5) | _BV (MUX0); #elif määratletud (_AVR_ATtiny25_) || määratletud (_ AVR_ATtiny45_) || määratletud (_ AVR_ATtiny85_) ADMUX = _BV (MUX3) | _BV (MUX2); #else ADMUX = _BV (REFS0) | _BV (MUX3) | _BV (MUX2) | _BV (MUX1); #endif viivitus (2); // Oota, kuni Vref lahendab ADCSRA | = _BV (ADSC); // Alusta teisendamist samas (bit_is_set (ADCSRA, ADSC)); // mõõtmine uint8_t madal = ADCL; // kõigepealt tuleb lugeda ADCL - see lukustab seejärel ADCH uint8_t high = ADCH; // avab mõlemad pikad tulemused = (kõrge << 8) | madal; tulemus = 1125300L / tulemus; // Vcc arvutamine (mV); 1125300 = 1,1*1023*1000 tagastamise tulemus; // Vcc millivoltides} tühine piiks (int märkus, int kestus) {// Esita toon buzzerPin toonil (9, noot, kestus); viivitus (kestus); noTone (9); viivitus (50); }
Samm: nautige !
Palju õnne? lõpuks tegite selle nii, et kui teile meeldis, siis tellige minu youtube'i kanal
Soovitan:
DIY käeshoitav mängukonsool RetroPie abil: 7 sammu
DIY pihuarvuti mängukonsool RetroPie abil: selle projekti paremaks mõistmiseks vaadake ülaltoodud videot. Hästi. On aeg alustada! Esiteks kasutame RetroPie'i. See jätab meile kaks võimalust. Kui oleme oma SD -kaardile juba Raspbiani installinud, saame RetroPi installida
DIY Raspberry Pi Zero käeshoitav mängukonsool: 6 sammu (piltidega)
DIY Raspberry Pi Zero pihuarvuti mängukonsool: Selles projektis näitan teile, kuidas ma kasutasin pihuarvutiga mängukonsooli loomiseks Raspberry Pi Zero, NiMH akusid, omatehtud ülelaadimise kaitselülitust, tahavaate LCD-d ja helivõimendit retro mängud. Alustame
Tehke oma Raspberry Pi abil mängukonsool: 6 sammu
Tehke oma Raspberry Pi abil mängukonsool!: Kas soovite mängida retro mänge ilma kallite vanade konsoolide eest maksmata? Raspberry Pi abil saate seda teha. Raspberry Pi on " krediitkaardi suurune arvuti " mis on võimeline paljudeks lahedateks asjadeks. On palju erinevaid tüüpe
Kella tegemine M5stick C abil Arduino IDE abil RTC reaalajas kell M5stack M5stick-C abil: 4 sammu
Kella tegemine M5stick C abil, kasutades Arduino IDE | RTC reaalajas kell koos M5stack M5stick-C-ga: Tere, selles juhendis olevad poisid, me õpime, kuidas Arduino IDE abil kella m5stick-C arendusplaadiga teha. Nii kuvab m5stick kuupäeva, kellaaja ja amp; kuunädal ekraanil
Pihuarvuti Recalboxi mängukonsool 2.2 TFT abil: 6 sammu
Käeshoitav mängukonsool, mis kasutab 2.2 TFT -d: juhised käeshoitava mängukonsooli isevalmistamiseks, kasutades 2,2 -tollist TFT -LCD -ekraani ning Raspberry Pi 0 W ja GPIO nuppe. Saate vaadata seda YouTube'i videot, et näha kõiki toiminguid: A. Hankige kõik osad. B. Jootke osad kokku