Daftar Isi:
- Langkah 1: Apa yang Anda Butuhkan?
- Langkah 2: Pembuatan Prototipe Cepat
- Langkah 3: Membuat Casing
- Langkah 4: Membuat Matriks LED
- Langkah 5: Menulis Kode Game dan Perangkat Keras Debugging
- Langkah 6: Menyatukan Semuanya
Video: Stackers Arcade Game: 6 Langkah (dengan Gambar)
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:56
Hai teman-teman, hari ini saya ingin berbagi dengan Anda game arcade yang luar biasa ini yang dapat Anda buat dengan banyak LED Ws2812b dan mikrokontroler/FPGA. Lihatlah Stack Overflow - implementasi perangkat keras kami dari game arcade klasik. Apa yang dimulai sebagai proyek sekolah dengan cepat menjadi kerja cinta karena kami mulai menghabiskan lebih banyak waktu dalam mengembangkan permainan kami dan belajar lebih banyak darinya (dan mengabaikan studi kami dalam proses xD). Pada akhirnya, game kami dibangun dengan sangat baik dan diterima dengan baik oleh sekolah kami sehingga disita (sebagai bahan demo untuk siswa angkatan berikutnya). Yah, kita selalu bisa membangun yang kedua. Mari kita mulai!
Versi game online:
Langkah 1: Apa yang Anda Butuhkan?
Bahan:
1. Mikrokontroler/Mikrokomputer/FPGA - FPGA digunakan untuk mengimplementasikan logika permainan kita. Pilih papan Anda, untuk proyek kami, kami diharuskan menggunakan papan FPGA Mojo. Untuk yang belum tahu, ini adalah jenis papan yang menggunakan perangkat keras untuk mengimplementasikan fungsinya daripada kode. Oleh karena itu, saya akan mengatakan levelnya agak rendah dan benar-benar berbeda daripada jika Anda menggunakan Arduino atau Pi. Jika Anda menggunakan papan lain, Anda harus menulis kode Anda sendiri, tetapi game ini cukup mudah untuk dikodekan dan hei! Sekarang Anda juga bisa belajar coding!
2. LED Ws2812b - Di sini kita menggunakan LED untuk membuat tampilan game kita. Tidak bisa menjadi pembuat jika Anda belum menyentuh Ws2812b sebelum xD. Ini adalah arti tunggal yang dapat dialamatkan bahwa Anda dapat memotong satu LED dan menempelkannya ke formasi apa pun yang Anda suka. Dan itu adalah RGB yang berarti Anda dapat menampilkan warna apa pun yang Anda suka. Selanjutnya, FastLED - perpustakaan Arduino untuk mengendalikan Ws2812b dikembangkan dengan sangat baik. Saya akan merekomendasikan orang untuk menggunakan Arduino sebagai pengganti FPGA jika Anda tidak memilikinya. Anda dapat membeli LED dari Taobao/Amazon tetapi kami membelinya dari menara Sim Lim di Singapura.
3. Kayu - Untuk casing luar kami menggunakan kayu lapis setebal 1cm dan untuk matriks LED kami menggunakan kayu lapis setebal 0,3 cm. Kami menemukan pasokan kayu bekas dari lab luar biasa sekolah kami.
4. Akrilik Pemancar Cahaya - Untuk layar kami, kami mencoba berbagai jenis akrilik dan kami menemukan akrilik buram yang disebut PL-422 yang sangat bagus untuk menyebarkan cahaya. Jika Anda tidak dapat menemukan model yang tepat, coba cari akrilik buram. Kami membeli milik kami di Dama Plastics di Singapura.
5. Papan Busa - Untuk memisahkan setiap piksel cahaya, kami membutuhkan struktur kisi dan busa ini adalah bahan yang ideal untuk melakukannya. Kami membeli papan busa setebal 0,5 cm di toko buku sekolah kami.
6. Tombol Merah Besar - Ok, kita tidak perlu memiliki tombol merah sebesar itu, tetapi selalu bagus untuk memiliki tombol untuk dibanting orang! xD Kami membelinya di menara Sim Lim di Singapura.
Peralatan:
1. Lem Kayu
2. Besi Solder
3. Solder
4. Kabel. Yang terbaik jika Anda memiliki kabel lunak dibandingkan dengan yang kaku. Dan single core dibandingkan dengan multicore.
5. Penari telanjang kawat
6. Pemotong kawat
7. Bor dengan mata bor 1mm
8. Gergaji gulir
9. gergaji pita
Debug:
1. Unit Catu Daya Variabel
2. Osiloskop
Langkah 2: Pembuatan Prototipe Cepat
Untuk proyek kami, kami menggunakan prototipe cepat sebelum membangun matriks LED dan memprogram permainan kami. Alasan untuk melakukannya adalah karena kami tidak ingin membuat matriks LED hanya untuk menyadari bahwa kode kami tidak berfungsi atau logika permainan kami salah.
Di sisi perangkat keras, pada tahap pertama kami baru saja menguji logika kami untuk mengubah pola cahaya pada matriks LED sederhana kami sendiri. Setelah kami menguji bahwa logikanya bekerja dengan baik, kami kemudian memotong strip dari 5 LED Ws2812b hanya untuk menguji logika permainan kami dengan baris yang berbeda. Setelah itu berhasil, kami kemudian melanjutkan untuk membuat matriks LED dalam skala penuh.
Kami juga menguji sampel akrilik yang berbeda dengan LED sebelum menetapkan PL-422 sebagai diffuser cahaya terbaik. Dan untuk struktur pemisah, kami juga menguji ketinggian yang berbeda agar LED dapat berdifusi sepenuhnya. Pada akhirnya kami menyadari 3cm*3cm persegi dengan tinggi 4cm menjadi yang terbaik untuk difusi. Berdasarkan ukuran optimal ini, kami juga memutuskan berapa ukuran kayu lapis yang dibutuhkan untuk matriks LED 5 x 11 dengan menyisakan celah 0,5 cm untuk busa di antara kotak..
Di sisi perangkat lunak, kami mencoba untuk menjadi semodular mungkin - pertama-tama kami menguji apakah LED dapat menyala sebelum melanjutkan untuk menambahkan fungsi shift, dan kemudian yang lainnya. Hasilnya bisa menjadi bencana besar jika Anda tidak melakukan ini. Kami mempelajari ini dengan cara yang sulit saat kami mencoba mengkodekan seluruh game dalam potongan besar sebelum menyadari bahwa kami tidak dapat men-debug-nya. Aduh!
Langkah 3: Membuat Casing
Untuk casing kami, kami menggunakan nuansa dan tampilan mesin arcade klasik. Pertama, kami memotong beberapa kayu lapis tipis untuk membuat prototipe bentuk dengan cepat karena lebih mudah dan lebih cepat untuk memotong kayu lapis tipis dan mengujinya. Setelah kami puas dengan dimensi dan bentuk kami, kami mulai menggunakan kayu lapis yang lebih tebal untuk membangun casing. Kami menggunakan gergaji pita untuk memotong kayu lapis yang lebih tebal dan gergaji gulir untuk memotong kayu yang lebih tipis. Setelah itu, kami menggunakan lem kayu untuk merekatkannya.
Untuk bagian belakang kayu lapis, kami ingin dengan mudah mengakses elektronik di dalamnya sehingga kami membuatnya menjadi bagian yang terkunci di tempat yang dapat Anda lepaskan dengan mudah kapan pun Anda mau.
Untuk memasang tombol, pertama-tama kita menggambar lingkaran seukuran diameter microswitch tombol (bagian panjang bawah tombol). Kami kemudian mengebor lubang di dekat tepi dan menggunakan gergaji gulir untuk melihat lingkaran. Kemudian kami menempatkan tombol dan memasangnya.
Kami juga memotong kayu lapis tipis sebagai dasar matriks LED kami sesuai dengan ukuran yang kami hitung sebelumnya.
Catatan: Saya mohon maaf atas kurangnya proses langkah demi langkah. Kami tidak mendokumentasikan langkah-langkah sepenuhnya dan pada saat kami menyadari bahwa kami perlu mendokumentasikan langkah-langkahnya, casingnya sudah selesai. Diagram juga bukan dimensi akhir.
Langkah 4: Membuat Matriks LED
Menggunakan potongan tipis yang kita potong sebelumnya, pertama-tama kita menandai posisi setiap LED dengan menggambar persegi berdasarkan struktur busa kita dan menggambar salib di tengah persegi sebagai tempat kita harus menempelkan LED. Kemudian kami juga mengebor 3 lubang kecil di setiap sisi LED agar kabel dapat masuk dan menyoldernya ke setiap LED.
Kami daisy-chain setiap baris LED dengan pin Data In dan Data Out mereka dan kami menyolder setiap GND dan VCC ke kabel umum. Data In terdepan akan menghasilkan pola cahaya untuk setiap baris dan kami menghubungkannya ke pinout mikrokontroler/FPGA. Anda juga dapat menyolder Data Out terakhir dari satu baris ke Data In terdepan dari baris lain. Cara kerja LED Ws2812b adalah setiap LED berisi IC yang akan mengambil data yang diperlukan dari kabel dan meneruskan sisanya ke rantai. Kami mendasarkan LED kami pada Instructables fantastis lainnya (Bahkan, kami menyalinnya dengan tepat! xD)
Di sini kami juga ingin menekankan pentingnya menggunakan kabel lunak. Jika Anda menggunakan kabel yang kaku dan keras untuk pin Data In terdepan, yang terjadi adalah setiap kali Anda menarik kabel, kabel tersebut mungkin akan mencabut bantalan tembaga pada Ws2812b Anda yang akan merusaknya. Dalam proyek ini, sebelum kami mengubah ke kabel lunak, kami menghancurkan total 40 LED yang merupakan 1/3 dari LED yang dibutuhkan untuk proyek kami.
Dapat diinstruksikan:
Langkah 5: Menulis Kode Game dan Perangkat Keras Debugging
Mojo berjalan pada Lucid HDL, yang bukan bahasa paling populer di luar sana. Kami tidak dapat menemukan perpustakaan LED Ws2812b di Lucid sehingga kami terpaksa menulis perpustakaan kami sendiri, yang merupakan pengalaman yang sangat menarik. Untuk melakukan itu, pertama-tama kami menganalisis sinyal yang dilewatkan dengan menggunakan perpustakaan FastLED Arduino dan menulis kode untuk mereplikasi itu. Berikut adalah trik debugging perangkat keras, osiloskop sangat, sangat berguna untuk menganalisis sinyal, baik itu men-debug sinyal Anda sendiri yang tidak Anda yakini atau memeriksa dan menyalin sinyal lain.
Setelah menulis perpustakaan untuk Ws2812b, kami kemudian melanjutkan ke kode untuk permainan, kami menggunakan fungsi Bit shift untuk memindahkan setiap blok ke kiri dan ke kanan dan menggunakan Bitwise AND ke AND kuadrat dari setiap baris ke baris sebelumnya. Anda juga dapat memikirkan untuk mengimplementasikannya di Arduino, yang seharusnya tidak terlalu sulit. Kami bahkan mengkodekan layar game untuk bersenang-senang!
Permainan kami memiliki 2 level, yaitu permainan susun yang terlihat (Hijau) dan permainan susun yang tidak terlihat tingkat kedua (Biru).
Bahkan setelah kami memiliki kode kerja dan matriks LED yang berfungsi, terkadang kami masih menghadapi masalah seperti lampu berkedip atau lampu menyala padahal seharusnya tidak. Masalahnya biasanya karena pembumian yang tidak tepat, level catu daya, atau gangguan. Di sinilah Anda akan memerlukan alat debugging perangkat keras lainnya seperti unit catu daya variabel untuk memeriksa apakah catu daya Mojo/Arduino cukup atau terlalu tinggi. Dalam pengalaman saya, Ws2812b memiliki rentang tegangan kerja yang cukup luas dari 2.8v - 5v. Di sini saya memiliki video yang menunjukkan lampu menjadi gila semua setelah saya meningkatkan daya.
Namun, pemeriksaan lebih lanjut mengungkapkan bahwa kami memiliki beberapa solder yang tidak tepat, setelah menyolder ulang sekali lagi, masalah kami terpecahkan. Mungkin juga ada masalah dengan interferensi atau pembicaraan silang, tetapi untungnya, kami tidak pernah menghadapinya.
Kode Github:
Arduino Bitwise Shift:
Arduino Bitwise DAN:
Langkah 6: Menyatukan Semuanya
Anda memiliki casing dan matriks LED. Sekarang saatnya untuk menyatukan semuanya. Pertama kita letakkan busa di bagian depan dan matriks LED di belakangnya dan sesuaikan posisinya. Karena busa memiliki gesekan yang sangat tinggi, itu hanya gesekan yang dipasang sementara matriks LED terpaku pada tempatnya. Setelah itu kami menempatkan layar di depan grid. Kami kemudian memasang pin setiap baris ke mikrokontroler dan mulai bermain!:D
Satu hal yang saya suka tentang proyek ini adalah fleksibilitasnya, Anda selalu dapat memprogram ulang mikrokontroler untuk menjadi bagian dari permainan lain dan mencoba sesuatu seperti membuat animasi atau permainan reaksi. Harap kalian menikmati membuat ini dan belajar sesuatu untuk membuat ini. GgEz!
Direkomendasikan:
Platformer Dengan Level Tak Terbatas di GameGo Dengan Makecode Arcade: 5 Langkah (dengan Gambar)
Platformer Dengan Level Tak Terbatas di GameGo Dengan Makecode Arcade: GameGo adalah konsol portabel game retro kompatibel Microsoft Makecode yang dikembangkan oleh pendidikan TinkerGen STEM. Ini didasarkan pada chip STM32F401RET6 ARM Cortex M4 dan dibuat untuk pendidik STEM atau hanya orang-orang yang suka bersenang-senang membuat video game retro
Arduino Pocket Game Console + A-Maze - Game Labirin: 6 Langkah (dengan Gambar)
Arduino Pocket Game Console + A-Maze - Maze Game: Selamat datang di instruksi pertama saya! Proyek yang ingin saya bagikan dengan Anda hari ini adalah game labirin Arduino, yang menjadi konsol saku yang mampu seperti Arduboy dan konsol berbasis Arduino serupa. Itu dapat di-flash dengan game masa depan saya (atau Anda) berkat expo
Mesin Game Arcade Dengan Raspberry Pi: 7 Langkah (dengan Gambar)
Mesin Game Arcade Dengan Raspberry Pi: Membuat cerita: Mesin game arcade dengan retro pi (raspberry pi3)
Game Arcade Laser LED Arduino: 3 Langkah (dengan Gambar)
Game Arkade Laser LED Arduino: Dalam instruksi ini saya akan mendemonstrasikan cara membuat Game Arkade Laser menggunakan LED dan sensor cahaya. Kode disertakan dan Anda tidak memerlukan banyak bagian untuk membuatnya. Saya tidak akan memberi tahu Anda bagaimana saya membuat kasing, Anda harus membuatnya sendiri! T
20 Jam $20 Table Top Arcade Build Dengan Ratusan Game Built In.: 7 Langkah (dengan Gambar)
20 Jam $20 Pembuatan Table Top Arcade Dengan Ratusan Game Built In.: Saya sudah lama ingin membuat sesuatu seperti ini tetapi tidak terburu-buru dengan banyak proyek lain yang selalu harus dilakukan. Karena saya tidak terburu-buru, saya hanya menunggu sampai saya mengumpulkan semua komponen yang diperlukan untuk membangun dengan harga murah. ini