Innehållsförteckning:
- Steg 1: Anslutning av MPU6050 och tryckknappar till Arduino Leonardo Board
- Steg 2: Bygg styrspaken
- Steg 3: Konfigurera Arduino IDE
- Steg 4: Arduino -program
- Steg 5: Testa styrspaken
Video: DIY MPU-6050 USB-joystick: 5 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:37
Med Microsoft Flight Simulator 2020 insåg jag snabbt hur svårt det är att använda tangentbordet för att flyga en plan. När jag letade på nätet kunde jag inte hitta en rimlig joystick att köpa. De flesta online -återförsäljare hade dem slut. Populariteten för MS Flight Simulator och COVID 19 -pandemin utplånade alla befintliga joystick -lager. Mitt enda alternativ var att bygga en själv.
De flesta av joystickarna där ute använder potentiometrar vid basen för att bestämma joystickens vinklar och skicka x- och y -axelinformation tillbaka till datorn. Detta fungerar bra men komplicerar konstruktionen av joysticken. och med tiden. potentiometrarna kan slita ut. Istället för att använda potentiometrar bestämde jag mig för att gå med accelerometer/gyroskop -sensorkort för att skicka information till datorn på pinnens vinklar.
Med populariteten hos olika Arduino -mikroprocessorer och olika sensorer blir kostnaden för att bygga ett Arduino -projekt mycket billigare. En av de vanligaste accelerometer-/gyroskop-sensorkortet är MPU-6050. I Kanada kostar det cirka $ 7CAN i Amazon. Jag fick min från eBay skickad från Kina för mycket mindre, men leveranstiden var ungefär 3 månader eller längre.
www.amazon.ca/Neuftech-MPU-6050-3-Gyroscop …
Vilket som helst Arduino -kort skulle fungera, men att använda ATmega32u4 -baserat kort blir mycket enklare, eftersom ATmega32u4 har inbyggt HID -stöd (Human Interface Device). När kortet är programmerat kan du använda det på valfri Windows 10 -dator och ingen ytterligare programvara krävs. Windows 10 känner automatiskt igen det som en joystick när USB -enheten är ansluten. (Användning av annan typ av Arduino -kort är för komplicerat för detta enkla byggprojekt).
Jag väljer Arduino Leonardo board. $ 17 KAN från Amazon.
www.amazon.ca/KEYESTUDIO-Leonardo-Developm…
Dessa två enheter är huvudkraven för detta projekt. Andra mindre föremål som trådar och tryckknappar är också nödvändiga. I det här projektet använde jag bara 2 tryckknappar för enkelhetens skull.
Joystickhandtaget är tillverkat av ett PVC -rör med skrot. Detta kan enkelt ersättas med alla korta styva rör.
Joystickens bas är ett fjäderdörrstopp som är fäst på en träbit.
Fjäderdörrstoppet är tillgängligt från Home Depot för $ 2,83CAN.
www.homedepot.ca/product/everbilt-spring-d…
Steg 1: Anslutning av MPU6050 och tryckknappar till Arduino Leonardo Board
Endast 4 anslutningar används på MPU 6050. De är märkta VCC, GND, SCL och SDA.
Anslut VCC till 5v eller 3.3v på Arduino Leonardo. (MPU 6050 kan använda antingen 5v eller 3.3v. Spelar ingen roll)
Anslut GND till vilken GND som helst på Arduino Leonardo.
Anslut SCL till SCL på Arduino Leonardo.
Anslut SDA till SDA på Arduino Leonardo.
Jag använder bara 2 tryckknappar för detta demonstrationssyfte.
Den första tryckknappen används för att återställa joystickens mitt. I det här exemplet är ena änden av tryckknappen ansluten till GND och en ände till PIN 13.
Den andra tryckknappen används som en joystick -knapp. I det här exemplet är den ansluten till PIN 9 och GND.
Du kan lägga till ytterligare knappar efter behov i ditt projekt.
Steg 2: Bygg styrspaken
Hitta en bit träkloss. Ju tyngre desto bättre. Det kommer att göra joystickbasen mer stabil.
Skruva fast fjäderdörrstoppet i mitten av träklossen som bilden visar.
Använd en bit av ett kort rör som styrspaken. Jag använde ett skrapt PVC -rör. Trä kabeln så att accelerometer/gyroskopsensorn sitter ovanpå röret.
Lägg sedan röret över fjäderdörrstoppet. Jag använde eltejp för att tejpa sensorn ovanpå.
Steg 3: Konfigurera Arduino IDE
Ladda ner och installera Arduino IDE.
Jag använde Arduino 1.8.13 för detta projekt. Arduino Web Editor kan också användas för detta projekt.
2 bibliotek används.
1. MPU6050_tockn av tockn
github.com/Tockn/MPU6050_tockn
eller så kan du hitta det i menyn "Hantera bibliotek".
2. Joystick -bibliotek av Matthew Heironimus
github.com/MHeironimus/ArduinoJoystickLibr…
Den här är för närvarande endast tillgänglig från GitHub -webbplatsen.
Klicka på nedladdningskoden och ladda ner ZIP. Extrahera ZIP -filen till din Arduino bibliotekskatalog.
I mitt fall är det E: / PinChung / Documents / Arduino / libraries
Steg 4: Arduino -program
Ladda Pin_Joystick.ino på Arduino IDE och kompilera och ladda upp till Leonardo -kortet.
Se till att Arduino Leonardo -kortet är valt och att portnummer är valt till höger COM: under menyn Verktyg.
Jag märkte en tid, programmet kunde inte laddas upp med felkoden för COM -porten inte tillgänglig. Att trycka på återställningsknappen på Leonardo -kortet ett par gånger medan kompilering kan hjälpa. Att starta om Windows 10 kan också hjälpa till att frigöra COM -porten.
När programmet har laddats upp till Leonardo -kortet borde Windows 10 automatiskt upptäcka Leonardo -joysticken. I Windows 10 -sökfältet skriver du spelkontroller, kör Ställ in USB -spelkontroller.
välj Leonardo Joystick och klicka på Egenskaper. Joystickrörelsen och joystick #1 -knappen bör hämtas av Windows 10.
Om joysticken inte är centrerad, när du släpper den klickar du på den återställande joystickens mittknapp som vi just gjorde. USB -spelkontrollerna ska visa joystickpunkten i mitten. Det finns ingen anledning att kalibrera joysticken i USB Game Controller -programmet.
Sidnotering: För de som inte är bekanta med Arduino Leonardo fungerar den seriella porten inte när enheten är konfigurerad som en joystick, mus eller tangentbord. Så "Serial.print ()" fungerar inte. MPU6050 använder också i2c trådbibliotek och använder SDA- och SLC -stift. På Leonardo tar SDA och SCL upp både PIN 2 och PIN 3, så använd inte dessa 2 stift till något annat.
Steg 5: Testa styrspaken
Jag testade det på Microsoft Flight Simulator 2020 och det fungerar mycket bra. Jag måste ibland trycka på mittknappen för att nollställa joysticken. Sensorvärdet för MPU6050 kan försvinna lite över tiden.
Det finns många möjligheter att spendera på projektet, till exempel att lägga till fler knappar och lägga till gasreglage. Förhoppningsvis kommer detta att inspirera andra tänkare att utforska nya sätt att skapa saker.
Rekommenderad:
Rörelsesspårning med MPU-6000 och Particle Photon: 4 steg
Rörelsesspårning med MPU-6000 och Particle Photon: MPU-6000 är en 6-axlig rörelsespårningssensor som har 3-axlig accelerometer och 3-axlig gyroskop inbäddad i den. Denna sensor kan effektivt spåra exakt position och plats för ett objekt i det tredimensionella planet. Det kan användas i
Rörelsesspårning med MPU-6000 och Arduino Nano: 4 steg
Rörelsesspårning med MPU-6000 och Arduino Nano: MPU-6000 är en 6-axlig rörelsespårningssensor som har 3-axlig accelerometer och 3-axlig gyroskop inbäddad i den. Denna sensor kan effektivt spåra exakt position och plats för ett objekt i det tredimensionella planet. Det kan användas i
Rörelsesspårning med MPU-6000 och Raspberry Pi: 4 steg
Rörelsesspårning med MPU-6000 och Raspberry Pi: MPU-6000 är en 6-axlig rörelsespårningssensor som har 3-axlig accelerometer och 3-axlig gyroskop inbäddad i den. Denna sensor kan effektivt spåra exakt position och plats för ett objekt i det tredimensionella planet. Det kan användas i
Akustisk levitation med Arduino Uno Steg-för-steg (8-steg): 8 steg
Akustisk levitation med Arduino Uno Steg-för-steg (8-steg): ultraljudsgivare L298N Dc kvinnlig adapter strömförsörjning med en manlig DC-pin Arduino UNOBreadboardHur det fungerar: Först laddar du upp kod till Arduino Uno (det är en mikrokontroller utrustad med digital och analoga portar för att konvertera kod (C ++)
NODEMcu USB -port fungerar inte? Ladda upp koden med USB till TTL (FTDI) -modulen på bara 2 steg: 3 steg
NODEMcu USB -port fungerar inte? Ladda upp koden med USB till TTL (FTDI) -modulen på bara två steg: Trött på att ansluta till många ledningar från USB till TTL -modul till NODEMcu, följ denna instruktion för att ladda upp koden i bara 2 steg. Om USB -porten på NODEMcu fungerar inte, var inte panikslagen. Det är bara USB -drivrutinschipet eller USB -kontakten,