Isi kandungan:

Permainan Arduino Battleship: 3 Langkah
Permainan Arduino Battleship: 3 Langkah

Video: Permainan Arduino Battleship: 3 Langkah

Video: Permainan Arduino Battleship: 3 Langkah
Video: Arduino Missile Defense Radar System in ACTION 2024, November
Anonim
Permainan Arduino Battleship
Permainan Arduino Battleship

Saya teringat bermain versi kertas dan pensil dari Battleship Game semasa kecil. Sebenarnya, sudah ada sejak sekitar Perang Dunia 1. Saya juga memiliki varian "elektronik" pada awal tahun 1960 yang disebut "Sonar Sub Hunt" yang memiliki lampu dan suara dan ranjau tersembunyi. Mengikut standard permainan video hari ini, Battleship cukup membosankan tetapi saya fikir saya akan membuatnya tetap untuk melihat apa yang difikirkan oleh cucu-cucu itu. Lagipun, kadang-kadang retro boleh menjadi sejuk.

Terdapat beberapa bahagian projek ini yang berguna di tempat lain walaupun anda tidak berminat untuk membuat permainan Battleship. Ia mempunyai antara muka LCD 1602 4-bit sederhana yang merangkumi rutin untuk menetapkan lokasi watak tertentu. Terdapat juga antara muka untuk menyahkod matriks suis 4x4. Kedua-dua antara muka ini tersedia kerana fail termasuk berasingan sehingga mudah dibawa. Permainan ini juga mempunyai pelbagai rutin kesan bunyi dan rangkaian penguat audio satu transistor sederhana.

Langkah 1: Perkakasan

Perkakasan
Perkakasan
Perkakasan
Perkakasan

Skema yang disajikan di sini adalah untuk pemain tunggal sehingga dua unit perlu dibuat. Unit berkomunikasi menggunakan antara muka 3 wayar yang merangkumi garis UART TX dan RX dan wayar arde. Saya memilih untuk menggunakan bicu fon kepala stereo 1/8 inci standard dan kabel standard dengan palam lelaki di kedua-dua hujungnya. RX dari satu kotak menuju ke TX kotak yang lain dan sebaliknya. Anda boleh melakukannya dengan menukar wayar yang disolder ke bicu fon kepala di dalam kotak atau menukarnya di papan litar semasa anda membuatnya.

Permainan klasik disusun sebagai matriks tetapi saya memutuskan untuk melakukan pelaksanaan sederhana menggunakan LCD 1602 untuk paparan. Baris pertama menunjukkan lokasi kapal pemain dan tembakan lawan. Baris kedua menunjukkan tembakan pemain dan sebarang hantaran pada kapal lawan. Itu menyediakan 16 lokasi yang mungkin untuk kapal. Jumlah kapal ditetapkan dalam perisian dan saya sewenang-wenangnya memilih 5.

16 lokasi kapal sesuai dengan keperluan suis kerana memungkinkan untuk matriks 4x4. Terdapat pad suis matriks 4x4 yang tersedia tetapi saya memilih untuk menggunakan suis individu dalam satu baris untuk memadankan paparan linier. Walau bagaimanapun, saya memasang suis sebagai matriks 4x4 sehingga hanya diperlukan lapan pin Arduino. Rujuk rajah pendawaian suis dan skema untuk sambungan yang betul.

Paparan LCD berwayar untuk antara muka 4-bit. Saya juga menambahkan LED luaran pada pin D13 untuk menunjukkan pemain mana yang harus mengambil gambar. Pada mulanya, pemain memutuskan siapa yang mengambil gambar pertama dan kemudian perisian secara automatik mengawal bolak-balik permainan.

Saya mahu menambahkan kesan bunyi yang mudah untuk tembakan, letupan, permainan siap, dan pemenang / kalah. Saya cuba menggunakan buzzer piezo sederhana tetapi akhirnya menggunakan pembesar suara kecil. Arus yang diperlukan oleh pembesar suara melebihi yang dapat ditangani oleh Arduino sehingga penguat transistor sederhana ditambahkan. Suara masih tidak bagus tetapi lebih baik daripada dengan bel. Pembesar suara saya adalah 4 ohm tetapi jika anda mempunyai 8 ohm, maka ubah perintang dalam skema dari 39 ohm menjadi 33 ohm. Sekiranya anda menggunakan buzzer piezo, anda seharusnya dapat menggerakkannya secara langsung dari pin Arduino dengan bahagian lain bel disambungkan ke tanah.

Suis tetapan semula luaran juga disertakan dan disambungkan secara langsung di antara ground dan pin "reset" di Arduino. Itu menyediakan kaedah untuk memulakan semula permainan.

Langkah 2: Perisian

Perisian ini mempunyai fail include untuk antara muka LCD saya dan saya juga membuat fail include untuk pengimbasan matriks suis 4x4. Inisialisasi mendorong pemain untuk memilih lokasi untuk kapalnya dan kemudian menuju ke keadaan "Siap". Apabila kedua-dua pemain sudah siap salah satunya memulakan permainan dengan menekan suis.

Lokasi tembakan dihantar melalui UART ke pemain lain dan hasil yang sesuai dihantar kembali ke pemain yang melepaskan tembakan. Seperti disebutkan sebelumnya, setelah tangkapan pertama diambil, perisian akan mengawal siapa yang mengambil gambar berikutnya. Sebelum tembakan dihantar, ia diperiksa terhadap lokasi tembakan sebelumnya. Sekiranya lokasi tersebut telah digunakan, maka tembakan tidak akan dihantar. LED "My_Shot" menentukan giliran siapa. Terdapat juga bunyi tembakan yang dihasilkan untuk pilihan yang sah dan bunyi letupan jika kapal terkena. Kesan bunyi berasal dari contoh yang terdapat dalam talian dengan pengubahsuaian yang sesuai dengan permainan.

Setelah kapal lawan semua terkena, satu mesej akan dipaparkan di setiap LCD - satu sebagai pemenang, dan satu sebagai orang yang kalah. Mesej ini juga menyatakan bahawa permainan dapat dimulakan semula dengan menekan butang reset. Terdapat juga kesan bunyi yang berasingan untuk pemenang dan yang kalah.

Langkah 3: Tangkapan Skrin

Tangkapan Skrin
Tangkapan Skrin
Tangkapan Skrin
Tangkapan Skrin
Tangkapan Skrin
Tangkapan Skrin
Tangkapan Skrin
Tangkapan Skrin

Berikut adalah beberapa tangkapan skrin dari permainan. Itu sahaja untuk siaran ini. Lihat Instruksional saya yang lain dan juga laman web saya di: www.boomerrules.wordpress.com

Disyorkan: