Përmbajtje:
- Hapi 1: Do t'ju duhet:
- Hapi 2: Merrni veçmas kontrolluesin
- Hapi 3: Ngjitini Komponentët në Vend
- Hapi 4: Lidhni telat aktiv
- Hapi 5: Programoni Arduino
- Hapi 6: Montoni përsëri kontrolluesin
- Hapi 7: Përmirësimet e mundshme
Video: Xbox 360 Controller Accelerometer/gyro Steering Mod: 7 Hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:17
Unë kam luajtur Assetto Corsa me kontrolluesin tim Xbox 360. Fatkeqësisht, drejtimi me shkopin analog është shumë i pakëndshëm dhe nuk kam hapësirë për konfigurimin e rrotave. Unë u përpoqa të mendoja për mënyrat se si mund të vendosja një mekanizëm drejtues më të mirë në kontrollues, kur më shkoi në mendje se mund ta përdor të gjithë kontrolluesin si timon.
Shkopi analog ka dy potenciometra. Njëra mat lëvizjen vertikale, dhe një mat lëvizjen horizontale. Ai vendos 1.6V përmes secilës dhe mat tensionin e prodhuar në fshirës për të përcaktuar se sa ka lëvizur shkopi. Kjo do të thotë se është e mundur të kontrolloni lëvizjen e shkopit duke ushqyer një tension të veçantë në kunjin e fshirësit. (më shumë informacion këtu:
Ky mod përdor një Arduino për të llogaritur këndin nga leximet e përshpejtuesit dhe për ta kthyer atë në lëvizje analoge të shkopit përmes një DAC. Prandaj, duhet të funksionojë me çdo lojë që përdor shkopin analog si hyrje.
Hapi 1: Do t'ju duhet:
Mjetet:
- Makine per ngjitjen e metalit
- Saldator
- Thithës/bishtalec ngjitës
- Zhveshës me tela
- Një kaçavidë, ndoshta një Torx në varësi të vidhave në kontrolluesin tuaj (të miat janë kryqëzues)
- Ngjitës (mundësisht jo ngjitës super i fortë kështu që mund të ndahet më vonë)
- Një përshtatës USB në serial për të programuar Arduino
Materiale:
- Kontrolluesi Xbox 360 (duh!)
- Arduino Pro Mini (ose një klon) (mundësisht 3.3V. Nëse përdorni versionin 5V, ndoshta do t'ju duhet një konvertues i rritjes së tensionit)
- Një xhiroskop/përshpejtues MPU-6050
- Një DAC MCP4725 (dy nëse doni të kontrolloni të dy akset)
- Disa tela të hollë
- Një tabelë buke që të mund të provoni gjithçka para se të lidhni (opsionale, por e rekomanduar)
Hapi 2: Merrni veçmas kontrolluesin
Janë shtatë vida që duhet të hiqni. Gjashtë prej tyre janë të dukshme, por e shtata është pas një afisheje. Supozoj se heqja e tij anulon garancinë tuaj, kështu që vazhdoni me rrezikun tuaj. Shumë udhëzues thonë se keni nevojë për një kaçavidë Torx, por të miat janë kryq, prandaj kontrolloni kontrolluesin tuaj.
Pas kësaj, hiqeni me kujdes kapakun e pasmë. Nëse e hidhni përpara, butonat do të derdhen jashtë dhe ndoshta do të shkojnë në të gjithë dhomën. Ngrini atë nga poshtë. Pastaj shkëputni dy motorët e dridhjeve. (ai me peshë të vogël duhet të jetë në të majtë, dhe ai me peshë të madhe në të djathtë) Nxirrni PCB -në dhe hiqni kapakët e gomës në shkopinjtë analogë. Ata thjesht tërhiqen.
Gjëja tjetër është të hiqni shkopin analog të majtë në mënyrë që të mos ndërhyjë në hyrjen tonë, por mekanizmi i majtë i shkasit është në rrugën e duhur. Në mënyrë që ta hiqni atë, ju duhet të shkrini të tre kunjat nga potenciometri nga pjesa e përparme e tabelës, pastaj hiqni mekanizmin nga PCB.
Tjetra, shkrijini 14 kunjat që mbajnë shkopin analog të majtë. Pastaj hiqeni shkopin.
Hapi 3: Ngjitini Komponentët në Vend
Ju do të vini re se ka shumë hapësirë midis pjesës së pasme të PCB dhe kasës. Kjo bën të mundur vendosjen e të gjithë pajisjeve në kuti pa hequr asgjë.
E kuptova vetëm më vonë, por kjo do të ishte një kohë e mirë për të shkrirë butonin e rivendosjes në Arduino. Nëse nuk e bëni, do të shtypë në pjesën e pasme të kutisë dhe do të bëjë që projekti të ndalojë së punuari nëse shtrëngoni shumë njërën nga vidhat kur e montoni përsëri.
Unë ngjita një copë të hollë kartoni në pjesën e pasme të secilës PCB për ta izoluar atë, pastaj e ngjita atë në PCB të kontrolluesit. Unë ngurroja të përdor zam, por nuk mund të mendoja për një mënyrë më të mirë për ta bërë atë.
Pozicionet në imazh është kombinimi më i mirë që mund të gjej. Arduino është në të majtë, me skajin me butonin e rivendosjes që përputhet me copën e plastikës nga mekanizmi i këmbëzës së djathtë, me anën tjetër nën tela dhe me qoshen sa më afër lidhësit të bardhë. Ka një fryrje të lehtë në rast, por unë nuk mund të gjej një vend më të mirë për ta vënë atë.
Përshpejtuesi është në të djathtë të telit. Duhet të jetë sa më e sheshtë dhe sa më e drejtë, përndryshe mund t'ju duhet të shkruani një kod më vonë për të kompensuar kompensimin. Vini re se ka disa copa plastike të spikatura në pjesën e prapme të kutisë që duhet të keni kujdes për t'i shmangur. Kam zbuluar se mund të vendosni diçka ngjitëse dhe shumëngjyrëshe, si buzëkuqi, në copat e plastikës të spikatura, pastaj vendosni kapakun e pasmë për të parë se ku lë shenja.
DAC -të shkojnë në këndin e poshtëm të majtë. Ka mjaft hapësirë këtu për të grumbulluar dy DAC, njëra mbi tjetrën, nëse doni të kontrolloni të dy akset. Nuk keni nevojë t'i ngjisni ato. Ata do të qëndrojnë aty ku janë vetëm me lidhjet e lidhura. Nëse jeni duke ngjitur kartën mes tyre sigurohuni që ta keni prerë kartën në mënyrë që të lini SCL, SDA, VCC dhe GND të arritshme, sepse do t'i përdorni ato nga të dyja anët.
Nëse përdorni dy DAC, mos harroni të ndërroni bluzën e adresës dhe të çaktivizoni rezistencat tërheqëse në njërën prej tyre, siç përshkruhet këtu: https://learn.sparkfun.com/tutorials/mcp4725-digital-to-analog -converter-hookup-guide
Hapi 4: Lidhni telat aktiv
Tani ju duhet të lidhni gjithçka. VCC, GND, SDA dhe SCL nga të gjitha pajisjet 2/3 duhet të lidhen me VCC, GND, A4 dhe A5 në Arduino, respektivisht. DAC -të janë pjesa më e ndërlikuar. Nëse keni dy, ju duhet t'i lidhni së bashku, ndërsa duke lënë diku mund të lidhni fuqinë dhe linjat me akselerometrin, duke i mbajtur telat OUT të ndarë.
Kunja OUT në DAC duhet të lidhet me kunjin në PCB të kontrolluesit që ishte për kunjën e mesme të potenciometrit horizontal për shkopin analog. Kjo do të thotë, aty ku ishte shkopi analog, ka një rresht prej tre kunjash në krye. Lidheni atë me atë të mesëm. Nëse keni një DAC tjetër, lidheni atë me kunjën e potenciometrit vertikal (rreshti në të majtë) në të njëjtën mënyrë. Ju nuk do të jeni në gjendje të arrini te kunjat nga mbrapa kur zëvendësohet këmbëza, kështu që ju duhet të kaloni një tel në pjesën e përparme të tabelës. Ka një "mur" plastik rrethor rreth zonës së shkopit analog, por për fat të mirë ka një boshllëk të përshtatshëm në të që mund t'i vendosni telat. Sigurohuni që telat të mos pengojnë shtyllën e vidhave në pjesën e përparme të kasës.
Plani im fillestar ishte të furnizoja Arduino me 5V nga kabllo USB e lidhur me pin RAW, por kur e provova, nuk funksionoi. Arduino nuk funksionoi asgjë, dhe Arduino dhe kontrolluesi u fikën pas disa sekondash. Sidoqoftë, zbulova se ka një dalje të qëndrueshme 3.3V nga dy kunja në pjesën e përparme të tabelës pranë prizës së zezë periferike, me sa duket për furnizimin me energji të pajisjeve periferike. Punon si me VCC ashtu edhe me RAW, por unë zgjodha VCC sepse tashmë është tensioni i duhur dhe sepse më lejon ta lidh atë me tela VCC në DAC që është tashmë afër fundit të tabelës dhe të kursej në tela.
Jini të vetëdijshëm se ka shumë pjesë plastike që dalin nga kutia për të cilat duhet të punoni, por nëse ngjitni telat në vend, duhet të shqetësoheni vetëm për to një herë.
E gjithë kjo është e vështirë të përshkruhet me fjalë, kështu që kam përfshirë fotografi dhe një diagram të papërpunuar.
Hapi 5: Programoni Arduino
Tani ju duhet të programoni Arduino. Kjo kërkon lëvizjen e kabllit USB në kontrollues në mënyrë që të keni qasje në kunjat serik në Arduino. Kam përfshirë kodin që kam përdorur. Kërkon bibliotekën Adafruit MCP4725, e cila mund të gjendet këtu:
Siç është, kodi ju lejon të kaloni të gjithë gamën e lëvizjes së shkopit analog në mënyrë të barabartë duke e lëvizur kontrolluesin 90 gradë në të majtë në 90 gradë në të djathtë dhe ta mbani në mes duke e mbajtur atë të sheshtë.
Ai merr këndin e kontrolluesit duke llogaritur tangjentën e kundërt të forcës g të boshtit X të ndarë me forcën g të boshtit Z. Kjo do të thotë se funksionon nëse kontrolluesi është vertikal, i sheshtë ose ndonjë kënd në mes. (më shumë informacion këtu:
Punon në kontrolluesin tim, por kontrolluesit e tjerë mund të kërkojnë tensione të ndryshme, duke e nxjerrë atë jashtë shtrirjes. Unë mendoj se mënyra më e mirë për të gjetur gamën e tensionit është me provë dhe gabim. Shumë lojëra do t'ju tregojnë një rrëshqitës për lëvizjen analoge të shkopit, por mënyra më e saktë që kam gjetur për të përcaktuar lëvizjen është me jstest në Linux. (https://wiki.archlinux.org/index.php/Gamepad#Joystick_API) Ju jep një numër midis -32, 767 dhe 32, 767 sesa një grafik, kështu që ju e dini saktësisht se ku është shkopi. Lidhni kontrolluesin dhe USB Arduino në përshtatësin serik, ngarkoni jstest dhe provoni vlera të ndryshme DAC derisa të arrini në pjesën e sipërme dhe të poshtme të diapazonit dhe shënoni secilën. Për mua ishte 1, 593 - 382.
Me interes të veçantë është rreshti 36:
dacvalue = (kontrolli + 2.5617859169446084418) / 0.0025942135867793503208 + 0.5;
Nuk është menjëherë e qartë se çfarë bën. Thjesht, merr këndin e kontrolluesit (të matur në radian dhe midis 7 1.57 dhe ~ -1.57) dhe e konverton atë në një vlerë midis 1, 593 dhe 382 për DAC. Nëse keni një gamë të ndryshme DAC, do t'ju duhet ta ndryshoni atë linjë.
Linja mund të shkruhet si:
dacvalue = (kontrollues +) / + 0.5;
Me dhe duke qenë numrat që duhet të ndryshoni. është e barabartë me gamën e këndit të kontrolluesit (pi) të ndarë me gamën e përgjithshme të vlerave të DAC. (maja e diapazonit minus fundin e diapazonit) Kjo ju çon deri në ndryshimin e tensionit, megjithëse rezultatet do të jenë jashtë intervalit që dëshironi. Kjo është arsyeja pse ju keni nevojë. është e barabartë me shumëzuar me pjesën e poshtme të diapazonit plus gjysmën e gamës së lëvizjes së kontrolluesit. (pi / 2) Shtimi i gjysmës së gamës së lëvizjes sigurohet që nuk është një numër negativ, dhe shtimi i shumëzuar me pjesën e poshtme të diapazonit sigurohet që është i sinkronizuar me gamën që dëshironi.
Kur shndërroni numrat dhjetorë në një numër të plotë, C ++ nuk rrumbullakoset. Në vend të kësaj, ajo prish dhjetorin, kështu që 9.9 bëhet 9. Shtimi i 0.5 në fund sigurohet që çdo gjë mbi gjysmën të shkojë në numrin e plotë të ardhshëm, kështu që bën rrumbullakim.
Pasi të keni ngarkuar programin tuaj, sigurohuni që ai punon me jstest.
Hapi 6: Montoni përsëri kontrolluesin
Vendoseni përsëri kontrolluesin në të njëjtën mënyrë si e keni ndarë, pa shkopin analog të majtë. Duhet të funksionojë tani. Unë gjej se nuk ka vonesa të dukshme dhe është shumë më mirë sesa përdorimi i shkopit analog. Për shkak se përdor një akselerometër, ndikohet nga lëvizjet e papritura, por ju duhet të dilni nga rruga juaj për ta vënë re atë.
Hapi 7: Përmirësimet e mundshme
Ka disa përmirësime që mund të bëhen. Kjo perfshin:
- Përdorimi i telave magnetikë më pak të rëndë
- Gdhendja e gjithçkaje në një PCB të krijuar për t'u përshtatur në kutinë e kontrolluesit
- Rivendosja e shkopit analog të majtë dhe lidhja e këmbëve me hyrjet analoge në Arduino në mënyrë që ato të mund të përdoren për të rregulluar Arduino
- Marrja e pjesës së pasme të kutisë për një kontrollues pa tel dhe vendosja e projektit në ndarjen e baterisë (kjo do të kërkonte prerjen e një vrimë për kabllon USB)
Recommended:
Konvertimi Tonka Truck RC Me Dump dhe 4WS Quad Steering: 6 hapa (me fotografi)
Konvertimi Tonka Truck RC With Dump dhe 4WS Quad Steering: Unë e pranoj se një konvertim Tonka RC nuk është një ide origjinale, por kur e mendova atë mendova se isha i pari … kjo është derisa kërkova në internet, D'oh. Po, kjo është bërë më parë, por për mendimin tim të gjithë të tjerët e bënë atë në rrugën e vështirë dhe dështuan
Zëvendësimi i guaskës së një kontrolluesi pa tel të Xbox 360: 15 hapa (me fotografi)
Zëvendësimi i guaskës së një kontrolluesi pa tel të Xbox 360: Udhëzues hap pas hapi për të zëvendësuar guaskën e një kontrolluesi Xbox 360 në një predhë të re. Ky tutorial mund të përdoret për të ndihmuar studentët të kenë një kuptim bazë të parimeve të harduerit, inxhinierisë elektrike/kompjuterike dhe shkencës kompjuterike përmes video gamës
Xbox 360 Arcade Controller - Project Gyokusho: 8 hapa
Xbox 360 Arcade Controller - Project Gyokusho: Epo, kjo është pothuajse saktësisht ajo që duket. Kam copëtuar një kontrollues me tela 360, kam vendosur guximin në një kuti të bukur dhe kam bashkuar disa butona arcade dhe një levë në të. Mendova se do ta botoja këtë për t'ju dhënë të gjithëve një ide se si mund të bëhet
Matja e këndit duke përdorur Gyro, Accelerometer dhe Arduino: 5 hapa
Matja e këndit duke përdorur Gyro, Accelerometer dhe Arduino: Pajisja është një prototip i përafërt i asaj që përfundimisht do të bëhet një robot vetë -ekuilibër, kjo është pjesa e dytë e gjërave të vrimës (lexoni akselerometrin dhe kontrolloni një motor për të balancuar veten). Pjesën e parë me vetëm xhiro mund ta gjeni këtu. Në këtë inst
Xbox 360 Rumble Powered Rapid Fire Mod: 6 hapa
Xbox 360 Rumble Powered Rapid Fire Mod: Mënyrë e thjeshtë për të modifikuar kontrolluesin tuaj xbox 360 pa të gjitha mikroçipet e zbukuruar dhe është ende e pazbulueshme (SO FARS). (NUK JAM PESRGJEGJS P FORR ASNJ DM T D BONR TO KONTROLLUESIT TUAJ GJAT PROCESIT T MO MODIMIMIT ---- VAZHDON ME RREZIKun TUAJ) PORR MORNDYRJE P THER FOTO