Obsah:

DIY MPU-6050 USB joystick: 5 kroků
DIY MPU-6050 USB joystick: 5 kroků

Video: DIY MPU-6050 USB joystick: 5 kroků

Video: DIY MPU-6050 USB joystick: 5 kroků
Video: Usb 3D Mouse Using Arduino and Mpu6050 Accelerometer #arduino #programming 2024, Listopad
Anonim
DIY MPU-6050 USB joystick
DIY MPU-6050 USB joystick

S Microsoft Flight Simulator 2020 jsem si rychle uvědomil, jak těžké je použít klávesnici k létání s plánem. Při online vyhledávání jsem nenašel joystick za rozumnou cenu ke koupi. Většina online prodejců je neměla na skladě. Popularita MS Flight Simulator a pandemie COVID 19 vymazala všechny stávající zásoby joysticku. Moje jediná možnost byla postavit si ji sám.

Většina joysticků tam používá potenciometry na základně k určení úhlů joysticku a odeslání informací o ose x a y zpět do počítače. To funguje dobře, ale komplikuje konstrukci joysticku. a časem. potenciometry se mohou opotřebovat. Namísto použití potenciometrů jsem se rozhodl použít senzorovou desku akcelerometru/gyroskopu k odeslání informací do počítače o úhlech páčky.

S popularitou různých mikroprocesorů Arduino a různých senzorů se náklady na stavbu projektu Arduino stávají mnohem dostupnějšími. Jednou z běžně používaných desek akcelerometru/gyroskopu je MPU-6050. V Kanadě to stojí kolem 7 $ CAN v Amazonu. Dostal jsem svůj z eBay odeslaný z Číny za mnohem méně, ale doba dodání byla asi 3 měsíce nebo déle.

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

Jakákoli deska Arduino by fungovala, ale použití desky založené na ATmega32u4 bude mnohem jednodušší, protože ATmega32u4 má nativní podporu HID (Human Interface Device). Jakmile je deska naprogramována, můžete ji použít na jakémkoli počítači se systémem Windows 10 a není vyžadován žádný další software. Když je USB zapojeno, Windows 10 jej automaticky rozpozná jako joystick. (Použití jiného typu desky Arduino je pro tento jednoduchý projekt sestavení příliš komplikované).

Vybírám desku Arduino Leonardo. 17 $ CAN od Amazonu.

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

Tato 2 zařízení jsou hlavními požadavky tohoto projektu. Další menší položky, jako jsou zapojení a tlačítka, jsou také nutné. V tomto projektu jsem pro jednoduchost použil pouze 2 tlačítka.

Rukojeť joysticku je vyrobena ze šrotu z vodní dýmky. To lze snadno nahradit jakoukoli krátkou tuhou trubkou.

Základem joysticku je pružinová zarážka dveří upevněná na kusu dřeva.

Pružinová zarážka dveří je k dispozici v Home Depot za 2,83 USD.

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

Krok 1: Připojení MPU6050 a tlačítek k desce Arduino Leonardo

Připojení MPU6050 a tlačítek k desce Arduino Leonardo
Připojení MPU6050 a tlačítek k desce Arduino Leonardo
Připojení MPU6050 a tlačítek k desce Arduino Leonardo
Připojení MPU6050 a tlačítek k desce Arduino Leonardo
Připojení MPU6050 a tlačítek k desce Arduino Leonardo
Připojení MPU6050 a tlačítek k desce Arduino Leonardo

Na MPU 6050 jsou použita pouze 4 připojení. Jsou označena VCC, GND, SCL a SDA.

Připojte VCC k 5v nebo 3,3v na Arduino Leonardo. (MPU 6050 může používat buď 5v nebo 3,3v. Nezáleží na tom)

Připojte GND k libovolnému GND na Arduino Leonardo.

Připojte SCL k SCL na Arduino Leonardo.

Připojte SDA k SDA na Arduino Leonardo.

Pro tento demonstrační účel používám pouze 2 tlačítka.

První tlačítko slouží k resetování středu joysticku. V tomto případě je jeden konec tlačítka připojen k GND a jeden konec k PIN 13.

Druhé tlačítko se používá jako tlačítko joysticku. V tomto případě je připojen k PIN 9 a GND.

Podle potřeby můžete do projektu přidat další tlačítka.

Krok 2: Budování základny joysticku

Budování základny joysticku
Budování základny joysticku
Budování základny joysticku
Budování základny joysticku
Budování základny joysticku
Budování základny joysticku

Najděte kousek dřevěného bloku. Čím těžší, tím lepší. Díky tomu bude základna joysticku stabilnější.

Našroubujte pružinovou zarážku dveří do středu dřevěného bloku, jak ukazuje obrázek.

Jako rukojeť joysticku použijte kousek krátké trubky. Použil jsem škrábající PVC trubku. Protáhněte drát tak, aby snímač akcelerometru/gyroskopu seděl na horní části potrubí.

Poté dejte trubku přes pružinovou zarážku dveří. Použil jsem elektrickou pásku k nalepení senzoru nahoře.

Krok 3: Nastavení Arduino IDE

Stáhněte a nainstalujte Arduino IDE.

Pro tento projekt jsem použil Arduino 1.8.13. Pro tento projekt lze použít také Arduino Web Editor.

Používají se 2 knihovny.

1. MPU6050_tockn od tockn

github.com/Tockn/MPU6050_tockn

nebo jej najdete v nabídce „Spravovat knihovnu“.

2. Knihovna joysticku od Matthewa Heironima

github.com/MHeironimus/ArduinoJoystickLibr…

Ten je v současné době k dispozici pouze z webových stránek GitHub.

Klikněte na stáhnout kód a Stáhnout ZIP. Extrahujte soubor ZIP do adresáře knihoven Arduino.

V mém případě je to E: / PinChung / Documents / Arduino / libraries

Krok 4: Program Arduino

Nahrajte Pin_Joystick.ino na Arduino IDE a zkompilujte a nahrajte na desku Leonardo.

Ujistěte se, že je vybrána deska Arduino Leonardo a číslo portu je vybráno vpravo COM: v nabídce Nástroje.

Nějakou dobu jsem si všiml, že program nelze nahrát, protože kód chyby portu COM není k dispozici. Pomoci by mohlo několik stlačení resetovacího tlačítka na desce Leonardo během kompilace. Rovněž restartování systému Windows 10 může také pomoci uvolnit port COM.

Jakmile je program nahrán na desku Leonardo, Windows 10 by měl automaticky detekovat Leonardo Joystick. Do vyhledávacího pole Windows 10 zadejte Herní ovladače, spusťte Nastavit herní ovladače USB.

vyberte Leonardo Joystick a klikněte na Vlastnosti. Pohyb joysticku a tlačítko joysticku č. 1 by měl zachytit Windows 10.

Pokud není joystick vycentrovaný, po jeho uvolnění klikněte na středové tlačítko resetování joysticku, které jsme právě vytvořili. Herní ovladače USB by měly ve středu ukazovat bod joysticku. V programu USB Game Controller není třeba kalibrovat joystick.

Boční poznámka: Pro ty, kteří neznají Arduino Leonardo, když je zařízení nakonfigurováno jako joystick, myš nebo klávesnice, sériový port nebude fungovat. Takže „Serial.print ()“nebude fungovat. MPU6050 také používá drátovou knihovnu i2c a používá piny SDA a SLC. Na Leonardo, SDA a SCL zabírají PIN 2 i PIN 3, takže tyto 2 piny nepoužívejte na nic jiného.

Krok 5: Vyzkoušení joysticku

Testoval jsem to na Microsoft Flight Simulator 2020 a funguje to velmi dobře. Někdy musím stisknout středovou klávesu, abych joystick vynuloval. Hodnota snímače MPU6050 se může v průběhu času trochu posunovat.

Existuje mnoho příležitostí, jak na projekt vynaložit, například přidání dalších tlačítek a přidání ovládacích prvků plynu. Naštěstí to bude inspirovat ostatní dráteníky k prozkoumání nových způsobů výroby věcí.

Doporučuje: