Konsol Game Arduino Portabel - Bagian 1 - Endless Runner
Ringkasan Proyek
Buat konsol game Arduino portabel dengan LCD 16x2 dan 2 tombol, lalu mainkan game Endless Runner lengkap dengan musik latar dan efek suara. Proyek ini cocok untuk belajar merakit hardware, memakai library Arduino, dan memodifikasi game buatanmu sendiri.
Bahan & Komponen
Daftar perangkat keras, modul, dan tools yang dibutuhkan untuk merakit proyek ini.
Daftar Komponen & Perangkat Keras
- 1x Arduino Uno Rev3 (Mikrokontroler pemroses utama game)
- 1x ProtoStax Enclosure for Arduino (Casing modular agar konsol portabel dan rapi)
- 1x ProtoStax LCD Kit V2 (Top plate dengan lubang pemasangan, sudah termasuk modul LCD 16x2 I2C)
- 1x ProtoStax Kit for Momentary Push Button Switches (Berisi 2 tombol push button panel-mount)
- Piezo buzzer TDK PS1240 (Speaker untuk musik latar dan efek suara; tutorial menggunakan 2 buah piezo, satu untuk musik dan satu untuk efek suara)
- 1x Kabel Jumper Male/Female (Penghubung antar komponen)
Software & Library
- Arduino IDE (Untuk menulis dan meng-upload program)
- Library ProtoStax_MmlMusicPlayer (Memutar musik dan efek suara di latar belakang)
- Library MmlMusic (Library dasar yang dibutuhkan ProtoStax_MmlMusicPlayer)
- Library JC_Button (Membaca penekanan tombol)
- Library LiquidCrystal_I2C (Mengontrol layar LCD lewat I2C)
Alat
- Solder (soldering iron) dan kawat solder bebas timbal (Menyolder kabel jumper ke tombol push button dan merakit piezo di proto board)
Langkah Pembuatan
Khusus MemberPanduan perakitan tahap demi tahap dan catatan proses pengerjaan.
Halo, calon game developer! Di proyek ini kamu akan membuat konsol game portabel berbasis Arduino. Gamenya bertipe Endless Runner, seperti Temple Run, Jetpack Joyride, Canabalt, atau Flappy Bird. Tokoh pelarimu harus melompati pohon-pohon di hutan, ditemani musik latar dan efek suara. Game ini dikembangkan dari kode Endless Runner buatan Joshua Brooks, lalu ditambah musik latar, efek suara, pencatatan skor tertinggi, dan pilihan musik yang bisa diganti saat bermain.

Langkah 1: Siapkan Hardware
Pembuat proyek memakai sistem casing modular ProtoStax agar konsol game ini portabel dan semua komponen (Arduino Uno, layar LCD, tombol, dan piezo) berada di dalam satu kotak. Urutan perakitannya:
- Mulai dari ProtoStax Enclosure for Arduino.
- Ganti Top Plate dengan ProtoStax LCD Kit V2, yang punya lubang dan dudukan untuk modul LCD I2C.
- Ganti salah satu dinding sisi pendek dengan ProtoStax Kit for Momentary Push Button Switches, yang berisi dua tombol push button panel-mount.
- Hubungkan semua komponen dengan kabel jumper sesuai diagram rangkaian pada bagian Skema Rangkaian.
- Solder kabel jumper ke kedua tombol push button.
- Pasang kedua piezo pada potongan kecil proto board supaya posisinya stabil, karena kaki kabel piezo sangat lentur.
- Pin ground (GND) dibagi bersama oleh kedua piezo dan kedua tombol, sehingga jumlah kabel ke Arduino lebih sedikit.
- Sebelum menutup casing, putar potensiometer pada modul LCD untuk mengatur kontras layar sampai tampilan terlihat paling jelas.
Video tutorial perakitan kotak game tersedia di halaman asli proyek di Hackster.io ("ProtoStax Portable Arduino Game Boy - Build an endless runner game w/ background music & sound FX").
Langkah 2: Siapkan Software
Kamu bisa memakai sketch contoh dari halaman GitHub proyek ini. Halaman itu juga berisi petunjuk cara menjalankannya. Sketch memakai library berikut, jadi pastikan semuanya sudah terpasang di Arduino IDE:
- ProtoStax_MmlMusicPlayer
- MmlMusic (library dasar yang diperluas oleh ProtoStax_MmlMusicPlayer)
- JC_Button (untuk membaca tombol)
- LiquidCrystal_I2C (untuk layar LCD)
Library JC_Button dan LiquidCrystal_I2C dipasang lewat Arduino IDE: Sketch > Include Library > Manage Libraries. Library MmlMusic dan ProtoStax_MmlMusicPlayer dipasang dari GitHub.
Langkah 3: Menjalankan Game
Compile dan upload sketch ke konsol Arduino-mu, lalu mainkan dengan cara berikut:
- Button1 (tombol yang lebih dekat denganmu, terhubung ke pin 2 Arduino) dipakai untuk memulai game. Saat game berjalan, tombol ini membuat pelari melompat melewati rintangan.
- Button2 (tombol yang lebih jauh, terhubung ke pin 3 Arduino) dipakai untuk mengganti musik latar antara tema Harry Potter, Game of Thrones, dan Legend of Zelda.
- Efek suara akan terdengar saat pelari melompat dan saat pelari menabrak rintangan.
- Game berlanjut sampai pelari menabrak rintangan. Poin diberikan berdasarkan jarak tempuh.
- Skor tertinggi (high score) dicatat dan ditampilkan di layar. Musik latar diputar berulang selama kamu bermain.
Jika kontras layar belum pas, buka top plate ProtoStax untuk mengakses modul LCD dan potensiometernya, atur ulang, lalu tutup kembali.
Pendalaman: Music Macro Language (MML) dan ProtoStax_MmlMusicPlayer
Proyek ini memakai library ProtoStax_MmlMusicPlayer untuk memutar suara dan musik di Arduino. Kamu bisa menulis satu lagu utuh sebagai string dalam sintaks MML (Music Macro Language). Contohnya skor tema Harry Potter ada di bagian Kode Program.
- T144 menentukan tempo, dan O6 menentukan oktaf.
- Nada ditulis dengan huruf C, D, E, F, G, A, B, diikuti durasinya, misalnya C8 (not seperdelapan) atau D4 (not seperempat).
- Jeda (rest) ditulis r2 atau r4, dan not bertitik ditulis C.2 (not setengah bertitik).
- Tanda > dan < menaikkan atau menurunkan satu oktaf.
- Seluruh lagu diputar di latar belakang tanpa memblokir program, sehingga fungsi loop() utama tetap bisa mengurus tombol dan jalannya game.
Kamu bisa membuat beberapa instance ProtoStax_MmlMusicPlayer sekaligus, dibatasi jumlah Timer yang tersedia. Arduino Uno punya dua Timer yang bisa dipakai, jadi konsol ini memakai dua instance. Instance pertama memutar musik latar, dan instance kedua memutar efek suara seperti suara lompat atau suara "uh-oh" saat menabrak rintangan.
Modifikasi dari Game Engine Endless Runner Joshua Brooks
Mesin game dasarnya tetap sama dengan kode aslinya, tetapi ada beberapa tambahan:
- Sprite baru. Sprite pelari dan medan dibuat ulang dengan LCD Custom Character Generator. Ada 7 sprite: Run Position 1, Run Position 2, Jump, Jump Lower, Obstacle, Obstacle Left, dan Obstacle Right. Pelarinya digambar memegang tongkat sihir kecil seperti Harry Potter, dan rintangannya berupa pohon seperti di Forbidden Forest.
- Musik latar. Ada 3 pilihan lagu (Harry Potter, Game of Thrones, Legend of Zelda). Setiap penekanan Button2 saat bermain berpindah ke lagu berikutnya.
- Efek suara saat game dimulai, pelari melompat, dan pelari menabrak rintangan.
- High score dicatat dan ditampilkan di layar saat permainan berakhir.
- "God Mode". Jika ingin curang, aktifkan PIN_AUTOPLAY agar game berjalan otomatis.

Langkah Lanjutan: Kembangkan Proyekmu!
Setelah paham kode contohnya, coba tantang dirimu dengan ide-ide berikut:
- Buat sprite sendiri dengan LCD Custom Character Generator untuk membuat variasi tema game.
- Buat musik latar dan efek suara sendiri dengan menulis string MML baru.
- Tambahkan efek suara saat mencapai high score. Saat bermain pakai efek singkat supaya tidak mengganggu, dan setelah game selesai pakai musik perayaan yang lebih panjang.
- Tampilkan banner ucapan selamat beserta musik perayaan saat high score terlampaui.
- Izinkan pemain memasukkan nama saat meraih high score, lalu buat daftar skor tertinggi beserta nama pemain.
- Gunakan Button2 untuk membuka menu pengaturan atau high score sebelum game mulai, misalnya untuk memilih musik dan pengaturan efek suara.
- Buat game lain seperti Flappy Bird yang memakai dua tombol untuk mengontrol gerakan naik dan turun.
- Gunakan Button2 (atau beberapa kali penekanan Button2) untuk mengaktifkan "God Mode" auto play.
Bagikan foto atau video hasil karyamu di media sosial dengan tagar #ProtoStaxGameBoy dan #ProtoStax. Selamat berkarya!
Kredit: kode game dasar oleh Joshua Brooks; library MmlMusic oleh Maxint R&D; JC_Button oleh Jack Christensen; LiquidCrystal_I2C oleh John Rickman, Marco Schwartz, dan Frank de Brabander; LCD Character Creator oleh Max Promer.
Buka Seluruh Panduan, Skema & Source Code
Dapatkan akses penuh ke langkah perakitan detail, diagram sirkuit lengkap, dan source code siap pakai. Gratis selamanya!
