Bagaimana kami membuat permainan papan dengan remote control

Permainan papan adalah salah satu hiburan tertua yang mengumpulkan teman, keluarga, dan hanya pecinta komunikasi langsung dan emosi di sekitar permainan.

Hari ini saya ingin memberi tahu Anda tentang bagaimana teman saya dan saya memutuskan untuk membuat permainan papan kami sendiri, tetapi tidak sederhana, tetapi "pintar" .

gambar

Bagian kedua dapat ditemukan di sini: tautan

Perhatian! Banyak gambar di.

Permainan kami adalah papan MoBA di mana setiap pemain mengontrol pahlawan uniknya sendiri, dengan karakteristik dan kemampuannya sendiri. Saat ini, kami memiliki prototipe versi pertama yang dibuat dari Arduino dan kayu lapis.

Fitur utama dari permainan kami adalah bahwa tidak perlu menyentuh angka selama permainan, permainan itu sendiri harus memindahkan mereka dan menampilkan semua kemampuan yang diterapkan. Pemain hanya dapat menonton dan mengontrol pahlawannya dari ponsel.

Beberapa gif gameplay
gif

gif

gif

gif

Apa yang harus bisa dilakukan oleh permainan yang cerdas:


  • Pindahkan angka-angka di lapangan sendiri.
  • Sorot bidang bermain (seluruhnya atau dalam blok terpisah) dengan warna apa pun.
  • Perlihatkan kepada pemain apa yang dapat / tidak bisa / harus dia lakukan, dengan demikian membuat aturan permainan transparan.
  • Tukar data dengan smartphone masing-masing pemain.

Begini bentuk bangunan pertama yang bisa diterapkan:

gambar

Bagaimana gagasan itu muncul


Entah bagaimana saya membeli desktop Arkham Horror. Setelah toko, saya langsung pergi ke teman untuk bermain. Namun, sayangnya, tidak ada dari kami yang pernah memainkannya sebelumnya, dan kami tidak dapat menguasai 26 halaman aturan.

Itulah yang membuat saya berpikir bahwa akan bagus untuk membuat papan permainan yang secara mandiri akan memantau implementasi aturan, menghitung nilai-nilai yang diperlukan (tanpa kubus, penggaris dan selembar kertas tertulis), dll.

Salah satu teman saya sangat menyukai gagasan itu, dan dia setuju untuk berpartisipasi.

Implementasi


Kami tidak memiliki pengalaman dalam mengembangkan perangkat perangkat keras (tidak satupun dari kami bahkan memegang Arduino di tangan kami), dan pengalaman pemrograman terbatas pada universitas dan pengembangan aplikasi kecil untuk Android. Namun, ini hanya menambah minat dan keinginan.

Setelah membahas semua detail, kami sampai pada hal berikut:

  • CoreXY memindahkan angka melintasi lapangan, dengan solenoida 12V yang terletak di kereta.
  • Dua motor stepper Nema 17 17HS4401 dan driver DRV8825 bertanggung jawab untuk gerakan ini.
  • Strip LED dengan pengalamatan piksel WS2812b digunakan untuk menyorot bidang.
  • Arduino Mega 2560, di mana perisai yang dikembangkan oleh kami, dipasang, bertanggung jawab atas manajemen.
  • Untuk transfer data antara game dan smartphone para pemain, 4 modul HM10 BLE bertanggung jawab.
  • Semua ini ditenagai oleh catu daya 12V, daya 120W dan konverter DC-DC 5V.
  • Di sisi smartphone adalah aplikasi mobile (saat ini di bawah Android), yang notabene adalah inti dari keseluruhan game. Dari sini pada BLE ada perintah bergerak, magnet on / off dan LED.

Mekaniknya


Kami tidak langsung datang ke CoreXY. Pada awalnya, ketika menerapkan kinematika, kami terinspirasi oleh berbagai panduan DIY untuk merakit printer 3D.

