Orodha ya maudhui:

Kidhibiti cha Xbox 360 cha Accelerometer / gyro Steering Mod: Hatua 7
Kidhibiti cha Xbox 360 cha Accelerometer / gyro Steering Mod: Hatua 7

Video: Kidhibiti cha Xbox 360 cha Accelerometer / gyro Steering Mod: Hatua 7

Video: Kidhibiti cha Xbox 360 cha Accelerometer / gyro Steering Mod: Hatua 7
Video: Как настроить и использовать камеру ESP32 с камерой Micro USB WiFi 2024, Novemba
Anonim
Kidhibiti cha Xbox 360 Accelerometer / gyro Modering Mod
Kidhibiti cha Xbox 360 Accelerometer / gyro Modering Mod

Nimekuwa nikicheza Assetto Corsa na kidhibiti changu cha Xbox 360. Kwa bahati mbaya, uendeshaji na fimbo ya analog ni ngumu sana, na sina nafasi ya usanidi wa gurudumu. Nilijaribu kufikiria njia ambazo ningeweza kuweka upembe bora kwa njia ya uendeshaji, wakati ilinitokea kwamba ningeweza kutumia mtawala wote kama usukani.

Fimbo ya analog ina potentiometers mbili. Mtu hupima harakati za wima, na mtu hupima harakati za usawa. Inaweka 1.6V kwa kila moja na hupima voltage inayozalishwa kwenye wiper kuamua ni kiasi gani fimbo imehamia. Hii inamaanisha inawezekana kudhibiti harakati za fimbo kwa kulisha voltage fulani kwa pini ya wiper. (habari zaidi hapa:

Mod hii hutumia Arduino kuhesabu pembe kutoka kwa usomaji wa accelerometer na kuibadilisha kuwa harakati ya fimbo ya analog kupitia DAC. Kwa hivyo, inapaswa kufanya kazi na mchezo wowote ambao unatumia fimbo ya analog kama pembejeo.

Hatua ya 1: Utahitaji:

Zana:

  • Chuma cha kulehemu
  • Solder
  • Solder sucker / kusuka
  • Mtoaji wa waya
  • Bisibisi, labda Torx moja kulingana na screws kwenye kidhibiti chako (yangu ni msalaba)
  • Gundi (ikiwezekana sio gundi yenye nguvu sana ili ichukuliwe baadaye)
  • USB kwa adapta ya serial ili kupanga Arduino

Vifaa:

  • Mdhibiti wa Xbox 360 (duh!)
  • Arduino Pro Mini (au kiini) (ikiwezekana 3.3V. Ikiwa unatumia toleo la 5V labda utahitaji kubadilisha nguvu ya voltage)
  • Gyroscope / accelerometer ya MPU-6050
  • MCP4725 DAC (mbili ikiwa unataka kudhibiti shoka zote mbili)
  • Baadhi waya nyembamba
  • Bodi ya mkate ili uweze kujaribu kila kitu kabla ya kuuza (hiari, lakini inapendekezwa)

Hatua ya 2: Chukua Mdhibiti

Chukua Mdhibiti
Chukua Mdhibiti
Chukua Mdhibiti
Chukua Mdhibiti
Chukua Mdhibiti
Chukua Mdhibiti

Kuna screws saba lazima uondoe. Sita kati yao ni dhahiri, lakini ya saba iko nyuma ya stika. Nadhani kuiondoa huondoa dhamana yako, kwa hivyo endelea kwa hatari yako mwenyewe. Miongozo mingi inasema unahitaji bisibisi ya Torx, lakini yangu ni msalaba, kwa hivyo angalia mtawala wako.

Baada ya hapo, futa kwa uangalifu kifuniko cha nyuma. Ukibadilisha mbele vifungo vitamwagika na labda vitapita kwenye chumba. Inua kutoka chini. Kisha ondoa gari mbili za kutetemeka. (yule aliye na uzani mdogo anapaswa kuwa kushoto, na yule mwenye uzito mkubwa kulia) Toa PCB na uondoe kofia za mpira kwenye vijiti vya analogi. Wao huondoka tu.

Jambo linalofuata ni kuondoa fimbo ya analojia ya kushoto ili isiingiliane na uingizaji wetu, lakini utaratibu wa kichocheo cha kushoto uko njiani. Ili kuiondoa, lazima ubadilishe pini tatu kutoka kwa potentiometer kutoka mbele ya ubao, halafu ondoa utaratibu kutoka kwa PCB.

Ifuatayo, futa pini 14 zilizoshikilia fimbo ya analog ya kushoto. Kisha vuta fimbo.

Hatua ya 3: Funga Vipengee Mahali

Funga Vipengee Mahali
Funga Vipengee Mahali
Funga Vipengee Mahali
Funga Vipengee Mahali

Utaona kwamba kuna idhini kubwa kati ya nyuma ya PCB na kesi hiyo. Hii inafanya uwezekano wa kuweka vifaa vyote kwenye kesi bila kuondoa chochote.

Niligundua baadaye tu, lakini huu utakuwa wakati mzuri wa kufuta kitufe cha kuweka upya kwenye Arduino. Ikiwa hutafanya hivyo, itabonyeza nyuma ya kesi hiyo na kusababisha mradi kuacha kufanya kazi ikiwa utaimarisha moja ya screws nyingi wakati wa kuikusanya tena.

Niliunganisha kipande nyembamba cha kadi nyuma ya kila PCB ili kuiingiza, kisha nikitia gundi hiyo kwa PCB ya mtawala. Nilisita kutumia gundi, lakini sikuweza kufikiria njia bora ya kuifanya.

Nafasi kwenye picha ni mchanganyiko bora ninaoweza kupata. Arduino iko upande wa kushoto, na makali na kitufe cha kuweka upya ikipiga dhidi ya kipande cha plastiki kutoka kwa mfumo wa kulia wa kulia, na upande mwingine chini ya waya na kona iko karibu na kiunganishi cheupe iwezekanavyo. Kuna upeo kidogo katika kesi hiyo, lakini sikuweza kupata mahali pazuri pa kuiweka.

Accelerometer iko upande wa kulia wa waya. Inapaswa kuwa gorofa na sawa sawa iwezekanavyo, vinginevyo itabidi uandike nambari kadhaa baadaye ili kulipa fidia. Kumbuka kuwa kuna vipande vya plastiki vilivyojitokeza nyuma ya kesi ambayo unapaswa kuwa mwangalifu ili kuepukwa. Nimegundua kuwa unaweza kuweka kitu cha kunata na chenye rangi, kama midomo, kwenye vipande vilivyojitokeza vya plastiki kisha uweke kifuniko cha nyuma ili uone ni wapi inaacha alama.

DAC (s) huenda kwenye kona ya chini kushoto. Kuna kibali cha kutosha hapa kuweka DAC mbili, moja juu ya nyingine, ikiwa unataka kudhibiti shoka zote mbili. Huna haja ya kuziunganisha chini. Watakaa mahali walipo na viunganisho tu vilivyouzwa. Ikiwa unabandika kadi kati yao hakikisha umekata kadi ili kuacha SCL, SDA, VCC na GND kupatikana, kwa sababu utazipata kutoka pande zote mbili.

Ikiwa unatumia DAC mbili, usisahau kubadili kiboreshaji cha anwani na kuzima vipingamizi kwenye mojawapo, kama ilivyoelezewa hapa: https://learn.sparkfun.com/tutorials/mcp4725-digital-to-analog -badilisha-mwongozo-wa kubadilisha-mwongozo

Hatua ya 4: Solder waya On

Solder waya juu
Solder waya juu
Solder waya juu
Solder waya juu
Solder waya juu
Solder waya juu

Sasa lazima uunganishe kila kitu. VCC, GND, SDA na SCL kutoka vifaa vyote 2/3 vinapaswa kushikamana na VCC, GND, A4 na A5 kwenye Arduino, mtawaliwa. DACs ni sehemu ngumu zaidi. Ikiwa una mbili, lazima uunganishe pamoja, wakati ukiondoka mahali pengine unaweza kuunganisha nguvu na laini kwenye accelerometer, huku ukitenga waya za OUT tofauti.

Pini ya OUT kwenye DAC inapaswa kushikamana na pini kwenye PCB ya mtawala ambayo ilikuwa ya pini ya katikati ya usawa wa fimbo kwa fimbo ya analog. Hiyo ni, ambapo fimbo ya analog ilikuwa, kuna safu ya pini tatu juu. Unganisha na ile ya kati. Ikiwa unayo DAC nyingine inganisha kwenye pini ya wima ya potentiometer (safu kushoto) kwa njia ile ile. Hutaweza kufika kwenye pini kutoka nyuma wakati kichocheo kinabadilishwa, kwa hivyo lazima utumie waya mbele ya ubao. Kuna "ukuta" wa plastiki wa duara karibu na eneo la fimbo ya analojia, lakini kwa bahati nzuri kuna pengo linalofaa ndani yake ambalo unaweza kuweka waya kupitia. Hakikisha waya haziingii kwenye chapisho la screw kwenye sehemu ya mbele ya kesi.

Mpango wangu wa asili ilikuwa kuwezesha Arduino na 5V kutoka kwa kebo ya USB iliyounganishwa na pini ya RAW, lakini nilipojaribu, haikufanya kazi. Arduino haikuendesha kitu chochote, na Arduino na mdhibiti wote walizima baada ya sekunde chache. Walakini, niligundua kuwa kuna pato thabiti la 3.3V kutoka kwa pini mbili mbele ya ubao karibu na tundu nyeusi la pembeni, labda kwa kuwezesha vifaa vya pembeni. Inafanya kazi na VCC na RAW, lakini nilichagua VCC kwa sababu tayari ni voltage sahihi na kwa sababu inaniruhusu kuiunganisha kwa waya wa VCC kwenye DAC ambayo tayari iko karibu na chini ya bodi na kuokoa kwenye waya.

Jihadharini kuwa kuna sehemu nyingi za plastiki zinazojitokeza kutoka kwa kesi ambayo lazima ufanyie kazi karibu, lakini ikiwa unaunganisha waya zilizopo, lazima uwe na wasiwasi juu yao mara moja tu.

Yote haya ni ngumu kuelezea kwa maneno, kwa hivyo nimejumuisha picha na mchoro mchafu.

Hatua ya 5: Panga Arduino

Sasa lazima upange Arduino. Hii inahitaji kuhamisha kebo ya USB kwenye kidhibiti ili uweze kufikia pini za serial kwenye Arduino. Nimejumuisha nambari niliyotumia. Inahitaji maktaba ya Adafruit MCP4725, ambayo inaweza kupatikana hapa:

Kama ilivyo, nambari hukuruhusu kupitia mwendo mzima wa mwendo wa fimbo ya analojia sawasawa kwa kusogeza kidhibiti digrii 90 kushoto hadi digrii 90 kulia, na kuiweka katikati kwa kuishikilia gorofa.

Inapata pembe ya mtawala kwa kuhesabu tangent inverse ya X axis g-nguvu iliyogawanywa na Z axis g-nguvu. Hii inamaanisha inafanya kazi ikiwa mtawala ni wima, gorofa, au pembe yoyote kati. (habari zaidi hapa:

Inafanya kazi kwa mtawala wangu, lakini watawala wengine wanaweza kuhitaji voltages tofauti, kuiweka nje ya usawa. Nadhani njia bora ya kupata anuwai ya voltage ni kwa kujaribu na makosa. Michezo mingi itakuonyesha kitelezi kwa mwendo wa fimbo ya analojia, lakini njia sahihi zaidi ambayo nimepata kuamua harakati ni kwa utani kwenye Linux. (https://wiki.archlinux.org/index.php/Gamepad#Joystick_API) Inakupa nambari kati ya -32, 767 na 32, 767 badala ya picha, kwa hivyo unajua fimbo iko wapi. Chomeka mtawala na USB ya Arduino kwa adapta ya serial, shehena jstest na ujaribu maadili tofauti ya DAC mpaka ufikie juu na chini ya anuwai, na andika kila moja. Kwangu ilikuwa 1, 593 - 382.

Ya kufurahisha haswa ni laini ya 36:

dacvalue = (mtawala + 2.5617859169446084418) / 0.0025942135867793503208 + 0.5;

Haijulikani mara moja kile inachofanya. Kwa urahisi, inachukua pembe ya mdhibiti (kipimo katika radians na kati ya ~ 1.57 na ~ -1.57) na kuibadilisha kuwa thamani kati ya 1, 593 na 382 kwa DAC. Ikiwa una anuwai tofauti ya DAC, utahitaji kubadilisha laini hiyo.

Mstari unaweza kuandikwa kama:

dacvalue = (mtawala +) / + 0.5;

Ukiwa na na kuwa nambari unahitaji kubadilisha. ni sawa na anuwai ya pembe ya mtawala (pi) iliyogawanywa na jumla ya anuwai ya maadili ya DAC. (juu ya masafa ukiondoa chini ya masafa) Hii inakufikisha hadi kubadilisha voltage, ingawa matokeo yatakuwa nje ya anuwai unayotaka. Ndio sababu unahitaji. ni sawa na kuzidishwa na chini ya anuwai pamoja na nusu ya mwendo wa mtawala. (pi / 2) Kuongeza nusu ya mwendo huhakikisha kuwa sio nambari hasi, na kuongeza kuzidishwa na chini ya anuwai inahakikisha imesawazishwa na masafa unayotaka.

Wakati wa kubadilisha alama kuwa nambari kamili, C ++ haizunguki. Badala yake inakata desimali, kwa hivyo 9.9 inakuwa 9. Kuongeza 0.5 mwishoni inahakikisha chochote juu ya nusu huenda kwa nambari inayofuata, kwa hivyo inafanya pande zote.

Mara tu unapopakia programu yako, hakikisha inafanya kazi na mzaha.

Hatua ya 6: Unganisha tena Kidhibiti

Weka kidhibiti tena kwa njia ile ile uliyoitenganisha, toa fimbo ya analog ya kushoto. Inapaswa kufanya kazi sasa. Sioni ucheleweshaji unaoonekana na ni bora zaidi kuliko kutumia fimbo ya analog. Kwa sababu hutumia kipima kasi, inaathiriwa na harakati za ghafla, lakini lazima utafute njia yako kuitambua.

Hatua ya 7: Maboresho yanayowezekana

Kuna maboresho ambayo yanaweza kufanywa. Hii ni pamoja na:

  • Kutumia waya mdogo wa sumaku
  • Kuweka kila kitu kwenye PCB moja ambayo imeundwa kutoshea kwenye kesi ya mtawala
  • Kuunganisha fimbo ya analojia ya kushoto na kuunganisha miguu na pembejeo za analog kwenye Arduino ili zitumike kurekebisha Arduino
  • Kupata kipande cha kesi ya nyuma kwa mtawala asiye na waya na kuweka mradi kwenye chumba cha betri (hii itahitaji kukata shimo kwa kebo ya USB)

Ilipendekeza: