_Baloo_ Posted April 1 Posted April 1 (edited) Всем привет! Хочу поделиться утилитой, которая родилась из технической необходимости, и рассказать о большом обновлении (Версия 1.7). Предыстория: > Я использую Defender Cobra M5, в который интегрировал «потроха» от старого джойстика HAMA (ради дополнительных кнопок и осей, а заодно и вибромоторчика в ручке). В системе это два разных устройства. Штатный FFB в ИЛ-2 в такой связке работает некорректно: либо не включается вовсе, либо начинает задирать нос самолета, так как игра ждет полноценный механизм обратной связи с центровкой, а у меня — только вибромотор. Перерыв весь интернет, я не нашел простого решения. Большинство софта переводит телеметрию в аудио (для вибронакидок). Я сначала сделал утилиту, которая переводит аудио в вибрацию, но это дает лишние задержки и прослойки. В итоге написал свою программу. Кому подойдет: Тем, у кого джойстик имеет только вибромотор (без силовых моторов на осях). Тем, у кого «гибридные» сборки из нескольких контроллеров. [НОВОЕ] Всем, кто собирает джойстики своими руками (DIY) на базе плат Arduino и популярной прошивки MMJOY2. Обладателям старых FFB-устройств, где штатная реализация в игре работает плохо. Всем, у кого устройство определяется в Windows как «игровой контроллер с поддержкой вибрации» (в драйвере есть тест вибро). Что делает утилита: Напрямую берет данные из UDP-телеметрии ИЛ-2 и превращает их в честную вибрацию без звуковых прослоек. Что появилось в версии 1.7 (Поддержка Ардуино и MMJOY2): Теперь программа официально умеет работать с кастомными контроллерами на базе MMJOY2 [v20151118]. Вывод эффектов обратной отдачи можно реализовать на обычном мелком вибромоторчике (3-6V) через популярную связку: умный светодиодный драйвер WS2811 (вешается на цифровой пин B5 Ардуины) + составной транзистор КТ972А. В самом конфигураторе MMJOY2 настройка занимает полминуты: на вкладке LED достаточно включить галочку LED-RGB WS2811(порт B5) и выбрать цвет по умолчанию White. Полную принципиальную схему распаковки железа (куда паять подтягивающий резистор, защитный диод и конденсатор), а также описание физических нюансов работы этой схемы я подробно расписал в файле README на странице проекта. Эффекты (настраиваются отдельно): Обороты двигателя, форсаж, перекрут (overspeed). Стрельба и повреждения планера. Тряска на перегрузках. Выпуск шасси/закрылок и характерный толчок при касании земли (Touchdown). Инструкция и скачивание: Проект полностью открытый. Исходники, подробная инструкция по настройке игры, схема подключения железа и сам готовый автономный .exe файл (теперь со встроенной библиотекой SDL2 и красивой иконкой) лежат в релизах на GitHub: 👉 https://github.com/Alex-r-l/IL2-Haptic-Feedback Буду рад, если кому-то мой «костыль» поможет так же, как помог мне! Чистого неба! Edited June 13 by _Baloo_ 3 1
mak Posted April 4 Posted April 4 привет спасибо за труд поставил прогу на G 940 в родном софте ффб отключил тестирую убрал стрельбу в ноль тряска не уменьшается как это исправить?
_Baloo_ Posted April 4 Author Posted April 4 (edited) Привет. Постоянная тряска возникает только при включённом двигателе, поэтому у меня он всегда стоит в «0». В версии 1.6 всё работает стабильно, лишней тряски нет. Если у вас постоянная тряска всё же присутствует, нужно понять, какой именно ползунок за неё отвечает. Попробуйте поочерёдно выставлять каждый ползунок в ноль (значение «0» полностью отключает параметр) и определить, из-за какого из них возникает проблема. Также важно указать, на каком самолёте это происходит и при каких условиях. Опишите ситуацию подробнее — попробую помочь, если где-то что-то настроено неправильно. Если вы имеете в виду, что мощность вибрации не уменьшается при стрельбе, то так быть не должно. Возможно, у вас не отключена обратная связь в игре (после отключения игру нужно перезапустить). Edited April 4 by _Baloo_
_Baloo_ Posted April 4 Author Posted April 4 (edited) 10 минут назад, mak сказал: привет а в игре обратку надо выкл? Да, обязательно! ### Настройка игры Для работы программы необходимо включить передачу данных телеметрии в ИЛ-2: 1. Перейдите в папку с игрой, найдите файл data/startup.cfg. 2. Откройте его через блокнот и добавьте (или отредактируйте) следующие секции: [KEY = motiondevice] addr = "127.0.0.1" decimation = 2 enable = true port = 29373 [KEY = telemetrydevice] addr = "127.0.0.1" decimation = 2 enable = true port = 29373 Edited April 4 by _Baloo_
mak Posted April 4 Posted April 4 тестирую на лагг 29 всё в ноль и по другому ставил ффб одинаковая управлять стало легче настройки не меняются кнопку обновить нажимаю
_Baloo_ Posted April 4 Author Posted April 4 (edited) 47 минут назад, mak сказал: ЭТО сделано обратку выключил в игре и рус тугой стал как уменьшить 25 минут назад, mak сказал: тестирую на лагг 29 всё в ноль и по другому ставил ффб одинаковая управлять стало легче настройки не меняются кнопку обновить нажимаю Вы, видимо, невнимательно прочитали описание утилиты - у вас джойстик G940 с силовой обратной связью. Я же делал программу только для вибромоторчика. Она работает исключительно с виброоткликом и никак не влияет на силовую обратную связь. У вас и штатная обратная связь в игре должна работать корректно. У меня она работала неправильно, поэтому я и сделал эту утилиту. Если вы всё-таки хотите использовать мою утилиту для настраиваемой вибрации и при этом сохранить корректную работу силовой части, можно попробовать следующий вариант: включить обратную связь в игре, но ползунок тряски выставить в ноль. В этом случае силовая часть будет работать напрямую от игры, а вибрация - через мою утилиту. Не знаю будет работать или нет, но по идее должно, напишите если будет работать такой вариант. 01.04.2026 в 19:33, _Baloo_ сказал: Кому подойдет: Тем, у кого джойстик имеет только вибромотор (без силовых моторов на осях). Edited April 4 by _Baloo_
Antony99 Posted April 6 Posted April 6 01.04.2026 в 19:33, _Baloo_ сказал: Всем привет! Хочу поделиться утилитой, которая родилась из технической необходимости. Предыстория: > Я использую Defender Cobra M5, в который интегрировал «потроха» от старого джойстика HAMA (ради дополнительных кнопок и осей, а заодно и вибромоторчика в ручке). В системе это два разных устройства. Штатный FFB в ИЛ-2 в такой связке работает некорректно: либо не включается вовсе, либо начинает задирать нос самолета, так как игра ждет полноценный механизм обратной связи с центровкой, а у меня — только вибромотор. Перерыв весь интернет, я не нашел простого решения. Большинство софта переводит телеметрию в аудио (для вибронакидок). Я сначала сделал утилиту которая переводит аудио в вибрацию, но это дает лишние задержки и прослойки. В итоге написал свою программу. Кому подойдет: Тем, у кого джойстик имеет только вибромотор (без силовых моторов на осях). Тем, у кого «гибридные» сборки из нескольких контроллеров. Обладателям старых FFB-устройств, где штатная реализация в игре работает плохо. Всем, у кого устройство определяется в Windows как «игровой контроллер с поддержкой вибрации» (в драйвере есть тест вибро). Что делает утилита: Напрямую берет данные из UDP-телеметрии ИЛ-2 и превращает их в честную вибрацию без звуковых прослоек. Эффекты (настраиваются отдельно): Обороты двигателя, форсаж, перекрут (overspeed). Стрельба и повреждения планера. Тряска на перегрузках. Выпуск шасси/закрылок и характерный толчок при касании земли(Touchdown). Инструкция и скачивание: Проект открытый, исходники и готовый EXE лежат на GitHub: https://github.com/Alex-r-l/IL2-Haptic-Feedback Буду рад, если кому-то мой «костыль» поможет так же, как помог мне! Круто. Респек. Может получится сиё чудо поженить со старыми вибронакидками и накидками для вибромассажа.
_Baloo_ Posted June 13 Author Posted June 13 (edited) Релиз v1.7: Поддержка MMJOY2 и обратная отдача (Haptic Feedback) В этой версии добавлена официальная поддержка контроллеров на базе прошивки MMJOY2 (версия v20151118) для вывода эффектов вибрации в симуляторе ИЛ-2 Штурмовик. Ниже приведено подробное руководство по аппаратной сборке схемы управления моторчиком и настройке конфигуратора. 🛠 Схема подключения железа (WS2811 + КТ972А) Вывод обратной отдачи реализован через умную микросхему-драйвер WS2811, которая управляет мощным составным транзистором КТ972А, приводящим в действие вибромотор. Подключение микросхемы WS2811 к Arduino (на примере Pro Micro): Ножка №8 (VDD) ➡️ Плюс +5V Arduino Ножка №4 (GND) ➡️ Минус GND Arduino Ножка №6 (DIN) ➡️ Цифровой пин B5 Arduino Ножка №7 (SET) ➡️ Припаять к Ножке №4 (GND) микросхемы Организация инверсного ключа на транзисторе КТ972А: Ножка №1 (OUTR) микросхемы WS2811 соединяется с Базой транзистора КТ972А. Между Ножкой №1 и Ножкой №8 (+5V) обязательно впаивается подтягивающий резистор номиналом 2 кОм. Эмиттер транзистора КТ972А подключается к общему минусу (GND). Коллектор транзистора идет на Минус (-) вибромоторчика (тип 1220, расчетное напряжение 3-6 Вольт). Плюс (+) вибромоторчика подключается к питанию +5V Arduino напрямую. Конденсатор 10 мкФ установлен между Базой транзистора КТ972А и Минусом (GND). Он работает как аппаратный фильтр, сглаживая ШИМ-сигнал от микросхемы WS2811. Благодаря этому интенсивность вибрации меняется плавно и реалистично, без резких ступенчатых рывков. Защита и стабилизация питания: Между контактами Плюс (+) и Минус (-) самого моторчика необходимо параллельно впаять защитный диод 1N4007 (катодом к плюсу), чтобы эффективно гасить обратные токи самоиндукции. Для сглаживания просадок по питанию при старте мотора установлен один электролитический конденсатор емкостью 470 мкФ между контактами GND и VDD на плате Arduino. ⚙ Настройка конфигуратора MMJOY2 Чтобы прошивка контроллера корректно отправляла сигналы на пин управления, выполните следующие шаги: Откройте конфигуратор MMJOY2 [v20151118]. Перейдите на вкладку LED. Установите галочку напротив пункта LED-RGB WS2811(порт B5). В выпадающем списке «Цвет по умолчанию» выберите White. Нажмите кнопку «Записать в контроллер» в правом нижнем углу для сохранения настроек в память Ардуины. ⚠ Важное примечание по работе схемы (Особенность инверсии) В силу аппаратной архитектуры чипа WS2811 (управление логикой по открытому коллектору), схема имеет физически инвертированную логику: Когда скрипт IL2_Haptic_Feedback запущен, он полностью контролирует процесс и передает корректные уровни ШИМ. Когда скрипт НЕ запущен, микросхема WS2811 не получает входящих пакетов данных. В этот момент подтягивающий резистор 2 кОм удерживает транзистор КТ972А полностью открытым. Если при выключенном скрипте произойдет резкое физическое воздействие на ручку (удар, сильная тряска), это может вызвать микро-дребезг контактов тумблеров или кратковременный сбой, из-за чего контроллер MMJoy2 гасит светодиод, переводя ножку чипа в воздух. В результате подтяжка открывает транзистор, и мотор уходит в постоянную непрерывную вибрацию. Это является аппаратной особенностью данной сборки и не связано со стабильностью программного кода. Edited June 14 by _Baloo_ 1
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now