Minggu, 07 Desember 2025

PROTOTYPING GAME DINO T-REX MENGGUNAKAN ARDUINO UNO DAN OLED DISPLAY PADA SIMULATOR WOKWI

LAPORAN PRAKTIKUM PROTOTYPING GAME DINO T-REX MENGGUNAKAN ARDUINO UNO DAN OLED DISPLAY PADA SIMULATOR WOKWI


Disusun Oleh:

Rihhadatul Aisyikin Mardhiyyah     (25051204042)
Raffles Adaby Ihwan                        (25051204090)
Muchammad Agung Nugroho         (25051204164)
Rivana Adinda Putri                         (25051204185)



BAB I
PENDAHULUAN

1.1 Latar Belakang

Perkembangan pesat dalam bidang teknologi embedded system dan mikrokontroler telah membuka peluang luas untuk menciptakan aplikasi interaktif yang kompleks. Dalam proyek ini, Arduino Uno dipilih sebagai platform kendali utama, kemudahan pemrograman yang menjadikannya pilihan yang baik untuk tujuan edukasi maupun pengembangan cepat. Di sisi visual, OLED Display dipilih karena kemampuannya menawarkan kontras tinggi, respons cepat, dan efisiensi daya untuk menampilkan grafis yang jernih dalam game development skala mikro.

Game Dino T-Rex dipilih karena kesederhanaan mekanika permainannya yang menguji kemampuan pemrosesan real time mikrokontroler, mencakup logika lompatan, rintangan acak, dan deteksi tabrakan. Pengembangan proyek ini dilakukan sepenuhnya pada Simulator Wokwi, penggunaan Simulator Wokwi sangat krusial karena ia menyediakan lingkungan virtual yang akurat untuk simulasi hardware Arduino. Hal ini memungkinkan pengembang untuk melakukan debugging dan validasi logika program secara intensif sebelum melibatkan risiko dan biaya untuk hardware fisik. Dengan demikian, proyek ini bertujuan untuk mengintegrasikan seluruh elemen software dan hardware virtual secara efisien serta menghasilkan prototipe game Dino T-Rex yang fungsional.

1.2 Rumusan Masalah

Berdasarkan latar belakang, rumusan masalah dalam praktikum ini adalah:

  1. Bagaimana merancang logika game loop Dino T-Rex, termasuk dari gerakan, lompatan, dan pergerakan rintangan acak, menggunakan resource terbatas pada Arduino Uno?
  2. Bagaimana cara mengimplementasikan komunikasi I2C antara Arduino Uno dan OLED Display (SSD1306) dalam lingkungan simulasi Wokwi?

1.3 Tujuan Laporan

Tujuan dari laporan praktikum ini adalah untuk menjelaskan tahap-tahap konfigurasi dan wiring komponen virtual (Arduino Uno, OLED Display, dan Push Button) pada Simulator Wokwi. Selain itu, laporan ini bertujuan untuk mendokumentasikan kode program dan algoritma yang digunakan untuk menerapkan logika game Dino T-Rex. Terakhir, laporan ini juga berfungsi untuk menyajikan hasil pengujian fungsionalitas game yang mencakup fungsi lompatan, pergerakan rintangan acak, dan deteksi tabrakan.

1.4 Manfaat Penelitian

Manfaat dan penyusunan laporan ini meliputi:

  1. Sebagai sarana untuk menerapkan konsep pemrograman embedded, grafis berbasis piksel dan protokol komunikasi I2C secara praktis dan mudah dipahami.
  2. Memberikan contoh implementasi logika game development sederhana pada platform mikrokontroler berdaya rendah.
  3. Menunjukkan efektivitas penggunaan Simulator Wokwi sebagai alat prototyping yang cepat dan efisien untuk meminimalkan risiko kerusakan komponen dan menghemat biaya dari hardware fisik.




BAB II
TINJAUAN PUSTAKA

2.1 Dasar Teori

Proyek ini merupakan replika dari permainan populer yang ada pada aplikasi Google Chrome yaitu "Dino Run" yang biasanya akan muncul ketika kita sebagai pengguna tidak terhubung dengan koneksi Internet. Landasan teori pada proyek ini berpusat pada integrasi mikrokontroler dengan berbagai komponen input dan output (I/O) untuk menciptakan sistem permainan elektronik yang cukup sederhana.

Konsep Dasar:

1. Mikrokontroler sebagai Otak Sistem

Menggunakan Arduino Uno sebagai pemrosesan utama yang bertugas sebagai Unit Pemroses Utama (CPU) dari sistem permainan. Arduino Uno didasarkan pada chip ATmega328P, sebuah mikrokontroler 8-bit dari keluarga Atmel.

Fungsi Utama:

  • Logika Permainan (Game Logic): Menjalankan algoritma permainan seperti pergerakan karakter (Dino), spawning rintangan (kaktus), dan perhitungan skor.
  • Deteksi Tabrakan (Collision Detection): Memeriksa secara berkala apakah koordinat karakter dan rintangan tumpang tindih, yang memicu kondisi Game Over.
  • Pengelolaan I/O: Mengatur komunikasi data dengan semua komponen input (tombol) dan output (display, buzzer) melalui pin Digital dan Analog.

2. Sistem Tertanam

Sistem tertanam adalah sistem komputer dengan fungsi spesifik dalam sebuah perangkat mekanik atau elektronik yang lebih besar. Proyek ini mengimplementasikan sistem tertanam yang sederhana.

Prinsip kerjanya perangkat lunak (kode C/C++ pada Arduino IDE) diunggah ke memori flash mikrokontroler. Program ini berjalan secara looping tanpa henti, secara real-time mengumpulkan input (tombol), memproses logika, dan memberikan output (pembaruan grafis dan suara).

3. Implementasi Perangkat Lunak

Mengimplementasikan perangkat lunak (program Arduino) untuk mengontrol perangkat keras seperti display, tombol, buzzer secara real time.

4. Prinsip Kerja I/O

Memanfaatkan komponen I/O untuk interaksi pengguna:

  • Input: Tombol push button digunakan sebagai input aksi "Lompat" untuk karakter.
  • Output: OLED Display berfungsi sebagai antarmuka visual utama untuk menampilkan grafis permainan, sementara 7-Segment Display didedikasikan untuk menampilkan skor permainan, dan Buzzer memberikan feedback suara seperti ketika game over atau naik level.
5. Simulasi Perangkat Keras

Penggunaan WOKWI Simulator adalah tahapan penting dalam pengembangan, menawarkan keunggulan signifikan dibandingkan pengujian langsung pada perangkat keras fisik. Keuntungan utamanya adalah pengembangan cepat dan debugging kode real-time yang aman. WOKWI juga meningkatkan aksesibilitas dengan memfasilitasi perancangan sirkuit (wiring) dan pengujian logika I/O dalam lingkungan virtual. Platform simulasi ini mendukung berbagai komponen mikrokontroler dan sensor, menjadikannya landasan yang kuat untuk pengembangan fitur permainan di masa depan.

2.2 Komponen

Mikrokontroler

Sebagai otak sistem, digunakan Arduino Uno yang ditenagai oleh chip ATmega328P. Fungsinya adalah sebagai pusat pemrosesan utama yang menjalankan semua logika permainan seperti manajemen posisi Dino, spawning rintangan, perhitungan skor, dan pengelolaan sinyal Input/Output (I/O). Mikrokontroler ini berkomunikasi dengan komponen lain menggunakan protokol Digital/Analog I/O.

Output Visual (Display)

Sistem ini menggunakan dua jenis display dengan fungsi terpisah untuk optimasi. OLED 128x64 berfungsi sebagai Display Grafis utama. Komponen ini menampilkan visual permainan, termasuk karakter Dino, rintangan kaktus, dan latar belakang yang bergerak. Komunikasi data sering menggunakan protokol serial efisien seperti I2C dan SPI. Kedua, 7-Segment Display didedikasikan sebagai Display Skor. Komponen ini secara spesifik bertugas menampilkan perolehan poin atau skor permainan dalam bentuk angka digital, yang dapat dikontrol menggunakan teknik multiplexing atau shift register untuk menghemat pin Arduino.

Input Pengguna dan Output Audio

Interaksi pengguna diatur melalui sebuah Push Button yang berfungsi sebagai Input Pengguna. Komponen ini memicu aksi tunggal "Lompat" pada karakter Dino melalui sinyal Digital Input yang terdeteksi oleh mikrokontroler. Untuk memberikan feedback non-visual, digunakan Buzzer (Piezoelektrik) sebagai Output Suara. Buzzer ini memberikan sinyal audio untuk momen penting dalam permainan, seperti efek suara lompatan atau indikasi Game Over, umumnya dikontrol menggunakan Digital Output (PWM) untuk menghasilkan nada yang bervariasi.

Program (Software)

Implementasi perangkat lunak membutuhkan kode utama dan beberapa library supaya bisa mengontrol komponen yang cukup kompleks.

File Program dan Library:

  • Kode Utama (.ino): Berisi logika utama permainan berupa Dino, kaktus, game over dan lain lain.
  • Library 7-Segment (TM1637): Terdiri dari file .cpp dan .h untuk mengontrol tampilan skor pada 7-Segment Display.
  • Library U8G2: Library grafis yang digunakan untuk menginisialisasi dan menggambar objek dino, kaktus, dan teks pada OLED Display.

Mekanisme Program:

  • Inisialisasi: Program melakukan pengaturan awal pada pin I/O dan library, termasuk untuk menampilkan pesan Sambutan berupa "Alvian Center welcome to do push to begin".
  • Loop Permainan: Program terus berjalan, di mana karakter dino secara otomatis berlari, dan tombol ditekan untuk memicu fungsi lompatan.
  • Deteksi Tabrakan: Jika dino menyentuh rintangan seperti kaktus, kondisi game off dipicu, lalu kemudian permainan akan berakhir.
  • Perhitungan Skor: Skor akan ditampilkan di 7-Segment Display, kecepatan permainan akan meningkat setiap mencapai kelipatan 100 poin.
  • Suara: Buzzer akan diaktifkan untuk mengeluarkan suara, misalnya saat game over atau ketika naik level.




BAB III
PEMBAHASAN

3.1 Alat dan Bahan

Alat (Tools / Platform)

  1. Komputer/Laptop: digunakan untuk menjalankan simulator dan untuk menulis kode.
  2. Koneksi Internet: diperlukan karena proyek dikerjakan pada simulator online.
  3. WOKWI Simulator: Platform simulasi online tempat perancangan dan penulisan kode dilakukan.

Bahan (Komponen Elektronika & Perangkat Lunak)

  1. Arduino Uno: memiliki fungsi utama sebagai Mikrokontroler Utama.
  2. 7-Segment Display (TM1637): berfungsi sebagai layar penampil skor.
  3. OLED Display (SH1107/SSD1306): Layar utama untuk menampilkan grafis game.
  4. Push Button: Tombol input untuk aksi lompat pada dino.
  5. Buzzer: Komponen output untuk efek suara.
  6. Kabel Jumper: Digunakan untuk menghubungkan semua komponen secara virtual di WOKWI atau fisik.
  7. Kode Program Arduino: Sebagai Skrip utama permainan dino.
  8. Library U8G2: Untuk Mengontrol fungsi grafis OLED Display.
  9. Library TM1637: Diperlukan untuk mengontrol fungsi 7-Segment Display.

3.2 Langkah-Langkah

Langkah-Langkah Tutorial Pembuatan Game Dino:

Persiapan Platform Simulator

  • Buka Simulator WOKWI: Buka browser Anda dan ketikkan alamat WOKWI. Pilih hasil pencarian yang paling atas.
  • Pilih Mikrokontroler: Di dasbor WOKWI, pilih mikrokontroler Arduino Uno untuk memulai proyek.
1. Penambahan Komponen (Wiring)
  • OLED Display: Tambahkan komponen Graphics SH1107 OLED Display (atau OLED Display yang tersedia).
  • 7-Segment Display: Tambahkan Seven Segment Display TM1637 (untuk menampilkan skor).
  • Buzzer: Tambahkan komponen Buzzer (untuk feedback suara).
  • Push Button: Tambahkan Push Button (sebagai tombol lompat).
2. Pengkabelan (Wiring)
Koneksi OLED Display (I2C)
  • GND → Arduino GND.
  • VCC → Arduino 5V.
  • SCL → Pin SCL Arduino (atau A5).
  • SDA → Pin SDA Arduino (atau A4).
Koneksi 7-Segment Display (TM1637)
  • GND → Arduino GND.
  • VCC → Arduino 5V.
  • DIO → Digital Pin 5.
  • CLK → Digital Pin 6.
Koneksi Push Button
  • Satu sisi → Digital Pin 3.
  • Sisi lainnya → Arduino GND.
Koneksi Buzzer
  • Pin Positif (+) → Digital Pin 10.
  • Pin Negatif (-) → Arduino GND.
3. Pemrograman dan Library
  • Siapkan Program dan Library: Unduh file program utama dan file library (.cpp dan .h) yang disediakan di deskripsi video.
  • Salin Kode Utama: Salin seluruh kode program Arduino utama ke editor kode WOKWI.
  • Unggah File Library Tambahan:
  1. Klik ikon tanda panah ke bawah di bagian Project.
  1. Pilih Upload File dan unggah file .cpp dan .h untuk 7-Segment Display.
  • Tambahkan Library U8G2:
  1. Klik tombol (+) di bagian Library Manager.
  1. Cari dan tambahkan library u8g2 (untuk OLED Display).
4. Eksekusi dan Pengujian
  • Start Simulation: Klik tombol Start Simulation.
  • Cek Tampilan Awal: Pastikan OLED Display menampilkan pesan sambutan ("Welcome to do push to begin").
  • Mulai Permainan: Tekan Push Button untuk memulai game. Karakter Dino akan mulai berjalan.
  • Mainkan Game: Tekan Push Button setiap kali ada rintangan (kaktus) muncul. Skor akan bertambah dan ditampilkan di 7-Segment Display.
  • Pengujian Kecepatan: Perhatikan bahwa kecepatan permainan akan meningkat setiap mencapai kelipatan 100 skor.

Tambahkan dan atur posisi komponen-komponen berikut di board simulasi WOKWI:
Lakukan koneksi komponen ke Arduino Uno sesuai pin berikut:
Pastikan koneksi SCL dan SDA sudah benar, karena kesalahan koneksi akan menyebabkan layar tidak tampil.






BAB IV
PENUTUP

4.1 Kesimpulan

Proyek ini berhasil mereplikasi Game Dino yang terkenal menggunakan Arduino Uno sebagai mikrokontroler utama, yang dikerjakan secara virtual melalui Simulator WOKWI.

Inti dari proyek ini adalah demonstrasi integrasi sistem tertanam sederhana dimana Arduino Uno berfungsi sebagai otak yang menjalankan logika permainan termasuk pergerakan Dino dan Kaktus serta perhitungan skor. Kemudian OLED display digunakan untuk antarmuka display didedikasikan untuk menampilkan skor secara numerik. Lalu yang terakhir interaksi pengguna diatur melalui Push Button, dan feedback audio disediakan oleh Buzzer.

Secara keseluruhan, proyek ini menunjukkan cara menggabungkan perangkat keras sederhana dan library yang tepat untuk menciptakan sistem permainan elektronik yang fungsional dan dapat dimainkan.

4.2 Saran

Disarankan untuk mencoba membuat rangkaian ini pada hardware sungguhan, tidak hanya di simulator WOKWI, untuk melatih kemampuan wiring praktis. Setelah berhasil, kita bisa mendesain casing atau kotak yang bagus agar Game Dino ini menjadi perangkat portabel dan mudah dibawa. Serta tidak lupa juga sebelum memulai proyek ini untuk mempelajari secara detail dan keseluruhan tutorial proyek ini supaya saat melakukan percobaan tidak terjadi error dan program pada proyek ini bisa berjalan dengan lancar.

4.3 Lampiran

Gambar 1

Gambar 1 Kode dan Simulasi


Gambar 2

Gambar 2 Dokumentasi simulasi

DAFTAR PUSTAKA

bytesByHarsh. (n.d.). The T-Rex Game (Chrome Dino) in Arduino Using OLED Display. Instructables. https://www.instructables.com/The-T-Rex-Game-Chrome-Dino-in-Arduino-Using-OLED-D/

Tech Nickk. (2020, 27 April). Chrome Dino Game on Arduino and OLED. Hackster.io. https://www.hackster.io/tech_nickk/chrome-dino-game-on-arduino-and-oled-81a3f8

ultramegabombasticfuze. (t.t.). Chrome Dino Game. Arduino Project Hub. https://projecthub.arduino.cc/ultramegabombasticfuze/chrome-dino-game-b10afe

Tidak ada komentar:

Posting Komentar