- Komponen Diperlukan
- Arduino Leonardo
- Modul Joystick Dual Axis XY
- Rajah Litar
- Kod dan Penjelasan Kerja
Kami sebelum ini menghubungkan Joystick dengan Arduino UNO untuk memahami cara kerjanya dan mengawal empat LED di kiri, kanan, atas dan bawah pergerakannya. Dalam projek ini kita akan menggunakan Joystick yang sama dengan Gamepad atau pengawal permainan untuk memainkan permainan komputer yang memerlukan pergerakan kiri, kanan, atas dan bawah. Untuk bermain permainan yang memerlukan lebih banyak pilihan kawalan, dua atau lebih joystick boleh digunakan. Di sini kita akan menggunakan Arduino Leonardo untuk menghubungkan Joystick sebagai pengawal permainan. Arduino Leonardo mempunyai kelebihan berbanding Uno bahawa kita boleh memasang pemacu USB di atasnya dan ia dapat dikesan sebagai tetikus, papan kekunci atau kayu bedik oleh komputer ketika disambungkan.
Komponen Diperlukan
- Arduino Leonardo
- Modul Joystick Dual Axis XY
- Arduino IDE
- Menyambung wayar
Arduino Leonardo
Untuk projek ini kita menggunakan Arduino Leonardo, ini adalah papan mikrokontroler berdasarkan ATmega32u4. Ia mempunyai 20 pin input / output digital (dari mana 7 dapat digunakan sebagai output PWM dan 12 sebagai input Analog), pengayun kristal 16 MHz, sambungan USB mikro, soket kuasa, header ICSP dan butang reset. Ia mengandungi semua yang diperlukan untuk menyokong mikrokontroler; hanya sambungkannya ke komputer dengan kabel USB atau matikan dengan penyesuai AC-ke-DC atau bateri untuk memulakannya.
Leonardo berbeza dari semua papan sebelumnya kerana ATmega32u4 mempunyai komunikasi USB terbina dalam, menghilangkan keperluan untuk pemproses sekunder. Ini membolehkan Leonardo muncul ke komputer yang disambungkan sebagai tetikus dan papan kekunci, selain port serial / COM maya (CDC).
Spesifikasi teknikal
Pengawal mikro | ATmega32u4 |
Voltan Operasi | 5V |
Voltan Input (Disyorkan) | 7-12V |
Voltan Input (had) | 6-20V |
Pin I / O Digital | 20 |
Saluran PWM | 7 |
Saluran Input Analog | 12 |
Arus DC setiap Pin I / O | 40 mA |
Arus DC untuk Pin 3.3V | 50 mA |
Memori Kilat | 32 KB (ATmega32u4) yang mana 4 KB digunakan oleh bootloader |
SRAM | 2.5 KB (ATmega32u4) |
EEPROM | 1 KB (ATmega32u4) |
Kelajuan jam | 16 MHz |
Panjang | 68.6 mm |
Lebar | 53.3 mm |
Berat | 20 g |
Rujukan PIN Keluar
Modul Joystick Dual Axis XY
Joystick boleh didapati dalam pelbagai bentuk dan saiz. Modul Joystick khas ditunjukkan pada gambar di bawah. Modul Joystick ini biasanya memberikan Output Analog dan voltan output yang disediakan oleh modul ini terus berubah mengikut arah di mana kita menggerakkannya. Dan kita boleh mendapatkan arah pergerakan dengan menafsirkan perubahan voltan ini menggunakan beberapa mikrokontroler. Sebelum ini kami menghubungkan joystick dengan pengawal mikro yang berbeza:
- Memadankan Joystick dengan Arduino
- Memadankan Joystick dengan Raspberry Pi
- Memadankan Joystick dengan PIC Microcontroller
- Joystick Interfacing dengan AVR Microcontroller
Modul kayu bedik ini mempunyai dua paksi seperti yang anda lihat. Mereka adalah paksi-X dan paksi-Y. Setiap paksi JOY STICK dipasang ke potensiometer atau periuk. Titik tengah pot ini dihalau sebagai Rx dan Ry. Oleh itu, Rx dan Ry adalah titik berubah untuk pot ini. Semasa Joystick dalam keadaan bersedia, Rx dan Ry bertindak sebagai pembahagi voltan.
Apabila kayu bedik digerakkan di sepanjang paksi mendatar, voltan pada pin Rx berubah. Begitu juga, apabila ia bergerak di sepanjang paksi menegak, voltan pada pin Ry berubah. Oleh itu, kami mempunyai empat arah Joystick pada dua output ADC. Apabila tongkat digerakkan, voltan pada setiap pin naik tinggi atau rendah bergantung pada arah.
Rajah Litar
Ini Arduino Joystick Permainan Pengawal memerlukan sambungan antara Arduino dan Joystick seperti berikut:
Kod dan Penjelasan Kerja
Kod lengkap dengan video demo diberikan pada akhir; di sini kami menerangkan beberapa bahagian penting daripadanya.
Pertama, kita perlu memulakan perpustakaan papan kekunci
#sertakan
Selanjutnya dalam kod di bawah, kami telah menginisialisasi paksi X dan Y modul Joystick untuk pin Analog A0 dan A1 masing-masing.
const int X_pin dan const int Y_pin masing-masing
Nilai analog pin VRX dibaca dan jika nilainya adalah 1023 maka perintah untuk "naik" diberikan dan jika nilainya 0 maka perintah untuk "turun" diberikan.
Begitu juga, nilai analog pin VRY dibaca dan jika nilainya adalah 1023 maka perintah untuk "kanan" diberikan dan jika nilainya 0 maka perintah untuk "kiri" diberikan.
Joystick juga memiliki tombol tekan di atas sehingga butang ini (SW) juga dibaca dan jika butang ditekan nilainya akan menjadi 0 maka perintah untuk "enter" diberikan.
Akhirnya masukkan kod ke Arduino dan sambungkan Arduino dengan komputer.
Selanjutnya periksa ' Peranti dan Pencetak' di panel kawalan anda, anda akan dapat melihat " Arduino Leonardo" di bawah bahagian peranti seperti yang ditunjukkan pada gambar di bawah. Sekarang anda sudah bersedia untuk bermain dengan kayu bedik.
Kami boleh mengawal sebarang kawalan permainan menggunakan Joystick ini. Joystick mempunyai dua potensiometer di dalamnya, satu untuk pergerakan paksi-X dan satu lagi untuk pergerakan paksi-Y. Setiap potensiometer mendapat 5v dari Arduino. Oleh kerana kita menggerakkan kayu bedik, nilai voltan akan berubah dan nilai analog pada pin Analog A0 dan A1 juga akan berubah. Jadi kayu bedik akan berfungsi sebagai gamepad.
Jadi ini adalah bagaimana Joystick biasa dapat diubah menjadi Game Controller menggunakan Arduino Leonardo dan dapat digunakan untuk bermain game dengan semua kontrol untuk bergerak ke kiri, kanan, atas dan bawah. Seperti yang diberitahu pada telinga lebih dari satu Joystick dapat dihubungkan untuk mendapatkan lebih banyak kawalan selain daripada empat fungsi asas ini.