Почти FFB Тензоджойстик
( Первая часть: Тензоджойстик на четырёх весовых датчиках )
( Вторая часть: Тензоджойстик на трёх весовых датчиках )
Ручкой "Soft-Hard" удобно регулировать жёсткость РУС, но только перед вылетом. В бою нужно увеличивать жёсткость в пикировании и на большой скорости, и уменьшать жёсткость с падением скорости. Я это просто не успеваю делать. Но именно это делает FFB в игре (если FFB в игре хорошо реализована).
Я попробовал ввести обратную связь в тензоджойстик добавлением ещё одного софтового триммера. Триммер управляется по данным FFB и регулирует жёсткость и центральное положение РУС. Периодические эффекты выведены в отдельный канал на вибромотор, и служат для индикации срыва потока и попаданий пуль в самолёт. Так получился "Почти FFB" тензоджойстик.
Схема джойстика осталась практически той же, добавлен только вибромотор. Вибромотор подключен к Ардуино через фильтр-усилитель тока на одном транзисторе. Фильтр-усилитель выделяет постоянную составляющую из ШИМ сигнала и устраняет гудение мотора на частоте ШИМ 488 Гц.
Фильтр-усилитель:
Вибромотор - подойдёт любой на 3,3V. Я использовал вибромотор от старинного кнопочного мобильника:
Для прошивки нужен скетч QuasiFFBLCJoy
Скетч по прежнему поддерживает работу РУС на четырёх, трёх или двух тензобалках, подключенных через HX711 или INA122. Регулятор "Soft-Hard" и кнопки "Trimmer" и "Center" сохранены и работают, как прежде.
Настройки скетча
Настройки скетча прежние, добавились лишь пара строк для настройки подключения вибромотора:
#define use_vibro 10 - контакт PWM Arduino Pro Micro, к которому подключен вибромотор. Можно использовать контакты: 3, 5, 6, 9 или 10 (если указать 0 - значит, вибромотор не подключен).
#define min_vibro 50 - минимальный код PWM, при котором начинает вращаться вибромотор. Обычно это значение между 30 и 60.
После прошивки, эффекты FFB в джойстике настраиваются специально разработанной программой FFB LoadCell Joy Control. Её можно найти в папке со скачанным скетчем.
Настройка эффектов в FFBLoadCellJoyControl
После запуска FFB LoadCell Joy Control появится окно, в котором нужно выбрать подключенный Quasi FFB джойстик из выпадающего списка:
На индикаторе "Test" видим три шарика и окружность. Вывод шариков можно включать/отключать соответствующими кнопками.
Зелёный шарик показывает входные координаты джойстика без сил FFB. Именно такие координаты были бы в предыдущих скетчах.
Синий шарик показывает координаты действующей силы FFB. Если игра не запущена, синий шарик находится в центре.
Красный шарик показывает выходные координаты джойстика, уже с учётом сил FFB. Именно эти координаты поступают в игру.
Синяя штриховая окружность показывает уровень виброэффектов. Чем диаметр окружности больше, тем быстрее вращается вибромотор.
На панели Gain расположены 12 слайдеров для регулировки уровней эффектов FFB.
На панели FFB расположены дополнительные слайдеры.
Friction Vel - максимальная скорость для эффекта Friction
Inertion Vel - максимальная скорость для эффекта Inertion
Damper Vel - максимальная скорость для эффекта Damper
Ограничением скорости (сдвигом слайдеров влево) можно сделать РУС очень инертным, вязким и массивным.
При некоторых положениях слайдеров обратная связь FFB может переёти в автогенерацию (самовозбуждение). С этим помогают справиться FFB фильтры. Вот их настройки:
FID Alpha - коэффициент экспоненциального фильтра для эффектов Friction, Inertion и Damper. Сдвиг влево устраняет возбуждение в этих эффектах.
FFB Alpha - коэффициент экспоненциального фильтра сразу для всех эффектов FFB. Сдвиг влево устраняет возбуждение в эффектах FFB.
При перемещении ползунков параметры сразу изменяются в ОЗУ джойстика и будут действовать до отключения джойстика от USB. Чтобы настройки сохранились и после этого, нужно нажать кнопку [Write] , которая запишет все настройки в EEPROM.
После настройки для работы FFB запускать программу FFB LoadCell Joy Control не обязательно. FFB эффекты работают и без неё.
Для настройки и проверки FFB эффектов удобно использовать программы ForceTest и fedit.
Видео
В результате получился почти FFB джойстик без сложной механики и мощных двигателей. Характер управления полётом изменился. Под действием FFB РУС становится временами намного жёстче. Регулятор "Soft-Hard" я теперь устанавливаю в более мягкое положение. Прицеливаться стало даже легче.
Сравнить с обычным джойстиком легко: Если передвинуть слайдер Total влево до минимума, получим джойстик без FFB.
Ссылки
Скетч и управляющая программа: QuasiFFBLCJoy.rar
Первая часть: Тензоджойстик на четырёх весовых датчиках
Вторая часть: Тензоджойстик на трёх весовых датчиках
Обсудить: Для чего годятся джойстики на тензодатчиках?
Удачи!
#diy #ffb #straingauge #loadcell #joystick