Sadržaj:

DIY MPU-6050 USB džojstik: 5 koraka
DIY MPU-6050 USB džojstik: 5 koraka

Video: DIY MPU-6050 USB džojstik: 5 koraka

Video: DIY MPU-6050 USB džojstik: 5 koraka
Video: Usb 3D Mouse Using Arduino and Mpu6050 Accelerometer #programming #arduino #arduinotutorial 2024, Juli
Anonim
DIY MPU-6050 USB joystick
DIY MPU-6050 USB joystick

Uz Microsoft Flight Simulator 2020, brzo sam shvatio koliko je teško koristiti tastaturu za upravljanje planom. Pretražujući na internetu, nisam uspio pronaći joystick za razumnu cijenu za kupovinu. Većina internetskih trgovaca nije ih imala na lageru. Popularnost MS Flight Simulatora i pandemije COVID 19 izbrisali su sve postojeće zalihe džojstika. Moja jedina mogućnost je bila da sam napravim jednu.

Većina džojstika vani koristi potenciometre u osnovi za određivanje uglova džojstika i slanje informacija o osi x i y nazad na računar. Ovo dobro funkcionira, ali komplicira konstrukciju upravljačke palice. i tokom vremena. potenciometri se mogu istrošiti. Umjesto da koristim potenciometre, odlučio sam se za akcelerometar/žiroskopsku ploču za slanje informacija računaru o uglovima štapa.

S popularnošću raznih Arduino mikroprocesora i različitih senzora, troškovi izgradnje Arduino projekta postaju mnogo pristupačniji. Jedna od najčešće korištenih senzorskih ploča akcelerometra/žiroskopa je MPU-6050. U Kanadi, to košta oko 7 USD CAN u Amazonu. Ja sam svoj dobio sa eBay -a, a iz Kine sam ga dopremio za mnogo manje, ali vrijeme isporuke bilo je 3 mjeseca ili duže.

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

Bilo koja Arduino ploča bi radila, ali upotreba ploče zasnovane na ATmega32u4 bit će mnogo jednostavnija jer ATmega32u4 ima izvornu podršku za HID (Human Interface Device). Nakon što je ploča programirana, možete je koristiti na bilo kojem Windows 10 računaru i nije vam potreban dodatni softver. Windows 10 će ga automatski prepoznati kao joystick kada je USB priključen. (Upotreba druge vrste Arduino ploče je previše komplicirana za ovaj jednostavan projekt izgradnje).

Biram Arduino Leonardo ploču. 17 USD MOŽE od Amazona.

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

Ova dva uređaja glavni su zahtjevi za ovaj projekt. Potrebni su i drugi manji predmeti poput ožičenja i dugmadi. U ovom projektu sam koristio samo 2 tastera radi jednostavnosti.

Ručka džojstika izrađena je od otpadne PVC vodovodne cijevi. Ovo se može lako zamijeniti bilo kojom kratkom krutom cijevi.

Baza džojstika je opružni graničnik vrata pričvršćen na komad drveta.

Opružni graničnik vrata dostupan je u Home Depotu za 2,83 USD.

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

Korak 1: Spajanje MPU6050 i gumba na Arduino Leonardo ploču

Povezivanje MPU6050 i gumba na Arduino Leonardo ploču
Povezivanje MPU6050 i gumba na Arduino Leonardo ploču
Povezivanje MPU6050 i gumba na Arduino Leonardo ploču
Povezivanje MPU6050 i gumba na Arduino Leonardo ploču
Povezivanje MPU6050 i gumba na Arduino Leonardo ploču
Povezivanje MPU6050 i gumba na Arduino Leonardo ploču

Na MPU 6050 koriste se samo 4 veze. Označene su kao VCC, GND, SCL i SDA.

Spojite VCC na 5v ili 3.3v na Arduino Leonardu. (MPU 6050 može koristiti 5v ili 3.3v. Nije važno)

Povežite GND sa bilo kojim GND -om na Arduinu Leonardu.

Spojite SCL na SCL na Arduinu Leonardu.

Povežite SDA sa SDA na Arduinu Leonardu.

Za ovu demonstraciju koristim samo 2 tipke.

Prvo dugme se koristi za resetovanje centra džojstika. U ovom primjeru, jedan kraj tastera je povezan sa GND, a jedan kraj na PIN 13.

Drugo dugme se koristi kao dugme džojstika. U ovom primjeru, spojen je na PIN 9 i GND.

Po potrebi možete dodati dodatne gumbe u svoj projekt.

Korak 2: Izgradnja baze džojstika

Izgradnja baze džojstika
Izgradnja baze džojstika
Izgradnja baze džojstika
Izgradnja baze džojstika
Izgradnja baze džojstika
Izgradnja baze džojstika

Pronađite komad drvenog bloka. Što je teže to bolje. To će bazu džojstika učiniti stabilnijom.

Zavijte opružni graničnik vrata na sredinu drvenog bloka kao što je prikazano na slici.

Za rukovanje džojstika upotrijebite komad kratke cijevi. Koristio sam strugajuću PVC cijev. Gazite žicom tako da akcelerometar/senzor žiroskopa sjedi na vrhu cijevi.

Zatim stavite cijev preko graničnika opružnih vrata. Koristio sam električnu traku da zalijepim senzor na vrhu.

Korak 3: Postavite Arduino IDE

Preuzmite i instalirajte Arduino IDE.https://www.arduino.cc/en/Main/Software

Za ovaj projekt koristio sam Arduino 1.8.13. Arduino Web Editor se može koristiti i za ovaj projekt.

Koriste se 2 biblioteke.

1. MPU6050_tockn po tockn

github.com/Tockn/MPU6050_tockn

ili ga možete pronaći u izborniku "Upravljanje bibliotekom".

2. Biblioteka džojstika od Mateja Heironimusa

github.com/MHeironimus/ArduinoJoystickLibr…

Ovaj je trenutno dostupan samo sa web stranice GitHub.

Kliknite na Preuzmi kôd i Preuzmi ZIP. Izdvojite ZIP datoteku u svoj direktorij Arduino biblioteka.

U mom slučaju to je E: / PinChung / Documents / Arduino / libraries

Korak 4: Arduino program

Učitajte Pin_Joystick.ino na Arduino IDE i kompajlirajte i prenesite na Leonardovu ploču.

Provjerite je li odabrana ploča Arduino Leonardo i odabran je broj porta s desne strane COM: u izborniku Alati.

Primijetio sam da se neko vrijeme program nije mogao učitati, a kod greške COM porta nije dostupan. Pritisak tipke za poništavanje na Leonardovoj ploči nekoliko puta tijekom kompajliranja može pomoći. Ponovno pokretanje sustava Windows 10 moglo bi pomoći i oslobađanju COM porta.

Nakon što se program učita na Leonardovu ploču, Windows 10 bi trebao automatski otkriti Leonardovu joystick. Na traci za pretraživanje Windows 10 otkucajte Game Controllers, pokrenite Set up USB Game Controllers.

odaberite džojstik Leonardo i kliknite Svojstva. Pokret joystick -a i tipku joystick -a #1 trebao bi pokupiti Windows 10.

Ako džojstik nije centriran, kada ga pustite, kliknite na centralno dugme za poništavanje džojstika koje smo upravo napravili. USB kontroleri za igre bi trebali pokazati tačku džojstika u sredini. Nema potrebe za kalibriranjem joystick -a u programu USB Game Controller.

Napomena: Za one koji nisu upoznati s Arduinom Leonardom, kada je uređaj konfiguriran kao joystick, miš ili tipkovnica, serijski port neće raditi. Dakle, "Serial.print ()" neće raditi. Također, MPU6050 koristi i2c knjižnicu žica i koristi SDA i SLC pinove. Na Leonardu SDA i SCL zauzimaju i PIN 2 i PIN 3, stoga nemojte koristiti ove 2 pinove za bilo što drugo.

Korak 5: Testiranje džojstika

Testirao sam ga na Microsoft Flight Simulatoru 2020 i radi jako dobro. Moram ponekad pritisnuti centralni taster da nuliram džojstik. Vrijednost senzora MPU6050 može se pomalo pomaknuti s vremenom.

Postoji mnogo mogućnosti za trošenje na projektu, poput dodavanja još dugmadi i dodavanja kontrola gasa. Nadajmo se da će ovo inspirirati druge petlače da istraže nove načine stvaranja stvari.

Preporučuje se: