Cuprins:

DIY MPU-6050 Joystick USB: 5 pași
DIY MPU-6050 Joystick USB: 5 pași

Video: DIY MPU-6050 Joystick USB: 5 pași

Video: DIY MPU-6050 Joystick USB: 5 pași
Video: Start using Digispark USB ATtiny85 Arduino board with blink and relay example | Robojax 2024, Iulie
Anonim
DIY Joystick USB MPU-6050
DIY Joystick USB MPU-6050

Cu Microsoft Flight Simulator 2020, mi-am dat seama rapid cât de dificil este să folosești tastatura pentru a acoperi un plan. Căutând online, nu am putut găsi un joystick la un preț rezonabil de achiziționat. Majoritatea comercianților cu amănuntul online le-au epuizat. Popularitatea MS Flight Simulator și a pandemiei COVID 19 a șters toate stocurile de joystick-uri existente. Singura mea opțiune a fost să construiesc unul singur.

Majoritatea joystick-urilor folosesc potențiometre la bază pentru a determina unghiurile joystick-ului și a trimite informațiile despre axele x și y înapoi la computer. Acest lucru funcționează bine, dar complică construcția joystick-ului. și în timp. potențiometrele s-ar putea uza. În loc să folosesc potențiometre, am decis să merg cu placa senzorului accelerometrului / giroscopului pentru a trimite informații către computer cu privire la unghiurile stick-ului.

Odată cu popularitatea diferitelor microprocesoare Arduino și a diferiților senzori, costul construirii unui proiect Arduino devine mult mai accesibil. Una dintre plăcile senzorului accelerometru / giroscop utilizate în mod obișnuit este MPU-6050. În Canada, costă în jur de 7 $ CAN în Amazon. Am primit-o pe a mea de la eBay expediată din China pentru mult mai puțin, dar timpul de expediere a fost de cel puțin 3 luni.

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

Orice placă Arduino ar funcționa, dar utilizarea plăcii bazate pe ATmega32u4 va fi mult mai simplă, deoarece ATmega32u4 are suport nativ HID (Human Interface Device). Odată ce placa este programată, o puteți folosi pe orice computer Windows 10 și nu este nevoie de software suplimentar. Windows 10 îl va recunoaște automat ca joystick când USB-ul este conectat. (Utilizarea altor tipuri de plăci Arduino este prea complicată pentru acest proiect simplu de construire).

Aleg placa Arduino Leonardo. 17 dolari CAN de la Amazon.

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

Aceste 2 dispozitive sunt principalele cerințe pentru acest proiect. Sunt necesare și alte articole mai mici, cum ar fi cabluri și butoane. În acest proiect, am folosit doar 2 butoane pentru simplitate.

Mânerul joystick-ului este realizat dintr-o țeavă de apă din resturi de PVC. Aceasta poate fi ușor înlocuită cu orice țeavă rigidă scurtă.

Baza joystick-ului este o oprire a ușii cu arc fixată pe o bucată de lemn.

Stopul ușii cu arc este disponibil de la Home Depot la 2,83 $ CAN.

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

Pasul 1: Conectarea butoanelor MPU6050 și Push la placa Arduino Leonardo

Conectarea butoanelor MPU6050 și Push la placa Arduino Leonardo
Conectarea butoanelor MPU6050 și Push la placa Arduino Leonardo
Conectarea butoanelor MPU6050 și Push la placa Arduino Leonardo
Conectarea butoanelor MPU6050 și Push la placa Arduino Leonardo
Conectarea butoanelor MPU6050 și Push la placa Arduino Leonardo
Conectarea butoanelor MPU6050 și Push la placa Arduino Leonardo

Pe MPU 6050 sunt utilizate doar 4 conexiuni. Sunt etichetate VCC, GND, SCL și SDA.

Conectați VCC la 5v sau 3,3v pe Arduino Leonardo. (MPU 6050 poate folosi fie 5v, fie 3,3v. Nu contează)

Conectați GND la orice GND de pe Arduino Leonardo.

Conectați SCL la SCL pe Arduino Leonardo.

Conectați SDA la SDA pe Arduino Leonardo.

Folosesc doar 2 butoane în acest scop demonstrativ.

Primul buton este folosit pentru a reseta centrul joystick-ului. În acest exemplu, un capăt al butonului este conectat la GND și un capăt la codul PIN 13.

Al doilea buton este folosit ca buton joystick. În acest exemplu, este conectat la PIN 9 și GND.

Puteți adăuga butoane suplimentare după cum este necesar în proiectul dvs.

Pasul 2: Construirea bazei joystick-ului

Construirea bazei joystick-ului
Construirea bazei joystick-ului
Construirea bazei joystick-ului
Construirea bazei joystick-ului
Construirea bazei joystick-ului
Construirea bazei joystick-ului

Găsiți o bucată de bloc de lemn. Cu cât este mai greu, cu atât mai bine. Acesta va face baza joystick-ului mai stabilă.

Înșurubați dopul ușii arcului în centrul blocului de lemn, așa cum se arată în imagine.

Folosiți o bucată de țeavă scurtă ca mâner al joystick-ului. Am folosit o țeavă din PVC răzuită. Puneți firul astfel încât senzorul accelerometrului / giroscopului să stea deasupra conductei.

Apoi puneți conducta peste dopul arcului. Am folosit bandă electrică pentru a lipi senzorul de sus.

Pasul 3: Configurați Arduino IDE

Descărcați și instalați Arduino IDE.https://www.arduino.cc/en/Main/Software

Am folosit Arduino 1.8.13 pentru acest proiect. Arduino Web Editor poate fi folosit și pentru acest proiect.

Se folosesc 2 biblioteci.

1. MPU6050_tockn de tockn

github.com/Tockn/MPU6050_tockn

sau îl puteți găsi în meniul „Gestionați biblioteca”.

2. Biblioteca Joystick de Matthew Heironimus

github.com/MHeironimus/ArduinoJoystickLibr…

Acesta este disponibil momentan doar de pe site-ul GitHub.

Faceți clic pe Descărcare cod și Descărcare ZIP. Extrageți fișierul ZIP în directorul bibliotecilor Arduino.

În cazul meu, este E: / PinChung / Documents / Arduino / libraries

Pasul 4: Program Arduino

Încărcați Pin_Joystick.ino pe Arduino IDE și compilați și încărcați pe placa Leonardo.

Asigurați-vă că placa Arduino Leonardo este selectată și numărul portului este selectat în dreapta COM: sub meniul Instrumente.

Am observat ceva timp, programul nu a putut fi încărcat cu codul de eroare al portului COM nu este disponibil. Apăsarea butonului de resetare de pe placa Leonardo de câteva ori în timpul compilării ar putea ajuta. De asemenea, repornirea Windows 10 ar putea ajuta, de asemenea, la eliberarea portului COM.

Odată ce programul este încărcat pe placa Leonardo, Windows 10 ar trebui să detecteze automat joystick-ul Leonardo. În bara de căutare Windows 10, tastați Game Controllers, rulați Set up USB Game Controllers.

selectați Leonardo Joystick și faceți clic pe Proprietăți. Mișcarea joystick-ului și butonul joystick-ului # 1 ar trebui să fie preluate de Windows 10.

Dacă joystick-ul nu este centrat, când îl eliberați, faceți clic pe butonul de resetare a joystick-ului central pe care tocmai l-am creat. Controlerele de jocuri USB ar trebui să afișeze punctul de joystick în centru. Nu este nevoie să calibrați joystick-ul în programul USB Game Controller..

Notă laterală: Pentru cei care nu sunt familiarizați cu Arduino Leonardo, atunci când dispozitivul este configurat ca joystick, mouse sau tastatură, portul serial nu va funcționa. Deci, „Serial.print ()” nu va funcționa. De asemenea, MPU6050 utilizează biblioteca de fire i2c și folosește pinii SDA și SLC. Pe Leonardo, SDA și SCL preiau atât PIN-ul 2, cât și PIN-ul 3, deci nu utilizați acești 2 pini pentru altceva.

Pasul 5: Testarea joystick-ului

L-am testat pe Microsoft Flight Simulator 2020 și funcționează foarte bine. Trebuie să apăs tasta centrală uneori pentru a pune la zero joystick-ul. Valoarea senzorului MPU6050 ar putea deriva puțin în timp.

Există o mulțime de oportunități de a cheltui pe proiect, cum ar fi adăugarea mai multor butoane și adăugarea comenzilor de accelerație. Sperăm că acest lucru va inspira alți jucători pentru a explora noi moduri de a face lucrurile.

Recomandat: