Satura rādītājs:

DIY MPU-6050 USB kursorsvira: 5 soļi
DIY MPU-6050 USB kursorsvira: 5 soļi

Video: DIY MPU-6050 USB kursorsvira: 5 soļi

Video: DIY MPU-6050 USB kursorsvira: 5 soļi
Video: DIY 2 axis joystick 2024, Novembris
Anonim
DIY MPU-6050 USB kursorsvira
DIY MPU-6050 USB kursorsvira

Izmantojot Microsoft Flight Simulator 2020, es ātri sapratu, cik grūti ir izmantot tastatūru, lai lidotu plānā. Meklējot tiešsaistē, es nevarēju atrast saprātīgu cenu, lai iegādātos kursorsviru. Lielākajai daļai tiešsaistes mazumtirgotāju to nebija. MS Flight Simulator un COVID 19 pandēmijas popularitāte iznīcināja visus esošos kursorsviras krājumus. Mana vienīgā iespēja bija to uzbūvēt pašam.

Lielākā daļa kursorsviru tur izmanto potenciometrus pie pamatnes, lai noteiktu kursorsviru leņķus un nosūtītu informāciju par x un y asi atpakaļ uz datoru. Tas darbojas labi, taču sarežģī kursorsviru uzbūvi. un ar laiku. potenciometri var nolietoties. Tā vietā, lai izmantotu potenciometrus, es nolēmu izmantot akselerometra/žiroskopa sensoru paneli, lai nosūtītu informāciju datoram par nūjas leņķiem.

Pateicoties dažādu Arduino mikroprocesoru un dažādu sensoru popularitātei, Arduino projekta veidošanas izmaksas kļūst daudz pieejamākas. Viens no visbiežāk izmantotajiem akselerometra/žiroskopa sensoru paneļiem ir MPU-6050. Kanādā tas Amazon maksā apmēram 7 USD. Es saņēmu savu no eBay, kas tika piegādāts no Ķīnas par daudz mazāk, bet piegādes laiks bija apmēram 3 mēneši vai ilgāks.

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

Jebkura Arduino plate darbotos, taču ar ATmega32u4 balstītas plates izmantošana būs daudz vienkāršāka, jo ATmega32u4 ir vietējais HID (cilvēka saskarnes ierīces) atbalsts. Kad tāfele ir ieprogrammēta, varat to izmantot jebkurā Windows 10 datorā un nav nepieciešama papildu programmatūra. Windows 10 automātiski atpazīs to kā kursorsviru, kad USB ir pievienots. (Cita veida Arduino plates izmantošana ir pārāk sarežģīta šim vienkāršajam būvniecības projektam).

Es izvēlos Arduino Leonardo dēli. 17 USD CAN no Amazon.

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

Šīs 2 ierīces ir galvenās prasības šim projektam. Ir nepieciešami arī citi mazāki priekšmeti, piemēram, vadi un spiedpogas. Šajā projektā vienkāršības labad es izmantoju tikai 2 spiedpogas.

Kursorsviras rokturis ir izgatavots no PVC ūdens caurules lūžņiem. To var viegli aizstāt ar jebkuru īsu cietu cauruli.

Kursorsviras pamatne ir atsperes durvju atdure, kas piestiprināta pie koka gabala.

Atsperu durvju pieturvieta ir pieejama Home Depot par USD 2,83CAN.

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

1. darbība: MPU6050 un spiedpogu savienošana ar Arduino Leonardo Board

MPU6050 un spiedpogu savienošana ar Arduino Leonardo Board
MPU6050 un spiedpogu savienošana ar Arduino Leonardo Board
MPU6050 un spiedpogu savienošana ar Arduino Leonardo Board
MPU6050 un spiedpogu savienošana ar Arduino Leonardo Board
MPU6050 un spiedpogu savienošana ar Arduino Leonardo Board
MPU6050 un spiedpogu savienošana ar Arduino Leonardo Board

MPU 6050 tiek izmantoti tikai 4 savienojumi. Tie ir marķēti ar VCC, GND, SCL un SDA.

Savienojiet VCC ar 5v vai 3.3v uz Arduino Leonardo. (MPU 6050 var izmantot vai nu 5v, vai 3.3v. Nav nozīmes)

Savienojiet GND ar jebkuru Arduino Leonardo GND.

Savienojiet SCL ar SCL Arduino Leonardo.

Savienojiet SDA ar SDA ierīcē Arduino Leonardo.

Šim demonstrācijas nolūkam es izmantoju tikai 2 spiedpogas.

Pirmo spiedpogu izmanto kursorsviras centra atiestatīšanai. Šajā piemērā viens spiedpogas gals ir savienots ar GND, bet otrs - ar PIN 13.

Otro spiedpogu izmanto kā kursorsviras pogu. Šajā piemērā tas ir savienots ar PIN 9 un GND.

Ja nepieciešams, savā projektā varat pievienot papildu pogas.

2. solis: kursorsviras bāzes izveide

Kursorsviras bāzes veidošana
Kursorsviras bāzes veidošana
Kursorsviras bāzes veidošana
Kursorsviras bāzes veidošana
Kursorsviras bāzes veidošana
Kursorsviras bāzes veidošana

Atrodiet koka bloka gabalu. Jo smagāks, jo labāk. Tas padarīs kursorsviras pamatni stabilāku.

Skrūvējiet atsperu durvju aizbāzni koka bloka centrā, kā parādīts attēlā.

Kā kursorsviru rokturi izmantojiet īsas caurules gabalu. Es izmantoju skrāpējošu PVC cauruli. Nospiediet vadu tā, lai akselerometrs/žiroskopa sensors atrastos caurules augšpusē.

Pēc tam ielieciet cauruli virs atsperu durvju aizbāžņa. Es izmantoju elektrisko lenti, lai līmētu sensoru augšpusē.

3. darbība: iestatiet Arduino IDE

Lejupielādējiet un instalējiet Arduino IDE.

Šim projektam es izmantoju Arduino 1.8.13. Šim projektam var izmantot arī Arduino tīmekļa redaktoru.

Tiek izmantotas 2 bibliotēkas.

1. MPU6050_tockn by tockn

github.com/Tockn/MPU6050_tockn

vai arī to var atrast izvēlnē "Pārvaldīt bibliotēku".

2. Metjū Heironima kursorsviru bibliotēka

github.com/MHeironimus/ArduinoJoystickLibr…

Šis pašlaik ir pieejams tikai no GitHub vietnes.

Noklikšķiniet uz Lejupielādēt kodu un Lejupielādēt ZIP. Izvelciet ZIP failu savā Arduino bibliotēku direktorijā.

Manā gadījumā tas ir E: / PinChung / Documents / Arduino / bibliotēkas

4. solis: Arduino programma

Ielādējiet Pin_Joystick.ino uz Arduino IDE un apkopojiet un augšupielādējiet uz Leonardo tāfeles.

Pārliecinieties, vai ir atlasīta Arduino Leonardo plate un izvēlnē Rīki ir atlasīts labajā COM: porta numurs.

Es pamanīju kādu laiku, programmu nevarēja augšupielādēt ar COM porta kļūdas kodu, kas nav pieejams. Varētu palīdzēt, pāris reizes nospiežot atiestatīšanas pogu uz Leonardo tāfeles apkopošanas laikā. Arī Windows 10 restartēšana var palīdzēt atbrīvot COM portu.

Kad programma ir augšupielādēta Leonardo panelī, operētājsistēmai Windows 10 vajadzētu automātiski noteikt Leonardo kursorsviru. Windows 10 meklēšanas joslā ierakstiet Spēļu kontrolieri, palaidiet Iestatīt USB spēļu kontrolierus.

atlasiet Leonardo kursorsviru un noklikšķiniet uz Rekvizīti. Kursorsviras kustība un kursorsviras poga Nr. 1 būtu jāuzņem sistēmā Windows 10.

Ja kursorsvira nav centrēta, atlaižot to, noklikšķiniet uz tikko izveidotās kursorsviras centra pogas. USB spēļu kontrolieriem vajadzētu parādīt kursorsviru punktu centrā. Nav nepieciešams kalibrēt kursorsviru programmā USB Game Controller.

Sānu piezīme: tiem, kas nav pazīstami ar Arduino Leonardo, ja ierīce ir konfigurēta kā kursorsviru, peli vai tastatūru, seriālais ports nedarbosies. Tātad "Serial.print ()" nedarbosies. Turklāt MPU6050 izmanto i2c vadu bibliotēku un SDA un SLC tapas. Leonardo ierīcēs SDA un SCL izmanto gan PIN 2, gan PIN 3, tāpēc nelietojiet šīs 2 tapas citam.

5. darbība: kursorsviras pārbaude

Es to pārbaudīju Microsoft Flight Simulator 2020, un tas darbojas ļoti labi. Man dažreiz ir jānospiež centrālais taustiņš, lai nullētu kursorsviru. MPU6050 sensora vērtība laika gaitā var nedaudz mainīties.

Projektam ir daudz iespēju tērēt, piemēram, pievienot vairāk pogu un pievienot droseļvārsta vadības ierīces. Cerams, ka tas iedvesmos citus meistarus izpētīt jaunus veidus, kā padarīt lietas.

Ieteicams: