Snake Game sangat popular sejak awal telefon bimbit. Pada mulanya ia datang dalam telefon bimbit Hitam dan putih, dan segera menjadi sangat terkenal. Kemudian dengan kemajuan Telefon bimbit, permainan ini juga banyak berubah, dan sekarang banyak versi grafik dan warna permainan ini tersedia.
Permainan ular juga telah menjadi projek DIY yang sangat popular untuk Hobi dan Pelajar elektronik. Jadi hari ini kita akan memperagakan, Arduino Snake Game, dengan semua fungsi asasnya, dan tetap mudah pada masa yang sama.
Komponen yang Digunakan:
- Arduino UNO
- Paparan 8x8 LED Dot Matrix
- Daftar Shift 74HC595
- LCD 16x2
- POT 1K
- Butang Tekan
- Menyambung wayar
- Papan Roti
- Bekalan Kuasa
Penjelasan Kerja:
Ini adalah permainan yang agak rumit untuk dibina. Tetapi dalam tutorial ini, kami telah mempermudah anda. Untuk membuat projek ini, kami telah menggunakan paparan matriks warna merah 8x8 untuk memaparkan ular dan titik makanannya, LCD untuk menampilkan mata atau skor, 5 butang tekan untuk memberi arahan dan memulakan permainan dan akhirnya sebuah Arduino UNO untuk mengendalikan keseluruhan proses. Gambarajah pin 8x8 LED Dot Matrix Display dengan gambar asalnya telah diberikan di bawah:
Semasa kami menghidupkan litar, pertama kami menunjukkan mesej selamat datang dan kemudian petunjuk "Tekan Mula Untuk Bermain" di LCD. Selepas ini, LCD menunjukkan skor sebagai sifar sifar dan dot matriks menunjukkan dua titik sebagai ular dan satu titik sebagai makanan.
Sekarang pengguna perlu menekan butang tengah untuk memulakan permainan dan ular mula bergerak ke arah atas secara lalai. Kemudian pengguna perlu memberi arahan kepada ular dengan menekan 'Kekunci arah' di sekitar butang tengah. Di sini kita telah menggunakan lima kekunci (butang tekan) iaitu Kekunci kiri, Kekunci kanan, Kekunci atas, Kekunci bawah dan kekunci Mula. Setiap kali ular mencapai titik makanan atau memakan makanan, skor meningkat sebanyak 5 mata setiap kali dan panjang Ular meningkat satu titik (LED) setiap kali, juga kecepatan ular menjadi lebih cepat dari sebelumnya. Dan setiap kali ular menyerang di dinding mana pun atau mencapai akhir matriks LED, maka akan berakhir permainan ("Game Over"). Kemudian pengguna perlu memulakan permainan lagi dengan menekan kekunci mula.
Penjelasan Litar:
Litar Projek Permainan Ular ini agak rumit. Di sini kita telah menyambungkan paparan dot matrix dengan menggunakan Shift Register 74HC595. Di sini dua register shift digunakan, satu untuk memandu lajur dan yang kedua untuk menggerakkan baris. Pin kawalan kedua-dua register, daftar pergeseran lajur dan daftar pergeseran baris (SH, ST),dihubungkan terus ke pin Arduino masing-masing nombor 14 dan 16. Dan pin DS daftar pergeseran lajur dan daftar pergeseran baris disambungkan secara langsung ke pin nombor 15 dan 17 dari Arduino. Butang mula untuk memulakan permainan disambungkan pada pin nombor 3, butang arah kiri di pin 4, butang arah kanan di pin 6, butang arah atas di pin 2 dan tombol arah bawah di pin 5. LCD juga disambungkan di perkakasan kami untuk skor persembahan. Pin RS dan EN disambungkan secara langsung pada pin 13 dan 12. Pin RW dibumikan secara langsung. Dan pin data d4-d7 disambungkan pada pin 11, 10, 9, 8 dari Arduino. Sambungan selebihnya ditunjukkan dalam rajah litar.
Penjelasan Pengaturcaraan:
Untuk menulis kod permainan ular Arduino ini, pertama-tama kami menyertakan fail tajuk dan menentukan pin untuk LCD. Dan kemudian tentukan beberapa pin untuk butang arah dan pin data untuk daftar shift.
#sertakan
Kemudian kami memulakan semua perkara yang telah kami gunakan dalam program ini. Dalam fungsi penyediaan, kita menginisialisasi LCD, memberikan arah ke pin output input, menarik bit dan menunjukkan pesan selamat datang di LCD.
persediaan tidak sah () {lcd.begin (16,2); pinMode (ds_col, OUTPUT); pinMode (sh_col, OUTPUT); pinMode (st_col, OUTPUT); pinMode (ds_row, OUTPUT); pinMode (mula, INPUT);……………
Dan kemudian kita memulakan permainan dalam fungsi gelung .
batal show_snake (int temp) {untuk (int n = 0; n
Di sini kita telah menggunakan fungsi di bawah ini untuk membaca arah input dari butang tekan.
kekosongan read_button () {if (! digitalRead (kiri)) {move_r = 0; bergerak_c! = - 1? bergerak_c = -1: bergerak_c = 1; sambil (! digitalRead (kiri));……………
Lihat Kod C Permainan Ular yang lengkap di bawah.