Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/r57zone/x360advance

External Arduino gyroscope & pedals for any Xbox compatible gamepads / Внешний Arduino гироскоп и педали для Xbox совместимых геймпадов
https://github.com/r57zone/x360advance

arduino gyroscope mpu-6050 mpu6050 steam-controller steering-wheel xbox-controller xbox-controller-gyroscope

Last synced: about 1 month ago
JSON representation

External Arduino gyroscope & pedals for any Xbox compatible gamepads / Внешний Arduino гироскоп и педали для Xbox совместимых геймпадов

Awesome Lists containing this project

README

        

[![EN](https://user-images.githubusercontent.com/9499881/33184537-7be87e86-d096-11e7-89bb-f3286f752bc6.png)](https://github.com/r57zone/X360Advance/)
[![RU](https://user-images.githubusercontent.com/9499881/27683795-5b0fbac6-5cd8-11e7-929c-057833e01fb1.png)](https://github.com/r57zone/X360Advance/blob/master/README.RU.md)

# X360Advance
Внешний Arduino гироскоп для любых XInput совместимых геймпадов, с его помощью можно более точно прицеливаться и рулить. Кнопки позволяют переключать режимы прямо во время игры. [Поддерживаются внешние педали](https://github.com/r57zone/XboxExternalPedals), использовать их можно даже без гироскопа.

[![YouTube-X360Advance](https://user-images.githubusercontent.com/9499881/52436336-77815c80-2b2d-11e9-8d56-4ff82d82f48c.gif)](https://youtu.be/lNH2shRDchw)
[![YouTube-X360Advance](https://user-images.githubusercontent.com/9499881/52436371-91bb3a80-2b2d-11e9-8bd1-3399e4026962.gif)](https://youtu.be/lNH2shRDchw)

Есть 3 режима использования:

1. По умолчанию - отсуствие использования гироскопа (кнопка 1 - digital pin 5)
2. Руль - эмуляция левого стика гироскопом (кнопка 2 - digital pin 4)
3. FPS - движение мыши наклонами гироскопа (кнопка 3 - digital pin 3)

Центрирование осей происходит при нажатии кнопки руля или FPS.

## Настройка: первый способ (рекомендуется)
[Первый способ](https://youtu.be/jzjp3BKtdSs) заключается в том, чтобы использовать программу "XInput Injector". Она находиться в области уведомлений и позволяет в пару кликов внедриться в процесс игры, и использовать гироскоп.

![](https://user-images.githubusercontent.com/9499881/69273989-e2021580-0bf2-11ea-8e0f-aa65e3e05ceb.png)

Перед использованием необходимо лишь запустить программу "X360Advance Settings", ввести номер COM-порта, изменить чувствительность движения мыши и руля, по умолчанию стоят рекомендованные настройки. Далее чувствительность мыши можно изменять уже в самих играх.

Для удобства можно также добавить "XInput Injector" в автозагрузку.

В самой программе "XInput Injector" достаточно выбрать название процесса и кликнуть по нему, после успешного внедрения воспроизведется звук подключения нового оборудования.

## Настройка: второй способ
Второй способ использования заключается в том, чтобы копировать прокси dll в папку самой игры. Способ имеет плохую совместимость, работает преимущественно со старыми играми.

Для настройки необходимо изменить номер COM-порта в файле "X360Advance.ini", чувствительность движения мыши и руля, по умолчанию стоят рекомендованные настройки.

Далее необходимо скопировать файлы "xinput1_3.dll" (в соответствии с разрядностью игры, для 32-битной игры из папки x86, для 64-битной из папки 64) в папку с игрой и запустить игру.

Возможно, для некоторых игр придется переименовать "xinput1_3.dll" в одно из названий: "xinput9_1_0.dll", "xinput1_1.dll", "xinput1_2.dll" или "xinput1_4.dll" (только Metro приложения).

Для игр, в которых XInput dll библиотека не заработала, можно также использовать приложение "X360AdvanceApp", которое позволяет просто эмулировать мышь для прицеливания.

## Внешний Arduino гироскоп
Необходимо купить [Arduino Nano](http://ali.pub/2oy73f), датчик вращения [MPU 6050 GY-521](http://ali.pub/2oy76c), [3 кнопки](http://ali.pub/33lzue), [плату для прототипирования](http://ali.pub/340eo5), [кабель 2 м. miniUSB](http://ali.pub/340epp) или [microUSB](http://ali.pub/340eqa) (в зависимости от Arduino) и [ленту липучку](http://ali.pub/33pbqa). Спаять по схеме. Закрепить на задней части корпуса, например, резинками.

![](https://user-images.githubusercontent.com/9499881/52437030-42760980-2b2f-11e9-8ce5-14b45b30ca31.png)

![](https://user-images.githubusercontent.com/9499881/60760041-9aae2a80-a03f-11e9-81a0-e87cf84a0660.png)

Также можно сделать всего один провод, с помощью USB-хаба. [USB-хаб](http://alii.pub/6d2ngp) имеет небольшую плату и её можно разместить внутри геймпада.

![](https://user-images.githubusercontent.com/9499881/60759864-dc89a180-a03c-11e9-8bf4-d0b84894c0e1.png)

Также можно упаковать всё в корпус контроллера. Для этого нужно удалить элементы поддержки платы с задней части внутренней стороны.

[![](https://user-images.githubusercontent.com/9499881/85574543-ed656580-b647-11ea-9a93-e8802a5c209b.png)](https://user-images.githubusercontent.com/9499881/85574534-ec343880-b647-11ea-9107-df005d7aa7b9.png)

Прошить скетч калибровки, положить на ровную поверхность, получить данные для калибровки. [Вписать данные калибровки в основной скетч](https://youtu.be/sKuiGC6Mxf0?t=184).

Прошивку и библиотеки можно найти по ссылке ниже.

## Возможные проблемы
Часть игр несовместимы с данным методом, поскольку не расчитаны на использование мыши и геймпада одновременно. У части игр могут постоянно изменяться значки кнопок (с клавиатура на геймпад и наоборот).

## Благодарности
* [MinHook](https://github.com/TsudaKageyu/minhook) за библиотеку хуков для Windows.
* [Injector от @Nefarius](https://github.com/nefarius/Injector) за удобный инжектор DLL-библиотек.
* [Injectable Generic Camera System от Frans Bouma](https://github.com/ghostinthecamera/IGCS-GITC) за примеры использования MinHook для подмены данных XInput.

## Загрузка
>Версия для Windows 7, 8.1, 10.

**[Загрузить](https://github.com/r57zone/X360Advance/releases)**

## Обратная связь
`r57zone[собака]gmail.com`