Inhoudsopgave:
- Stap 1: MPU6050 en drukknoppen aansluiten op Arduino Leonardo Board
- Stap 2: De joystickbasis bouwen
- Stap 3: Arduino IDE instellen
- Stap 4: Arduino-programma
- Stap 5: De joystick testen
Video: DIY MPU-6050 USB-joystick - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:14
Met Microsoft Flight Simulator 2020 realiseerde ik me snel hoe moeilijk het is om het toetsenbord te gebruiken om een plan te vliegen. Toen ik online zocht, kon ik geen redelijk geprijsde joystick vinden om te kopen. De meeste online retailers hadden ze niet op voorraad. De populariteit van MS Flight Simulator en de COVID 19-pandemie hebben alle bestaande joystickvoorraden weggevaagd. Mijn enige optie was om er zelf een te bouwen.
De meeste joysticks die er zijn, gebruiken potentiometers aan de basis om de hoeken van de joystick te bepalen en x- en y-asinformatie terug naar de computer te sturen. Dit werkt goed, maar bemoeilijkt de constructie van de joystick. en na verloop van tijd. de potmeters kunnen verslijten. In plaats van potentiometers te gebruiken, besloot ik om met een accelerometer / gyroscoop-sensorbord te gaan om informatie over de hoeken van de stick naar de computer te sturen.
Met de populariteit van verschillende Arduino-microprocessors en verschillende sensoren, worden de kosten van het bouwen van een Arduino-project veel betaalbaarder. Een van de veelgebruikte accelerometer-/gyroscoopsensorkaarten is de MPU-6050. In Canada kost het ongeveer $ 7CAN in Amazon. Ik heb de mijne van eBay voor veel minder uit China laten verzenden, maar de verzendtijd was 3 maanden of langer.
www.amazon.ca/Neuftech-MPU-6050-3-Gyroscop…
Elk Arduino-bord zou werken, maar het gebruik van een op ATmega32u4 gebaseerd bord zal veel eenvoudiger zijn, omdat ATmega32u4 native HID-ondersteuning (Human Interface Device) heeft. Zodra het bord is geprogrammeerd, kunt u het op elke pc met Windows 10 gebruiken en hebt u geen extra software nodig. Windows 10 zal het automatisch herkennen als een joystick wanneer de USB is aangesloten. (Het gebruik van een ander type Arduino-bord is te ingewikkeld voor dit eenvoudige bouwproject).
Ik kies voor Arduino Leonardo-bord. $ 17KAN van Amazon.
www.amazon.ca/KEYESTUDIO-Leonardo-Developm…
Deze 2 apparaten zijn de belangrijkste vereisten voor dit project. Andere kleinere items zoals bedrading en drukknoppen zijn ook nodig. In dit project heb ik voor de eenvoud slechts 2 drukknoppen gebruikt.
De joystickhendel is gemaakt van een schroot PVC-waterpijp. Dit kan gemakkelijk worden vervangen door een korte stijve pijp.
De basis van de joystick is een verende deurstopper die op een stuk hout is bevestigd.
De veerdeurstop is verkrijgbaar bij Home Depot voor $ 2,83CAN.
www.homedepot.ca/product/everbilt-spring-d…
Stap 1: MPU6050 en drukknoppen aansluiten op Arduino Leonardo Board
Op de MPU 6050 worden slechts 4 aansluitingen gebruikt. Deze zijn gelabeld met VCC, GND, SCL en SDA.
Sluit VCC aan op 5v of 3.3v op Arduino Leonardo. (MPU 6050 kan 5v of 3.3v gebruiken. Maakt niet uit)
Verbind GND met elke GND op Arduino Leonardo.
Verbind SCL met SCL op Arduino Leonardo.
Verbind SDA met SDA op Arduino Leonardo.
Ik gebruik slechts 2 drukknoppen voor dit demonstratiedoel.
De eerste drukknop wordt gebruikt om het midden van de joystick te resetten. In dit voorbeeld is een uiteinde van de drukknop verbonden met GND en een uiteinde met PIN 13.
De tweede drukknop wordt gebruikt als joystickknop. In dit voorbeeld is deze verbonden met PIN 9 en GND.
U kunt indien nodig extra knoppen toevoegen aan uw project.
Stap 2: De joystickbasis bouwen
Zoek een stuk houtblok. Hoe zwaarder hoe beter. Het maakt de joystickbasis stabieler.
Schroef de veerdeurstopper in het midden van het houtblok zoals op de afbeelding.
Gebruik een stuk korte pijp als joystickhendel. Ik gebruikte een schraap PVC-buis. Betreed de draad zodat de accelerometer/gyroscoopsensor bovenop de pijp zit.
Plaats vervolgens de buis over de veerdeurstopper. Ik heb isolatietape gebruikt om de sensor aan de bovenkant vast te plakken.
Stap 3: Arduino IDE instellen
Download en installeer Arduino IDE.https://www.arduino.cc/en/Main/Software
Ik gebruikte Arduino 1.8.13 voor dit project. Arduino Web Editor kan ook voor dit project worden gebruikt.
Er worden 2 bibliotheken gebruikt.
1. MPU6050_tockn door tockn
github.com/Tockn/MPU6050_tockn
of je kunt het vinden in het menu "Bibliotheek beheren".
2. Joystickbibliotheek door Matthew Heironimus
github.com/MHeironimus/ArduinoJoystickLibr…
Deze is momenteel alleen beschikbaar via de GitHub-website.
Klik op code downloaden en ZIP downloaden. Pak het ZIP-bestand uit in uw Arduino-bibliothekenmap.
In mijn geval is het E:\PinChung\Documents\Arduino\libraries
Stap 4: Arduino-programma
Laad Pin_Joystick.ino op Arduino IDE en compileer en upload naar het Leonardo-bord.
Zorg ervoor dat het Arduino Leonardo-bord is geselecteerd en dat het poortnummer is geselecteerd aan de rechterkant COM: onder het menu Tools.
Ik merkte enige tijd op dat het programma niet kon worden geüpload met foutcode van COM-poort niet beschikbaar. Een paar keer op de resetknop op het Leonardo-bord drukken tijdens het compileren kan helpen. Ook het herstarten van Windows 10 kan ook helpen om de COM-poort vrij te maken.
Zodra het programma is geüpload naar het Leonardo-bord, zou Windows 10 automatisch de Leonardo-joystick moeten detecteren. Typ in de zoekbalk van Windows 10 Game Controllers, voer USB-gamecontrollers instellen uit.
selecteer Leonardo Joystick en klik op Eigenschappen. De joystickbeweging en de joystick #1-knop moeten worden opgepikt door Windows 10.
Als de joystick niet gecentreerd is, klik dan op de resetknop in het midden van de joystick die we zojuist hebben gemaakt. De USB-gamecontrollers moeten de joystick-stip in het midden tonen. Het is niet nodig om de joystick in het USB Game Controller-programma te kalibreren.
Kanttekening: voor degenen die niet bekend zijn met Arduino Leonardo, wanneer het apparaat is geconfigureerd als joystick, muis of toetsenbord, werkt de seriële poort niet. Dus "Serial.print()" zal niet werken. MPU6050 gebruikt ook een i2c-draadbibliotheek en gebruikt SDA- en SLC-pinnen. Op Leonardo nemen SDA en SCL zowel PIN 2 als PIN 3 in beslag, dus gebruik deze 2 pinnen nergens anders voor.
Stap 5: De joystick testen
Ik heb het getest op de Microsoft Flight Simulator 2020 en het werkt erg goed. Ik moet soms op de middelste toets drukken om de joystick op nul te zetten. De MPU6050-sensorwaarde kan in de loop van de tijd een beetje afwijken.
Er zijn veel mogelijkheden om aan het project te besteden, zoals het toevoegen van meer knoppen en het toevoegen van gashendels. Hopelijk inspireert dit andere knutselaars om nieuwe manieren te ontdekken om dingen te maken.
Aanbevolen:
Hoe maak je een USB-flashdrive met een gum - DIY USB-drivebehuizing: 4 stappen
Hoe maak je een USB-flashdrive met een gum | DIY USB-drivebehuizing: deze blog gaat over "Hoe maak je een USB-flashdrive met een gum | DIY USB-schijfbehuizing" ik hoop dat je het leuk zal vinden
Verander een gewone USB-stick in een veilige USB-stick: 6 stappen
Verander een gewone USB-stick in een veilige USB-stick: In deze Instructable leren we hoe je van een gewone USB-stick een veilige USB-stick kunt maken. Allemaal met standaard Windows 10-functies, niets bijzonders en niets extra's om aan te schaffen. Wat heb je nodig: Een USB-stick of -stick. Ik beveel getti
NODEMcu Usb-poort werkt niet? Upload de code met behulp van USB naar TTL (FTDI)-module in slechts 2 stappen: 3 stappen
NODEMcu Usb-poort werkt niet? Upload de code met behulp van USB naar TTL (FTDI) -module in slechts 2 stappen: moe van het verbinden met veel draden van USB naar TTL-module naar de NODEMcu, volg deze instructie om de code in slechts 2 stappen te uploaden. Als de USB-poort van de NODEMcu werkt niet, geen paniek. Het is gewoon de USB-stuurprogrammachip of de USB-connector
Hoe u uw eigen USB-autolader kunt maken voor elke iPod of andere apparaten die via USB worden opgeladen: 10 stappen (met afbeeldingen)
Hoe u uw eigen USB-autolader kunt maken voor elke iPod of andere apparaten die worden opgeladen via USB: maak een USB-autolader voor elke iPod of ander apparaat dat oplaadt via USB door een autoadapter aan elkaar te koppelen die 5v en een vrouwelijke USB-stekker uitvoert. Het belangrijkste onderdeel van dit project is om ervoor te zorgen dat de output van uw gekozen auto-adapter wordt ingezet
USB-binnen-/buitenthermometer (of 'Mijn eerste USB-apparaat'): 4 stappen (met afbeeldingen)
USB-binnen-/buitenthermometer (of 'Mijn eerste USB-apparaat'): Dit is een eenvoudig ontwerp dat de USB-randapparatuur op de PIC 18Fs demonstreert. Er zijn een heleboel voorbeelden voor de 18F4550 40-pins chips online, dit ontwerp demonstreert de kleinere 18F2550 28-pins versie. De PCB maakt gebruik van onderdelen voor opbouwmontage, maar alle c