Dashibodi ya Mchezo wa DIY Kutumia Arduino: Hatua 4
Dashibodi ya Mchezo wa DIY Kutumia Arduino: Hatua 4
Anonim
Image
Image

Katika mafunzo haya nitakuonyesha kwamba unawezaje kutengeneza koni ya uchezaji kwa kutumia Arduino nano. Kwa hivyo ikiwa unataka kuona video ya kina juu yake basi angalia kwenye kituo changu cha youtube

Vifaa

Ukinunua kutoka kwa viungo hivi itanisaidia kukupa miradi zaidi

1) ARDUINO NANO2) OLED DISPLAY3) PUSH BUTTONS4) WIRES

Hatua ya 1: Kugawanya Vipengee Vyote

Kufurahia !!!
Kufurahia !!!

Kwa hivyo, baada ya kupata vifaa vyote lazima uingize vifaa vyote kama inavyoonyeshwa kwenye mchoro huu wa mzunguko

Hatua ya 2: Panga Vitu Vyote Mahali

Baada ya kuuza kila kitu kupanga vitu vyote kama hii ili kuipatia sura nzuri

Hatua ya 3: Programu

Kwa hivyo, mwishowe baada ya kufuata hatua zote vizuri ni wakati wa kupakia nambari hapa chini kwa Arduino

# pamoja

# Pamoja # Pamoja # Pamoja # Pamoja // # ni pamoja na # define OLED_RESET 4 Adafruit_SSD1306 kuonyesha (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; char isiyo sainiwa PROGMEM dioda16 = {0x00, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x3F, 0xF0, 0x3C, 0x00, 0x3C, 0x00, 0xFF, 0x00, 0x7F, 0xFF, 0x7F, 0xFF, 0xFF, 0x00, 0x3C, 0x00, 0x1F, 0xF0, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00}; const unsigned char PROGMEM dhoruba = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFE, 0x00, 0x00, 0x00, 0x07, 0x80, 0x01, 0xE0, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x20, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 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, 0x40, 0x00, 0x00, 0x01, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x00, 0x00, 0x7F, 0xE0, 0, 0, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xD7, 0xFF, 0xFF, 0xE1, 0x00, 0x01, 0xBF, 0xFC, 0x1x, 0x1, 0x1, 0x1, 0xBF, 0xF1, 0xCF, 0xFA, 0x80, 0x01, 0x3F, 0xC2, 0x37, 0xF7, 0x80, 0x01, 0xEF, 0x9C, 0x01, 0xE7, 0xC0, 0x01, 0xE0, 0x0, 0x0, 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 0xF0, 0x0F, 0xC0, 0xFC, 0x0F, 0x07, 0x90, 0x0D, 0x43, 0xC0, 0x03, 0x07, 0x90, 0x05, 0x64, 0x00 0x00, 0xCF, 0x10, 0x07, 0x0 0x01, 0x80, 0x00, 0x00, 0x10, 0x20, 0x01, 0x00, 0x00, 0x00, 0x0E, 0x40, 0x01, 0x80, 0x07, 0xF0, 0x01 0x80 0x80, 0x0B, 0xE8, 0x00, 0x80, 0x00, 0x87, 0x97, 0xE9, 0xE0, 0x80, 0x00, 0x87, 0xDF, 0xEF, 0xA0, 0x80 0x00 0xDF, 0xFB, 0xA3, 0x00, 0x00, 0x24, 0x97, 0xE8, 0x24, 0x00, 0x00, 0x1E, 0x1F, 0xC0, 0x2C, 0x00, 0x00, 0x07, 0xF8, 0x1 0 0xF8, 0x00, 0x00}; kuanzisha batili () {pinMode (3, INPUT_PULLUP); pinMode (12, INPUT_PULLUP); pinMode (11, INPUT_PULLUP); onyesha. kuanza (SSD1306_SWITCHCAPVCC, 0x3C); onyesha.display (); onyesha wazi Cleplay (); onyesha.setTextSize (0); onyesha.drawBitmap (6, 11, dhoruba, 48, 48, 1); onyesha.setFont (& FreeSans9pt7b); onyesha.setTextColor (NYEUPE); Kuweka Mshale (65, 14); onyesha.println ("xWing"); onyesha.setFont (); Kuweka Mshale (65, 17); onyesha.setTextSize (0); onyesha.println ("vs"); onyesha.setCursor (0, 0); kuelea voltaza = somaVcc () / 1000; onyesha.println (voltaza);; onyesha.setFont (& FreeSans9pt7b); Kuonyesha Mshale (65, 39); onyesha.println ("Kifo"); onyesha.setFont (); Kuweka Mshale (65, 42); onyesha.println ("nyota"); onyesha.setTextSize (0); Kuonyesha Mshale (65, 55); onyesha.println ("na VRAJ"); Kuweka Mshale (65, 20); onyesha.display (); onyesha.setFont (); beep (a, 500); beep (a, 500); beep (a, 500); beep (f, 350); beep (cH, 150); beep (a, 500); beep (f, 350); beep (cH, 150); beep (a, 650); kuchelewesha (500); kuchelewesha (500); } int metx = 0; mety = 0; int postoji = 0; int nep = 8; smjer = 0; int kwenda = 0; int rx = 95; inty = 0; int rx2 = 95; int ry2 = 0; int rx3 = 95; int ry3 = 0; int bodovi = 0; int brzina = 3; // kasi ya risasi int bkugle = 1; int najmanja = 600; int najveca = 1200; mtangazaji = 10; int rx4 = 95; int ry4 = 0; int zivoti = 5; int poc = 0; int ispaljeno = 0; int nivo = 1; katikati = 95; pocetno isiyo na saini ndefu = 0; bila kusainiwa odabrano ndefu = 0; trenutno ndefu isiyosainiwa = 0; bila kusainiwa nivovrije = 0; int poz = 30; kitanzi batili () {if (go == 0) {display.clearDisplay (); onyesha DrawPixel (50, 30, 1); onyesha DrawPixel (30, 17, 1); onyesha DrawPixel (60, 18, 1); onyesha.drawPixel (55, 16, 1); onyesha.drawPixel (25, 43, 1); onyesha.drawPixel (100, 43, 1); onyesha.drawPixel (117, 52, 1); onyesha DrawPixel (14, 49, 1); onyesha DrawPixel (24, 24, 1); onyesha DrawPixel (78, 36, 1); onyesha DrawPixel (80, 57, 1); onyesha.drawPixel (107, 11, 1); onyesha.drawPixel (150, 11, 1); onyesha DrawPixel (5, 5, 1); onyesha DrawPixel (8, 7, 1); onyesha DrawPixel (70, 12, 1); onyesha DrawPixel (10, 56, 1); onyesha DrawPixel (70, 25, 1); ikiwa (poc == 0) {pocetno = millis (); odabrano = nasibu (400, 1200); poc = 1; } trenutno = milimita (); // nivoi ikiwa ((trenutno-nivovrije)> 50000) {nivovrije = trenutno; nivo = nivo + 1; brzina = brzina + 1; // brizna neprijateljevog metka ikiwa (nivo% 2 == 0) {bkugle = bkugle + 1; mtangazaji = mtangazaji-1; } najmanja = najmanja-50; najveca = najveca-50; } ikiwa ((odabrano + pocetno) 0) {display.drawCircle (rx, ry, 2, 1); rx = rx-brzina;} ikiwa (ispaljeno> 1) {display.drawCircle (rx2, ry2, 1, 1); rx2 = rx2-Brzina;} ikiwa (ispaljeno> 2) {display.drawCircle (rx3, ry3, 4, 1); rx3 = rx3-Brzina;} ikiwa (ispaljeno> 3) {display.drawCircle (rx4, ry4, 2, 1); rx4 = rx4-brzina;} ikiwa (digitalRead (12) == 0 && poz> = 2) {poz = poz-2;} ikiwa (digitalRead (11) == 0 && poz128) postoji = 0; ikiwa (smjer == 0) {nep = nep + bkugle;} mwingine {nep = nep-bkugle;} ikiwa (nep> = (64-promjer)) smjer = 1; ikiwa (nep = nep-promjer && mety (centar-promjer) && metx = pozicija-8 && ry <= pozicija + 8) ikiwa (rx4) {rx = 95; ry = -50; toni (9, 100, 100); zivoti = zivoti-1; } ikiwa (ry2> = pozicija-8 && ry2 <= pozicija + 8) ikiwa (rx24) {rx2 = -50; ry2 = -50; toni (9, 100, 100); zivoti = zivoti-1; } ikiwa (ry3> = pozicija-8 && ry3 <= pozicija + 8) ikiwa (rx34) {rx3 = -50; ry3 = -50; toni (9, 100, 100); zivoti = zivoti-1; } ikiwa (ry4> = pozicija-8 && ry4 <= pozicija + 8) ikiwa (rx44) {rx4 = 200; ry4 = -50; ispaljeno = 0; toni (9, 100, 100); zivoti = zivoti-1; } ikiwa (rx4 <1) {ispaljeno = 0; rx4 = 200;} ikiwa (zivoti == 0) nenda = 1; } ikiwa (go == 1) {ikiwa (zivoti == 0) {toni (9, 200, 300); kuchelewesha (300); toni (9, 250, 200); kuchelewesha (200); toni (9, 300, 300); kuchelewesha (300); zivoti = 5; } onyesha. Onyesha wazi (); onyesha.setFont (); onyesha.setTextSize (2); onyesha.setTextColor (NYEUPE); Onyesha Mshale (7, 10); onyesha.println ("MCHEZO JUU!"); onyesha.setTextSize (1); Kuweka Mshale (7, 30); onyesha.println ("alama:"); Onyesha Mshale (44, 30); onyesha.println (bodovi); Onyesha Mshale (7, 40); onyesha.println ("kiwango:"); Kuweka Mshale (44, 40); onyesha.println (nivo); Kuweka Mshale (7, 50); onyesha.println ("saa (s):"); Kuweka Mshale (60, 50); onyesha.println (trenutno / 1000); onyesha.display (); ikiwa (digitalRead (3) == 0) {tone (9, 280, 300); kuchelewesha (300); toni (9, 250, 200); kuchelewesha (200); toni (9, 370, 300); kuchelewesha (300); ponovo (); }}}} batili ponovo () {metx = 0; mety = 0; postoji = 0; nep = 8; smjer = 0; nenda = 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; mtangazaji = 12; rx4 = 95; ry4 = 0; zivoti = 5; poc = 0; ispaljeno = 0; nivo = 1; pocetno = 0; odabrano = 0; trenutno = 0; nivovrije = 0; } Muda readVcc () {// Read 1.1V kumbukumbu dhidi AVcc // kuweka kumbukumbu ya VCC na upimaji ili ndani 1.1V kumbukumbu #if defined (_ AVR_ATmega32U4_) || imeelezwa (_ AVR_ATmega1280_) || imeelezwa (_ AVR_ATmega2560_) ADMUX = _BV (REFS0) | _BV (MUX4) | _BV (MUX3) | _BV (MUX2) | _BV (MUX1); #elif imefafanuliwa (_AVR_ATtiny24_) || Imefafanuliwa (_ AVR_ATtiny44_) || imeelezwa (_ AVR_ATtiny84_) ADMUX = _BV (MUX5) | _BV (MUX0); #ifafanuliwa (_AVR_ATtiny25_) || Imefafanuliwa (_ AVR_ATtiny45_) || ilivyoelezwa (_ AVR_ATtiny85_) ADMUX = _BV (MUX3) | _BV (MUX2); #else ADMUX = _BV (REFS0) | _BV (MUX3) | _BV (MUX2) | _BV (MUX1); #wachelewesha (2); // Subiri Vref ili kumaliza ADCSRA | = _BV (ADSC); // Anza uongofu wakati (bit_is_set (ADCSRA, ADSC)); // kupima uint8_t chini = ADCL; // lazima isome ADCL kwanza - kisha inafunga ADCH uint8_t high = ADCH; // inafungua matokeo yote marefu = (juu << 8) | chini; matokeo = 1125300L / matokeo; // Mahesabu ya Vcc (katika mV); 1125300 = 1.1 * 1023 * 1000 matokeo ya kurudi; // Vcc katika millivolts} beep batili (int note, int int) {// Cheza sauti kwenye buzzerPin tone (9, kumbuka, muda); kuchelewesha (muda); noTone (9); kuchelewesha (50); }

Hatua ya 4: Kufurahia !!

Hongera? mwishowe uliifanya iwe kama uliipenda basi jiandikishe kwa idhaa yangu ya youtube

Ilipendekeza: