
Mündəricat:
2025 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2025-01-23 12:54


Bu təlimatda sizə Arduino nano istifadə edərək bir oyun konsolu necə qura biləcəyinizi göstərəcəyəm. Buna görə ətraflı videoya baxmaq istəyirsinizsə, youtube kanalımdan izləyin
Təchizat
Bu bağlantılardan satın alsanız, sizə daha çox layihə verməyimə kömək edəcək
1) ARDUINO NANO2) OLED DISPLAY3) BASMA DÜĞMƏLƏRİ 4) TELEFONLAR
Addım 1: Bütün komponentlərin lehimlənməsi

Beləliklə, bütün komponentləri əldə etdikdən sonra bütün sxemləri bu sxemdə göstərildiyi kimi lehimləməlisiniz
Addım 2: Bütün Şeyləri Yerlərdə Düzəldin
Hər şeyi lehimlədikdən sonra gözəl bir görünüş vermək üçün bütün komponentləri bu şəkildə düzün
Addım 3: Proqramlaşdırma
Beləliklə, nəhayət bütün addımları düzgün yerinə yetirdikdən sonra aşağıdakı kodu Arduinoya yükləməyin vaxtı gəldi
#daxil edin
#include #include #include #include // #include #deleine OLED_RESET 4 Adafruit_SSD1306 displeyi (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 imzasız PROGMEM dioda16 = {0x00, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x3F, 0xF0, 0x3C, 0x00, 0x3C, 0x00, 0xFF, 0x00, 0x7F, 0xFF, 0x7F, 0xF, 0x7F, 0x1F, 0x00, 0x3C, 0x00, 0x1F, 0xF0, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00}; const imzasız char PROGMEM fırtına = {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, 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, 0x7F, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xD7, 0xFF, 0xFF, 0xE1, 0x00, 0x01, 0xBF, 0xBF, 0xBF, 0xFF, 0xBF, 0xF1, 0xCF, 0xFA, 0x80, 0x01, 0x3F, 0xC2, 0x37, 0xF7, 0x80, 0x01, 0xEF, 0x9C, 0x01, 0xE7, 0xC0, 0x01, 0xE0, 0x0, 0x0, 0x70,, 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, 0xD0, 0x09 0xF0, 0x0F, 0xC0, 0xFC, 0x0F, 0x07, 0x90, 0x0D, 0x43, 0xC0, 0x03, 0x07, 0x90, 0x05, 0x64, 0x00, 0x00, 0xCF, 0x10, 0x07, 0x07, 0xFC, 0x01, 0x80, 0x00, 0x00, 0x10, 0x20, 0x01, 0x00, 0x00, 0x00, 0x0E, 0x40, 0x01, 0x80, 0x07, 0xF0, 0x01, 0x80, 0x00, 0x80, 0x00, 0x07, 0xC7 0x80, 0x0B, 0xE8, 0x00, 0x80, 0x00, 0x87, 0x97, 0xE9, 0xE0, 0x80, 0x00, 0x87, 0xDF, 0xEF, 0xA0, 0x80, 0x00, 0x4B, 0xFA, 0xFF, 0xF7, 0xF7 0xDF, 0xFB, 0xA3, 0x00, 0x00, 0x24, 0x97, 0xE8, 0x24, 0x00, 0x00, 0x1E, 0x1F, 0xC0, 0x2C, 0x00, 0x00, 0x07, 0xF8, 0x1F, 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, fırtına, 48, 48, 1); display.setFont (& FreeSans9pt7b); display.setTextColor (BEYAZ); 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; ekran.println (voltaza);; display.setFont (& FreeSans9pt7b); display.setCursor (65, 39); display.println ("Ölüm"); display.setFont (); display.setCursor (65, 42); display.println ("ulduz"); display.setTextSize (0); display.setCursor (65, 55); display.println ("VRAJ tərəfindən"); display.setCursor (65, 20); display.display (); display.setFont (); bip (a, 500); bip (a, 500); bip (a, 500); bip (f, 350); səs siqnalı (cH, 150); bip (a, 500); bip (f, 350); səs siqnalı (cH, 150); bip (a, 650); gecikmə (500); gecikmə (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; // güllə sürəti 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; işarəsiz uzun pocetno = 0; işarəsiz uzun odabrano = 0; işarəsiz uzun trenutno = 0; imzasız uzun 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); əgər (poc == 0) {pocetno = millis (); odabrano = təsadüfi (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; əgər (smjer == 0) {nep = nep+bkugle;} başqa {nep = nep-bkugle;} if (nep> = (64-promjer)) smjer = 1; əgər (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; } əgər (rx4 <1) {ispaljeno = 0; rx4 = 200;} if (zivoti == 0) go = 1; } if (go == 1) {if (zivoti == 0) {ton (9, 200, 300); gecikmə (300); ton (9, 250, 200); gecikmə (200); ton (9, 300, 300); gecikmə (300); zivoti = 5; } display.clearDisplay (); display.setFont (); display.setTextSize (2); display.setTextColor (BEYAZ); display.setCursor (7, 10); display.println ("OYUN BİTDİ!"); display.setTextSize (1); display.setCursor (7, 30); display.println ("hesab:"); display.setCursor (44, 30); ekran.println (bodovi); display.setCursor (7, 40); display.println ("səviyyə:"); display.setCursor (44, 40); display.println (nivo); display.setCursor (7, 50); display.println ("vaxt (lar):"); display.setCursor (60, 50); display.println (trenutno/1000); display.display (); if (digitalRead (3) == 0) {ton (9, 280, 300); gecikmə (300); ton (9, 250, 200); gecikmə (200); ton (9, 370, 300); gecikmə (300); ponovo (); }}} boş ponovo () {metx = 0; met = 0; postoji = 0; nep = 8; smjer = 0; getmək = 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 () {// AVcc əleyhinə 1.1V istinadını oxuyun // istinadı Vcc -ə və ölçməni #if müəyyən edilmiş daxili 1.1V istinadına təyin edin (_ AVR_ATmega32U4_) || müəyyən (_ AVR_ATmega1280_) || müəyyən (_ AVR_ATmega2560_) ADMUX = _BV (REFS0) | _BV (MUX4) | _BV (MUX3) | _BV (MUX2) | _BV (MUX1); #elif müəyyən (_AVR_ATtiny24_) || müəyyən (_ AVR_ATtiny44_) || müəyyən (_ AVR_ATtiny84_) ADMUX = _BV (MUX5) | _BV (MUX0); #elif müəyyən (_AVR_ATtiny25_) || müəyyən (_ AVR_ATtiny45_) || müəyyən edilmiş (_ AVR_ATtiny85_) ADMUX = _BV (MUX3) | _BV (MUX2); #başqa ADMUX = _BV (REFS0) | _BV (MUX3) | _BV (MUX2) | _BV (MUX1); #endif gecikməsi (2); // Vref -in ADCSRA ilə həllini gözləyin | = _BV (ADSC); // Dönüşüm zamanı başlayın (bit_is_set (ADCSRA, ADSC)); // ölçmə uint8_t aşağı = ADCL; // əvvəlcə ADCL oxumalıdır - sonra ADCH uint8_t high = ADCH kilidlənir; // hər iki uzun nəticəni açar = (yüksək << 8) | aşağı; nəticə = 1125300L / nəticə; // Vcc hesablayın (mV ilə); 1125300 = 1.1*1023*1000 qaytarma nəticəsi; // Milli voltlarda Vcc} boş səs siqnalı (int note, int müddəti) {// BuzzerPin tonunda səs tonu (9, qeyd, müddət); gecikmə (müddəti); noTone (9); gecikmə (50); }
Addım 4: Zövq alın !
Tebrik edirem? nəhayət bunu etdiniz, bəyəndiyiniz halda youtube kanalıma abunə olun
Tövsiyə:
RetroPie istifadə edərək DIY Əl Oyun Konsolu: 7 addım

RetroPie istifadə edərək DIY Əl Oyun Konsolu: Bu layihəni daha yaxşı başa düşmək üçün yuxarıdakı videoya baxın. Yaxşı. Başlamaq üçün vaxt gəldi! İlk növbədə RetroPie -dən istifadə edəcəyik. Bu bizə iki seçim qoyur. SD kartımıza Raspbian qurmuşuqsa, RetroP qura bilərik
Raspberry Pi -dən istifadə edərək bir oyun konsolu yaradın: 6 addım

Raspberry Pi istifadə edərək bir oyun konsolu hazırlayın!: Bahalı köhnə konsolları ödəmədən retro oyunlar oynamaq istəyirsinizmi? Bunu Raspberry Pi ilə edə bilərsiniz. Raspberry Pi " kredit kartı ölçüsündə bir kompüterdir " çox gözəl şeylərə qadirdir. Çox fərqli növlər var
Arduino istifadə edərək İnternetdən istifadə edərək bütün dünyanı idarə et: 4 addım

Arduino istifadə edərək İnternetdən istifadə edərək bütün dünyanı idarə et: Salam, mən Rithikəm. Telefonunuzdan istifadə edərək internetə nəzarət edən bir led quracağıq. Arduino IDE və Blynk kimi proqramlardan istifadə edəcəyik. Bu çox sadədir və uğur qazansanız istədiyiniz qədər elektron komponenti idarə edə bilərsiniz
Arduino UNO istifadə edərək pilotsuz təyyarə necə etmək olar - Mikrokontrolördən istifadə edərək bir Quadcopter hazırlayın: 8 addım (şəkillərlə)

Arduino UNO istifadə edərək pilotsuz təyyarə necə etmək olar | Mikrokontrolördən istifadə edərək Quadcopter hazırlayın: Giriş Youtube Kanalımı Ziyarət Edin Drone almaq üçün çox bahalı bir gadget (məhsul) təşkil edir. Bu yazıda necə ucuz satacağımı müzakirə edəcəyəm? Ucuz qiymətə öz əlinizlə bunu necə edə bilərsiniz … Yaxşı Hindistanda bütün materiallar (mühərriklər, ESClər
2.2 TFT istifadə edərək Əl Qutusu Oyun Konsolu: 6 addım

2.2 TFT -dən istifadə edərək Əl Qutusu Oyun Konsolu: 2.2 "TFT LCD və Raspberry Pi 0 W və GPIO düymələrindən istifadə edərək, əl ilə yığılmış yenidən qutu oyun konsolunun DIY təlimatları. Bu addımların tam nümayişi üçün bu youtube videosuna baxa bilərsiniz: A. Bütün hissələri alın B. Parçaları birlikdə lehimləyin