Tartalomjegyzék:
- 1. lépés: Az MPU6050 és nyomógombok csatlakoztatása az Arduino Leonardo Boardhoz
- 2. lépés: A joystick alap építése
- 3. lépés: Az Arduino IDE beállítása
- 4. lépés: Arduino program
- 5. lépés: A joystick tesztelése
Videó: DIY MPU-6050 USB joystick: 5 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:39
A Microsoft Flight Simulator 2020 segítségével gyorsan rájöttem, hogy milyen nehéz a billentyűzet használata terv tervezéséhez. Az interneten keresve nem találtam elfogadható árú joystickot. A legtöbb online kiskereskedő elfogyott. Az MS Flight Simulator és a COVID 19 világjárvány népszerűsége elpusztította az összes joystick készletet. Az egyetlen lehetőség az volt, hogy magam építek egyet.
A joystickok többsége az alján lévő potenciométerekkel határozza meg a joystick szögeit, és küldje vissza az x és y tengely adatait a számítógépnek. Ez jól működik, de bonyolítja a joystick felépítését. és idővel. a potenciométerek elhasználódhatnak. A potenciométerek használata helyett úgy döntöttem, hogy gyorsulásmérő/giroszkóp érzékelő kártyával megyek, és információt küldök a számítógépnek a bot szögeiről.
A különböző Arduino mikroprocesszorok és különböző érzékelők népszerűségének köszönhetően az Arduino projekt felépítésének költségei sokkal megfizethetőbbé válnak. Az egyik leggyakrabban használt gyorsulásmérő/giroszkóp érzékelő kártya az MPU-6050. Kanadában körülbelül 7 dollárba kerül az Amazonban. Az enyémet az eBay -ről kaptam, Kínából sokkal olcsóbban, de a szállítási idő 3 hónap vagy hosszabb volt.
www.amazon.ca/Neuftech-MPU-6050-3-Gyroscop…
Bármelyik Arduino kártya működne, de az ATmega32u4 alapú kártya használata sokkal egyszerűbb lesz, mert az ATmega32u4 natív HID (Human Interface Device) támogatással rendelkezik. Miután a tábla be van programozva, bármely Windows 10 számítógépen használható, és nincs szükség további szoftverre. A Windows 10 automatikusan felismeri azt joystickként, amikor az USB csatlakoztatva van. (Más típusú Arduino kártya használata túl bonyolult ehhez az egyszerű felépítési projekthez).
Az Arduino Leonardo táblát választom. 17 USD CAN az Amazon -tól.
www.amazon.ca/KEYESTUDIO-Leonardo-Developm…
Ez a 2 eszköz jelenti a projekt fő követelményeit. Szükség van más kisebb tárgyakra is, mint a vezetékek és nyomógombok. Ebben a projektben az egyszerűség kedvéért csak 2 nyomógombot használtam.
A joystick fogantyú törmelék PVC vízcsőből készül. Ez könnyen helyettesíthető bármilyen rövid merev csővel.
A joystick alapja egy fadarabra rögzített rugós ajtóütköző.
A rugós ajtóütköző a Home Depotban kapható 2,83 dollárért.
www.homedepot.ca/product/everbilt-spring-d…
1. lépés: Az MPU6050 és nyomógombok csatlakoztatása az Arduino Leonardo Boardhoz
Az MPU 6050 -en csak 4 csatlakozás használható. VCC, GND, SCL és SDA felirattal vannak ellátva.
Csatlakoztassa a VCC -t 5 vagy 3,3 V -ra az Arduino Leonardo készüléken. (Az MPU 6050 5 vagy 3,3 V -ot is használhat. Nem számít)
Csatlakoztassa a GND -t az Arduino Leonardo bármely GND -jéhez.
Csatlakoztassa az SCL -t az Arduino Leonardo SCL -hez.
Csatlakoztassa az SDA -t az Arduino Leonardo SDA -hoz.
Csak 2 nyomógombot használok erre a bemutató célra.
Az első nyomógomb a joystick középpontjának visszaállítására szolgál. Ebben a példában a nyomógomb egyik vége a GND -hez, a másik pedig a 13 -as PIN -hez van csatlakoztatva.
A második nyomógombot joystick gombként használják. Ebben a példában a PIN 9 -hez és a GND -hez van csatlakoztatva.
Szükség esetén további gombokat is hozzáadhat a projekthez.
2. lépés: A joystick alap építése
Keressen egy darab fatuskót. Minél nehezebb, annál jobb. Stabilabbá teszi a joystick alapját.
Csavarja fel a rugós ajtó ütközőjét a fatuskó közepére a képen látható módon.
A joystick fogantyújaként használjon egy rövid csövet. Kaparós PVC csövet használtam. Tapassza a vezetéket úgy, hogy a gyorsulásmérő/giroszkóp érzékelő a cső tetején üljön.
Ezután tegye a csövet a rugós ajtó ütközőjére. Elektromos szalaggal rögzítettem a szenzort a tetején.
3. lépés: Az Arduino IDE beállítása
Töltse le és telepítse az Arduino IDE -t.https://www.arduino.cc/en/Main/Software
Ehhez a projekthez az Arduino 1.8.13 -at használtam. Az Arduino Web Editor használható erre a projektre is.
2 könyvtárat használnak.
1. MPU6050_tockn by tockn
github.com/Tockn/MPU6050_tockn
vagy megtalálhatja a "Könyvtár kezelése" menüben.
2. Joystick könyvtár, Matthew Heironimus
github.com/MHeironimus/ArduinoJoystickLibr…
Ez jelenleg csak a GitHub webhelyéről érhető el.
Kattintson a Kód letöltése és a ZIP letöltése lehetőségre. Bontsa ki a ZIP fájlt az Arduino könyvtárak könyvtárába.
Esetemben ez az E: / PinChung / Documents / Arduino / libraries
4. lépés: Arduino program
Töltse be a Pin_Joystick.ino fájlt az Arduino IDE -be, majd fordítsa le és töltse fel a Leonardo táblára.
Győződjön meg arról, hogy az Arduino Leonardo kártya ki van választva, és a port száma a jobb COM: az Eszközök menüben van kiválasztva.
Észrevettem, hogy a program nem tölthető fel a COM port nem elérhető hibakódjával. Segíthet, ha lefordítás közben párszor megnyomja a Leonardo táblán a reset gombot. A Windows 10 újraindítása szintén segíthet a COM -port felszabadításában.
A program feltöltése után a Leonardo táblára a Windows 10 automatikusan felismeri a Leonardo Joystickot. A Windows 10 keresősávjában írja be a Game Controllers parancsot, majd futtassa az USB Game Controllers beállítása lehetőséget.
válassza a Leonardo Joystick lehetőséget, majd kattintson a Tulajdonságok elemre. A joystick mozgását és a joystick #1 gombot a Windows 10 -nek kell felvennie.
Ha a joystick nincs középen, akkor amikor elengedi, kattintson a joystick középső visszaállítása gombra. Az USB játékvezérlőknek a joystick pontot kell látniuk középen. Nincs szükség a joystick kalibrálására az USB Game Controller programban.
Oldalsó megjegyzés: Azok számára, akik nem ismerik az Arduino Leonardót, ha a készülék joystickként, egérként vagy billentyűzetként van konfigurálva, a soros port nem fog működni. Tehát a "Serial.print ()" nem fog működni. Ezenkívül az MPU6050 i2c vezetékes könyvtárat és SDA és SLC csapokat használ. Leonardo esetén az SDA és az SCL felveszi a PIN 2 -t és a 3 -as PIN -kódot is, ezért ne használja ezt a 2 tűt másra.
5. lépés: A joystick tesztelése
Kipróbáltam a Microsoft Flight Simulator 2020 -on, és nagyon jól működik. Néha meg kell nyomnom a középső gombot a joystick nullázásához. Az MPU6050 érzékelő értéke idővel kissé eltolódhat.
Rengeteg lehetőség van a projektre, például további gombok hozzáadása és a fojtószelepek hozzáadása. Remélhetőleg ez inspirálni fog más barkácsolókat a dolgok készítésének új módjainak felfedezésére.
Ajánlott:
ZERO DELAY USB JOYSTICK - AUTOMATIKUS ANALÓGUS MÓDOSÍTÁS: 5 lépés
ZERO DELAY USB JOYSTICK - AUTO ANALOGUE MODIFICATION: Ez egy kiegészítő projekt a Zero Delay USB Encoder True Analog Joystick Modification számára. Az eszköz hozzáadása előtt sikeresen módosítania, tesztelnie és kalibrálnia kellett a kódolót az előző projektben. Ha elkészült és dolgozik
Mozgáskövetés MPU-6000 és részecskefoton használatával: 4 lépés
Mozgáskövetés MPU-6000 és részecskefoton használatával: Az MPU-6000 egy 6 tengelyes mozgáskövető érzékelő, amelybe 3 tengelyes gyorsulásmérő és 3 tengelyes giroszkóp van beépítve. Ez az érzékelő képes hatékonyan követni az objektum pontos helyzetét és elhelyezkedését a 3 dimenziós síkban. Alkalmazható
Mozgáskövetés MPU-6000 és Arduino Nano használatával: 4 lépés
Mozgáskövetés MPU-6000 és Arduino Nano használatával: Az MPU-6000 egy 6 tengelyes mozgáskövető érzékelő, amelybe 3 tengelyes gyorsulásmérő és 3 tengelyes giroszkóp van beépítve. Ez az érzékelő képes hatékonyan követni a tárgy pontos helyzetét és elhelyezkedését a 3 dimenziós síkban. Alkalmazható
Hall Effect USB joystick: 7 lépés (képekkel)
Hall Effect USB joystick: Ez az oktatóanyag bemutatja, hogyan kell használni az ipari Hall Effect joystickot nagy teljesítményű USB joystick készítéséhez. Van még egy kapcsolódó utasítás, apró USB joystick, amely olcsó megoldást nyújt; >
Mozgáskövetés MPU-6000 és Raspberry Pi használatával: 4 lépés
Mozgáskövetés MPU-6000 és Raspberry Pi használatával: Az MPU-6000 egy 6 tengelyes mozgáskövető érzékelő, amelybe 3 tengelyes gyorsulásmérő és 3 tengelyes giroszkóp van beépítve. Ez az érzékelő képes hatékonyan követni az objektum pontos helyzetét és elhelyezkedését a 3 dimenziós síkban. Alkalmazható