Daftar Isi:
- Perlengkapan
- Langkah 1: Menyolder Semua Komponen
- Langkah 2: Atur Semua Hal di Tempat
- Langkah 3: Pemrograman
- Langkah 4: Nikmati!
Video: Konsol Game DIY Menggunakan Arduino: 4 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:54
Dalam tutorial ini saya akan menunjukkan kepada Anda bagaimana Anda bisa membuat konsol game menggunakan Arduino nano. Jadi jika Anda ingin melihat video detailnya, lihat di saluran youtube saya
Perlengkapan
Jika Anda membeli dari tautan ini, itu akan membantu saya memberi Anda lebih banyak proyek
1) ARDUINO NANO2) TAMPILAN OLED3) TOMBOL PUSH4) KABEL
Langkah 1: Menyolder Semua Komponen
Jadi, setelah mendapatkan semua komponen Anda harus menyolder semua komponen seperti yang ditunjukkan pada diagram rangkaian ini
Langkah 2: Atur Semua Hal di Tempat
Setelah menyolder semuanya atur semua komponen seperti ini agar terlihat bagus
Langkah 3: Pemrograman
Jadi, akhirnya setelah mengikuti semua langkah dengan benar saatnya untuk mengunggah kode di bawah ini ke Arduino
#termasuk
#include #include #include #include //#include #define OLED_RESET 4 Adafruit_SSD1306 display(OLED_RESET); const int c = 261; konstanta int d = 294; const int e = 329; const int f = 349; konstanta int g = 391; const int gS = 415; konstanta int = 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; konstanta 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, 0x1F, 0xF0, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00 }; const unsigned char PROGMEM badai = { 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, 0x30, 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, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xD7, 0xFF, 0xFF, 0xE1, 0x00, 0x01, 0xBF, 0xFC, 0x1F, 0xF, 0xBF, 0xF1, 0xCF, 0xFA, 0x80, 0x01, 0x3F, 0xC2, 0x37, 0xF7, 0x80, 0x01, 0xEF, 0x9C, 0x01, 0xE7, 0xC0, 0x01, 0xE0, 0x70, 0x06, 0x001, 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 0xF0, 0x0F, 0xC0, 0xFC, 0x0F, 0x07, 0x90, 0x0D, 0x43, 0xC0, 0x03, 0x07, 0x90, 0x05, 0x64, 0x00, 0x00, 0xCF, 0x10, 0x07, 0xFC, 0x00, 0x00, 0x 0x01, 0x80, 0x00, 0x00, 0x10, 0x20, 0x01, 0x00, 0x00, 0x00, 0x0E, 0x40, 0x01, 0x80, 0x07, 0xF0, 0x01, 0x80, 0x00, 0x80, 0x07, 0xC8, 0x00, 0x80 0x80, 0x0B, 0xE8, 0x00, 0x80, 0x00, 0x87, 0x97, 0xE9, 0xE0, 0x80, 0x00, 0x87, 0xDF, 0xEF, 0xA0, 0x80, 0x00, 0x4B, 0xFF, 0xFF, 0xA00, 0x80, 0x80 0xDF, 0xFB, 0xA3, 0x00, 0x00, 0x24, 0x97, 0xE8, 0x24, 0x00, 0x00, 0x1E, 0x1F, 0xC0, 0x2C, 0x00, 0x00, 0x07, 0xF8, 0x1F, 0xF00, 0x00, 0x 0xF8, 0x00, 0x00 }; void setup() { pinMode(3, INPUT_PULLUP); pinMode (12, INPUT_PULLUP); pinMode(11, INPUT_PULLUP); display.begin(SSD1306_SWITCHCAPVCC, 0x3C); tampilan.tampilan(); tampilan.clearDisplay(); tampilan.setTextSize(0); display.drawBitmap(6, 11, badai, 48, 48, 1); display.setFont(&FreeSans9pt7b); display.setTextColor(PUTIH); display.setCursor(65, 14); display.println("xWing"); tampilan.setFont(); display.setCursor(65, 17); tampilan.setTextSize(0); display.println("vs"); display.setCursor(0, 0); float voltaza=bacaVcc()/1000; display.println(voltaza);; display.setFont(&FreeSans9pt7b); display.setCursor(65, 39); display.println("Kematian"); tampilan.setFont(); display.setCursor(65, 42); display.println("bintang"); tampilan.setTextSize(0); display.setCursor(65, 55); display.println("oleh VRAJ"); display.setCursor(65, 20); tampilan.tampilan(); tampilan.setFont(); bip(a, 500); bip(a, 500); bip(a, 500); bip(f, 350); bip(ch, 150); bip(a, 500); bip(f, 350); bip(ch, 150); bip(a, 650); penundaan (500); penundaan (500); } int metx=0; int mety=0; int postoji=0; int nep=8; int smjer=0; int pergi=0; intrx=95; int ry=0; int rx2=95; int ry2=0; int rx3=95; int ry3=0; int bodovi=0; int brzina=3; //kecepatan peluru 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 panjang yang tidak ditandatangani=0; odabrano panjang tanpa tanda=0; trenutno panjang yang tidak ditandatangani=0; nivovrije panjang yang tidak ditandatangani=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=milis(); odabrano= acak(400, 1200); poc=1; } trenutno=milis(); //nivoi jika((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) { tampilan.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; nada (9, 100, 100); zivoti=zivoti-1; } if(ry2>=pozicija-8 && ry2<=pozicija+8) if(rx24) { rx2=-50; ry2=-50; nada (9, 100, 100); zivoti=zivoti-1; } if(ry3>=pozicija-8 && ry3<=pozicija+8) if(rx34) { rx3=-50; ry3=-50; nada (9, 100, 100); zivoti=zivoti-1; } if(ry4>=pozicija-8 && ry4<=pozicija+8) if(rx44) { rx4=200; ry4=-50; ispaljeno=0; nada (9, 100, 100); zivoti=zivoti-1; } if(rx4<1){ ispaljeno=0; rx4=200;} jika(zivoti==0) pergi=1; } jika(pergi==1) { jika(zivoti==0){ nada(9, 200, 300); penundaan (300); nada (9, 250, 200); penundaan (200); nada (9, 300, 300); penundaan (300); zivoti=5; } tampilan.clearDisplay(); tampilan.setFont(); display.setTextSize(2); display.setTextColor(PUTIH); display.setCursor(7, 10); display.println("PERMAINAN SELESAI!"); display.setTextSize(1); display.setCursor(7, 30); display.println("nilai:"); display.setCursor(44, 30); display.println(bodovi); display.setCursor(7, 40); display.println("tingkat:"); display.setCursor(44, 40); tampilan.println(nivo); display.setCursor(7, 50); display.println("waktu:"); display.setCursor(60, 50); display.println(trenutno/1000); tampilan.tampilan(); if(digitalRead(3)==0) { tone(9, 280, 300); penundaan (300); nada (9, 250, 200); penundaan (200); nada (9, 370, 300); penundaan (300); ponovo(); } } } batal ponovo() { metx=0; mety=0; postoji=0; nep=8; smjer=0; pergi=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() { // Baca referensi 1.1V terhadap AVcc // setel referensi ke Vcc dan pengukuran ke referensi 1.1V internal #jika didefinisikan(_AVR_ATmega32U4_) || didefinisikan(_AVR_ATmega1280_) || didefinisikan(_AVR_ATmega2560_) ADMUX = _BV(REFS0) | _BV(MUX4) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1); #elif didefinisikan (_AVR_ATtiny24_) || didefinisikan(_AVR_ATtiny44_) || didefinisikan(_AVR_ATtiny84_) ADMUX = _BV(MUX5) | _BV(MUX0); #elif didefinisikan (_AVR_ATtiny25_) || didefinisikan(_AVR_ATtiny45_) || didefinisikan(_AVR_ATtiny85_) ADMUX = _BV(MUX3) | _BV(MUX2); #else ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1); #endif penundaan (2); // Tunggu Vref untuk menyelesaikan ADCSRA |= _BV(ADSC); // Mulai konversi while (bit_is_set(ADCSRA, ADSC)); // mengukur uint8_t rendah = ADCL; // harus membaca ADCL terlebih dahulu - kemudian mengunci ADCH uint8_t high = ADCH; // membuka kedua hasil panjang = (tinggi<<8) | rendah; hasil = 1125300L / hasil; // Hitung Vcc (dalam mV); 1125300 = 1,1*1023*1000 hasil pengembalian; // Vcc dalam milivolt } void beep(not note, int duration) { //Memutar nada pada nada buzzerPin (9, note, durasi); penundaan (durasi); tidakNada(9); penundaan(50); }
Langkah 4: Nikmati!
Selamat ? Anda akhirnya berhasil jadi jika Anda menyukainya maka berlangganan saluran youtube saya
Direkomendasikan:
Konsol Game Genggam DIY Menggunakan RetroPie: 7 Langkah
Konsol Game Genggam DIY Menggunakan RetroPie: Tonton video di atas untuk memahami proyek ini dengan lebih baik. Bagus. Saatnya Anda memulai! Pertama-tama, kita akan menggunakan RetroPie. Ini meninggalkan kita dengan dua pilihan. Jika kita sudah menginstal Raspbian di kartu SD kita, maka kita bisa menginstal RetroP
Konsol Game Genggam Raspberry Pi Zero DIY: 6 Langkah (dengan Gambar)
Konsol Game Genggam Raspberry Pi Zero DIY: Dalam proyek ini saya akan menunjukkan kepada Anda bagaimana saya menggunakan Raspberry Pi Zero, baterai NiMH, sirkuit perlindungan over-discharge buatan sendiri, lcd spion dan audio amp untuk membuat konsol game genggam yang dapat dimainkan permainan retro. Mari kita mulai
Buat Konsol Game Menggunakan Raspberry Pi!: 6 Langkah
Buat Konsol Game Menggunakan Raspberry Pi Anda!: Apakah Anda ingin bermain game retro tanpa membayar konsol lama yang mahal? Anda dapat melakukannya dengan Raspberry Pi. Raspberry Pi adalah "komputer seukuran kartu kredit" yang mampu melakukan banyak hal keren. Ada banyak jenis yang berbeda
Konsol Game Recalbox Genggam Menggunakan 2.2 TFT: 6 Langkah
Konsol Game Recalbox Genggam Menggunakan 2.2 TFT: Petunjuk untuk DIY konsol game recalbox genggam menggunakan LCD TFT 2.2" dan tombol Raspberry Pi 0 W dan GPIO. Anda dapat melihat video youtube ini untuk demonstrasi lengkap langkah-langkah yang terlibat: A. Dapatkan semua bagiannya.B. Solder bagian-bagian itu bersama-sama
Konsol Game Mini Ardubaby Dengan 500 Game: 10 Langkah
Konsol Game Mini Ardubaby Dengan 500 Game: Penghargaan untuk pencipta (Kevin Bates), Arduboy adalah konsol game 8 bit yang sangat sukses. Ada ribuan game yang ditulis oleh penghobi yang membagikannya secara bebas di forum komunitas Arduboy sehingga lebih banyak orang dapat belajar coding. Cara