
Мазмұны:
2025 Автор: John Day | [email protected]. Соңғы өзгертілген: 2025-01-23 14:50


Бұл оқулықта мен сізге Arduino нано көмегімен ойын консолін қалай жасауға болатынын көрсетемін. Сондықтан, егер сіз бұл туралы егжей -тегжейлі бейнені көргіңіз келсе, оны менің youtube каналымнан қараңыз
Жабдықтар
Егер сіз осы сілтемелерден сатып алсаңыз, бұл сізге басқа жобаларды ұсынуға көмектеседі
1) ARDUINO NANO2) OLED дисплейі 3) БАСУ ТҮЙМЕЛЕРІ 4) Сымдар
1 -қадам: барлық компоненттерді дәнекерлеу

Сонымен, барлық компоненттерді алғаннан кейін сіз барлық схемаларды осы схемада көрсетілгендей дәнекерлеуіңіз керек
2 -қадам: Барлығын орындарына орналастырыңыз
Дәнекерлегеннен кейін, барлық компоненттерді осылайша әдемі көрініс беру үшін реттеңіз
3 -қадам: Бағдарламалау
Сонымен, барлық қадамдарды дұрыс орындағаннан кейін, төмендегі кодты Arduino -ға жүктеу уақыты келді
#қосу
#қосу #қосу #қосу #қосу // #қосу #анықтау OLED_RESET 4 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, 0x7F, 0x1F, 0x00, 0x3C, 0x00, 0x1F, 0xF0, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00}; Const қойылмаған символы PROGMEM дауыл = {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, 0x00., 0x04, 0x00, 0x00, 0x20, 0x00, 0x00, 0x04, 0x00, 0x00, 0x20, 0x00, 0x00, 0x04, 0x00, 0x00, 0x60, 0x00, 0x00, 0x02, 0x00, 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, 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, 0xE0, 0xE0, 0x0, 0x70, 0xC2, 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, 0x00 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, 0x07, 0xC7, 0xC0 0x80, 0x0B, 0xE8, 0x00, 0x80, 0x00, 0x87, 0x97, 0xE9, 0xE0, 0x80, 0x00, 0x87, 0xDF, 0xEF, 0xA0, 0x80, 0x00, 0x4B, 0xFA, 0xFF, 0xFF, 0xF7 0xDF, 0xFB, 0xA3, 0x00, 0x00, 0x24, 0x97, 0xE8, 0x24, 0x00, 0x00, 0x1E, 0x1F, 0xC0, 0x2C, 0x00, 0x00, 0x07, 0xF8, 0x1x, 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, дауыл, 48, 48, 1); display.setFont (& FreeSans9pt7b); display.setTextColor (АҚ); 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 (вольтаза);; display.setFont (& FreeSans9pt7b); display.setCursor (65, 39); display.println («Өлім»); display.setFont (); display.setCursor (65, 42); display.println («жұлдыз»); display.setTextSize (0); display.setCursor (65, 55); display.println («VRAJ»); display.setCursor (65, 20); display.display (); display.setFont (); дыбыстық сигнал (a, 500); дыбыстық сигнал (a, 500); дыбыстық сигнал (a, 500); дыбыстық сигнал (f, 350); дыбыстық сигнал (cH, 150); дыбыстық сигнал (a, 500); дыбыстық сигнал (f, 350); дыбыстық сигнал (cH, 150); дыбыстық сигнал (a, 650); кешіктіру (500); кешіктіру (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; // оқтың жылдамдығы 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; белгісіз ұзын pocetno = 0; белгісіз ұзын odabrano = 0; белгісіз ұзын тренутно = 0; белгісіз ұзын 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); егер (poc == 0) {pocetno = millis (); адабрано = кездейсоқ (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; тон (9, 100, 100); zivoti = zivoti-1; } if (ry2> = pozicija-8 && ry2 <= pozicija+8) if (rx24) {rx2 = -50; ry2 = -50; тон (9, 100, 100); zivoti = zivoti-1; } if (ry3> = pozicija-8 && ry3 <= pozicija+8) if (rx34) {rx3 = -50; ry3 = -50; тон (9, 100, 100); zivoti = zivoti-1; } if (ry4> = pozicija-8 && ry4 <= pozicija+8) if (rx44) {rx4 = 200; ry4 = -50; ispaljeno = 0; тон (9, 100, 100); zivoti = zivoti-1; } егер (rx4 <1) {ispaljeno = 0; rx4 = 200;} if (zivoti == 0) go = 1; } if (go == 1) {if (zivoti == 0) {тон (9, 200, 300); кешіктіру (300); тон (9, 250, 200); кешіктіру (200); тон (9, 300, 300); кешіктіру (300); zivoti = 5; } display.clearDisplay (); display.setFont (); display.setTextSize (2); display.setTextColor (АҚ); display.setCursor (7, 10); display.println («ОЙЫН ӨТТІ!»); display.setTextSize (1); display.setCursor (7, 30); display.println («балл:»); display.setCursor (44, 30); display.println (bodovi); display.setCursor (7, 40); display.println («деңгей:»); display.setCursor (44, 40); display.println (nivo); display.setCursor (7, 50); display.println («уақыт (тар):»); display.setCursor (60, 50); display.println (trenutno/1000); display.display (); if (digitalRead (3) == 0) {тонус (9, 280, 300); кешіктіру (300); тон (9, 250, 200); кешіктіру (200); тон (9, 370, 300); кешіктіру (300); поново (); }}} жарамсыз ponovo () {metx = 0; мети = 0; постожи = 0; nep = 8; smjer = 0; бару = 0; rx = 95; ry = 0; rx2 = 95; ry2 = 0; rx3 = 95; ry3 = 0; bodovi = 0; брзина = 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 () {// 1.1cc сілтемесін AVcc қарсы оқу // Vcc сілтемесін және өлшеуді ішкі 1.1V анықтамасына #if анықтаңыз (_ AVR_ATmega32U4_) || анықталған (_ AVR_ATmega1280_) || анықталды (_ AVR_ATmega2560_) ADMUX = _BV (REFS0) | _BV (MUX4) | _BV (MUX3) | _BV (MUX2) | _BV (MUX1); #elif анықталды (_AVR_ATtiny24_) || анықталған (_ AVR_ATtiny44_) || анықталған (_ AVR_ATtiny84_) ADMUX = _BV (MUX5) | _BV (MUX0); #elif анықталды (_AVR_ATtiny25_) || анықталған (_ AVR_ATtiny45_) || анықталған (_ AVR_ATtiny85_) ADMUX = _BV (MUX3) | _BV (MUX2); #басқа ADMUX = _BV (REFS0) | _BV (MUX3) | _BV (MUX2) | _BV (MUX1); #endif кідірісі (2); // Vref ADCSRA | = _BV (ADSC) реттелуін күтіңіз; // Түрлендіруді бастау кезінде (bit_is_set (ADCSRA, ADSC)); // uint8_t төмен өлшеу = ADCL; // алдымен ADCL оқу керек - ол содан кейін ADCH құлыптайды uint8_t high = ADCH; // ұзақ нәтиженің екеуін де ашады = (жоғары << 8) | төмен; нәтиже = 1125300L / нәтиже; // Vcc есептеңіз (мВ); 1125300 = 1.1*1023*1000 қайтару нәтижесі; // Милливольтпен Vcc} бос дыбыс сигналы (int note, int duration) {// BuzzerPin тонындағы ойнату үні (9, нота, ұзақтығы); кідіріс (ұзақтығы); noTone (9); кешіктіру (50); }
4 -қадам: ләззат алыңыз !
Құттықтаймыз? Сіз мұны ақырында жасадыңыз, егер сізге ұнаған болса, менің youtube каналыма жазылыңыз
Ұсынылған:
RetroPie көмегімен DIY қолмен жұмыс жасайтын ойын консолі: 7 қадам

RetroPie көмегімен DIY портативті ойын консолі: Бұл жобаны жақсы түсіну үшін жоғарыдағы бейнені қараңыз. Жақсы. Сізді бастау уақыты келді! Ең алдымен, біз RetroPie қолданамыз. Бұл бізге екі нұсқа қалдырады. Егер біз Raspbian -ды SD картасына орнатқан болсақ, онда біз RetroP -ты орната аламыз
DIY Raspberry Pi Zero портативті ойын консолі: 6 қадам (суреттермен)

DIY Raspberry Pi Zero портативті ойын консолі: Бұл жобада мен сізге Raspberry Pi Zero, NiMH батареяларын, үйден асып кетуден қорғаныс тізбегін, артқы көріністі дисплей мен аудио күшейткішті қалай қолдануға болатынын көрсетемін. ретро ойындары. Бастайық
Arduino негізіндегі DIY ойын контроллері - Arduino PS2 ойын контроллері - DIY Arduino Gamepad көмегімен Tekken ойнау: 7 қадам

Arduino негізіндегі DIY ойын контроллері | Arduino PS2 ойын контроллері | DIY Arduino Gamepad көмегімен Tekken ойнау: Сәлеметсіздер ме, балалар, ойындарды ойнау әрқашан қызықты, бірақ өзіңіздің жеке DIY контроллеріңізбен ойнау қызықты, сондықтан біз осы нұсқаулықта arduino pro micro көмегімен ойын контроллерін жасаймыз
2.2 TFT көмегімен қолмен жұмыс істейтін Recalbox ойын консолі: 6 қадам

2.2 TFT қолдана отырып, портативті қалталы ойын консолі: 2.2 «TFT СКД және Raspberry Pi 0 W және GPIO түймелерін қолдана отырып, портативті ойын қорабының қолмен жұмыс жасауына арналған нұсқаулық. Сіз бұл қадамдарды толық көрсету үшін осы youtube бейнесін қарай аласыз: A. Барлық бөлшектерді алыңыз B. Бөлшектерді дәнекерлеңіз
KODI көмегімен ретро ойын консолі (N64 Mod): 7 қадам (суреттермен)

Ретро ойын консолі (N64 Mod) KODI көмегімен: Ескі мектеп консольдерінде ретро ойындарды ойнау өте қызықты, бірақ жеке консольдерді сатып алу өте қызықты және онымен бірге жүретін барлық ойындар тым ауыр және қымбат! Егер сіз колледждің/университеттің студенті болсаңыз және пәтерлерді көшіп келсеңіз айтпаған жөн