Membuat Kotak Game Arcade LEGO Berbasis Arduino – Kit DIY dengan Nano, Baterai, LCD, dan Lainnya
Komponen dan Perlengkapan
Arduino Nano R3 – 1 buah
Pengontrol pengisian dan pengosongan baterai TP4056 – 1 buah
Tombol Dome Besar SparkFun – 4 buah
LCD Standar Adafruit 16x2 Putih pada Biru – 1 buah
Alat dan Mesin yang Diperlukan
Paku las (generik)
Aplikasi dan Layanan Online
Arduino IDE
Tentang Proyek Ini
Jika Anda memiliki anak-anak, Anda mungkin menghadapi masalah yang sama seperti yang kami hadapi dengan set Lego yang Anda beli untuk mereka. Mereka merakit dan bermain dengan mereka tetapi setelah beberapa waktu set berubah menjadi satu tumpukan batu bata. Anak-anak besar dan Anda tidak tahu apa yang harus dilakukan dengan tumpukan ini.
Kami memutuskan untuk mendaur ulang batu bata Lego yang tidak diinginkan dan menciptakan sebuah game arcade.
Panduan langkah demi langkah ini adalah hasil dari beberapa bulan kerja untuk membuat game dapat diulang dan sangat hemat biaya. Hampir siapa pun dapat mengulangi proyek ini! Kode ditulis sedemikian rupa sehingga tidak memiliki dependensi dan akan dikompilasi pada papan Arduino apa pun. Dan tentu saja game telah diuji secara intensif oleh anak-anak kami :-)
Bagaimana game ini berbeda dari banyak game lainnya yang telah diterbitkan sebelumnya?
Pertama, ada 5 game yang tertanam di dalamnya:
Game memori (mirip "Simon-Says", mirip game Touch Me)
Game reaksi (mirip game Whack-a-Mole)
Game kontes/lomba (untuk 2-4 pemain)
Game melodi (mode bebas tekan dan mainkan untuk anak kecil dan yang lebih kecil)
Game perang (untuk 2-4 orang dewasa)
Kedua, desainnya bagus (menurut perspektif kami) dan dapat dengan mudah diulang.
Dan ketiga, ramah lingkungan karena memungkinkan Anda untuk mendaur ulang plastik.
Di akhir panduan ini juga ada video langkah demi langkah jika Anda lebih suka format video.
Langkah 1: Daftar Komponen
Jika Anda suka proyek ini tetapi tidak memiliki tumpukan batu bata Lego yang tidak diinginkan, yang paling mudah adalah membeli set Lego Classic 10704 dengan 900 potongan di dalamnya.
Berikut adalah daftar item yang Anda butuhkan untuk membuat proyek ini:
1kg (2lb) batu bata Lego yang tidak diinginkan (atau batu bata serupa dari merek lain seperti Mega Bloks)
Papasan dasar Lego 25 x 25 cm (atau serupa dari merek lain). Papasan dasar Lego memiliki titik 32 x 32. Jika Anda tidak memilikinya - dasarnya berkira 3$ termasuk ongkos kirim jika Anda membeli online (kata kunci pencarian "32 25 blocks")
Lemak plexiglass transparan 30 x 30 cm (tebal 5 atau 6mm)
4 tombol push arcade besar 60mm (saya merekomendasikan merah, hijau, biru, kuning) (kata kunci pencarian untuk toko online: "60mm arcade button"). Mereka adalah komponen termahal dalam pembangunan ini dengan harga sekitar 2$ per buah.
2 tombol push momenter radius 16mm (saya merekomendasikan Putih dan Hitam) (kata kunci pencarian: "16mm push button")
Switch geser daya on/off ukuran pemasangan 27x21mm (saya merekomendasikan merah transparan dengan 4 pin) (kata kunci pencarian: "rocker switch 16a")
Arduino Nano
Layar LCD 1602 dan modul koneksi I2C
2 speaker 4ohm 5W, ukuran 30 x 70 mm (Anda dapat menggunakan yang lain yang kecil tetapi gambar CAD dibuat untuk 30x70mm)
8 papan prototipe 6 cm atau papan roti 830 pin
2 baterai rechargeable 18650 (dapat didaur ulang dari baterai laptop mati)
Tempat baterai ganda 18650 (kata kunci pencarian: "holder 2 x 18650")
Pengontrol pengisian TP4056 dan perlindungan pengosongan
Konverter step-up 5V (terkecil 500mA sudah cukup)
Barang-barang kecil: beberapa kawat, kabel Mini-USB atau soket plug DIY, soket Micro-USB pada breakout PCB, bout M3/dadu/cincin, 4 stik penutup atas
Resistor: 6 x 100 ohm, 1 x 1k, 3 x 10k
Langkah 2: Membuat Kotak
Ini adalah bagian paling mudah dari proyek yang dapat Anda serahkan kepada anak-anak Anda.
Ambil papasan dasar Lego 32x32 titik dan tata dinding menggunakan bagian yang didaur ulang. Anda harus memiliki sekitar 9 lapisan secara keseluruhan. Kami memilih warna abu-abu terang untuk dasar sehingga dinding batu bata warna acak menjadi perhatian utama.
Tidak ada kotak yang akan sama. Jadilah kreatif saat Anda membuat lapisan. Daur ulang bahkan bagian kecil - mereka terlihat keren. Juga bentuk tidak teratur terlihat bagus. Tambahkan jendela, kaca mobil, pintu dan kotak.
Kotak harus memiliki setidaknya satu pintu Lego berukuran penuh. Ini diperlukan untuk memasang switch geser di dinding.
Langkah 3: Membuat Penutup Atas
Penutup atas terbuat dari lembar akrilik transparan (plexiglas) tebal 5 atau 6 mm. Unduh gambar CAD, letakkan di USB stick dan pergi ke toko CNC terdekat - mereka akan memfraisnya untuk Anda. Gambar CAD juga mencakup plat pemasangan switch geser (lihat gambar).
Anda perlu melakukan beberapa finishing pada plat atas. Lakukan pemindahan tepi dengan kertas kasar dan kayu batang. Lubangi lubang untuk memasang speaker dan layar 1602. Layar 1602 juga memerlukan segitiga kecil yang di frais di sisi jendela LCD pada lembar akrilik (lihat foto). Saya melakukannya pada kedalaman setengah menggunakan alat rotary (dremel) dan bit router kecil.
top-template2.dxf
Langkah 4: Tambahkan Semua Komponen ke Penutup Atas
Pasang 4 tombol arcade besar, 2 tombol ganti/pilih game, 2 speaker dan modul 1602 LCD+I2C. Semua dipasang dengan bout M3 + cincin M3 dan dadu di bagian belakang.
Sebelum Anda memasang tombol arcade - lepaskan pemegang lampu LED. Anda perlu memodifikasi mereka sedikit - lihat langkah berikutnya.
Langkah 5: Memodifikasi LED pada Tombol Arcade
Tombol arcade ini dirancang untuk beroperasi pada 12V. Mereka akan bekerja dengan 5V yang merupakan tegangan default untuk proyek ini tetapi akan terlalu redup. Jadi saya melepaskan soket LED dari tombol arcade, mengeluarkan pemegang LED dan melepaskan LED dengan resistor. Resistor 460ohm perlu dilepas dan diganti dengan 100ohm. Setelah selesai, saya merakit semuanya kembali dan memasang LED dengan pemegang ke dalam tombol.
Langkah 6: (opsional) Label Tombol Kontrol
Anda mungkin telah memperhatikan label pada 2 tombol kontrol. Versi pertama pembangunan kami tidak memilikinya tetapi saya memutuskan untuk menambahkannya saat saya mengulangi pembangunan kalian kedua.
Kedua tombol memiliki fungsi yang bergantung pada status game. Tombol Putih memulai game yang dipilih atau mengonfirmasi pilihan selama beberapa game. Tombol Hitam mengubah game yang dipilih atau keluar selama game.
Untuk membuat label bundar Anda perlu lembar aluminium tipis (maksimal 1mm tebal), bit bor gergaji lubang, bit bor bertingkat dan stempel huruf (lihat gambar). Pertama Anda memotong lingkaran menggunakan gergaji lubang. Kemudian Anda memperbesar diameter dalam dengan bit bertingkat dan kemudian Anda menggunakan stempel huruf untuk membuat label. Untuk membuat huruf lebih terlihat, gunakan pennanda permanen hitam (sharpie).
Langkah 7: Membuat Papan Breakout
Anda memiliki dua opsi di sini. Entah menggunakan papan roti dan merangkaikan Arduino dengan kabel melalui papan roti atau memasang breakout kecil di bagian belakang panel LCD.
Untuk pembangunan pertama kami menggunakan papan roti (lihat gambar). Untuk pembangunan kedua kami memutuskan untuk menghabiskan lebih banyak waktu untuk membuat papan breakout. Fungsionalitas tidak berubah, tetapi ada lebih sedikit kabel dan breakout tersembunyi di bawah panel LCD.
Jika Anda memilih untuk menggunakan papan breakout, ambil papan prototipe 8x6 dan potong seperti yang ditunjukkan dalam gambar. Bagian yang lebih besar akan digunakan untuk breakout dan bagian yang lebih kecil untuk membuat supply daya.
Lakukan las Arduino Nano pada papan proto ini.
Langkah 8: Rangkaian Koneksi
Siapkan beberapa kabel dan rangkaikan pengaturan, switch dan koneksi Anda ke Nano sesuai diagram.
Sejak saya mulai menggunakan kabel pasangan twisted Ethernet - saya lupa tentang pusingan di mana mencari kabel untuk proyek saya. Mereka berwarna berbeda dan inti multi jadi tidak mudah pecah. Satu-satunya hal yang perlu Anda perhatikan saat bekerja dengan mereka adalah las harus sangat cepat agar Anda tidak membakar isolasi.
Perhatikan bagaimana resistor 100ohm dirangkaikan untuk koneksi ke speaker.
Beberapa catatan pada koneksi:
Tombol Kontrol Hitam/Putih terhubung dari pin D2/3 langsung ke Ground karena Resistor Pull-up Internal digunakan di Nano.
A4/5 terhubung ke pin I2C SDA/SCL. Ini diperlukan untuk modul LCD I2C.
Speaker harus terhubung ke D10/11 karena pin ini diaktifkan PWM.
Disarankan untuk menambahkan garis tembaga kecil sebagai Ground rail untuk memudahkan koneksi semua kawat Ground (akan ada sekitar 5 buah).
Langkah 9: Rangkaian Tombol
Semua Tombol Arcade terhubung ke satu pin A1 melalui serangkaian resistor. A1 diatur sebagai Internal Analog Pull-up. Ini adalah salah satu fitur yang tidak widely known dari Arduino yang membantu kami menghemat jumlah kabel yang keluar ke tombol.
Jadi pengaturan adalah sebagai berikut: dari A1 ke tombol pertama melalui resistor 1k. Dari tombol1 ke tombol2 melalui 10k. Dari tombol2 ke tombol3 melalui 10k dan dari tombol3 ke tombol4 melalui 10k. Setiap tombol pada keadaan "close" menyambung ke Ground. Karena sudah ada Ground pada setiap tombol untuk LED, pin kedua setiap switch terhubung ke ground dari LED. Lihat diagram untuk memahami rangkaian.
Pada titik ini, memasang kabel Mini-USB ke Arduino Nano seharusnya memungkinkan Anda untuk bermain game setelah mengunggah skets. Yang Anda butuhkan hanyalah supply daya untuk membuat game portable.
Langkah 10: Memasang Baterai
Saya menggunakan dua sel 18650 yang didaur ulang dari baterai laptop mati. Ini adalah sel dengan kapasitas lebih rendah (sekitar 600mAh) yang saya tidak ingin gunakan untuk aplikasi beban lebih tinggi. Perangkat tidak benar-benar menggunakan banyak daya jadi ini seharusnya cukup untuk menjalankan game selama berhari-hari.
Baterai dipasang dalam tempat baterai ganda 18650 dan ada konektor untuk pemasangan yang mudah ke supply daya.
Langkah 11: Memasang Pengaya Soket USB
Game harus dapat mengisi ulang daya dan mengupgrade firmware tanpa pemasangan ulang. Jadi saya lubangi salah satu batu bata untuk menyembunyikan konektor Micro-USB.
Untuk memperpanjang USB dari dinding batu bata ke Arduino Nano, saya mengambil kabel Mini-USB dan memotong ujung USB-A (konektor USB besar) dan mengupas kawat. Dalam kasus saya, merah/hitam adalah daya dan putih/hijau adalah koneksi D+/-.
D+/- perlu dilas pada breakout Micro-USB. 5V dan ground (merah/hitam) perlu melalui supply daya.
Mengapa breakout Micro-USB dipilih jika Nano menggunakan Mini-USB? Karena Micro-USB ada di mana-mana di rumah kita - digunakan untuk mengisi daya ponsel dan perangkat lainnya. Jadi Anda akan dapat mengisi daya game dan mengupgrade firmware dengan kabel ponsel Anda :-)
Langkah 12: Membuat Supply Daya
Saya mengambil papan prototipe yang lebih kecil dan melas langsung padanya modul charger dan perlindungan baterai TP4056 dan juga booster 5V.
Input ke TP4056 berasal dari soket Micro-USB. Kabel baterai dilekatkan pada pin TP4056 yang ditandai B+/-. Pin yang ditandai OUT+/- pergi ke switch geser. Dari switch geser koneksi +/- pergi ke modul booster 5V dan dari output booster kabel merah/hitam dari kabel USB yang diupas terhubung.
Lihat diagram untuk memahami rangkaian.
Langkah 13: Epoxy Breakout Micro USB
Saya menggunakan beberapa epoxy untuk memperbaiki breakout Micro-USB di batu bata Lego. Setelahnya kering, soket akan lebih kokoh dari yang ada di ponsel jadi anak-anak akan dapat mengisi ulang game dan tidak akan pecah.
Saya merekomendasikan menggunakan epoxy cepat kering untuk bagian ini. Jika Anda tidak memilikinya, tambahkan sedikit lebih banyak hardener ke resin dan biarkan beberapa saat.
Langkah 14: Pasang Switch Geser, Hubungkan Sirkuit Daya
Switch ini sangat besar. Dirancang untuk tegangan jaringan 250V. Tetapi saya masih menggunakan model ini karena terlihat bagus dan cocok sempurna ke dalam pintu Lego City standar. Jadi saya memasukkan switch ke dalam plat pemasangan dan kemudian memasang plat pada dinding batu bata menggunakan 2 bout (dinding telah di lubangi sebelumnya).
Seluruh sirkuit juga sekarang dapat dipasang beserta breakout Micro-USB yang di epoxykan ke dalam batu bata Lego.Perhatikan bagaimana beberapa batu bata tambahan digunakan untuk memasang komponen ke dasar.
Langkah 15: Menutup Tutup
Masukkan kabel Mini-USB ke Arduino Nano yang dipasang pada penutup atas dan tutup tutup.
Saya telah membuat lubang bor 4 lubang di dinding dan menggunakan 4 bout untuk memasang atas ke kotak.
Langkah 16: Kode
Versi pertama game ditulis oleh saya diikuti oleh 4 versi baru dari teman saya Alex yang menambahkan 4 game lagi dan membersihkan kode hingga sempurna. Kami juga menggunakan karya Reyboz untuk suara - tingkat suara yang dihasilkan menggunakan kode ini luar biasa dibandingkan dengan apa yang bawaan menggunakan perpustakaan Tone Arduino.
Seperti yang disebutkan, kode telah dioptimalkan selama bulan setelah pengujian QA yang ekstensif oleh anak-anak dan saat ini kami telah mengunggah versi 4 ke GitHub.
Versi terbaru Kode Sumber: https://github.com/LenkaDesign/Arduino-Arcade-Lego-Games-Box
Yang Anda perlu lakukan adalah memasang perpustakaan LCD 1602 I2C (tersedia dalam manajer perpustakaan Arduino IDE) dan kemudian unggah kode kami.
Pertama Anda mengunggah button-calibration.ino dan mencatat pada selembar kertas nilai yang dihasilkan setiap Tombol Arcade. Skrip ini juga akan menghapus EEPROM sehingga skor terbaik direset.
Setelah itu Anda mengubah di Game-Settings.h nilai tombol yang telah Anda kalibrasi dan unggah file utama Lego-Games-Box.ino dan Anda dapat mulai bermain (asalkan Anda telah menghubungkan semuanya sesuai skema yang diberikan di atas).
Catatan: jika Anda membuat game ini untuk anak-anak, harap hapus di Game-settings.h entri terakhir dariString GameTitle[] = {"Memory Game", "Reaction Game", "Tournament Game", "Melody Game", "Nuclear War Game"};Entri terakhir ini memiliki aturan di mana setiap pemain memilih musuh dan mungkin terlalu hostile untuk anak-anak.
Langkah 17: Video Cara Membuat Detail
Jika Anda merasa lebih mudah menonton video daripada membaca petunjuk, berikut adalah versi video dari pembangunan ini.
Langkah 18: Aturan Permainan
Saat ini ada 5 game yang diimplementasikan. Jika Anda memiliki ide lebih banyak tentang game yang dapat dibuat menggunakan kotak ini - harap beri tahu kami di komentar. Saya akan singkatnya melalui setiap game menjelaskan aturan dan cara bermain.
Lalukan switch geser di sisi untuk menyalakan Kotak Game Arcade Lego. Semua game disertai dengan suara dari game Mario yang nostalgis. Saat startup Anda seharusnya mendengar melodi startup game Mario.
Setelah dimulai, Anda akan melihat di layar LCD game yang sekarang dipilih. Untuk mengubah game, tekan tombol Hitam.
Setelah memutuskan game mana yang ingin Anda mainkan, cukup tekan tombol Putih untuk memulai.
Jika Anda ingin keluar dari game yang sedang berjalan - Anda perlu menekan tombol Hitam.
Di startup Anda dapat mematikan suara (mode malam) dengan menekan tombol Merah.
Game Memori (mirip "Simon-Says", mirip game Touch Me)
Aturannya dikenal luas dan sederhana. Game menunjukkan urutan nada/lampu dan Anda perlu mengulanginya. Setiap kali satu nada/lampu tambahan ditambahkan ke urutan. Semakin lama Anda bertahan, semakin baik memori Anda.Ini sangat bagus untuk melatih memori jangka pendek anak-anak dan orang dewasa.
Game Reaksi (mirip game Whack-a-Mole)
Anda perlu cukup cepat untuk menekan setiap tombol yang menyala. Semakin lama Anda bermain semakin cepat tombol menyala. Ini sangat bagus untuk melatih reaksi anak-anak dan orang dewasa.
Game Kontes/Lomba (untuk 2-4 pemain)
Anda diberikan 5 putaran. Setiap orang harus menekan tombolnya sangat cepat setelah sinyal diberikan (Coin tune dari Mario). Siapa yang menekan tombol terlebih dahulu menang putaran. Jumlah kemenangan dihitung di akhir 5 putaran dan pemenang diumumkan.
Game Melodi (Mode bebas tekan dan mainkan untuk anak kecil dan yang lebih kecil)
Ini sangat bagus untuk anak kecil - memutar nada bergantian saat Anda menekan dan menahan tombol.Setelah pengujian awal dengan anak-anak kami menyadari bahwa anak kami yang lebih kecil yang berusia 1 tahun benar-benar ingin bermain tetapi tidak memahami BAGAIMANA. Aturan game ini adalah - TIDAK ADA ATURAN. Anda dapat menekan tombol apa pun dan akan menghasilkan suara.
Game Perang (untuk 2-4 orang dewasa)
Teman saya Alex, yang memprogram versi berikutnya dari kotak game ini mendapat ide untuk game ini selama krisis Trump/Kim tentang siapa yang punya tombol nuklir yang lebih besar. Aturannya memerlukan video terpisah untuk penjelasan (Anda dapat menemukannya di sini dan di sini) tetapi dalam intinya, Anda memilih jumlah pemain di awal dan selama setiap putaran setiap orang memilih musuhnya. Setelah semua orang memilih musuhnya, roket mulai terbang. Siapa yang dipilih sebagai musuh memiliki beberapa saat untuk menekan tombol untuk mengirim roket persimpangan dan menyelamatkan negaranya. Putaran berlanjut sampai hanya satu negara yang tersisa.
Langkah 19: Hasil Akhir
Kami 3 teman yang menghabiskan waktu untuk membuat game untuk anak-anak kami. Kami benar-benar berharap Anda akan suka game ini sehingga Anda akan membuat versi Anda sendiri menggunakan petunjuk ini. Jika Anda memiliki pertanyaan atau saran - harap posting di komentar.