Sadržaj:
- Pribor
- 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 promjena: 2024-01-30 09:32
U ovom vodiču pokazat ću vam kako možete napraviti igraću konzolu pomoću Arduino nano. Dakle, ako želite vidjeti detaljan video o tome, pogledajte ga na mom youtube kanalu
Pribor
Ako kupujete na ovim linkovima, to će mi pomoći da vam dam više projekata
1) ARDUINO NANO2) OLED ZASLON3) PUTI TIPKE 4) ŽICE
Korak 1: Lemljenje svih komponenti
Dakle, nakon što nabavite sve komponente, morate lemiti sve komponente kako je prikazano na ovoj shemi
Korak 2: Rasporedite sve stvari na mjesta
Nakon lemljenja, sve komponente rasporedite ovako da im daju lijep izgled
Korak 3: Programiranje
Dakle, konačno, nakon što ste pravilno slijedili sve korake, vrijeme je da postavite donji kod na Arduino
#uključi
#include #include #include #include // #include #define OLED_RESET 4 zaslon Adafruit_SSD1306 (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, 0x7F, 0xF, 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, 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, 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., 0xBF, 0xF1, 0xCF, 0xFA, 0x80, 0x01, 0x3F, 0xC2, 0x37, 0xF7, 0x80, 0x01, 0xEF, 0x9C, 0x01, 0xE7, 0xC0, 0x01, 0xE0, 0x70, 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, 0x00, 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, 0x10, 0x07, 0xFC, 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 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, 0x00, 0x00, 0x00, 0x1 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 ("autor VRAJ -a"); display.setCursor (65, 20); display.display (); display.setFont (); zvučni signal (a, 500); zvučni signal (a, 500); zvučni signal (a, 500); zvučni signal (f, 350); zvučni signal (cH, 150); zvučni signal (a, 500); zvučni signal (f, 350); zvučni signal (cH, 150); zvučni signal (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 = slučajno (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+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 ("razina:"); 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 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 () {// Pročitajte 1,1V referencu prema AVcc // postavite referencu na Vcc, a 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 definiran (_AVR_ATtiny24_) || definirano (_ AVR_ATtiny44_) || definirano (_ AVR_ATtiny84_) ADMUX = _BV (MUX5) | _BV (MUX0); #elif definiran (_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 pretvorbu while (bit_is_set (ADCSRA, ADSC)); // mjerenje uint8_t nisko = ADCL; // prvo mora pročitati ADCL - tada zaključava ADCH uint8_t visoko = ADCH; // otključava oba duga rezultat = (visoko << 8) | niska; rezultat = 1125300L / rezultat; // Izračunaj Vcc (u mV); 1125300 = 1,1*1023*1000 povratni rezultat; // Vcc u milivoltima} void bip (int note, int duration) {// Reproduciraj ton na zujaliciPin ton (9, nota, trajanje); kašnjenje (trajanje); noTone (9); kašnjenje (50); }
Korak 4: Uživajte !
Čestitamo ? konačno ste uspjeli pa ako vam se svidi pretplatite se na moj youtube kanal
Preporučeni:
Napravi sam Upravljanje kutom servo motora pomoću komponente Visuino sekvence: 10 koraka
DIY Kako kontrolirati kut servo motora pomoću komponente Visuino Sequence: U ovom ćemo vodiču koristiti Servo Motor i Arduino UNO te Visuino za upravljanje kutom servo motora pomoću komponente sekvence. Komponenta sekvence savršena je za situacije u kojima želimo pokrenuti nekoliko događaja u nizu u našem slučaju servo motor degr
Napravite vlastitu prijenosnu retro igraću konzolu! koja je ujedno i Win10 tablet!: 6 koraka (sa slikama)
Napravite vlastitu prijenosnu retro igraću konzolu! …… koja je ujedno i Win10 tablet !: U ovom ću vam projektu pokazati kako stvoriti prijenosnu retro igraću konzolu koja se može koristiti i kao Windows 10 tablet. Sastojat će se od 7 " HDMI LCD sa zaslonom 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čunalo veličine kreditne kartice" koji je sposoban za mnoge kul stvari. Postoji mnogo različitih tipova
Napravi sam zvono na vratima bez dodira bez Arduina!: 7 koraka
Napravite sami zvono na vratima bez dodira bez Arduina!: Prekidači za zvono jedna su od stvari koje stranci najviše dodiruju. S obzirom da je pandemija covida 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 pomoću Raspberry Pi -a. Ali što je to Raspberry