Turinys:

„Pasidaryk pats“MPU-6050 USB vairasvirtė: 5 žingsniai
„Pasidaryk pats“MPU-6050 USB vairasvirtė: 5 žingsniai

Video: „Pasidaryk pats“MPU-6050 USB vairasvirtė: 5 žingsniai

Video: „Pasidaryk pats“MPU-6050 USB vairasvirtė: 5 žingsniai
Video: Arduino pamokos LT - Joystick + map() + String 2024, Lapkritis
Anonim
„Pasidaryk pats“MPU-6050 USB vairasvirtė
„Pasidaryk pats“MPU-6050 USB vairasvirtė

Naudodamas „Microsoft Flight Simulator 2020“greitai supratau, kaip sunku naudoti planą skraidant klaviatūra. Ieškodamas internete neradau už prieinamą kainą nusipirktą vairasvirtę. Dauguma internetinių mažmenininkų jų neturėjo. „MS Flight Simulator“ir COVID 19 pandemijos populiarumas sunaikino visas esamas vairasvirtės atsargas. Mano vienintelis variantas buvo pats jį pasigaminti.

Dauguma joystick'ų naudoja potenciometrus prie pagrindo, kad nustatytų vairasvirtės kampus ir nusiųstų informaciją apie x ir y ašis atgal į kompiuterį. Tai veikia gerai, tačiau apsunkina vairasvirtės konstrukciją. ir laikui bėgant. potenciometrai gali susidėvėti. Užuot naudojęs potenciometrus, nusprendžiau naudoti akselerometro/giroskopo jutiklio plokštę ir siųsti informaciją į kompiuterį apie lazdos kampus.

Populiarėjant įvairiems „Arduino“mikroprocesoriams ir įvairiems jutikliams, „Arduino“projekto kūrimo kaina tampa daug pigesnė. Viena iš dažniausiai naudojamų akselerometro/giroskopo jutiklių plokščių yra MPU-6050. Kanadoje „Amazon“kainuoja apie 7 USD. Aš gavau savo iš „eBay“, išsiųstą iš Kinijos už daug mažesnę kainą, tačiau pristatymo laikas buvo 3 mėnesiai ar ilgiau.

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

Bet kuri „Arduino“plokštė veiktų, tačiau naudojant ATmega32u4 pagrįstą plokštę bus daug paprasčiau, nes „ATmega32u4“palaiko vietinį HID (žmogaus sąsajos įrenginį). Kai lenta yra užprogramuota, galite ją naudoti bet kuriame „Windows 10“kompiuteryje ir nereikia jokios papildomos programinės įrangos. „Windows 10“automatiškai atpažins ją kaip vairasvirtę, kai bus prijungtas USB. (Kitos rūšies „Arduino“plokštės naudojimas yra pernelyg sudėtingas šiam paprastam kūrimo projektui).

Aš renkuosi „Arduino Leonardo“lentą. 17 USD CAN iš „Amazon“.

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

Šie 2 įrenginiai yra pagrindiniai šio projekto reikalavimai. Taip pat reikalingi kiti mažesni elementai, tokie kaip laidai ir mygtukai. Šiame projekte paprastumui naudoti tik 2 mygtukus.

Vairasvirtės rankena pagaminta iš PVC vandens vamzdžio laužo. Tai galima lengvai pakeisti bet kokiu trumpu standžiu vamzdžiu.

Vairasvirtės pagrindas yra spyruoklinė durų atrama, pritvirtinta prie medžio gabalo.

Spyruoklinių durų stotelę galima įsigyti „Home Depot“už 2,83 USD.

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

1 veiksmas: MPU6050 ir mygtukų prijungimas prie „Arduino Leonardo Board“

MPU6050 ir mygtukų prijungimas prie „Arduino Leonardo Board“
MPU6050 ir mygtukų prijungimas prie „Arduino Leonardo Board“
MPU6050 ir mygtukų prijungimas prie „Arduino Leonardo Board“
MPU6050 ir mygtukų prijungimas prie „Arduino Leonardo Board“
MPU6050 ir mygtukų prijungimas prie „Arduino Leonardo Board“
MPU6050 ir mygtukų prijungimas prie „Arduino Leonardo Board“

MPU 6050 naudojamos tik 4 jungtys. Jos pažymėtos VCC, GND, SCL ir SDA.

Prijunkite VCC prie 5v arba 3.3v „Arduino Leonardo“. (MPU 6050 gali naudoti 5v arba 3.3v. Nesvarbu)

Prijunkite GND prie bet kurio „Arduino Leonardo“GND.

Prijunkite SCL prie SCL „Arduino Leonardo“.

Prijunkite SDA prie SDA „Arduino Leonardo“.

Šiam demonstravimui naudoju tik 2 mygtukus.

Pirmasis mygtukas naudojamas kreiptuko centro nustatymui iš naujo. Šiame pavyzdyje vienas mygtuko galas yra prijungtas prie GND, o kitas galas prie PIN 13.

Antrasis mygtukas naudojamas kaip vairasvirtės mygtukas. Šiame pavyzdyje jis prijungtas prie PIN 9 ir GND.

Jei reikia, savo projekte galite pridėti papildomų mygtukų.

2 žingsnis: sukurkite vairasvirtės bazę

Joystick bazės kūrimas
Joystick bazės kūrimas
Joystick bazės kūrimas
Joystick bazės kūrimas
Joystick bazės kūrimas
Joystick bazės kūrimas

Raskite medžio trinkelės gabalą. Kuo sunkesnis, tuo geriau. Dėl to vairasvirtės pagrindas taps stabilesnis.

Prisukite spyruoklinį durų kamštį medžio bloko centre, kaip parodyta paveikslėlyje.

Kaip vairasvirtės rankeną naudokite trumpo vamzdžio gabalėlį. Aš naudoju nubrauktą PVC vamzdį. Pasukite vielą taip, kad akselerometras/giroskopo jutiklis būtų ant vamzdžio.

Tada uždėkite vamzdį virš spyruoklinio durų kamščio. Viršuje esantį jutiklį užklijavau elektrine juostele.

3 veiksmas: nustatykite „Arduino IDE“

Atsisiųskite ir įdiekite „Arduino IDE“.https://www.arduino.cc/en/Main/Software

Šiam projektui naudojau „Arduino 1.8.13“. Šiam projektui taip pat galima naudoti „Arduino Web Editor“.

Naudojamos 2 bibliotekos.

1. MPU6050_tockn by tockn

github.com/Tockn/MPU6050_tockn

arba galite rasti meniu „Tvarkyti biblioteką“.

2. „Matthew Heironimus“vairasvirtės biblioteka

github.com/MHeironimus/ArduinoJoystickLibr…

Šiuo metu tai galima rasti tik „GitHub“svetainėje.

Spustelėkite atsisiųsti kodą ir atsisiųsti ZIP. Ištraukite ZIP failą į „Arduino“bibliotekų katalogą.

Mano atveju tai yra E: / PinChung / Documents / Arduino / bibliotekos

4 žingsnis: „Arduino“programa

Įkelkite Pin_Joystick.ino į „Arduino IDE“ir sukompiliuokite bei įkelkite į „Leonardo“lentą.

Įsitikinkite, kad pasirinkta „Arduino Leonardo“plokštė ir prievado numeris dešinėje COM: meniu Įrankiai.

Pastebėjau kurį laiką, programos nepavyko įkelti su COM prievado klaidos kodu, kurio nėra. Kompiliavimo metu kelis kartus paspaudus „Leonardo“plokštės atstatymo mygtuką, gali būti naudinga. Taip pat iš naujo paleidus „Windows 10“gali padėti atlaisvinti COM prievadą.

Kai programa bus įkelta į „Leonardo“plokštę, „Windows 10“turėtų automatiškai aptikti „Leonardo Joystick“. „Windows 10“paieškos juostoje įveskite žaidimų valdiklius, paleiskite „Nustatyti USB žaidimų valdiklius“.

pasirinkite Leonardo vairasvirtę ir spustelėkite Ypatybės. „Windows 10“turėtų paimti vairasvirtės judesį ir vairasvirtės #1 mygtuką.

Jei vairasvirtė nėra centre, ją paleisdami spustelėkite ką tik pagamintą vairasvirtės centro mygtuką. USB žaidimų valdikliai turėtų parodyti kreiptuko tašką centre. USB žaidimų valdiklio programoje nereikia kalibruoti kreiptuko.

Šoninė pastaba: tiems, kurie nėra susipažinę su „Arduino Leonardo“, kai įrenginys sukonfigūruotas kaip vairasvirtė, pelė ar klaviatūra, nuoseklusis prievadas neveiks. Taigi „Serial.print ()“neveiks. Be to, MPU6050 naudoja „i2c“laidų biblioteką ir naudoja SDA ir SLC kaiščius. „Leonardo“SDA ir SCL naudoja ir PIN 2, ir 3 PIN kodą, todėl nenaudokite šių 2 kaiščių niekam kitam.

5 žingsnis: vairasvirtės išbandymas

Aš išbandžiau jį „Microsoft Flight Simulator 2020“ir jis veikia labai gerai. Aš kartais turiu paspausti centrinį klavišą, kad nustumčiau vairasvirtę. Laikui bėgant MPU6050 jutiklio vertė gali šiek tiek nukrypti.

Yra daug galimybių išleisti projektui, pavyzdžiui, pridėti daugiau mygtukų ir pridėti droselio valdiklius. Tikimės, kad tai įkvėps kitus meistrus ieškoti naujų dalykų kūrimo būdų.

Rekomenduojamas: