Სარჩევი:

წვრილმანი თამაშის კონსოლი Arduino– ს გამოყენებით: 4 ნაბიჯი
წვრილმანი თამაშის კონსოლი Arduino– ს გამოყენებით: 4 ნაბიჯი

ვიდეო: წვრილმანი თამაშის კონსოლი Arduino– ს გამოყენებით: 4 ნაბიჯი

ვიდეო: წვრილმანი თამაშის კონსოლი Arduino– ს გამოყენებით: 4 ნაბიჯი
ვიდეო: 400 თამაშის კონსოლი 2 მოთამაშისთვის იყიდება 70 ლარში 2024, ნოემბერი
Anonim
Image
Image

ამ გაკვეთილში მე ვაპირებ გაჩვენოთ, თუ როგორ შეგიძლიათ გააკეთოთ სათამაშო კონსოლი Arduino nano– ს გამოყენებით. ასე რომ, თუ გსურთ ნახოთ დეტალური ვიდეო მასზე, გადახედეთ მას ჩემს youtube არხზე

მარაგები

თუ ყიდულობთ ამ ბმულებიდან, ეს დამეხმარება უფრო მეტი პროექტის განხორციელებაში

1) ARDUINO NANO2) OLED ეკრანი 3) Push ღილაკები 4) მავთულები

ნაბიჯი 1: ყველა კომპონენტის შედუღება

ისიამოვნეთ !!!
ისიამოვნეთ !!!

ამრიგად, ყველა კომპონენტის მიღების შემდეგ თქვენ უნდა შეაერთოთ ყველა კომპონენტი, როგორც ეს ნაჩვენებია ამ სქემის დიაგრამაში

ნაბიჯი 2: მოაწყეთ ყველაფერი ნივთებში

მას შემდეგ, რაც soldering ყველაფერი მოაწყოს ყველა კომპონენტი ასე მისცეს მას ლამაზი სახე

ნაბიჯი 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, 0xFF, 0xFF, 0x00, 0x3C, 0x00, 0x3C, 0x00, 0x1F, 0xF0, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00}; const unsigned char PROGMEM ქარიშხალი = {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, 0x7F 0xFE 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, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x00, 0x00, 0x7F, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xD7, 0xFF, 0xFF, 0xE1, 0x00, 0x01 0x0x, 0xBF, 0xBF, 0xBF, 0xBF, 0xF1, 0xCF, 0xFA, 0x80, 0x01, 0x3F, 0xC2, 0x37, 0xF7, 0x80, 0x01, 0xEF, 0x9C, 0x01, 0xE7, 0xC0, 0x01, 0xE0, 0x70, 0x06, 0x06, 0x80, 0x01, 0xE0, 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, 0x1F, 0x7C, 0x03, 0xF0, 0x0F, 0xC0, 0xFC, 0x0F, 0x07, 0x90, 0x0D, 0x43, 0xC0, 0x03, 0x07, 0x90, 0x05, 0x64, 0x00, 0x00, 0xCF, 0x10, 0x07, 0xFC, 0x00, 0x00, 0x26, 0x10, 0x01, 0x80, 0x00, 0x00, 0x10, 0x20, 0x01, 0x00, 0x00, 0x00, 0x0E, 0x40, 0x01, 0x80, 0x07, 0xF0, 0x01, 0x80, 0x00, 0x80, 0x07, 0xC8, 0x00, 0x80, 0x00, 0x80, 0x0B, 0xE8, 0x00, 0x80, 0x00, 0x87, 0x97, 0xE9, 0xE0, 0x80, 0x00, 0x87, 0xDF, 0xEF, 0xA0, 0x80, 0x00, 0x4B, 0xFF, 0xFF, 0xA0, 0x80, 0x00, 0x6B, 0xDF, 0xFB, 0xA3, 0x00, 0x00, 0x24, 0x97, 0xE8, 0x24, 0x00, 0x00, 0x1E, 0x1F, 0xC0, 0x2C, 0x00, 0x00, 0x07, 0xF8, 0x1F, 0xF0, 0x00, 0x00, 0x00, 0x0F, 0xF8, 0x00, 0x00}; void setup () {pinMode (3, INPUT_PULLUP); pinMode (12, INPUT_PULLUP); pinMode (11, INPUT_PULLUP); ჩვენება. დასაწყისი (SSD1306_SWITCHCAPVCC, 0x3C); ჩვენება. ჩვენება (); display.clearDisplay (); display.setTextSize (0); display.drawBitmap (6, 11, ქარიშხალი, 48, 48, 1); display.setFont (& FreeSans9pt7b); display.setTextColor (WHITE); 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.setFont (& FreeSans9pt7b); display.setCursor (65, 39); display.println ("სიკვდილი"); display.setFont (); display.setCursor (65, 42); display.println ("ვარსკვლავი"); display.setTextSize (0); display.setCursor (65, 55); ჩვენება. ბეჭდვა ("VRAJ"); display.setCursor (65, 20); ჩვენება. ჩვენება (); 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 ბოდოვი = 0; int brzina = 3; // ტყვიის სიჩქარე int bkugle = 1; int najmanja = 600; int najveca = 1200; int promjer = 10; int rx4 = 95; int ry4 = 0; int ზივოტი = 5; int poc = 0; int ispaljeno = 0; int nivo = 1; int centar = 95; ხელმოუწერელი გრძელი პოკეტო = 0; ხელმოუწერელი გრძელი ოდაბრანო = 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); if (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;} სხვა {nep = nep-bkugle;} if (nep> = (64-promjer)) smjer = 1; თუ (nep = nep-promjer && mety (centar-promjer) && metx = pozicija-8 && ry <= pozicija+8) if (rx4) {rx = 95; ry = -50; ტონი (9, 100, 100); ზივოტი = ზივოტი -1; } if (ry2> = pozicija-8 && ry2 <= pozicija+8) if (rx24) {rx2 = -50; ry2 = -50; ტონი (9, 100, 100); ზივოტი = ზივოტი -1; } if (ry3> = pozicija-8 && ry3 <= pozicija+8) if (rx34) {rx3 = -50; ry3 = -50; ტონი (9, 100, 100); ზივოტი = ზივოტი -1; } if (ry4> = pozicija-8 && ry4 <= pozicija+8) if (rx44) {rx4 = 200; ry4 = -50; ისპალენო = 0; ტონი (9, 100, 100); ზივოტი = ზივოტი -1; } if (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); ზივოტი = 5; } display.clearDisplay (); display.setFont (); display.setTextSize (2); display.setTextColor (WHITE); display.setCursor (7, 10); display.println ("GAME OVER!"); display.setTextSize (1); display.setCursor (7, 30); display.println ("ანგარიში:"); display.setCursor (44, 30); ჩვენება. ბეჭდვა (ბოდოვი); display.setCursor (7, 40); display.println ("დონე:"); display.setCursor (44, 40); ჩვენება. ბეჭდვა (nivo); display.setCursor (7, 50); display.println ("დრო (ები):"); display.setCursor (60, 50); ჩვენება. ბეჭდვა (trenutno/1000); ჩვენება. ჩვენება (); if (digitalRead (3) == 0) {ტონი (9, 280, 300); დაგვიანება (300); ტონი (9, 250, 200); დაგვიანება (200); ტონი (9, 370, 300); დაგვიანება (300); პონოვო (); }}} void ponovo () {metx = 0; mety = 0; postoji = 0; nep = 8; smjer = 0; წადი = 0; rx = 95; ry = 0; rx2 = 95; ry2 = 0; rx3 = 95; ry3 = 0; ბოდოვი = 0; brzina = 3; // brizna neprijateljevog metka bkugle = 1; ნაჯმანჯა = 600; ნაჯვეკა = 1200; პრომჯერი = 12; rx4 = 95; ry4 = 0; ზივოტი = 5; poc = 0; ისპალენო = 0; nivo = 1; პოჩეტნო = 0; ოდაბრანო = 0; ტრენუტნო = 0; nivovrije = 0; } long readVcc () {// წაიკითხეთ 1.1V მითითება AVcc– ს წინააღმდეგ // დააყენეთ მითითება Vcc– ზე და გაზომვა შიდა 1.1V მითითებაზე #განსაზღვრული (_ AVR_ATmega32U4_) || განსაზღვრული (_ AVR_ATmega1280_) || განსაზღვრული (_ AVR_ATmega2560_) ADMUX = _BV (REFS0) | _BV (MUX4) | _BV (MUX3) | _BV (MUX2) | _BV (MUX1); #lif განსაზღვრულია (_AVR_ATtiny24_) || განსაზღვრული (_ AVR_ATtiny44_) || განსაზღვრული (_ AVR_ATtiny84_) ADMUX = _BV (MUX5) | _BV (MUX0); #lif განსაზღვრულია (_AVR_ATtiny25_) || განსაზღვრული (_ AVR_ATtiny45_) || განსაზღვრული (_ AVR_ATtiny85_) ADMUX = _BV (MUX3) | _BV (MUX2); #სხვა ADMUX = _BV (REFS0) | _BV (MUX3) | _BV (MUX2) | _BV (MUX1); #ენდიფის დაყოვნება (2); // დაელოდეთ სანამ Vref მოაგვარებს ADCSRA | = _BV (ADSC); // კონვერტაციის დაწყება სანამ (bit_is_set (ADCSRA, ADSC)); // საზომი uint8_t დაბალი = ADCL; // ჯერ უნდა წაიკითხოთ ADCL - ის შემდეგ იკეტება ADCH uint8_t მაღალი = ADCH; // გახსნის ორივე ხანგრძლივ შედეგს = (მაღალი << 8) | დაბალი; შედეგი = 1125300L / შედეგი; // გამოთვალეთ Vcc (mV); 1125300 = 1.1*1023*1000 დაბრუნების შედეგი; // Vcc მილივოლტებში} ბათილი სიგნალი (int შენიშვნა, int ხანგრძლივობა) {// ტონის დაკვრა ზუმზე PIN ტონზე (9, შენიშვნა, ხანგრძლივობა); დაგვიანება (ხანგრძლივობა); noTone (9); დაგვიანება (50); }

ნაბიჯი 4: ისიამოვნეთ !

გილოცავთ? თქვენ საბოლოოდ მოახერხეთ ასე თუ მოგეწონათ მაშინ გამოიწერეთ ჩემი youtube არხი

გირჩევთ: