Game Ular telah sangat populer sejak awal ponsel. Awalnya itu datang dalam ponsel Hitam dan putih, dan segera menjadi sangat terkenal. Kemudian dengan kemajuan Ponsel, game ini juga telah banyak berubah, dan sekarang banyak versi grafis dan warna-warni dari game ini tersedia.
Permainan ular juga menjadi proyek DIY yang sangat populer untuk Hobi dan Pelajar elektronik. Jadi hari ini kami akan mendemonstrasikan, Arduino Snake Game, dengan semua fungsi dasarnya, sekaligus menjaganya tetap sederhana.
Komponen yang Digunakan:
- Arduino UNO
- Tampilan 8x8 LED Dot Matrix
- Shift Register 74HC595
- LCD 16x2
- POT 1K
- Tekan tombol
- Menghubungkan kabel
- Papan Roti
- Sumber Daya listrik
Penjelasan Kerja:
Ini adalah game yang sedikit rumit untuk dibuat. Namun dalam tutorial ini, kami membuatnya sederhana untuk Anda. Untuk membuat proyek ini, kami telah menggunakan tampilan Dot matrix warna merah 8x8 untuk menampilkan ular dan titik makanannya, LCD untuk menampilkan poin atau skor, 5 tombol tekan untuk memberikan petunjuk dan memulai permainan dan terakhir Arduino UNO untuk mengontrol seluruh proses. Diagram pin Tampilan Dot Matrix LED 8x8 dengan gambar aslinya telah diberikan di bawah ini:
Saat kami menyalakan sirkuit, pertama kami menampilkan pesan selamat datang dan kemudian petunjuk "Press Start To Play" di LCD. Setelah ini, LCD menunjukkan skor sebagai nol dan tampilan dot matrix menunjukkan dua titik sebagai ular dan satu titik sebagai makanan.
Sekarang pengguna perlu menekan tombol tengah untuk memulai permainan dan ular mulai bergerak ke atas secara default. Kemudian pengguna perlu memberikan arahan ke ular dengan menekan 'tombol Arah' di sekitar tombol tengah. Di sini kami telah menggunakan lima tombol (tombol tekan) yaitu tombol Kiri, tombol Kanan, tombol Atas, tombol Bawah dan tombol Mulai. Setiap kali ular mencapai titik makanan atau memakan makanan, skor meningkat 5 poin setiap kali dan panjang Ular bertambah satu titik (LED) setiap kali, juga kecepatan ular menjadi lebih cepat dari sebelumnya. Dan setiap kali ular akan menyerang dinding atau mencapai ujung matriks LED, maka ia akan mengakhiri permainan ("Game Over"). Kemudian pengguna harus memulai permainan lagi dengan menekan tombol start.
Penjelasan Sirkuit:
Sirkuit Proyek Game Ular ini sedikit rumit. Di sini kami telah menghubungkan tampilan dot matrix dengan menggunakan Shift Register 74HC595. Di sini dua register geser digunakan, satu untuk menggerakkan kolom dan yang kedua untuk menggerakkan baris. Pin kontrol dari kedua register, Register geser kolom dan register geser baris (SH, ST),terhubung langsung ke pin Arduino nomor 14 dan 16 masing-masing. Dan pin DS register geser kolom dan register geser baris terhubung langsung ke pin nomor 15 dan 17 Arduino. Tombol start untuk memulai permainan terhubung pada pin nomor 3, tombol arah kiri pada pin 4, tombol arah kanan pada pin 6, tombol arah atas pada pin 2 dan tombol arah bawah pada pin 5. Sebuah LCD juga terhubung pada perangkat keras kami. tunjukkan skor. Pin RS dan EN terhubung langsung pada pin 13 dan 12. Pin RW langsung diarde. Dan pin data d4-d7 dihubungkan pada pin 11, 10, 9, 8 Arduino. Sisa koneksi ditunjukkan pada diagram sirkuit.
Penjelasan Pemrograman:
Untuk menulis kode permainan ular Arduino ini, pertama-tama kami menyertakan file header dan menentukan pin untuk LCD. Dan kemudian tentukan beberapa pin untuk tombol arah dan pin data untuk register geser.
#include
Kemudian kami menginisialisasi semua hal yang telah kami gunakan dalam program. Dalam fungsi pengaturan kami menginisialisasi LCD, memberikan arahan ke pin input output, menarik bit dan menampilkan pesan selamat datang pada LCD.
void setup () {lcd.begin (16,2); pinMode (ds_col, OUTPUT); pinMode (sh_col, OUTPUT); pinMode (st_col, OUTPUT); pinMode (ds_row, OUTPUT); pinMode (mulai, INPUT);……………
Dan kemudian kita memulai fungsi game in loop .
void show_snake (int temp) {for (int n = 0; n
Di sini kami telah menggunakan fungsi di bawah ini untuk membaca arah masukan dari tombol tekan.
void read_button () {if (! digitalRead (kiri)) {move_r = 0; move_c! = - 1? pindah_c = -1: pindah_c = 1; while (! digitalRead (kiri));……………
Lihat C Code of Snake Game lengkap di bawah ini.