Daftar Isi:

Joystick USB MPU-6050 DIY: 5 Langkah
Joystick USB MPU-6050 DIY: 5 Langkah

Video: Joystick USB MPU-6050 DIY: 5 Langkah

Video: Joystick USB MPU-6050 DIY: 5 Langkah
Video: Usb 3D Mouse Using Arduino and Mpu6050 Accelerometer #programming #arduino #arduinotutorial 2024, November
Anonim
Joystick USB MPU-6050 DIY
Joystick USB MPU-6050 DIY

Dengan Microsoft Flight Simulator 2020, saya segera menyadari betapa sulitnya menggunakan keyboard untuk menerbangkan rencana. Mencari secara online, saya tidak dapat menemukan joystick dengan harga yang wajar untuk dibeli. Sebagian besar pengecer online kehabisan stok. Popularitas MS Flight Simulator dan pandemi COVID 19 memusnahkan semua stok joystick yang ada. Satu-satunya pilihan saya adalah membangunnya sendiri.

Sebagian besar joystick di luar sana menggunakan potensiometer di pangkalan untuk menentukan sudut joystick dan mengirim informasi sumbu x dan y kembali ke komputer. Ini bekerja dengan baik tetapi mempersulit konstruksi joystick. dan seiring waktu. potensiometer mungkin aus. Alih-alih menggunakan potensiometer, saya memutuskan untuk menggunakan papan sensor akselerometer/giroskop untuk mengirim informasi ke komputer tentang sudut tongkat.

Dengan popularitas berbagai mikroprosesor Arduino dan berbagai sensor, biaya membangun proyek Arduino menjadi jauh lebih terjangkau. Salah satu board sensor accelerometer/gyroscope yang umum digunakan adalah MPU-6050. Di Kanada, biayanya sekitar $7CAN di Amazon. Saya mendapatkan milik saya dari eBay yang dikirim dari China dengan harga yang jauh lebih murah, tetapi waktu pengirimannya seperti 3 bulan atau lebih.

www.amazon.ca/Neuftech-MPU-6050-3-Gyroscop…

Papan Arduino apa pun akan berfungsi, tetapi menggunakan papan berbasis ATmega32u4 akan jauh lebih sederhana, karena ATmega32u4 memiliki dukungan HID (Perangkat Antarmuka Manusia) asli. Setelah papan diprogram, Anda dapat menggunakannya di PC Windows 10 mana pun dan tidak memerlukan perangkat lunak tambahan. Windows 10 akan secara otomatis mengenalinya sebagai joystick ketika USB dicolokkan. (Penggunaan papan Arduino jenis lain terlalu rumit untuk proyek pembuatan sederhana ini).

Saya memilih papan Arduino Leonardo. $17CAN dari Amazon.

www.amazon.ca/KEYESTUDIO-Leonardo-Developm…

2 perangkat ini adalah persyaratan utama untuk proyek ini. Barang-barang kecil lainnya seperti kabel dan tombol tekan juga diperlukan. Dalam proyek ini, saya hanya menggunakan 2 tombol untuk kesederhanaan.

Pegangan joystick terbuat dari pipa air PVC bekas. Ini dapat dengan mudah diganti dengan pipa kaku pendek.

Dasar joystick adalah penahan pintu pegas yang dipasang pada sepotong kayu.

Penghenti pintu pegas tersedia dari Home Depot seharga $2,83CAN.

www.homedepot.ca/product/everbilt-spring-d…

Langkah 1: Menghubungkan MPU6050 dan Tombol Tekan ke Arduino Leonardo Board

Menghubungkan MPU6050 dan Tombol Tekan ke Arduino Leonardo Board
Menghubungkan MPU6050 dan Tombol Tekan ke Arduino Leonardo Board
Menghubungkan MPU6050 dan Tombol Tekan ke Arduino Leonardo Board
Menghubungkan MPU6050 dan Tombol Tekan ke Arduino Leonardo Board
Menghubungkan MPU6050 dan Tombol Tekan ke Arduino Leonardo Board
Menghubungkan MPU6050 dan Tombol Tekan ke Arduino Leonardo Board

Hanya 4 koneksi yang digunakan pada MPU 6050. Mereka diberi label VCC, GND, SCL dan SDA.

Hubungkan VCC ke 5v atau 3.3v di Arduino Leonardo. (MPU 6050 dapat menggunakan 5v atau 3.3v. Tidak masalah)

Hubungkan GND ke GND apa pun di Arduino Leonardo.

Hubungkan SCL ke SCL di Arduino Leonardo.

Hubungkan SDA ke SDA di Arduino Leonardo.

