Indholdsfortegnelse:

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

Video: DIY MPU-6050 USB Joystick: 5 trin

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

Med Microsoft Flight Simulator 2020 indså jeg hurtigt, hvor svært det er at bruge tastatur til at flyve en plan. Når jeg søgte online, kunne jeg ikke finde et joystick til en rimelig pris at købe. De fleste onlineforhandlere havde dem udsolgt. Populariteten af MS Flight Simulator og COVID 19 -pandemien udslettede alle de eksisterende joystickaktier. Min eneste mulighed var at bygge en selv.

De fleste joysticks derude bruger potentiometre i bunden til at bestemme joystickets vinkler og sende x- og y -akseinformation tilbage til computeren. Dette fungerer godt, men komplicerer konstruktionen af joysticket. og over tid. potentiometrene kan slides. I stedet for at bruge potentiometre besluttede jeg at gå med accelerometer/gyroskop -sensorbræt for at sende information til computeren på pindens vinkler.

Med populariteten af forskellige Arduino -mikroprocessorer og forskellige sensorer bliver omkostningerne ved at bygge et Arduino -projekt meget mere overkommelige. Et af de almindeligt anvendte accelerometer/gyroskopfølerkort er MPU-6050. I Canada koster det omkring $ 7CAN i Amazon. Jeg fik min fra eBay sendt fra Kina for meget mindre, men leveringstiden var som 3 måneder eller længere.

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

Ethvert Arduino -kort ville fungere, men det vil være meget enklere at bruge ATmega32u4 -baseret board, fordi ATmega32u4 har indbygget HID -understøttelse (Human Interface Device). Når kortet er programmeret, kan du bruge det på en hvilken som helst Windows 10 -pc og der kræves ingen yderligere software. Windows 10 genkender det automatisk som et joystick, når USB'en er tilsluttet. (Brug af anden type Arduino -kort er for kompliceret til dette enkle byggeprojekt).

Jeg vælger Arduino Leonardo board. $ 17 KAN fra Amazon.

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

Disse 2 enheder er hovedkravene til dette projekt. Andre mindre genstande såsom ledninger og trykknapper er også nødvendige. I dette projekt brugte jeg kun 2 trykknapper for nemheds skyld.

Joystick -håndtaget er lavet af et vandrør af PVC. Dette kan let erstattes med ethvert kort stift rør.

Bunden af joysticket er et fjederdørstop fastgjort på et stykke træ.

Springdørstop kan fås hos Home Depot for $ 2,83CAN.

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

Trin 1: Tilslutning af MPU6050 og trykknapper til Arduino Leonardo Board

Tilslutning af MPU6050 og trykknapper til Arduino Leonardo Board
Tilslutning af MPU6050 og trykknapper til Arduino Leonardo Board
Tilslutning af MPU6050 og trykknapper til Arduino Leonardo Board
Tilslutning af MPU6050 og trykknapper til Arduino Leonardo Board
Tilslutning af MPU6050 og trykknapper til Arduino Leonardo Board
Tilslutning af MPU6050 og trykknapper til Arduino Leonardo Board

Der bruges kun 4 forbindelser på MPU 6050. De er mærket VCC, GND, SCL og SDA.

Tilslut VCC til 5v eller 3.3v på Arduino Leonardo. (MPU 6050 kan bruge enten 5v eller 3.3v. Det er ligegyldigt)

Tilslut GND til enhver GND på Arduino Leonardo.

Tilslut SCL til SCL på Arduino Leonardo.

Tilslut SDA til SDA på Arduino Leonardo.

Jeg bruger kun 2 trykknapper til dette demonstrationsformål.

Den første trykknap bruges til at nulstille joystickcentret. I dette eksempel er den ene ende af trykknappen forbundet til GND og den ene ende til PIN 13.

Den anden trykknap bruges som joystick -knap. I dette eksempel er den forbundet til PIN 9 og GND.

Du kan tilføje yderligere knapper efter behov i dit projekt.

Trin 2: Opbygning af joystickbasen

Bygger Joystick Base
Bygger Joystick Base
Bygger Joystick Base
Bygger Joystick Base
Bygger Joystick Base
Bygger Joystick Base

Find et stykke træklods. Jo tungere jo bedre. Det vil gøre joystickbasen mere stabil.

Skru fjederdøren i midten af træblokken som vist på billedet.

Brug et stykke kort rør som joystickhåndtag. Jeg brugte et skrabet PVC -rør. Træd tråden, så accelerometer/gyroskopsensoren sidder oven på røret.

Sæt derefter røret over fjederdørproppen. Jeg brugte elektrisk tape til at tape sensoren på toppen.

Trin 3: Konfigurer Arduino IDE

Download og installer Arduino IDE.

Jeg brugte Arduino 1.8.13 til dette projekt. Arduino Web Editor kan også bruges til dette projekt.

Der bruges 2 biblioteker.

1. MPU6050_tockn af tockn

github.com/Tockn/MPU6050_tockn

eller du kan finde det i menuen "Administrer bibliotek".

2. Joystick -bibliotek af Matthew Heironimus

github.com/MHeironimus/ArduinoJoystickLibr…

Denne er i øjeblikket kun tilgængelig fra GitHub -webstedet.

Klik på downloadkode og download ZIP. Udpak ZIP -filen til din Arduino biblioteks bibliotek.

I mit tilfælde er det E: / PinChung / Documents / Arduino / biblioteker

Trin 4: Arduino -program

Indlæs Pin_Joystick.ino på Arduino IDE, og kompilér og upload til Leonardo -tavlen.

Sørg for, at Arduino Leonardo -kortet er valgt, og at portnummer er valgt til højre COM: under menuen Værktøjer.

Jeg lagde mærke til noget tid, programmet kunne ikke uploades med fejlkode for COM -port ikke tilgængelig. At trykke på reset -knappen på Leonardo -tavlen et par gange under kompilering kan hjælpe. Også genstart af Windows 10 kan også hjælpe med at frigøre COM -porten.

Når programmet er uploadet til Leonardo -kortet, skal Windows 10 automatisk registrere Leonardo -joysticket. I Windows 10 -søgelinje skal du skrive Game Controllers, køre Konfigurer USB Game Controllers.

vælg Leonardo Joystick, og klik på Egenskaber. Joystickbevægelsen og joystick #1 -knappen skal hentes af Windows 10.

Hvis joysticket ikke er centreret, skal du klikke på den nulstillede joystick -center -knap, vi lige har lavet, når du slipper det. USB -spilkontrollerne skal vise joystick -prikken i midten. Det er ikke nødvendigt at kalibrere joysticket i USB Game Controller -programmet.

Sidebemærkning: For dem, der ikke kender Arduino Leonardo, fungerer den serielle port ikke, når enheden er konfigureret som joystick, mus eller tastatur. Så "Serial.print ()" virker ikke. MPU6050 bruger også i2c -trådbibliotek og bruger SDA- og SLC -ben. På Leonardo, SDA og SCL optager både PIN 2 og PIN 3, så brug ikke disse 2 pins til andet.

Trin 5: Test af joysticket

Jeg testede det på Microsoft Flight Simulator 2020, og det fungerer meget godt. Jeg skal nogle gange trykke på midttasten for at nulstille joysticket. MPU6050 sensorværdi kan svinge lidt over tid.

Der er masser af muligheder for at bruge på projektet, f.eks. Tilføjelse af flere knapper og tilføjelse af gashåndtag. Forhåbentlig vil dette inspirere andre tinkere til at udforske nye måder at lave ting på.

Anbefalede: