Obsah:
- Krok 1: Budete potrebovať:
- Krok 2: Vyberte ovládač
- Krok 3: Prilepte komponenty na miesto
- Krok 4: Zapájajte drôty
- Krok 5: Naprogramujte Arduino
- Krok 6: Znova zostavte ovládač
- Krok 7: Možné vylepšenia
Video: Akcelerometer/gyroskopický režim ovládača pre Xbox 360: 7 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:57
Hrám hru Assetto Corsa s ovládačom Xbox 360. Riadenie analógovou páčkou je bohužiaľ veľmi nepraktické a nemám priestor na nastavenie kolies. Pokúsil som sa vymyslieť spôsoby, ako by som mohol do ovládača vložiť lepší mechanizmus riadenia, keď ma napadlo, že by som mohol použiť celý ovládač ako volant.
Analógová páčka má dva potenciometre. Jeden meria vertikálny pohyb a druhý horizontálny pohyb. Prostredníctvom každého prechádza 1,6 V a meria napätie vyrobené na stierači, aby určilo, o koľko sa páčka posunula. To znamená, že je možné ovládať pohyb páčky privádzaním konkrétneho napätia na kolík stierača. (viac informácií tu:
Tento režim používa Arduino na výpočet uhla z hodnôt akcelerometra a jeho prevod na analógový pohyb páčky pomocou DAC. Preto by mal fungovať s každou hrou, ktorá používa ako vstup analógovú páčku.
Krok 1: Budete potrebovať:
Náradie:
- Spájkovačka
- Spájka
- Nasávač/vrkoč spájky
- Odstraňovač drôtov
- Skrutkovač, možno Torx, v závislosti od skrutiek vo vašom ovládači (moje sú krížové)
- Lepidlo (pokiaľ možno nie super silné lepidlo, aby sa dalo neskôr rozobrať)
- Adaptér USB na sériový port na programovanie Arduina
Materiály:
- Ovládač Xbox 360 (duh!)
- Arduino Pro Mini (alebo klon) (najlepšie 3,3 V. Ak používate verziu 5 V, pravdepodobne budete potrebovať zosilňovač napätia)
- Gyroskop/akcelerometer MPU-6050
- MCP4725 DAC (dva, ak chcete ovládať obe osi)
- Nejaký tenký drôt
- Doska na chlieb, aby ste mohli všetko otestovať pred spájkovaním (voliteľné, ale odporúčané)
Krok 2: Vyberte ovládač
Musíte odstrániť sedem skrutiek. Šesť z nich je očividných, ale siedmy je za nálepkou. Predpokladám, že po jeho odstránení zanikne záruka, preto postupujte na vlastné riziko. Mnoho sprievodcov hovorí, že potrebujete skrutkovač Torx, ale moje sú krížové, takže skontrolujte ovládač.
Potom opatrne odstráňte zadný kryt. Ak odopnete prednú časť, tlačidlá sa vysypú a pravdepodobne prejdú po celej miestnosti. Zdvihnite ho zospodu. Potom odpojte dva vibračné motory. (ten s malou hmotnosťou by mal byť vľavo a ten s veľkou hmotnosťou vpravo) Vyberte dosku plošných spojov a odstráňte gumené krytky na analógových tyčinkách. Jednoducho sa stiahnu.
Ďalšou vecou je odstrániť ľavú analógovú páčku, aby nerušila náš vstup, ale ľavý spúšťací mechanizmus je v ceste. Aby ste ho mohli odstrániť, musíte odspájkovať tri piny z potenciometra z prednej strany dosky a potom odopnúť mechanizmus z DPS.
Ďalej odpojte 14 kolíkov, ktoré držia ľavú analógovú páčku. Potom vytiahnite palicu.
Krok 3: Prilepte komponenty na miesto
Všimnete si, že medzi zadnou doskou plošných spojov a skriňou je dosť veľký priestor. Vďaka tomu je možné vložiť všetok hardvér do puzdra bez toho, aby ste čokoľvek museli odstraňovať.
Uvedomil som si to až neskôr, ale teraz by bolo vhodné odpojiť resetovacie tlačidlo na Arduine. Ak to neurobíte, zatlačí na zadnú stranu puzdra a spôsobí, že projekt prestane fungovať, ak pri jeho montáži príliš utiahnete jednu zo skrutiek.
Nalepil som tenký kus karty na zadnú stranu každej DPS, aby som ju izoloval, a potom som ju prilepil na DPS ovládača. Zdráhal som sa použiť lepidlo, ale nevedel som si predstaviť lepší spôsob, ako to urobiť.
Pozície na obrázku sú najlepšia kombinácia, akú som mohol nájsť. Arduino je vľavo, pričom hrana s resetovacím tlačidlom je zarovnaná s kusom plastu z pravého spúšťacieho mechanizmu, druhou stranou pod drôtom a rohom čo najbližšie k bielemu konektoru. V puzdre je malá vydutina, ale nemohol som nájsť lepšie miesto na jeho umiestnenie.
Akcelerometer je napravo od vodiča. Malo by byť čo najrovnejšie a najrovnejšie, inak budete musieť neskôr napísať nejaký kód, aby ste kompenzovali posun. Všimnite si toho, že na zadnej strane puzdra sú niekoľko vyčnievajúcich kúskov plastu, ktorým sa musíte vyhnúť. Zistil som, že na vyčnievajúce kúsky plastu môžete dať niečo lepkavé a farebné, napríklad rúž, a potom nasaďte zadný kryt, aby ste zistili, kde zanecháva stopy.
DAC (s) DAC sa nachádzajú v dolnom ľavom rohu. Ak chcete ovládať obe osi, je tu dostatok voľného miesta na to, aby ste na seba mohli umiestniť dva DAC. Nie je potrebné ich lepiť. Zostanú tam, kde sú, iba s spájkovanými spojmi. Ak medzi ne zasuniete kartu, uistite sa, že ste kartu odstrihli, aby zostali prístupné SCL, SDA, VCC a GND, pretože k nim budete mať prístup z oboch strán.
Ak používate dva DAC, nezabudnite prepnúť prepojku adries a deaktivovať na jednom z nich odpínače, ako je popísané tu: https://learn.sparkfun.com/tutorials/mcp4725-digital-to-analog -konvertor-prepojenie-sprievodca
Krok 4: Zapájajte drôty
Teraz musíte všetko prepojiť. VCC, GND, SDA a SCL zo všetkých 2/3 zariadení by mali byť pripojené k VCC, GND, A4 a A5 na zariadení Arduino. DAC sú najzložitejšie. Ak máte dve, musíte ich spojiť dohromady, zatiaľ čo niekde odchádzate, môžete k akcelerometru pripojiť napájanie a vedenia, pričom vodiče OUT budú oddelené.
Konektor OUT na DAC by mal byť pripojený ku kolíku na doske plošných spojov ovládača, ktorý býval pre stredný horizontálny kolík potenciometra pre analógovú páčku. To znamená, že tam, kde bola analógová páčka, je v hornej časti rad troch kolíkov. Pripojte ho k prostrednému. Ak máte ďalší DAC, pripojte ho k zvislému kolíku potenciometra (riadok vľavo) rovnakým spôsobom. Pri výmene spúšte sa zozadu k kolíkom nedostanete, a tak musíte k prednej časti dosky previesť drôt. Okolo oblasti analógovej páčky je kruhová plastová „stena“, ale našťastie je v nej vhodná medzera, cez ktorú môžete previesť vodiče. Dbajte na to, aby drôty neprekážali skrutkovaciemu stĺpiku v prednej časti puzdra.
Môj pôvodný plán bol napájať Arduino 5V z USB kábla pripojeného k pinu RAW, ale keď som to skúsil, nefungovalo to. Arduino nič nespustilo a Arduino aj ovládač sa po niekoľkých sekundách vypli. Zistil som však, že z dvoch pinov na prednej strane dosky v blízkosti čiernej periférnej zásuvky je stabilný výstup 3,3 V, pravdepodobne na napájanie periférií. Funguje to s VCC aj RAW, ale vybral som si VCC, pretože je to už správne napätie a pretože mi to umožňuje spájkovať ho s drôtom VCC na DAC, ktorý je už v spodnej časti dosky, a ušetriť na vodičoch.
Uvedomte si, že z puzdra vyčnieva veľa plastových dielov, ktoré musíte obísť, ale ak drôty nalepíte na miesto, musíte sa o ne starať iba raz.
Toto všetko je ťažké opísať slovami, preto som pridal obrázky a hrubý diagram.
Krok 5: Naprogramujte Arduino
Teraz musíte Arduino naprogramovať. Na to je potrebné presunúť kábel USB na ovládači, aby ste mali prístup k sériovým kolíkom na Arduine. Zahrnul som kód, ktorý som použil. Vyžaduje knižnicu Adafruit MCP4725, ktorú nájdete tu:
Kód vám umožňuje rovnomerne prejsť celým rozsahom pohybu analógovej páčky pohybom ovládača o 90 stupňov vľavo až o 90 stupňov vpravo a držaním v strede ho držať v strede.
Uhol regulátora získa vypočítaním inverznej dotyčnice sily g osi X delenej silou g osi Z. To znamená, že funguje, ak je ovládač zvislý, plochý alebo má akýkoľvek uhol medzi nimi. (viac informácií tu:
Funguje to na mojom ovládači, ale iné ovládače môžu vyžadovať iné napätie, čo znemožňuje zarovnanie. Myslím, že najlepší spôsob, ako nájsť rozsah napätia, je pokus - omyl. Mnoho hier vám ukáže posuvník pohybu analógovej páčky, ale najpresnejší spôsob určenia pohybu som našiel pomocou príkazu jstest v systéme Linux. (https://wiki.archlinux.org/index.php/Gamepad#Joystick_API) Poskytuje vám číslo medzi -32, 767 a 32, 767, a nie grafiku, takže presne viete, kde je páčka. Pripojte ovládač a adaptér Arduino USB k sériovému portu, načítajte test jstest a vyskúšajte rôzne hodnoty DAC, kým sa nedostanete k hornej a dolnej časti rozsahu, a poznamenajte si každé z nich. Pre mňa to bolo 1, 593 - 382.
Obzvlášť zaujímavá je linka 36:
dacvalue = (uhol ovládača + 2,5617859169446084418) / 0,0025942135867793503208 + 0,5;
Nie je okamžite zrejmé, čo to robí. Jednoducho to vezme uhol regulátora (meraný v radiánoch a medzi ~ 1,57 a ~ -1,57) a prevedie ho na hodnotu medzi 1, 593 a 382 pre DAC. Ak máte iný rozsah DAC, budete musieť tento riadok zmeniť.
Riadok je možné napísať ako:
dacvalue = (riadiaci uhol +) / + 0,5;
Keďže ide o čísla, ktoré musíte zmeniť. sa rovná rozsahu uhla regulátora (pi) delenému celkovým rozsahom hodnôt DAC. (horná časť rozsahu mínus spodná časť rozsahu) Tým sa dostanete k zmene napätia, aj keď výsledky budú mimo požadovaný rozsah. Preto potrebujete. sa rovná násobku spodnej časti rozsahu plus polovice rozsahu pohybu ovládača. (pi / 2) Sčítaním polovice rozsahu pohybu sa ubezpečíte, že nejde o záporné číslo, a sčítaním vynásobeným dolnou časťou rozsahu sa zaistí synchronizácia s požadovaným rozsahom.
Pri prevode desatinných miest na celé číslo C ++ nezaokrúhľuje. Namiesto toho odreže desatinnú čiarku, takže 9,9 sa zmení na 9. Ak na konci pridáte 0,5, zaistí sa, že čokoľvek nad polovicou prejde na ďalšie celé číslo, zaokrúhli sa.
Po nahraní programu sa uistite, že funguje s jstest.
Krok 6: Znova zostavte ovládač
Zložte regulátor znova rovnakým spôsobom, akým ste ho rozobrali, mínus ľavú analógovú páčku. Teraz by to malo fungovať. Zistil som, že nie je znateľné oneskorenie a je to oveľa lepšie ako používanie analógovej páčky. Pretože používa akcelerometer, je ovplyvnený náhlymi pohybmi, ale musíte ísť bokom, aby ste si to všimli.
Krok 7: Možné vylepšenia
Dalo by sa vykonať niekoľko vylepšení. Tie obsahujú:
- Použitie menej ťažkopádneho magnetického drôtu
- Leptanie všetkého na jednu dosku plošných spojov, ktorá je navrhnutá tak, aby sa zmestila do skrinky ovládača
- Opätovné pripevnenie ľavej analógovej páčky a pripojenie nožičiek k analógovým vstupom na Arduine, aby ich bolo možné použiť na úpravu Arduina
- Získanie zadného puzdra na bezdrôtový ovládač a vloženie projektu do priestoru pre batériu (to by si vyžadovalo vyrezanie otvoru pre kábel USB)
Odporúča:
Výmena škrupiny bezdrôtového ovládača Xbox 360: 15 krokov (s obrázkami)
Výmena škrupiny bezdrôtového ovládača Xbox 360: Podrobný návod na výmenu škrupiny ovládača Xbox 360 za nový shell. Tento tutoriál môže pomôcť študentom získať základné znalosti o hardvéri, elektrotechnickom/počítačovom inžinierstve a princípoch počítačovej vedy prostredníctvom videohier
Akcelerometer na invalidnom vozíku pre telesne postihnutých: 13 krokov
Akcelerometer na invalidnom vozíku pre telesne postihnutých: V našej krajine s 1,3 miliardami populácií máme stále viac ako 1% populácie starších alebo zdravotne postihnutých ľudí, ktorí potrebujú podporu osobnej mobility. Cieľom nášho projektu je splniť ich požiadavky na mobilitu pomocou inteligentných technológií. Problém
Režim LED ovládača Gamecube: 8 krokov (s obrázkami)
Gamecube Controller LED Mod: Mali ste niekedy herný ovládač, ktorý ste skutočne milovali, ale nebol pre vás prispôsobený? Tak som sa cítil s mojím ovládačom Gamecube. Ovládače Gamecube sú moje obľúbené typy ovládačov, ale v Severnej Amerike sú tri najbežnejšie
Výukový program pre štít ovládača motora L298 2Amp pre Arduino: 6 krokov
Tutorial pre štít ovládača motora L298 2Amp pre Arduino: Popis Štítok ovládača motora L298 2Amp pre Arduino je založený na integrovanom obvode motora L298, ovládači motora s plným mostom. Môže poháňať dva samostatné 2A jednosmerné motory alebo 1 2A krokový motor. Rýchlosť a smery motora je možné ovládať samostatne
Smart Master/Slave Power Strip pre váš počítač [režim] (automatické vypnutie, ale nulový pohotovostný režim): 6 krokov (s obrázkami)
Power Master/Slave Power Strip pre váš počítač [režim] (automatické vypnutie, ale nulový pohotovostný režim): Vypnuté by malo byť vypnuté. A použiteľnosť by mala byť dobrá. Aby sme to skrátili: Nenašli sme tam ten správny produkt, tak sme skončili s úpravou. Kúpili sme nejaký " Šetrič energie " rozvodky od Zweibrueder. Zariadenia sú veľmi pevné a nie príliš