Di bawah ini adalah foto dari upaya pertama kami:

gambar

Untuk membuat komponen, kami membeli printer 3D yang murah dan bekas, yang sudah dicetak plastik 6200 meter dan sudah berfungsi dengan baik hingga hari ini.

Namun, opsi ini memiliki banyak kelemahan:

  • Perakitan itu menyakitkan - ketidaktepatan sedikit pun di lokasi poros - kereta berhenti naik.
  • Setidaknya satu bantalan buruk - gerbong berhenti mengendarai.
  • Tinggi seluruh struktur terlalu tinggi.
  • Kami tidak menyukai gagasan bahwa mesin harus ditempatkan pada bagian yang bergerak.

Pada satu titik, kami menemukan sebuah artikel yang menggambarkan kinematika CoreXY dan memutuskan untuk memilihnya. Dia memiliki dua kelebihan:

  • Perakitan sederhana karena semua bagian "khusus" dibuat pada printer CNC atau 3D.
  • Tinggi konstruksi rendah, yang dibatasi oleh ketinggian motor stepper.
  • Motor stepper tidak bergerak.

Jadi kontra:

  • Ukuran besar. Gambar dengan model 3D menunjukkan bahwa luas total jauh lebih besar dari luas permukaan kerja.
  • Tali pengikat panjang yang harus Anda tarik.
  • Cara spesifik untuk memindahkan kereta, yang akan saya bahas di bawah ini.

Untuk menghindari semua masalah secara maksimal, kami membuat model kami di Tinkercad, setelah itu kami mulai memesan dan mencetak komponen.

gambar

Permainan saat ini memiliki parameter fisik berikut:
Lebar: 780 mm Panjang: 700 mm Tinggi: 85 mm
Lapangan bermain: persegi dengan sisi 462 mm.
Dasar: tebal kayu lapis 12 mm, dengan lubang dipotong pada CNC untuk memasang komponen dan mesin.

gambar

Ketika modelnya sudah siap, sepertinya miniatur dan ringan ... Namun, tinggal itu sangat besar dan berat. Sekarang kami memahami bahwa seluruh struktur perlu dioptimalkan:

  • Ganti kayu lapis dengan bahan yang lebih ringan dan lebih tipis.
  • Panjang dan lebar kontur luar tidak boleh melebihi ukuran lapangan bermain (Anda mungkin harus mengubah kinematika).

Di bawah ini saya akan menjelaskan fitur yang kami temui selama perakitan:

  • Untuk memastikan bahwa gerakan kontur dalam dan carriage halus dan tanpa suara asing, sabuk harus sejajar dengan poros. Juga disarankan untuk melumasi poros. Kami menggunakan minyak biasa untuk mesin jahit.
  • Pada awalnya, kami menggunakan LM8UU Paman Liao sebagai bantalan linier, tetapi kami sering menemukan spesimen cacat yang dilonggarkan, langsung hancur dan tergores poros. Oleh karena itu, mereka memutuskan untuk menukarnya dengan bushing grafit.
  • Ada beberapa fitur yang bergerak menggunakan kinematika CoreXY. Jadi, jika kita memulai hanya 1 motor stepper, carriage akan berjalan secara diagonal. Untuk gerakan horizontal, perlu menyalakan mesin dalam arah yang sama. Untuk vertikal - dalam arah yang berlawanan.

Untuk menghitung jarak sepanjang X dan Y, Anda harus menggunakan rumus berikut:

gambar

Lapangan bermain


Untuk menyorot bidang bermain, kami memilih strip LED dengan pengalamatan pixel WS2812b, yang sangat cocok untuk keperluan kami.

WS2812b adalah LED RGB dalam paket SMD5050 dengan 4 pin: VDD, VSS, DIN dan DOUT.

Apa persyaratan untuk bidang ini:

  • Ketebalan kecil sehingga elektromagnet dapat menyeret sosok bersama dengannya.
  • Permukaan yang halus tempat geser akan dilakukan tanpa masalah.

Akibatnya, bidang permainan secara kondisional terdiri dari 3 bagian: substrat, tempat strip LED dipasang, pita itu sendiri, dan lapisan permukaan tempat gambar digeser.

Masalah utama yang kita hadapi adalah bagaimana membuat substrat itu?
Saat ini, kami menggunakan plexiglass, di mana ceruk di bawah pita dipotong pada CNC pada kedalaman 2 mm (ketinggian pita dan LED). Secara alami, lembaran ini benar-benar kehilangan setidaknya beberapa kekakuan dan sangat membungkuk di sepanjang garis pemotongan. Jadi kami hanya menempelkan substrat ke permukaan. Mungkin di versi selanjutnya kita akan mengganti plexiglass dengan polycarbonate monolitik.

gambar

Sebagai permukaan, semuanya juga dipilih sebagai Plexiglas, yang tergeletak setelah diperbaiki di balkon, setebal 4 mm, berwarna seperti susu, dengan tingkat dispersi yang baik.

Akibatnya, setelah duduk di malam hari dengan setrika, kami mendapat yang berikut:

gambar

Ada kaset dengan kepadatan LED yang berbeda. Biasanya itu adalah: 144, 90, 60, 30 per meter. Kami berhenti pada kaset dengan 30 LED per meter, karena Menggunakan selotip dengan kepadatan LED yang lebih tinggi - sulit untuk memindahkan angka tanpa tabrakan dan daya yang dibutuhkan untuk makanan meningkat.

Perlu diperhatikan bahwa LED terhubung secara seri. Karena itu, jika LED pertama Anda terbakar, maka sisanya tidak akan berfungsi.

Bidang kami memiliki ukuran 14 * 14 sel, total 196 piksel. Rekaman beroperasi pada tegangan 5V. Satu piksel dalam rekaman itu terdiri dari 3 LED - R, G, B, yang masing-masing mengkonsumsi 20 mA pada kecerahan maksimum. Sangat mudah untuk menghitung bahwa jika kita ingin menyalakan semua 196 piksel dalam warna putih, maka kita membutuhkan hampir 12 ...

Menemukan PSU kompak atau konverter DC-DC yang dapat menghasilkan arus pada 5V sangat bermasalah. Oleh karena itu, kami memutuskan bahwa dalam permainan kami, lapangan tidak boleh diisi lebih dari 60%, dan kami tidak menggunakan warna putih / abu-abu (warna di mana semua 3 LED dihidupkan), mis. maksimum 40 mA per piksel. Akibatnya, kami mendapatkan bahwa tabel tidak boleh mengkonsumsi lebih dari 5 A.

Saya sering melihat rekomendasi bahwa perlu untuk memberi daya pita dari dua sisi sehingga tidak ada kehilangan tegangan. Tapi kami terhubung ke pita di satu sisi, setiap 100 LED, dan kami tidak mengamati penurunan tegangan yang terlihat.

Elektronik


Manajemen semua bagian permainan terjadi menggunakan Arduino Mega 2560. Fungsi-fungsi berikut ditugaskan untuk itu:

  • Lakukan kalibrasi, sebagai hasilnya kita mengetahui berapa banyak langkah yang harus diambil oleh motor stepper untuk mengatasi 1 sel.
  • Terima perintah dan data dari aplikasi seluler dan kirim kembali status eksekusi ke BLE.
  • Pindahkan media dari titik A ke titik B sesuai dengan koordinat dari data yang diterima dari aplikasi seluler.
  • Nyalakan / matikan elektromagnet.
  • Nyalakan piksel tertentu di atas meja dengan warna tertentu. Nomor dan warna piksel ditransmisikan oleh aplikasi seluler.

Prototipe pertama dipasang di papan tempat memotong roti dan termasuk komponen-komponen berikut:

  • Arduino Mega 2560;
  • 2 driver motor stepper DRV8825;
  • 4 limit switch;
  • BLE-module HM-10;
  • Transistor IRF530N - untuk mengendalikan elektromagnet;
  • PSU MeanWell 12V 10A;
  • MeanWell DC-DC converter step-down dari 12V ke 5V, 10A;

gambar

Setelah kami memastikan bahwa semuanya berfungsi, kami memutuskan bahwa kami perlu membuat perisai kami untuk Arduino Mega dan akhirnya menyingkirkan kabel dan sekelompok kabel.

Karena kurangnya pengalaman dalam pengembangan perangkat lunak, kami memutuskan untuk mempercayakan bisnis ini kepada profesional. Sebagai hasilnya, salah satu teman kami mengembangkan papan dan memasang semua komponen. Hasilnya bisa dilihat di bawah ini:

gambar

Saya tidak bisa menilai kualitas eksekusi karena kurangnya pengalaman, tetapi dewan bekerja dengan sempurna. Anda dapat melihat diagram rangkaian di sini .

Aplikasi seluler


Aplikasi seluler adalah otak dari permainan kami. Ini adalah aplikasi yang berisi semua informasi tentang keadaan permainan, karakter, dll. Anroid dipilih sebagai platform pengembangan, syarat utama adalah dukungan BLE (karena di masa depan direncanakan untuk menambahkan versi game untuk iOS).

Tidak seperti elektronik, kami memiliki sedikit pengalaman dalam mengembangkan aplikasi seluler, jadi kami berencana untuk menyelesaikan tahap ini dengan cukup cepat. Namun, seperti biasa, semuanya tidak berjalan sesuai rencana.

gambar

Kami cukup cepat menyadari bahwa sebenarnya kami harus menulis game mobile yang lengkap di mana cara menampilkan informasi tidak hanya layar ponsel, tetapi juga permukaan permainan papan.

Fungsi utama dari aplikasi saat ini:

  • Cari perangkat BLE, identifikasi perangkat yang sesuai untuk koneksi. Identifikasi termasuk "jabat tangan" - telepon harus memastikan bahwa perangkat yang terhubung benar-benar merupakan modul bluetooth dari permainan papan, dan bukan TV.
  • Pilihan pemain (setidaknya 2) dari pahlawan yang tersedia, yang saat ini ada 4.
  • Memberikan semua informasi yang diperlukan kepada pemain saat ini: tentang kemampuan yang tersedia, tentang cooldown mereka, tentang lawan, dll.
  • Membuat gerakan - setiap pemain mengontrol gerakannya dengan bantuan "joystick", yang dengannya ia memilih sel untuk menerapkan kemampuan, bergerak, dll.

Kami tidak memiliki rasa keindahan, serta desainer UX / UI yang sudah dikenal, jadi kami melakukan desain sendiri semampu kami. Di masa depan, kami berencana untuk menambahkan ENT, deskripsi, serta mode PVE di mana pemain akan bertarung melawan bos di arena.

Hasil


Saat ini, kami memiliki prototipe yang berfungsi penuh yang dapat Anda mainkan (meskipun pada 1 smartphone), dan kami memoles aturan dan mekanisme permainan. Kami menghabiskan waktu sekitar satu tahun untuk membuatnya, bekerja di akhir pekan dan malam hari yang jarang ketika ada waktu luang.

Kami memiliki rencana ambisius: untuk menemukan orang-orang yang berpikiran sama, menyelesaikan prototipe, benar-benar "menjilat" keseimbangan dan aturan permainan dan mencoba melanjutkan Kickstarter , seperti itu akan menjadi pengalaman yang fantastis.

Jika itu akan menarik, maka di artikel selanjutnya saya akan bercerita lebih banyak tentang aplikasi mobile, game itu sendiri, bagaimana kami membuat miniatur kami dan apa yang terjadi.

Source: https://habr.com/ru/post/id425629/


All Articles