![Xbox 360 контроллеринин акселерометр/гиро руль режими: 7 кадам Xbox 360 контроллеринин акселерометр/гиро руль режими: 7 кадам](https://i.howwhatproduce.com/images/011/image-30521-j.webp)
Мазмуну:
2025 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2025-01-23 14:51
![Xbox 360 контроллеринин акселерометр/гиро рулдук моду Xbox 360 контроллеринин акселерометр/гиро рулдук моду](https://i.howwhatproduce.com/images/011/image-30521-1-j.webp)
Мен Xbox 360 контроллерим менен Assetto Corsa ойнойм. Тилекке каршы, аналогдук таяк менен рулду башкаруу өтө начар жана менде дөңгөлөктү орнотууга орун жок. Мен рулду башкаруунун бардык механизмдерин рул катары колдоно алам деп ойлогондо, башкаруучуга жакшыраак руль механизмин орнотуунун жолдорун ойлонууга аракет кылдым.
Аналогдук таякчада эки потенциометр бар. Бири вертикалдуу кыймылды, бири горизонталдык кыймылды өлчөйт. Ал ар бирине 1.6В өткөрөт жана таяктын канчалык жылганын аныктоо үчүн тазалагычта өндүрүлгөн чыңалууну өлчөйт. Бул тазалагычка белгилүү бир чыңалуу берүү аркылуу таяктын кыймылын көзөмөлдөөгө болот дегенди билдирет. (Көбүрөөк маалымат бул жерде:
Бул режим акселерометрдин көрсөткүчтөрүнүн бурчун эсептөө жана DAC аркылуу аналогдук таякчанын кыймылына айландыруу үчүн Arduino колдонот. Ошондуктан, ал аналогдук таякчаны киргизүү катары колдонгон ар кандай оюн менен иштеши керек.
1 -кадам: Сизге керек болот:
Куралдар:
- Кандооч
- Solder
- Solder соргуч/өрүм
- Зым чечүүчү
- Бир отвертка, балким Torx, контроллердеги бурамаларга жараша болот (меники крестовый)
- Желим (эң жакшы клей эмес, аны кийинчерээк бөлүп алууга болот)
- Arduino программасы үчүн USB сериялык адаптер
Материалдар:
- Xbox 360 контроллери (жок!)
- Arduino Pro Mini (же клон) (3.3V артыкчылыктуу. Эгер 5V версиясын колдонсоңуз, сизге чыңалуу алмаштыргыч керек болот)
- MPU-6050 гироскопу/акселерометр
- MCP4725 DAC (эки огун тең башкаргыңыз келсе, экөө)
- Кээ бир жука зым
- Нан тактасы, андыктан сиз ширетүүдөн мурун бардыгын текшере аласыз (милдеттүү эмес, бирок сунушталат)
2 -кадам: Контроллерди бөлүп алыңыз
![Контроллерди бөлүп алыңыз Контроллерди бөлүп алыңыз](https://i.howwhatproduce.com/images/011/image-30521-2-j.webp)
![Контроллерди бөлүп алыңыз Контроллерди бөлүп алыңыз](https://i.howwhatproduce.com/images/011/image-30521-3-j.webp)
![Контроллерди бөлүп алыңыз Контроллерди бөлүп алыңыз](https://i.howwhatproduce.com/images/011/image-30521-4-j.webp)
Жети бураманы алып салуу керек. Алардын алтоосу ачык, бирок жетинчиси стикердин артында. Мен аны алып салуу сиздин кепилдигиңизди жокко чыгарат деп ойлойм, андыктан өз тобокелчилигиңизге өтүңүз. Көптөгөн гиддер Torx бурагычы керек деп айтышат, бирок меники кресттүү, андыктан контроллериңизди текшериңиз.
Андан кийин, арткы капкагын кылдаттык менен чечип алыңыз. Эгерде сиз алдыңкы бөлүгүн чечсеңиз, топчулар төгүлүп кетиши мүмкүн жана бөлмөнүн бүт тарабына өтөт. Аны түбүнөн көтөрүңүз. Андан кийин эки вибрация моторун ажыратыңыз. (кичинекей салмагы бар сол жакта, чоң салмагы оң жакта болушу керек) ПХБны алып чыгып, аналогдук таякчалардын резина капкактарын алып салыңыз. Алар жөн эле тартып кетишет.
Кийинки нерсе, аналогдук сол таякчаны алып салуу, ал биздин киришибизге тоскоолдук кылбайт, бирок сол триггер механизми жолунда. Аны алып салуу үчүн, потенциометрдеги үч казыкты тактанын алдыңкы бөлүгүнөн ажыратуу керек, андан кийин механизмди ПХБдан ажыратыңыз.
Андан кийин, аналогдук сол таякты кармаган 14 казыкты ажыратыңыз. Андан кийин таякты сууруп алыңыз.
3 -кадам: Компоненттерди ордуна коюңуз
![Компоненттерди ордуна коюңуз Компоненттерди ордуна коюңуз](https://i.howwhatproduce.com/images/011/image-30521-5-j.webp)
![Компоненттерди ордуна коюңуз Компоненттерди ордуна коюңуз](https://i.howwhatproduce.com/images/011/image-30521-6-j.webp)
ПКБнын арткы бөлүгү менен корпустун ортосунда бир топ боштуктар бар экенин байкайсыз. Бул бардык жабдыктарды эч нерсеге алдырбастан капка салууга мүмкүндүк берет.
Мен кийин гана түшүндүм, бирок бул Arduinoдогу баштапкы абалга келтирүү баскычын өчүрүү үчүн жакшы убакыт болмок. Эгер андай кылбасаңыз, анда ал корпустун арт жагын басат жана эгерде аны кайра чогултканда бурамалардын бирин өтө эле катуулатып койсоңуз, долбоор иштебей калат.
Мен изоляциялоо үчүн ар бир ПКБнын арт жагына жука картаны чаптадым, анан контроллердин ПХБсына чаптадым. Мен клей колдонгум келчү эмес, бирок аны жасоонун жакшыраак жолун ойлоно алган жокмун.
Сүрөттөгү позициялар мен таба алган эң мыкты айкалыш. Arduino сол жакта, кайра орнотуу баскычы менен жээги оң триггер механизминен пластмассадан карама -каршы келет, экинчи тарабы зымдын астында жана бурчу ак коннекторго мүмкүн болушунча жакыныраак. Иште кичине дөмпөк бар, бирок мен аны коюуга жакшы жер таба алган жокмун.
Акселерометр зымдын оң жагында. Бул мүмкүн болушунча жалпак жана түз болушу керек, антпесе ордун толтуруу үчүн кийинчерээк кээ бир коддорду жазууга туура келиши мүмкүн. Корпустун арткы бетинде сыртка чыгып кеткен пластикалык бөлүктөр бар экенин эске алыңыз. Пластиктин чыгып турган бөлүктөрүнө помада сыяктуу жабышчаак жана түстүү нерселерди койсоңуз болот, андан кийин анын изин калтырган жерди көрүү үчүн арткы капкакты коюңуз.
DAC (лар) сол жактын төмөнкү бурчуна өтөт. Бул жерде эки DACти бири -биринин үстүнө коюу үчүн жетиштүү уруксат бар, эгер сиз эки огун тең башкаргыңыз келсе. Аларды жабыштыруунун кереги жок. Алар жалган туташуулар менен турган жеринде калышат. Эгерде сиз алардын ортосунда картаны кармасаңыз, анда SCL, SDA, VCC жана GND жеткиликтүү болуш үчүн картаны кесип салганыңызга ишениңиз, анткени сиз аларга эки жактан тең кире аласыз.
Эгерде сиз эки DACти колдонсоңуз, дареги секиргичти которууну унутпаңыз жана бул жерде сүрөттөлгөндөй алардын бириндеги резисторлорду өчүрүңүз: https://learn.sparkfun.com/tutorials/mcp4725-digital-to-analog -конвертер-туташтыруу-жетектөөчү
4 -кадам: Зымдарды күйгүзүү
![Wears On Wears On](https://i.howwhatproduce.com/images/011/image-30521-7-j.webp)
![Wears On Wears On](https://i.howwhatproduce.com/images/011/image-30521-8-j.webp)
![Зымдарды кошуу Зымдарды кошуу](https://i.howwhatproduce.com/images/011/image-30521-9-j.webp)
Эми бардыгын туташтыруу керек. Бардык 2/3 түзмөктөрүнөн VCC, GND, SDA жана SCL тиешелүү түрдө Arduinoдогу VCC, GND, A4 жана A5 туташуусу керек. DACs эң татаал бөлүгү. Эгерде сизде экөө бар болсо, анда сиз аларды бириктиришиңиз керек, бир жерден кетерде электр энергиясын жана линияларды акселерометрге туташтырсаңыз болот, ал эми OUT зымдарын бөлөк кармаңыз.
DACтагы OUT пини аналогдук таякчанын орто горизонталдык потенциометр пини үчүн болгон контроллердин ПХБдагы пинге туташтырылышы керек. Башкача айтканда, аналогдук таяк болгон жерде, жогору жагында үч казык бар. Аны ортосуна туташтырыңыз. Эгерде сизде дагы бир DAC бар болсо, аны тигил потенциометрдин пинине (сол жактагы катарга) ушул жол менен туташтырыңыз. Триггер алмаштырылганда сиз арткы казыктарга жете албайсыз, андыктан тактанын маңдайына зым тартууңуз керек. Аналогдук таякчанын айланасында тегерек пластикалык "дубал" бар, бирок бактыга жараша, анын ичинде зымдарды өткөрө турган ыңгайлуу боштук бар. Зымдардын корпустун алдыңкы бөлүгүндөгү бурама мамыга тоскоол болбогонун текшериңиз.
Менин баштапкы планым Arduino -ны RAW пинге туташтырылган USB кабелинен 5V менен иштетүү болчу, бирок мен аны сынап көргөндө, ал иштеген жок. Arduino эч нерсе иштеткен жок, Arduino да, контроллер да бир нече секунддан кийин өчүп калды. Бирок, мен болжол менен перифериялык түзүлүштөрдү иштетүү үчүн, кара перифериялык розетканын жанына тактайдын маңдайындагы эки казыктан туруктуу 3.3V чыгышы бар экенин билдим. Бул VCC жана RAW экөө менен иштейт, бирок мен VCCди тандагам, анткени ал туура чыңалуу жана ал мага тактынын түбүнө жакын жайгашкан DACтин VCC зымына кошуп, зымдарды үнөмдөөгө мүмкүнчүлүк берет.
Корпустун сыртында пластикалык тетиктер көп экенин билиңиз, бирок сиз зымдарды ордуна жабыштырсаңыз, алар жөнүндө бир гана жолу тынчсызданууңуз керек.
Мунун баарын сөз менен сүрөттөө кыйын, ошондуктан мен сүрөттөрдү жана чийки схеманы коштум.
5 -кадам: Arduino программасы
Эми сиз Arduino программасын түзүшүңүз керек. Бул USB кабелин контроллерге жылдырууну талап кылат, андыктан Arduino сериялык казыктарына кире аласыз. Мен колдонгон кодду киргиздим. Бул үчүн бул жерден тапса болот Adafruit MCP4725 китепканасы керек:
Ошол сыяктуу эле, код контроллерди 90 градус солго, 90 градуска оңго жылдыруу менен, аналогдук таякчанын кыймылынын бардык диапазонун бирдей басып өтүүгө жана тегиз кармоо менен ортодо сактоого мүмкүндүк берет.
Бул X огунун g-күчүнүн Z огу g-күчүнө бөлүнгөн тескери тангенсин эсептөө менен контроллердин бурчун алат. Бул контроллер тик, жалпак же алардын ортосунда кандайдыр бир бурч болсо, иштейт дегенди билдирет. (Көбүрөөк маалымат бул жерде:
Бул менин контроллеримде иштейт, бирок башка контроллерлер ар кандай чыңалууну талап кылышы мүмкүн, аны тегиздиктен чыгарышат. Мен чыңалуу диапазонун табуунун эң жакшы жолу - бул сыноо жана ката. Көптөгөн оюндар сизге аналогдук таяктын кыймылы үчүн слайдерди көрсөтөт, бирок мен кыймылды аныктоонун эң так жолу Linux боюнча jstest менен. (https://wiki.archlinux.org/index.php/Gamepad#Joystick_API) Бул сизге графиканын ордуна -32, 767 жана 32, 767 ортосундагы сандарды берет, андыктан таяктын кайда экенин так билесиз. Контроллерди да, Arduino USBди да сериялык адаптерге туташтырыңыз, jstestти жүктөңүз жана диапазондун чокусуна жеткенге чейин ар кандай DAC баалуулуктарын байкап көрүңүз жана ар бирин жазып алыңыз. Мен үчүн бул 1, 593 - 382 болчу.
Өзгөчө кызыкчылык 36 -сап:
dacvalue = (controllerangle + 2.5617859169446084418) / 0.0025942135867793503208 + 0.5;
Бул эмне кылаары дароо эле ачык эмес. Жөн эле, бул контроллердин бурчун алат (радиандар менен өлчөнөт жана ~ 1.57 менен ~ 1.57 ортосунда) жана аны DAC үчүн 1, 593 жана 382 ортосундагы мааниге айлантат. Эгерде сизде башка DAC диапазону болсо, анда сиз бул линияны өзгөртүүңүз керек болот.
Сап төмөнкүчө жазылышы мүмкүн:
dacvalue = (controllerangle +) / + 0.5;
Сандар менен бирге жана сиз өзгөрүшүңүз керек. контроллер бурчунун диапазонуна барабар (pi) DAC маанилеринин жалпы диапазонуна бөлүнөт. (диапазондун чокусу диапазондун түбүн алып салат) Бул сизди чыңалууну өзгөртүүгө алып келет, бирок натыйжалар сиз каалаган чектен тышкары болот. Ошон үчүн сизге керек. диапазондун түбүнө плюс контроллердин кыймыл диапазонунун жарымына көбөйтүлгөнгө барабар. (pi / 2) Кыймылдын диапазонун кошуу анын терс сан эмес экенин аныктайт жана диапазондун түбүнө көбөйтүүнү кошуу сиз каалаган диапазон менен шайкештештирилет.
Ондуктарды бүтүн санга айландырууда, C ++ тегеректелбейт. Анын ордуна ондук ондукту кесип салат, ошондуктан 9.9 9га айланат. Аягына 0,5 кошуу, жарымынан жогору болгон нерсенин кийинки бүтүн санга өтүшүн камсыз кылат.
Программаңызды жүктөгөндөн кийин, анын jstest менен иштээрин текшериңиз.
6 -кадам: Контроллерди кайра чогултуңуз
Контроллерди сол аналогдук таякчаны алып салганыңыздай, кайра бөлүп алыңыз. Азыр иштеши керек. Менин байкаганымдай, эч кандай кечигүү жок жана аналогдук таякчаны колдонуудан алда канча жакшы. Бул акселерометрди колдонгондуктан, ага күтүүсүз кыймылдар таасир этет, бирок аны байкоо үчүн чектен чыгуу керек.
7 -кадам: Мүмкүн болгон өркүндөтүүлөр
Киргизиле турган кээ бир жакшыртуулар бар. Буларга төмөнкүлөр кирет:
- Магниттик зымды азыраак колдонуу
- Контроллердин корпусуна туура келүү үчүн иштелип чыккан бир ПКБга баарын чийип салуу
- Сол аналогдук таякты кайра туташтырып, буттарын Arduinoдогу аналогдук кирүүлөргө туташтырыңыз, андыктан аларды Arduino -ны тууралоо үчүн колдонсо болот
- Зымсыз контроллердин арткы корпусун алуу жана долбоорду батарея бөлүмүнө коюу (бул USB кабели үчүн тешикти кесүүнү талап кылат)
Сунушталууда:
Зымсыз Xbox 360 контроллеринин кабыгын алмаштыруу: 15 кадам (сүрөттөр менен)
![Зымсыз Xbox 360 контроллеринин кабыгын алмаштыруу: 15 кадам (сүрөттөр менен) Зымсыз Xbox 360 контроллеринин кабыгын алмаштыруу: 15 кадам (сүрөттөр менен)](https://i.howwhatproduce.com/images/006/image-15537-j.webp)
Wireless Xbox 360 контроллеринин кабыгын алмаштыруу: Xbox 360 контроллеринин кабыгын жаңы кабыкка алмаштыруу боюнча этап -этабы менен көрсөтмө. Бул окуу куралы студенттерге видео гам аркылуу аппараттык, электрдик/компьютердик инженерия жана информатика принциптери жөнүндө негизги түшүнүккө ээ болуу үчүн колдонулушу мүмкүн
VHDLде Жөнөкөй Төрт Жактуу Ассоциативдүү Кэш Контроллеринин Дизайны: 4 Кадам
![VHDLде Жөнөкөй Төрт Жактуу Ассоциативдүү Кэш Контроллеринин Дизайны: 4 Кадам VHDLде Жөнөкөй Төрт Жактуу Ассоциативдүү Кэш Контроллеринин Дизайны: 4 Кадам](https://i.howwhatproduce.com/images/011/image-32050-j.webp)
VHDLдеги Төрт Жактуу Ассоциативдүү Кэш Контроллеринин Дизайны: Менин мурунку көрсөтмөмдө, биз жөнөкөй түз картага түшүрүлгөн кэш контроллерин кантип жасоону көрдүк. Бул жолу биз бир кадам алдыга жылабыз. Биз жөнөкөй төрт тараптуу ассоциативдүү кэш контроллерин иштеп чыгабыз. Артыкчылыгы? Сагынуу көрсөткүчү азыраак, бирок perfo баасында
VHDLде программалануучу үзгүлтүк контроллеринин дизайны: 4 кадам
![VHDLде программалануучу үзгүлтүк контроллеринин дизайны: 4 кадам VHDLде программалануучу үзгүлтүк контроллеринин дизайны: 4 кадам](https://i.howwhatproduce.com/images/012/image-33359-j.webp)
VHDLде программалануучу үзгүлтүккө учуроочу контролердун дизайны: Мен бул блогдон алган жоопторума толуп кеттим. Рахмат балдар менин блогума кирип, сиздер менен өз билимимди бөлүшүүгө түрткү бергениңиздер үчүн. Бул жолу мен бардык SOCларда көргөн дагы бир кызыктуу модулдун дизайнын сунуштайм - Interrupt C
DIY Xbox One Контроллеринин Заряддалуучу Батарея Топтому (Проект жүрүп жатат): 3 Кадам (Сүрөттөр менен)
![DIY Xbox One Контроллеринин Заряддалуучу Батарея Топтому (Проект жүрүп жатат): 3 Кадам (Сүрөттөр менен) DIY Xbox One Контроллеринин Заряддалуучу Батарея Топтому (Проект жүрүп жатат): 3 Кадам (Сүрөттөр менен)](https://i.howwhatproduce.com/images/002/image-4744-63-j.webp)
DIY Xbox One Контроллери Аккумулятордук Батарея Топтому (Проект уланууда): Чоо -жайына кирерден мурун мен аталышына кайрылгым келет. Бул долбоор биринчи долбоорду сынап көргөндөн кийин кээ бир жыйынтыктарга байланыштуу жүрүп жаткан иште. Мен такты өзгөртүп жатам деп айтып жатам. Мен каптадым
Акселерометр жана гиро үйрөткүчү: 3 кадам
![Акселерометр жана гиро үйрөткүчү: 3 кадам Акселерометр жана гиро үйрөткүчү: 3 кадам](https://i.howwhatproduce.com/preview/how-and-what-to-produce/11138686-accelerometer-and-gyro-tutorial-3-steps-j.webp)
Акселерометр жана гиро үйрөткүчү: Киришүү Бул колдонмо акселерометрлерди жана гироскопторду, ошондой эле IMU бириккен түзмөктөрүн (инерциялык өлчөө бирдигин) электроника долбоорлорунда колдонууну каалагандардын баарына арналган