Saya hanya menggunakan 2 tombol push untuk tujuan demonstrasi ini.

Tombol tekan pertama digunakan untuk mengatur ulang pusat joystick. Dalam contoh ini, salah satu ujung tombol tekan terhubung ke GND dan ujung lainnya ke PIN 13.

Tombol tekan kedua digunakan sebagai tombol joystick. Dalam contoh ini, terhubung ke PIN 9 dan GND.

Anda dapat menambahkan tombol tambahan sesuai kebutuhan dalam proyek Anda.

Langkah 2: Membangun Basis Joystick

Membangun Basis Joystick
Membangun Basis Joystick
Membangun Basis Joystick
Membangun Basis Joystick
Membangun Basis Joystick
Membangun Basis Joystick

Temukan sepotong balok kayu. Semakin berat semakin baik. Ini akan membuat basis joystick lebih stabil.

Pasang sumbat pintu pegas di tengah balok kayu seperti yang ditunjukkan pada gambar.

Gunakan sepotong pipa pendek sebagai pegangan joystick. Saya menggunakan pipa PVC mengikis. Tapak kabel sehingga sensor akselerometer/giroskop berada di atas pipa.

Kemudian letakkan pipa di atas penghenti pintu pegas. Saya menggunakan pita listrik untuk menempelkan sensor di bagian atas.

Langkah 3: Siapkan Arduino IDE

Unduh dan instal Arduino IDE.https://www.arduino.cc/en/Main/Software

Saya menggunakan Arduino 1.8.13 untuk proyek ini. Arduino Web Editor dapat digunakan untuk proyek ini juga.

2 perpustakaan yang digunakan.

1. MPU6050_tockn oleh tockn

github.com/Tockn/MPU6050_tockn

atau Anda dapat menemukannya di menu "Kelola Perpustakaan".

2. Perpustakaan joystick oleh Matthew Heironimus

github.com/MHeironimus/ArduinoJoystickLibr…

Yang ini saat ini hanya tersedia dari situs web GitHub.

Klik unduh Kode dan Unduh ZIP. Ekstrak file ZIP ke direktori perpustakaan Arduino Anda.

Dalam kasus saya, ini E:\PinChung\Documents\Arduino\libraries

Langkah 4: Program Arduino

Muat Pin_Joystick.ino ke Arduino IDE dan kompilasi serta unggah ke papan Leonardo.

Pastikan papan Arduino Leonardo dipilih dan nomor port dipilih ke COM kanan: di bawah menu Tools.

Saya perhatikan beberapa waktu, program tidak dapat diunggah dengan kode kesalahan port COM tidak tersedia. Menekan tombol reset pada papan Leonardo beberapa kali saat kompilasi mungkin membantu. Memulai ulang Windows 10 juga dapat membantu membebaskan port COM.

Setelah program diunggah ke papan Leonardo, Windows 10 akan secara otomatis mendeteksi Leonardo Joystick. Di bilah pencarian Windows 10, ketik Game Controllers, jalankan Set up USB Game Controllers.

pilih Leonardo Joystick dan klik Properties. Gerakan joystick dan tombol joystick #1 harus diambil oleh Windows 10.

Jika joystick tidak di tengah, ketika Anda melepaskannya, klik tombol reset joystick tengah yang baru saja kita buat. Pengontrol Game USB harus menunjukkan titik joystick di tengah. Tidak perlu mengkalibrasi joystick di program USB Game Controller..

Catatan Samping: Bagi mereka yang tidak terbiasa dengan Arduino Leonardo, ketika perangkat dikonfigurasi sebagai joystick, mouse atau keyboard, port serial tidak akan berfungsi. Jadi "Serial.print()" tidak akan berfungsi. Juga, MPU6050 menggunakan perpustakaan kawat i2c dan menggunakan pin SDA dan SLC. Di Leonardo, SDA dan SCL mengambil PIN 2 dan PIN 3, jadi jangan gunakan 2 pin ini untuk hal lain.

Langkah 5: Menguji Joystick

Saya mengujinya di Microsoft Flight Simulator 2020 dan berfungsi dengan sangat baik. Saya memang harus menekan tombol tengah kadang-kadang ke nol joystick. Nilai sensor MPU6050 mungkin sedikit menyimpang dari waktu ke waktu.

Ada banyak peluang untuk dihabiskan pada proyek, seperti menambahkan lebih banyak tombol dan menambahkan kontrol throttle. Semoga ini akan menginspirasi tinker lain untuk mengeksplorasi cara-cara baru dalam membuat sesuatu.

Direkomendasikan: