Tartalomjegyzék:
- 1. lépés: Szüksége lesz:
- 2. lépés: Szedd szét a vezérlőt
- 3. lépés: Ragassza a helyére az alkatrészeket
- 4. lépés: Forrasztja be a vezetékeket
- Lépés: Programozza be az Arduino programot
- 6. lépés: Szerelje vissza a vezérlőt
- 7. lépés: Lehetséges fejlesztések
Videó: Xbox 360 vezérlő gyorsulásmérő/giroszkóp Kormányzási mód: 7 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:41
Az Assetto Corsát játszottam az Xbox 360 vezérlőmmel. Sajnos az analóg pálcával való kormányzás nagyon nehézkes, és nincs helyem a kerék beállításához. Próbáltam elgondolkodni azon, hogyan lehetne jobb kormányszerkezetet cipelni a vezérlőbe, amikor eszembe jutott, hogy az egész vezérlőt kormánykerékként használhatom.
Az analóg pálcának két potenciométere van. Az egyik a függőleges, a másik a vízszintes mozgást méri. Mindegyiken 1,6 V -ot tesz át, és méri az ablaktörlőn előállított feszültséget, hogy megállapítsa, mennyit mozog a bot. Ez azt jelenti, hogy a bot mozgását úgy lehet szabályozni, hogy egy adott feszültséget táplálunk az ablaktörlő csaphoz. (további információ itt:
Ez a mod egy Arduino segítségével kiszámítja a szöget a gyorsulásmérő leolvasásából, és átalakítja azt analóg pálca mozgássá DAC -on keresztül. Ezért minden olyan játéknak működnie kell, amely bemenetként az analóg pálcát használja.
1. lépés: Szüksége lesz:
Eszközök:
- Forrasztópáka
- Forrasztó
- Forrasztó balek/fonat
- Huzalcsupaszító
- Csavarhúzó, esetleg Torx, a vezérlő csavarjaitól függően (az enyém keresztfejű)
- Ragasztó (lehetőleg nem túl erős ragasztó, így később szétszedhető)
- USB -soros adapter az Arduino programozásához
Anyagok:
- Xbox 360 vezérlő (huh!)
- Arduino Pro Mini (vagy klón) (lehetőleg 3.3V. Ha az 5V -os verziót használja, valószínűleg szüksége lesz egy fokozott feszültségátalakítóra)
- MPU-6050 giroszkóp/gyorsulásmérő
- MCP4725 DAC (kettő, ha mindkét tengelyt szeretné irányítani)
- Valami vékony drót
- Kenyérlap, így mindent kipróbálhat a forrasztás előtt (opcionális, de ajánlott)
2. lépés: Szedd szét a vezérlőt
Hét csavart kell eltávolítani. Hat közülük nyilvánvaló, de a hetedik egy matrica mögött van. Feltételezem, hogy annak eltávolítása érvényteleníti a garanciát, ezért csak saját felelősségére járjon el. Sok útmutató azt mondja, hogy Torx csavarhúzóra van szüksége, de az enyém keresztfejű, ezért ellenőrizze a vezérlőt.
Ezt követően óvatosan húzza le a hátlapot. Ha lehajtja az előlapot, a gombok kiömlnek, és valószínűleg az egész szobát bejárják. Emelje meg alulról. Ezután húzza ki a két vibrációs motort. (a kis súlyúnak a bal oldalon kell lennie, a másiknak pedig a jobb oldalon) Vegye ki a NYÁK -ot, és távolítsa el az analóg pálcák gumi kupakját. Egyszerűen lehúzódnak.
A következő dolog a bal oldali analóg pálca eltávolítása, hogy ne zavarja a bemenetünket, de a bal oldali trigger mechanizmus akadályozza. Az eltávolításhoz ki kell forrasztani a három tüskét a potenciométerből a tábla elején, majd le kell húzni a mechanizmust a NYÁK -ról.
Ezután forrasztja ki a bal oldali analóg botot tartó 14 csapot. Ezután húzza le a botot.
3. lépés: Ragassza a helyére az alkatrészeket
Észre fogja venni, hogy elég nagy távolság van a NYÁK hátsó része és a tok között. Ez lehetővé teszi az összes hardver behelyezését a tokba anélkül, hogy bármit eltávolítana.
Csak később jöttem rá, de ez jó alkalom lenne az Arduino reset gombjának forrasztására. Ha nem, akkor megnyomja a tok hátulját, és a projekt leáll, ha az egyik csavart túlságosan meghúzza az összeszereléskor.
Minden PCB hátoldalához ragasztottam egy vékony darab kártyát a szigeteléshez, majd ragasztottam a vezérlő NYÁK -jához. Nem szívesen használtam ragasztót, de nem tudtam jobb módszert kitalálni.
A képen látható pozíciók a legjobb kombináció, amit találtam. Az Arduino a bal oldalon található, az éle a visszaállító gombbal a jobb oldali kioldószerkezetből a műanyagdarabnak ütközik, a másik oldala a vezeték alatt van, és a sarok a lehető legközelebb van a fehér csatlakozóhoz. A tokban van egy kis dudor, de nem találtam jobb helyet, ahol elhelyezhetném.
A gyorsulásmérő a vezeték jobb oldalán található. A lehető leglaposabbnak és egyenesebbnek kell lennie, különben előfordulhat, hogy később írnia kell egy kódot az eltolás kompenzálására. Vegye figyelembe, hogy a tok hátoldalán vannak kiálló műanyagdarabok, amelyeket óvatosan kell elkerülni. Azt tapasztaltam, hogy valami ragadós és színes anyagot, például rúzst tehet a kiálló műanyagdarabokra, majd felhelyezheti a hátlapot, hogy lássa, hol hagy nyomot.
A DAC (ok) a bal alsó sarokban találhatók. Itt elegendő szabad hely van két DAC egymásra rakásához, ha mindkét tengelyt szeretné irányítani. Nem kell ragasztani őket. Csak a forrasztott kapcsolatokkal maradnak ott, ahol vannak. Ha a kártyát ragasztja közéjük, feltétlenül vágja le a kártyát, hogy az SCL, SDA, VCC és GND hozzáférhető maradjon, mert mindkét oldalról hozzáférhet hozzájuk.
Ha két DAC-t használ, ne felejtse el átkapcsolni a cím jumpert és tiltsa le a felhúzó ellenállásokat az egyiken, az itt leírtak szerint: https://learn.sparkfun.com/tutorials/mcp4725-digital-to-analog -konverter-bekötési útmutató
4. lépés: Forrasztja be a vezetékeket
Most mindent össze kell kapcsolnia. Az összes 2/3 eszköz VCC, GND, SDA és SCL csatlakozóit az Arduino VCC, GND, A4 és A5 csatlakozóira kell csatlakoztatni. A DAC -ok a legtrükkösebbek. Ha kettő van, akkor ezeket össze kell kötni, míg valahova távozva csatlakoztathatja az áramot és a vezetékeket a gyorsulásmérőhöz, miközben a Kimeneti vezetékeket külön kell tartani.
A DAC OUT érintkezőjét a vezérlő NYÁK -ján lévő csatlakozóhoz kell csatlakoztatni, amely korábban az analóg pálca középső vízszintes potenciométer -tűje volt. Vagyis ahol az analóg bot volt, a tetején három csap található. Csatlakoztassa a középsőhöz. Ha van másik DAC -ja, csatlakoztassa azt ugyanúgy a függőleges potenciométer -csaphoz (a sor balra). A ravasz cseréjekor hátulról nem lehet a csapokhoz jutni, ezért vezetéket kell vezetni a tábla elejére. Egy kör alakú műanyag "fal" van az analóg pálca környékén, de szerencsére van benne egy kényelmes rés, amelyen keresztül vezethet. Ügyeljen arra, hogy a vezetékek ne akadályozzák a ház elülső részén található csavaroszlopot.
Az eredeti tervem az volt, hogy az Arduino -t 5V -ról táplálom a RAW -tűhöz csatlakoztatott USB -kábelről, de amikor kipróbáltam, nem működött. Az Arduino nem futott semmit, és mind az Arduino, mind a vezérlő néhány másodperc múlva kikapcsol. Azonban felfedeztem, hogy a tábla elején lévő két érintkezőből állandó, 3,3 V -os kimenet található a fekete perifériás aljzat közelében, valószínűleg perifériák táplálására. Működik VCC -vel és RAW -val is, de azért választottam a VCC -t, mert ez már a megfelelő feszültség, és mert lehetővé teszi, hogy forraszthassam a VCC vezetékhez a DAC -on, amely már a tábla alja közelében van, és spórolhatok a vezetékeken.
Ne feledje, hogy sok műanyag alkatrész nyúlik ki a tokból, amelyeket meg kell dolgozni, de ha a helyére ragasztja a vezetékeket, akkor csak egyszer kell aggódnia.
Mindezt nehéz szavakkal leírni, ezért mellékeltem képeket és egy nyers diagramot.
Lépés: Programozza be az Arduino programot
Most be kell programoznia az Arduino -t. Ehhez meg kell mozgatni az USB -kábelt a vezérlőn, hogy hozzáférhessen az Arduino soros csatlakozóihoz. Beillesztettem a használt kódot. Ehhez szükség van az Adafruit MCP4725 könyvtárra, amely itt található:
A kód lehetővé teszi, hogy egyenletesen végighaladjon az analóg pálca teljes mozgási tartományán, ha a vezérlőt 90 fokkal balra 90 fokkal jobbra mozgatja, és középen tartja, ha laposan tartja.
A vezérlő szögét úgy kapja meg, hogy kiszámítja az X tengely g-erő fordított érintőjét osztva a Z tengely g-erőjével. Ez azt jelenti, hogy működik, ha a vezérlő függőleges, lapos vagy bármilyen szög van közöttük. (további információ itt:
Működik a vezérlőmön, de előfordulhat, hogy más vezérlők eltérő feszültséget igényelnek. Azt hiszem, a feszültségtartomány megtalálásának legjobb módja a próba és hiba. Sok játékban megjelenik egy csúszka az analóg pálca mozgásához, de a legpontosabb módszer a mozgás meghatározására a jstest a Linuxon. (https://wiki.archlinux.org/index.php/Gamepad#Joystick_API) Grafika helyett -32, 767 és 32, 767 közötti számot ad, így pontosan tudja, hol van a bot. Csatlakoztassa a vezérlőt és az Arduino USB -t a soros adapterhez, töltse be a jstest programot, és próbálja ki a különböző DAC értékeket, amíg el nem éri a tartomány felső és alsó részét, és jegyezze fel mindegyiket. Számomra 1, 593 - 382 volt.
Különösen érdekes a 36. sor:
dacvalue = (vezérlőszög + 2,5617859169446084418) / 0,0025942135867793503208 + 0,5;
Nem azonnal nyilvánvaló, hogy mit csinál. Egyszerűen, felveszi a vezérlő szögét (radiánban és ~ 1,57 és ~ -1,57 között mérve), és 1, 593 és 382 közötti értékre konvertálja a DAC számára. Ha más DAC tartományt használ, akkor ezt a sort módosítania kell.
A sor így írható:
dacvalue = (vezérlőszög +) / + 0,5;
Azokkal a számokkal, amelyeken változtatni kell. egyenlő a szabályozó szög tartományával (pi) osztva a DAC értékek teljes tartományával. (a tartomány felső része mínusz a tartomány alja) Ezzel elérheti a feszültség megváltoztatását, bár az eredmények a kívánt tartományon kívül lesznek. Ezért van szüksége. egyenlő a tartomány aljával és a vezérlő mozgási tartományának felével megszorozva. (pi / 2) A mozgástartomány felének hozzáadásával megbizonyosodhat arról, hogy nem negatív számról van szó, és ha hozzáadja a tartomány alsó részével megszorozva, akkor szinkronizálja a kívánt tartományt.
Amikor a tizedesjegyeket egész számmá alakítja, a C ++ nem kerekít. Ehelyett levágja a tizedest, így a 9.9 9. lesz. Ha a végét 0,5 -vel egészítjük ki, akkor minden, ami másfél felett van, a következő egész számra megy, tehát kerekít.
Miután feltöltötte a programot, győződjön meg róla, hogy működik a jstest segítségével.
6. lépés: Szerelje vissza a vezérlőt
Tegye vissza a vezérlőt ugyanúgy, ahogy szétszedte, mínusz a bal oldali analóg bot. Most már működnie kell. Úgy látom, nincs észrevehető késés, és ez sokkal jobb, mint az analóg bot használata. Mivel gyorsulásmérőt használ, hirtelen mozdulatok befolyásolják, de el kell mennie, hogy észrevegye.
7. lépés: Lehetséges fejlesztések
Vannak javítások. Ezek tartalmazzák:
- Kevésbé nehézkes mágneshuzal használata
- Mindent marathat egy NYÁK -ra, amelyet úgy terveztek, hogy illeszkedjen a vezérlő tokjába
- A bal oldali analóg pálca visszahelyezése és a lábak csatlakoztatása az Arduino analóg bemeneteihez, hogy azok az Arduino beállításához használhatók
- A hátsó tok beszerzése a vezeték nélküli vezérlőhöz, és a projekt elhelyezése az elemtartóban (ehhez lyukat kell vágni az USB -kábelhez)
Ajánlott:
MPU 6050 giroszkóp, gyorsulásmérő kommunikáció az Arduino -val (Atmega328p): 5 lépés
MPU 6050 giroszkóp, gyorsulásmérő kommunikáció az Arduino-val (Atmega328p): Az MPU6050 IMU 3 tengelyes gyorsulásmérőt és 3 tengelyes giroszkópot tartalmaz egyetlen chipen. A giroszkóp méri a szöghelyzet forgási sebességét vagy változási sebességét az idő mentén, a X, Y és Z tengely. A giroszkóp kimenetei
MPU6050-Gyorsulásmérő+giroszkóp érzékelő alapjai: 3 lépés
MPU6050-gyorsulásmérő+giroszkóp érzékelő alapjai: Az MPU6050 nagyon hasznos érzékelő. Az mpu 6050 egy IMU: Az inerciális mérőegység (IMU) egy elektronikus eszköz, amely méri és jelenti a test sajátos erejét, szögsebességét és néha az irányt a test kombinációjával
SmartPhone Game Simulator- Játsszon Windows játékokkal az IMU gesztusvezérlés, gyorsulásmérő, giroszkóp, magnetométer segítségével: 5 lépés
SmartPhone Game Simulator- Játsszon Windows játékokat gesztusvezérléssel IMU, gyorsulásmérő, giroszkóp, magnetométer: Támogassa ezt a projektet: https://www.paypal.me/vslcreations, adományozva nyílt forráskódoknak és & további fejlődés támogatása
Arduino Nano: gyorsulásmérő giroszkóp iránytű MPU9250 I2C érzékelő Visuino -val: 11 lépés
Arduino Nano: Gyorsulásmérő giroszkóp iránytű MPU9250 I2C érzékelő Visuino -val: Az MPU9250 az egyik legfejlettebb kombinált gyorsulásmérő, giroszkóp és iránytű kis méretű érzékelő. Számos fejlett funkcióval rendelkeznek, beleértve az aluláteresztő szűrést, a mozgásérzékelést és még egy programozható speciális processzort is
Szögmérés giroszkóp, gyorsulásmérő és Arduino segítségével: 5 lépés
Szögmérés giroszkóp, gyorsulásmérő és Arduino segítségével: A készülék durva prototípusa annak, hogy végül mi lesz az önmérlegű robot, ez a lyuk második része (olvassa el a gyorsulásmérőt, és vezérelje a motort az egyensúlyhoz). Az első rész, amelyben csak a giroszkóp található, itt található. Ezen a ponton