Bangun Konsol Game Tangan Arduino dengan A-Maze: Permainan Labirin Kompak yang Dapat Di-flash
Komponen dan Perlengkapan
SSD1306 OLED – 1 unit
SparkFun Arduino Pro Mini 328 - 5V/16MHz – 1 unit
SparkFun Pushbutton switch 12mm – 7 unit
Coin Cell Battery Holder – 2 unit
Slide Switch – 1 unit
prototype pcb 4x6 mm – 1 unit
Tentang Proyek Ini
Selamat datang di tutorial pertama saya!
Proyek yang ingin saya bagikan hari ini adalah permainan labirin Arduino yang menjadi konsol genggam sekapabel Arduboy dan konsol berbasis Arduino serupa. Konsol ini dapat di-flash dengan permainan masa depan saya (atau Anda) berkat header ICSP yang tersedia.
Beberapa bulan lalu saya mendapat ide untuk membuat permainan labirin pada Arduino, tanpa sekumpulan labirin yang di-hardcode. Konsol harus dapat menghasilkan labirin baru untuk setiap level yang Anda mainkan, sehingga Anda tidak akan melihat labirin yang sama lagi :)
Mengkode ini cukup menantang, karena Arduino terbatas pada memori RAM, dan kemudian saya menemukan beberapa contoh bagaimana ini dapat dilakukan dengan algoritma Bo-Taoshi sederhana.
Kode yang saya gunakan sebagai titik awal saya ambil dari SANUKI UDON dan proyeknya HOW TO MAKE A MAZE GENERATOR USING ATTINY13A.
Langkah 1: Percobaan Breadboard
Titik awal saya adalah breadboard kecil dengan hanya 4 tombol yang terhubung untuk bergerak melalui labirin, tetapi nantinya ketika saya memutuskan bahwa ini harus menjadi konsol game, saya menambahkan beberapa tombol lagi. Pada breadboard yang lebih besar Anda dapat melihat 2 tombol tambahan, dan nantinya saya menambahkan satu lagi untuk digunakan sebagai tombol mulai/pause/menu.
Langkah 2: Komponen yang Diperlukan
Arduino pro mini / Arduino Uno / chip Atmega328P
Soket DIP 28 pin (opsional)
Layar OLED SSD1306
Speaker piezo
Tombol push - 7 buah
Tempat baterai sel koin
Saklar geser
Kabel
PCB prototipe (60x40mm)
Langkah 3: Pemasangan Breadboard / Skematik
Menghubungkan komponen seperti yang ditunjukkan dalam diagram di atas.
Tombol:
Tombol UP: pin Arduino 7
Tombol DOWN: pin Arduino 6
Tombol LEFT: pin Arduino 9
Tombol RIGHT: pin Arduino 8
Tombol A: pin Arduino 5
Tombol B: pin Arduino 4
Tombol START: pin Arduino 2
Layar OLED SSD1306:
SCL: pin Arduino A5
SDA: pin Arduino A4
VCC: VCC Arduino
GND: GND Arduino
Buzzer:
Buzzer positif: pin Arduino 3
Buzzer ground: GND Arduino
Langkah 4: Kode Sumber
Kode sumber permainan A-Maze dapat ditemukan di: https://github.com/alojzjakob/A-Maze
Buka di Arduino IDE dan unggah ke papan Anda, atau gunakan programmer ISP untuk memprogram chip Anda.
Saya merekomendasikan penggunaan USBTiny ISP, belum pernah ada masalah dengannya :) tetapi Anda juga dapat menggunakan Arduino biasa untuk memprogram chip Anda.
Dalam kasus saya, saya tidak menggunakan kristal eksternal, jadi chip Atmega328p saya bekerja pada osilator internal yang berfrekuensi 8MhZ.
Untuk informasi lebih lanjut kunjungi tautan ini: https://www.arduino.cc/en/Tutorial/ArduinoToBreadboard.
Langkah 5: Lihat Dalam Aksi
Langkah 6: Kotak dan Miniaturisasi
Jika Anda ingin membuat proyek ini permanen, dengan kotak yang tampak bagus, berikut adalah kotak 3D yang dapat dicetak yang saya desain: https://www.thingiverse.com/thing:2851100
Pada gambar di atas Anda dapat melihat bagaimana semua komponen dipasang pada PCB prototipe 4x6.
Sebagian besar kabel tombol diletakkan di bawah tempat baterai, coba buat semampai mungkin, sehingga tempat baterai dapat dipasang cukup rata di atas papan dengan kabel di antaranya.
Saya juga merekomendasikan pemasangan kabel lainnya di bawah layar, karena kaki chip Atmega telah disolder dan terbuka di bawah layar. Setelah selesai solder, tempelkan beberapa isolasi pita di bawah layar untuk mencegah short circuit dan sebagainya.
Header ICSP bersifat opsional, dan jika Anda memutuskan untuk tidak mengeksposnya, itu akan membuat rangkaian Anda jauh lebih mudah, 6 koneksi lebih sedikit yang harus diperhatikan, tetapi program chip terlebih dahulu sebelum Anda solder, atau gunakan soket DIP 28 pin sehingga Anda dapat dengan mudah mencabut chip untuk pemrograman.