Daftar Isi:

Game Kapal Perang Arduino: 3 Langkah
Game Kapal Perang Arduino: 3 Langkah

Video: Game Kapal Perang Arduino: 3 Langkah

Video: Game Kapal Perang Arduino: 3 Langkah
Video: Lego berbentuk motor jadi berantakan gara gara ini 2024, Juli
Anonim
Game Kapal Perang Arduino
Game Kapal Perang Arduino

Saya ingat memainkan versi kertas dan pensil dari Battleship Game sebagai seorang anak. Sebenarnya, sudah ada sejak sekitar Perang Dunia 1. Saya juga memiliki varian “elektronik” di awal tahun 1960-an yang disebut “Sonar Sub Hunt” yang memiliki lampu dan suara serta ranjau tersembunyi. Menurut standar video game hari ini, Battleship cukup membosankan, tetapi saya pikir saya akan tetap membuatnya hanya untuk melihat apa yang dipikirkan cucu-cucunya tentang hal itu. Lagi pula, terkadang retro bisa keren.

Ada bagian-bagian kecil dari proyek ini yang akan berguna di tempat lain bahkan jika Anda tidak tertarik untuk membuat game Battleship. Ini memiliki antarmuka LCD 4-bit 1602 sederhana yang mencakup rutinitas untuk mengatur lokasi karakter tertentu. Ada juga antarmuka untuk mendekode matriks sakelar 4x4. Kedua antarmuka ini tersedia sebagai file include yang terpisah sehingga mudah dibawa-bawa. Gim ini juga memiliki berbagai rutinitas efek suara dan rangkaian penguat audio satu transistor sederhana.

Langkah 1: Perangkat Keras

Perangkat keras
Perangkat keras
Perangkat keras
Perangkat keras

Skema yang disajikan di sini adalah untuk pemain tunggal sehingga dua unit perlu dibuat. Unit berkomunikasi menggunakan antarmuka 3-kawat yang mencakup jalur UART TX dan RX dan kabel ground. Saya memilih untuk menggunakan jack headphone stereo 1/8 inci standar dan kabel standar dengan colokan pria di kedua ujungnya. RX dari satu kotak pergi ke TX dari kotak lain dan sebaliknya. Anda dapat melakukannya dengan menukar kabel yang disolder ke jack headphone di dalam kotak atau menukarnya di papan sirkuit saat Anda membuatnya.

Permainan klasik ditata sebagai matriks tetapi saya memutuskan untuk melakukan implementasi sederhana menggunakan LCD 1602 untuk tampilan. Baris pertama menunjukkan lokasi kapal pemain dan tembakan lawan. Baris kedua menunjukkan tembakan pemain dan pukulan apa pun di kapal lawan. Itu menyediakan 16 kemungkinan lokasi untuk kapal. Jumlah kapal diatur dalam perangkat lunak dan saya secara sewenang-wenang memilih 5.

16 lokasi kapal cocok dengan persyaratan sakelar karena memungkinkan matriks 4x4. Ada bantalan sakelar matriks 4x4 yang tersedia tetapi saya memilih untuk menggunakan sakelar individual dalam satu baris agar sesuai dengan tampilan linier. Namun, saya memasang sakelar sebagai matriks 4x4 sehingga hanya delapan pin Arduino yang diperlukan. Lihat diagram pengkabelan sakelar dan skema untuk koneksi yang benar.

Layar LCD disambungkan untuk antarmuka 4-bit. Saya juga menambahkan LED eksternal pada pin D13 untuk menunjukkan pemain mana yang harus mengambil bidikan. Awalnya, para pemain memutuskan siapa yang mengambil tembakan pertama dan kemudian perangkat lunak secara otomatis mengontrol bolak-balik permainan.

Saya ingin menambahkan efek suara sederhana untuk bidikan, ledakan, permainan siap, dan pemenang/pecundang. Saya mencoba menggunakan buzzer piezo sederhana tetapi berakhir dengan speaker kecil sebagai gantinya. Arus yang dibutuhkan oleh speaker melebihi apa yang dapat ditangani oleh Arduino sehingga penguat transistor sederhana ditambahkan. Suaranya masih tidak bagus tapi lebih baik daripada dengan bel. Speaker saya adalah 4 ohm tetapi jika Anda memiliki yang 8-ohm maka ubah resistor dalam skema dari 39 ohm menjadi 33 ohm. Jika Anda menggunakan buzzer piezo, Anda harus dapat mengarahkannya langsung dari pin Arduino dengan sisi lain dari buzzer terhubung ke ground.

Sakelar reset eksternal juga disertakan dan dihubungkan langsung antara ground dan pin "reset" pada Arduino. Itu menyediakan sarana untuk memulai kembali permainan.

Langkah 2: Perangkat Lunak

Perangkat lunak ini memiliki file include untuk antarmuka LCD saya dan saya juga membuat file include untuk pemindaian matriks sakelar 4x4. Inisialisasi meminta pemain untuk memilih lokasi untuk kapalnya dan kemudian beralih ke status "Siap". Ketika kedua pemain siap, salah satu dari mereka memulai permainan dengan menekan tombol.

Lokasi tembakan ditransmisikan melalui UART ke pemain lain dan hasil yang sesuai ditransmisikan kembali ke pemain yang melepaskan tembakan. Seperti disebutkan sebelumnya, setelah bidikan pertama diambil, perangkat lunak mengontrol siapa yang mengambil bidikan berikutnya. Sebelum tembakan ditransmisikan, itu diperiksa terhadap lokasi tembakan sebelumnya. Jika lokasi tersebut telah digunakan, maka bidikan tidak akan dikirimkan. LED "My_Shot" menentukan giliran siapa. Ada juga suara tembakan yang dihasilkan untuk pemilihan yang valid dan suara ledakan jika sebuah kapal tertabrak. Efek suara berasal dari contoh yang ditemukan online dengan modifikasi yang sesuai dengan permainan.

Setelah semua kapal lawan terkena, sebuah pesan ditampilkan di setiap LCD – satu sebagai pemenang, dan satu sebagai pecundang. Pesan tersebut juga menentukan bahwa game dapat dimulai ulang dengan menekan tombol reset. Ada juga efek suara terpisah untuk pemenang dan pecundang.

Langkah 3: Tangkapan Layar

Tangkapan Layar
Tangkapan Layar
Tangkapan Layar
Tangkapan Layar
Tangkapan Layar
Tangkapan Layar
Tangkapan Layar
Tangkapan Layar

Berikut adalah beberapa tangkapan layar dari permainan. Itu saja untuk posting ini. Lihat Instructables saya yang lain dan juga situs web saya di: www.boomerrules.wordpress.com

Direkomendasikan: