Daftar Isi:

Pengontrol Game Arduino Dengan Lampu Menanggapi Game Unity Anda:: 24 Langkah
Pengontrol Game Arduino Dengan Lampu Menanggapi Game Unity Anda:: 24 Langkah

Video: Pengontrol Game Arduino Dengan Lampu Menanggapi Game Unity Anda:: 24 Langkah

Video: Pengontrol Game Arduino Dengan Lampu Menanggapi Game Unity Anda:: 24 Langkah
Video: Hati2 bossku jika hendak cuci mobil. Pastikan pilih cuci steam yg model H agar lebih safety 🙏👍 2024, November
Anonim
Pengontrol Game Arduino Dengan Lampu Menanggapi Game Unity Anda
Pengontrol Game Arduino Dengan Lampu Menanggapi Game Unity Anda

Pertama saya menulis hal ini dalam kata. Ini adalah pertama kalinya saya menggunakan instruksi jadi setiap kali saya mengatakan: tulis kode seperti jadi ketahuilah bahwa saya mengacu pada gambar di bagian atas langkah itu.

Dalam proyek ini saya menggunakan 2 arduino untuk menjalankan 2 bit kode yang terpisah karena saya mengalami kesulitan membuatnya bekerja hanya dengan satu

Ini adalah Uno dan Leonardo

secara total inilah yang Anda perlukan untuk membuat papan tempat memotong roti proyek ini.

· 7 tombol tekan

· 23 kabel jumper

· 1 arduino Leonardo + kabel usb

· 4 resistor · 4 led

· 1 arduino uno + kabel usb

· 2 papan tempat memotong roti

Langkah 1: Menghubungkan Tombol Kontrol ke Arduino

Menghubungkan Tombol Kontrol ke Arduino
Menghubungkan Tombol Kontrol ke Arduino

Apa yang Anda perlukan untuk menghubungkan bagian ini:

· 7 tombol tekan

· 14 kabel jumper

· 1 arduino Leonardo + kabel usb

· papan tempat memotong roti

Tombol-tombolnya cukup sederhana untuk dihubungkan tetapi dapat dengan cepat menjadi berantakan untuk ditampilkan dalam bentuk gambar.

· pertama-tama Anda menempatkan tombol tekan di posisi yang saya tandai pada gambar di atas.

· Kedua, Anda ingin menghubungkan jumper dari slot ground pada arduino Leonardo ke baris minus pada papan tempat memotong roti.

· Sekarang Anda menghubungkan jumper dari mana saja di baris minus ke baris yang sesuai dengan pin kanan Anda menekan tombol. ini akan memberi makan kekuatan untuk itu.

· Selanjutnya Anda ingin menghubungkan kabel jumper dari baris yang sejajar dengan pin kiri tombol tekan Anda ke slot input digital Leonardo. Untuk tombol disini saya menggunakan slot 2 - 3 – 4 – 5 - 6 - 7-8

Saya hanya menunjukkan kabel yang akan masuk ke input 8 pada gambar karena itu menjadi gambar yang sangat berantakan untuk menunjukkan kepada Anda semua kabel yang saling bersilangan.

Langkah 2: Mengkodekan Arduino Leonardo:

Mengkodekan Arduino Leonardo
Mengkodekan Arduino Leonardo

Jadi untuk memberi tahu Anda alasan saya menggunakan Leonardo untuk ini. Itu karena memiliki chip tertentu yang tidak dimiliki Uno yang membuat komputer mengenalinya sebagai perangkat input usb. Sama seperti itu akan keyboard. Yang memungkinkan kita untuk melakukan sesuatu yang membuat hidup kita sebagai programmer untuk proyek ini jauh lebih mudah. Emulasi papan ketik. Kita akan mengelabui komputer agar berpikir bahwa kita menekan tombol tertentu pada keyboard padahal sebenarnya kita menekan tombol pada pengontrol kita.

Sekarang saya akan memandu Anda memikirkan kode langkah demi langkah.

Pertama-tama di bagian atas kami menyertakan Keyboard.h. Ini akan memungkinkan kita untuk menggunakan fungsi keyboard yang akan kita gunakan dalam kode kita.

Langkah 3:

Gambar
Gambar

Kemudian kita perlu menentukan slot input digital yang akan kita gunakan pada

Leonardo untuk setiap tombol.

Saya juga menamai semuanya dengan kunci yang akan saya tiru.

Langkah 4:

Gambar
Gambar

Dari sana kita masuk ke fungsi setup. Ini memberitahu

arduino apa yang dilakukannya saat start up.

pertama kita tulis Serial.begin yang akan membuka serial port dan set data rate ke 9600 bps

dan kami mendefinisikan semua pin bernama untuk menjadi input.

Langkah 5:

Gambar
Gambar

Dan akhirnya kami menulis fungsi loop kami yang akan memeriksa apakah

tombol sedang ditekan dan memberitahu arduino bagaimana menanggapinya.

Pertama kita menulis Keyboard.begin yang akan memberi tahu arduino bahwa dia perlu mengawasi kita menggunakan fungsi keyboard

Langkah 6:

Gambar
Gambar
Gambar
Gambar
Gambar
Gambar

Kemudian untuk setiap tombol kami menulis pernyataan if/else yang berbunyi seperti ini

Jadi apa yang saya katakan kepada arduino di sini adalah: Jika tombol kiri saya ditekan pada pengontrol membuat komputer berpikir kita menekan tombol "a" dan jika tidak, membuatnya berpikir bahwa kita telah melepaskan kuncinya.

Anda pada dasarnya mengulangi blok kode ini untuk setiap tombol pada pengontrol Anda. dengan perubahan untuk setiap variabel dan kunci yang perlu ditiru oleh variabel

Langkah 7:

Gambar
Gambar

Kunci yang kami suruh komputer untuk menekan di sini adalah W – A – S – D yang

cukup banyak standar untuk gerakan di game pc dan E – Q – dan spasi yang dalam kode ini dikenali sebagai '' yang merupakan tombol yang saya gunakan untuk mengambil - menutup dan menembak di game saya. Jangan ragu untuk mengubahnya ke tombol apa pun yang Anda rasa berfungsi lebih baik untuk game/pengontrol Anda.

Lalu terakhir kami memberi tahu arduino untuk menghentikan pemeriksaan Keyboard.end yang mana

Langkah 8: Gerakan Coding dalam Unity:

Gerakan Pengkodean dalam Kesatuan
Gerakan Pengkodean dalam Kesatuan

Pertama izinkan saya memberi tahu Anda bahwa saya membuat ini untuk game 2d jadi

contoh yang akan Anda lihat dibuat untuk itu. Terutama berarti di mana saya menggunakan vector2 jika Anda bekerja dalam 3d, Anda akan menggunakan vector3. karena Anda perlu khawatir tentang dimensi ekstra gerakan dalam 3d.

Sekarang alasan saya menggunakan emulasi Keyboard di sisi arduino adalah karena Unity memiliki sesuatu yang dibangun untuk mengenali tombol pada keyboard yang dapat kita gunakan.

Jika Anda membuka proyek Anda dalam kesatuan, buka Edit -> Pengaturan proyek -> Input. Anda dapat melihat di inspektur Anda mem-boot manajer input. Di mana jika Anda mengklik Axes, Anda dapat melihat sejumlah besar nama input terbuka yang biasanya digunakan untuk pengontrol pc seperti yang kami buat sekarang. 2 input yang akan kita gunakan adalah Horizontal dan Vertikal yang memeriksa apakah Anda dapat menebaknya W-A-S-D.

Pertama, Anda ingin membuat objek Dalam hierarki adegan kesatuan Anda yang akan menjadi pemain Anda. Dalam kasus saya menjadi pria kecil yang menyenangkan ini. Ini bisa menjadi apa pun yang Anda butuhkan, tetapi untuk tujuan permainan saya, saya membuat orang ini.

Langkah 9:

Gambar
Gambar

Anda ingin memberi pemain ini 2 hal. Tabrakan kotak 2d dan

a Rigidbody 2d dan edit menjadi seperti gambar di atas.

Langkah 10:

Gambar
Gambar

Kemudian Anda ingin masuk ke folder proyek Anda dan membuat

Skrip C#. Yang saya beri nama PlayerMovement.

Dalam skrip ini Anda akan mendefinisikan 2 variabel. Sebuah pelampung publik yang saya sebut moveSpeed. Yang akan menentukan seberapa cepat Anda pergi. Dan Rigidbody2D pribadi yang saya sebut RigidPlayer. Yang akan mencari pemain Anda yang kaku.

Jangan lupa untuk membuka editor kesatuan Anda, klik pemutar Anda, tambahkan skrip baru ini dengan menyeretnya ke inspektur dan menetapkan nilai angka untuk moveSpeed.

Langkah 11:

Gambar
Gambar

sekarang di Start() Anda, Anda ingin melakukan satu hal dan itu adalah

pastikan RigidPlayer Anda dapat menemukan 2d rigidbody pembayar Anda. Anda melakukannya dengan baris kode berikut:

Langkah 12:

Gambar
Gambar

Kemudian kita beralih ke update(). Di sinilah kita akan pergi

untuk membuat pemain bergerak.

kita melakukannya dengan pernyataan if yang cukup sederhana yang akan melihat tombol negatif dan positif dari Horizontal (AD) dan Vertikal (SW) dan menerapkannya sebagai angka untuk memaksa kita akan memakai 2d rigidbody kita untuk mendorong pemain kita masuk sebuah arah. Angka tersebut akan dikalikan dengan variabel moveSpeed.

Langkah 13:

Gambar
Gambar

Terakhir Anda ingin memastikan pemutar Anda berhenti bergerak saat

Anda tidak menekan apa pun. Ini yang Anda sukai:

Sekarang jika Anda ingin menggunakan 3 tombol lain untuk apa pun, Anda melakukannya dengan pernyataan if ini: if(Input. GetKeyDown(Keycode. Space))

untuk spasi dan alih-alih spasi, letakkan huruf dari tombol lain yang Anda pilih untuk digunakan untuk tombol lainnya.

Langkah 14: Menghubungkan Lampu ke Arduino

Menghubungkan Lampu ke Arduino
Menghubungkan Lampu ke Arduino

·

Apa yang Anda perlukan untuk menghubungkan bagian ini:

· 9 kabel jumper

· 4 resistor

· 4 led

· 1 arduino uno + kabel usb

· papan tempat memotong roti

Sambungan untuk lampu akan dilakukan melalui Uno.

Ini akan berakhir seperti gambar di atas:

Anda menghubungkan resistor ke sisi panjang LED. Dan kemudian Anda menghubungkan jumper dari nomor pin digital di uno ke resistor. dalam hal ini saya menggunakan slot pin digital 9 – 10 -11 -12 angka-angka ini akan relevan ketika kita sampai ke kode untuk lampu.

Dari sana Anda ingin menghubungkan jumper dari slot ground pada arduino Uno Anda ke tempat di papan Anda seperti yang terlihat dengan kabel hitam pada gambar di atas.

Maka Anda ingin memiliki 4 jumper yang semuanya mengarah ke ujung pendek setiap LED

Langkah 15: Mengkodekan Arduino Uno

Mengkode Arduino Uno
Mengkode Arduino Uno

Baiklah pertama kita akan mendefinisikan variabel kita lagi

Jadi pertama-tama input digital mana yang kita gunakan untuk lampu kita. Dan kita akan membuat char bernama myCol[20]

Langkah 16:

Gambar
Gambar

Kemudian di setup kita ingin melakukan Serial.begin lagi. Letakkan semua LED kami di Output dan matikan semuanya saat startup.

Langkah 17:

Gambar
Gambar

Dan akhirnya Anda ingin menulis fungsi loop Anda.

Ini akan menyebabkan Arduino membaca data apa pun yang masuk melalui serial sampai salah satu dari dua peristiwa terjadi. Salah satu karakter umpan baris terdeteksi; ini diidentifikasi dengan lf yang disetel ke 10 dan merupakan argumen pertama atau sejumlah byte tertentu telah dibaca. Ini adalah argumen ketiga dan untuk contoh ini disetel ke hanya satu byte. Data disimpan dalam variabel myCol, yang diatur ke char dan batas 20. Dalam readBytesUntil ini adalah argumen kedua. Atau cara lain untuk menjelaskannya adalah Serial.readBytesUntil(terminatorCharacter, buffer, byteLimit);

Dan pernyataan if akan memastikan lampu tertentu menyala saat unity memberikan sinyal. Dalam hal ini saya mendapat 4 lampu yang berbeda warna jadi saya buat unity send g untuk LED hijau menyala, b untuk LED biru menyala, r untuk LED merah menyala dan y untuk LED kuning menyala.

Langkah 18: Coding Lights Unity Side:

Lampu Pengkodean Sisi Kesatuan
Lampu Pengkodean Sisi Kesatuan

Oke 2 hal dulu sebelum kita masuk ke ini.

1. dalam program pengkodean arduino Anda, buka Alat -> Port -> dan periksa saya di COM mana uno Anda aktif. Dalam kasus saya COM3 (ini akan menjadi penting dalam kode)

2. dalam kesatuan Buka Edit -> Pengaturan proyek -> Pemain kemudian di inspektur klik pengaturan lain, buka Tingkat kompatibilitas Api dan Alihkan dari subnet. NET 2.0 ke hanya. NET 2.0

Oke selesai. Mari kita masuk ke dalamnya.

Klik kanan pada hierarki Anda dan klik Buat kosong.

Ini akan menjadi objek game kosong yang hanya akan ada di game Anda untuk menyimpan satu skrip untuk kami. Saya menamakan objek ini Init.

Langkah 19:

Gambar
Gambar

Lalu masuk ke tab proyek Anda dan buat skrip C # baru

dan menyebutnya Mengirim.

Hal pertama yang Anda lakukan adalah menulis ini ke baris di bagian penggunaan kode Anda:

menggunakan System. IO. Ports;

menggunakan System. Threading;

ini membuatnya jadi kita bisa menggunakan variabel SerialPort

Langkah 20:

Gambar
Gambar

dalam skrip ini kita akan membuat variabel berikut. Sekarang perhatikan saya mendapat COM3 di sana ini mungkin berbeda untuk Anda seperti yang kita bahas di awal langkah ini. Jika sudah ganti 3 dengan angka yang tertulis untuk Anda.

Langkah 21:

Gambar
Gambar

Pada awalnya kami memberi tahu skrip yang akan digunakan adalah OpenConnection

fungsi yang akan kita tulis sedikit

pembaruan lebih merupakan ujian daripada apa pun tetapi jika Anda ingin memasukkannya untuk menguji pesan yang dikirim ke kesatuan. Anda bisa mengabaikannya dengan jujur.

Langkah 22:

Gambar
Gambar

Oke sekarang untuk fungsi OpenConnection ini. Ini hanya besar

pernyataan if/else yang membuat koneksi tetap terbuka, salin saja seperti yang tertulis dan Anda akan baik-baik saja.

Langkah 23:

Gambar
Gambar

Sekarang Ingat dari kode arduino yang saya buat untuk diperiksa

sinyal bahwa persatuan akan dikirim ke sana.

baik di sinilah yang terjadi. Dalam kasus saya, saya mendapatkan 4 lampu yang terhubung jadi saya menulis 4 fungsi yang sangat sederhana. Yang mereka lakukan adalah ketika mereka dipanggil mereka mengirim surat ke arduino. Ketika arduino mendapatkan huruf itu, lampu yang sesuai dengan huruf tersebut akan menyala.

Langkah 24:

Gambar
Gambar

Anda mungkin bertanya-tanya bagaimana saya bisa memanggil ini

fungsi? Anda melakukannya dengan satu baris sederhana di salah satu skrip c# lain yang Anda gunakan untuk gim Anda. Mengirim. NamaFungsidi sini();. Jadi misalnya di game saya pemain ditugaskan untuk mengumpulkan 4 bola berwarna. Jadi saya menulis skrip kecil yang memastikan bahwa ketika dia mendekati satu dan menekan tombol kanan dia mengambilnya dan mengirimkan sinyal ke arduino bahwa dalam hal ini bola Kuning telah diambil. Agar tahu, oke saya harus menyalakan LED Kuning:

Anda dapat meletakkan satu baris kode ini di mana pun Anda suka. Jika Anda ingin menyala saat permainan dimulai, letakkan di fungsi mulai. Ingin menyala saat dia mati taruh di fungsi Anda untuk kematian pemain. Bereksperimenlah sebentar. Saya memilih untuk membuat lampu semacam elemen ui di luar game untuk melacak bola yang harus Anda kumpulkan tanpa mengacaukan layar.

Direkomendasikan: