Sommario:

Joystick USB MPU-6050 fai da te: 5 passaggi
Joystick USB MPU-6050 fai da te: 5 passaggi

Video: Joystick USB MPU-6050 fai da te: 5 passaggi

Video: Joystick USB MPU-6050 fai da te: 5 passaggi
Video: Joystick Robot | Best Arduino Project #shorts 2024, Dicembre
Anonim
Joystick USB MPU-6050 fai da te
Joystick USB MPU-6050 fai da te

Con Microsoft Flight Simulator 2020, ho capito subito quanto sia difficile usare la tastiera per pilotare un piano. Cercando online, non sono riuscito a trovare un joystick a un prezzo ragionevole da acquistare. La maggior parte dei rivenditori online li aveva esauriti. La popolarità di MS Flight Simulator e la pandemia di COVID 19 hanno spazzato via tutte le scorte di joystick esistenti. La mia unica opzione era costruirne uno da solo.

La maggior parte dei joystick là fuori usa potenziometri alla base per determinare gli angoli del joystick e inviare le informazioni sugli assi xey al computer. Funziona bene ma complica la costruzione del joystick. e nel tempo. i potenziometri potrebbero usurarsi. Invece di usare potenziometri, ho deciso di utilizzare la scheda sensore accelerometro/giroscopio per inviare informazioni al computer sugli angoli dello stick.

Con la popolarità di vari microprocessori Arduino e vari sensori, il costo di costruzione di un progetto Arduino diventa molto più conveniente. Una delle schede sensore accelerometro/giroscopio comunemente usate è l'MPU-6050. In Canada, su Amazon costa circa $ 7 CAN. Ho ricevuto il mio da eBay spedito dalla Cina per molto meno, ma il tempo di spedizione è stato di 3 mesi o più.

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

Qualsiasi scheda Arduino funzionerebbe, ma l'utilizzo della scheda basata su ATmega32u4 sarà molto più semplice, perché ATmega32u4 ha il supporto nativo HID (Human Interface Device). Una volta che la scheda è stata programmata, puoi utilizzarla su qualsiasi PC Windows 10 e non è richiesto alcun software aggiuntivo. Windows 10 lo riconoscerà automaticamente come joystick quando l'USB è collegato. (L'uso di un altro tipo di scheda Arduino è troppo complicato per questo semplice progetto di build).

Scelgo la scheda Arduino Leonardo. $ 17 CAN da Amazon.

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

Questi 2 dispositivi sono i requisiti principali per questo progetto. Sono necessari anche altri elementi più piccoli come cablaggi e pulsanti. In questo progetto, ho usato solo 2 pulsanti per semplicità.

L'impugnatura del joystick è costituita da un tubo dell'acqua in PVC di scarto. Questo può essere facilmente sostituito con qualsiasi tubo rigido corto.

La base del joystick è un fermo porta a molla fissato su un pezzo di legno.

La fermata della porta a molla è disponibile da Home Depot per $ 2,83 CAN.

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

Passaggio 1: collegamento di MPU6050 e pulsanti alla scheda Arduino Leonardo

Collegamento di MPU6050 e pulsanti alla scheda Arduino Leonardo
Collegamento di MPU6050 e pulsanti alla scheda Arduino Leonardo
Collegamento di MPU6050 e pulsanti alla scheda Arduino Leonardo
Collegamento di MPU6050 e pulsanti alla scheda Arduino Leonardo
Collegamento di MPU6050 e pulsanti alla scheda Arduino Leonardo
Collegamento di MPU6050 e pulsanti alla scheda Arduino Leonardo

Solo 4 connessioni sono utilizzate su MPU 6050. Sono etichettate come VCC, GND, SCL e SDA.

Collega VCC a 5v o 3.3v su Arduino Leonardo. (MPU 6050 può utilizzare 5v o 3.3v. Non importa)

Collega GND a qualsiasi GND su Arduino Leonardo.

Collega SCL a SCL su Arduino Leonardo.

Collega SDA a SDA su Arduino Leonardo.

Uso solo 2 pulsanti per questo scopo dimostrativo.

Il primo pulsante viene utilizzato per ripristinare il centro del joystick. In questo esempio, un'estremità del pulsante è collegata a GND e un'estremità al PIN 13.

Il secondo pulsante viene utilizzato come pulsante del joystick. In questo esempio, è collegato al PIN 9 e GND.

Puoi aggiungere ulteriori pulsanti secondo necessità nel tuo progetto.

Passaggio 2: costruzione della base del joystick

Costruire la base del joystick
Costruire la base del joystick
Costruire la base del joystick
Costruire la base del joystick
Costruire la base del joystick
Costruire la base del joystick

Trova un pezzo di legno. Più è pesante, meglio è. Renderà la base del joystick più stabile.

Avvitare il fermo della porta a molla al centro del blocco di legno come mostrato nell'immagine.

Usa un pezzo di tubo corto come impugnatura del joystick. Ho usato un tubo in PVC raschiante. Percorri il cavo in modo che il sensore dell'accelerometro/giroscopio si trovi sopra il tubo.

Quindi posizionare il tubo sopra il fermo della porta a molla. Ho usato del nastro isolante per fissare il sensore sulla parte superiore.

Passaggio 3: configurazione dell'IDE Arduino

Scarica e installa Arduino IDE.https://www.arduino.cc/en/Main/Software

Ho usato Arduino 1.8.13 per questo progetto. Arduino Web Editor può essere utilizzato anche per questo progetto.

Vengono utilizzate 2 librerie.

1. MPU6050_tockn di tockn

github.com/Tockn/MPU6050_tockn

oppure puoi trovarlo nel menu "Gestisci libreria".

2. Libreria joystick di Matthew Heironimus

github.com/MHeironimus/ArduinoJoystickLibr…

Questo è attualmente disponibile solo dal sito Web GitHub.

Fare clic su Scarica codice e Scarica ZIP. Estrai il file ZIP nella directory delle librerie Arduino.

Nel mio caso, è E:\PinChung\Documents\Arduino\libraries

Passaggio 4: programma Arduino

Carica Pin_Joystick.ino su Arduino IDE e compila e carica sulla scheda Leonardo.

Assicurati che la scheda Arduino Leonardo sia selezionata e che il numero di porta sia selezionato nella COM giusta: nel menu Strumenti.

Ho notato da tempo che il programma non poteva essere caricato con codice di errore della porta COM non disponibile. Premendo un paio di volte il pulsante di reset sulla scheda Leonardo durante la compilazione potrebbe essere d'aiuto. Anche il riavvio di Windows 10 potrebbe anche aiutare a liberare la porta COM.

Una volta caricato il programma sulla scheda Leonardo, Windows 10 dovrebbe rilevare automaticamente il Joystick Leonardo. Nella barra di ricerca di Windows 10, digita Controller di gioco, esegui Configura controller di gioco USB.

selezionare Leonardo Joystick e fare clic su Proprietà. Il movimento del joystick e il pulsante n. 1 del joystick dovrebbero essere rilevati da Windows 10.

Se il joystick non è centrato, quando lo lasci andare, fai clic sul pulsante centrale di ripristino del joystick che abbiamo appena creato. I controller di gioco USB dovrebbero mostrare il punto del joystick al centro. Non è necessario calibrare il joystick nel programma USB Game Controller.

Nota a margine: per chi non ha familiarità con Arduino Leonardo, quando il dispositivo è configurato come joystick, mouse o tastiera, la porta seriale non funzionerà. Quindi "Serial.print()" non funzionerà. Inoltre, l'MPU6050 utilizza la libreria di cavi i2c e utilizza i pin SDA e SLC. Su Leonardo, SDA e SCL occupano sia il PIN 2 che il PIN 3, quindi non utilizzare questi 2 pin per nient'altro.

Passaggio 5: test del joystick

L'ho testato su Microsoft Flight Simulator 2020 e funziona molto bene. A volte devo premere il tasto centrale per azzerare il joystick. Il valore del sensore MPU6050 potrebbe variare leggermente nel tempo.

Ci sono molte opportunità da spendere nel progetto, come l'aggiunta di più pulsanti e l'aggiunta di controlli dell'acceleratore. Speriamo che questo possa ispirare altri armeggiare a esplorare nuovi modi di fare le cose.

Consigliato: