- Komponen Diperlukan
- Arduino Leonardo
- Modul Joystick Sumbu Ganda XY
- Diagram Sirkuit
- Kode dan Penjelasan Kerja
Kami sebelumnya menghubungkan Joystick dengan Arduino UNO untuk memahami cara kerjanya dan mengontrol empat LED di gerakan kiri, kanan, atas, dan bawah. Dalam proyek ini kami akan menggunakan Joystick yang sama dengan Gamepad atau pengontrol game untuk memainkan game komputer apa pun yang membutuhkan gerakan kiri, kanan, atas, dan bawah. Untuk memainkan game yang membutuhkan lebih banyak opsi kontrol, dua atau lebih joystick dapat digunakan. Di sini kita akan menggunakan Arduino Leonardo untuk menghubungkan Joystick sebagai pengontrol Game. Arduino Leonardo memiliki keunggulan dibandingkan Uno yaitu kita dapat menginstal driver USB di dalamnya dan dapat dideteksi sebagai mouse, keyboard atau joystick oleh komputer saat terhubung.
Komponen Diperlukan
- Arduino Leonardo
- Modul Joystick Sumbu Ganda XY
- IDE Arduino
- Menghubungkan kabel
Arduino Leonardo
Untuk proyek ini kami menggunakan Arduino Leonardo, itu adalah papan mikrokontroler berdasarkan ATmega32u4. Ini memiliki 20 pin input / output digital (di mana 7 dapat digunakan sebagai output PWM dan 12 sebagai input Analog), osilator kristal 16 MHz, koneksi micro USB, colokan listrik, header ICSP dan tombol reset. Ini berisi semua yang dibutuhkan untuk mendukung mikrokontroler; cukup sambungkan ke komputer dengan kabel USB atau nyalakan dengan adaptor AC-ke-DC atau baterai untuk memulai.
Leonardo berbeda dari semua papan sebelumnya karena ATmega32u4 memiliki komunikasi USB internal, menghilangkan kebutuhan akan prosesor sekunder. Hal ini memungkinkan Leonardo untuk tampil ke komputer yang terhubung sebagai mouse dan keyboard, selain port serial / COM virtual (CDC).
Spesifikasi teknis
Mikrokontroler | ATmega32u4 |
Tegangan Operasi | 5V |
Tegangan Input (Direkomendasikan) | 7-12V |
Tegangan Input (batas) | 6-20V |
Pin I / O Digital | 20 |
Saluran PWM | 7 |
Saluran Input Analog | 12 |
Arus DC per Pin I / O | 40 mA |
Arus DC untuk Pin 3.3V | 50 mA |
Memori Flash | 32 KB (ATmega32u4) dimana 4 KB digunakan oleh bootloader |
SRAM | 2,5 KB (ATmega32u4) |
EEPROM | 1 KB (ATmega32u4) |
Kecepatan jam | 16 MHz |
Panjangnya | 68,6 mm |
Lebar | 53,3 mm |
Bobot | 20 g |
Referensi PIN Out
Modul Joystick Sumbu Ganda XY
Joystick tersedia dalam berbagai bentuk dan ukuran. Modul Joystick tipikal ditunjukkan pada gambar di bawah ini. Modul Joystick ini biasanya menyediakan Output Analog dan tegangan output yang diberikan oleh modul ini terus berubah sesuai dengan arah yang kita pindahkan. Dan kita bisa mendapatkan arah pergerakan dengan menginterpretasikan perubahan tegangan tersebut menggunakan beberapa mikrokontroler. Sebelumnya kami menghubungkan joystick dengan mikrokontroler yang berbeda:
- Menghubungkan Joystick dengan Arduino
- Interfacing Joystick dengan Raspberry Pi
- Antarmuka Joystick dengan Mikrokontroler PIC
- Joystick Interfacing dengan Mikrokontroler AVR
Modul joystick ini memiliki dua sumbu seperti yang Anda lihat. Mereka adalah sumbu X dan sumbu Y. Setiap sumbu JOY STICK dipasang ke potensiometer atau pot. Titik tengah pot ini diusir sebagai Rx dan Ry. Jadi Rx dan Ry adalah poin variabel ke pot ini. Saat Joystick dalam keadaan standby, Rx dan Ry bertindak sebagai pembagi tegangan.
Saat joystick digerakkan sepanjang sumbu horizontal, tegangan pada pin Rx berubah. Demikian pula, ketika digerakkan sepanjang sumbu vertikal, tegangan pada pin Ry berubah. Jadi kami memiliki empat arah Joystick pada dua output ADC. Saat tongkat digerakkan, tegangan pada setiap pin naik atau turun tergantung arah.
Diagram Sirkuit
Pengontrol Game Joystick Arduino ini membutuhkan koneksi antara Arduino dan Joystick sebagai berikut:
Kode dan Penjelasan Kerja
Kode lengkap dengan video demo diberikan di akhir; di sini kami menjelaskan beberapa bagian penting darinya.
Pertama, kita perlu menginisialisasi perpustakaan keyboard
#include
Selanjutnya pada kode di bawah ini, kita telah menginisialisasi sumbu X dan Y dari modul Joystick untuk pin Analog A0 dan A1 masing-masing.
const int X_pin dan const int Y_pin masing-masing
Nilai analog dari pin VRX terbaca dan jika nilainya 1023 maka perintah “up” diberikan dan jika nilainya 0 maka perintah “down” diberikan.
Demikian pula, nilai analog dari pin VRY dibaca dan jika nilainya 1023 maka perintah untuk "kanan" diberikan dan jika nilainya 0 maka perintah untuk "kiri" diberikan.
Joystick juga memiliki tombol pencet di bagian atas sehingga tombol ini (SW) juga terbaca dan jika tombol ditekan nilainya menjadi 0 maka perintah “enter” diberikan.
Terakhir, bakar kodenya ke Arduino dan hubungkan Arduino dengan komputer.
Selanjutnya periksa ' Perangkat dan Pencetak' di panel kontrol Anda, Anda akan dapat melihat " Arduino Leonardo" di bawah bagian perangkat seperti yang ditunjukkan pada gambar di bawah ini. Sekarang Anda siap bermain dengan joystick.
Kami dapat mengontrol kontrol game apa pun menggunakan Joystick ini. Joystick memiliki dua potensiometer di dalamnya, satu untuk pergerakan sumbu X dan satu lagi untuk pergerakan sumbu Y. Setiap potensiometer mendapat 5v dari Arduino. Jadi saat kita menggerakkan joystick, nilai tegangan akan berubah dan nilai analog pada pin Analog A0 dan A1 juga akan berubah. Jadi joystick akan berfungsi sebagai gamepad.
Jadi beginilah Joystick biasa dapat diubah menjadi Pengontrol Game menggunakan Arduino Leonardo dan dapat digunakan untuk memainkan game yang memiliki semua kontrol untuk bergerak ke kiri, kanan, atas, dan bawah. Seperti yang diceritakan sebelumnya, lebih dari satu Joystick dapat dihubungkan untuk mendapatkan lebih banyak kontrol selain dari empat fungsi dasar ini.