Переместите рулевое колесо Logitech под углом с помощью Force Feedback API
Я пытаюсь переместить рулевое колесо Logitech на определенный угол и удерживать его там с помощью Force Feedback API. Я в порядке с абсолютно любым языком программирования на любой платформе (Windows, Linux, macOS), если вы могли бы дать мне несколько советов о том, как я могу реализовать это.
1 ответ
Поддержка принудительной обратной связи фактически присутствует в ядре Linux в большинстве дистрибутивов. Я думаю, что лучше всего заглянуть в приложение джойстика, чтобы управлять им. Он имеет джойстик управления с поддержкой обратной связи. Вы можете установить его в дистрибутив на основе Debian, например Ubuntu, используя:
sudo apt-get install joystick
Рядом с приложениями для считывания позиций контроллера (jstest и jstest-gtk) он имеет несколько команд для управления принудительной обратной связью, например:
fftest
ffcfstress
ffmvforce
Вам нужно будет найти порт, где можно управлять вашим гоночным колесом. Вы можете сделать это, введя:
cat /proc/bus/input/devices |less
Если вы подключены, вы должны найти свой гоночный руль с соответствующим названием и после этого что-то вроде:
N: Name="Logitech Inc. WingMan Formula Force GP"
...
H: Handlers=js0 event9
Затем вы можете использовать ffcfstress, чтобы ваш гоночный руль колебался. Исправьте это надежно и введите:
sudo ffcfstress -d /dev/input/event9
Вам может потребоваться указать ось, которая имеет обратную связь по усилию, которая обычно находится только на колесе (не на педалях)
sudo ffcfstress -d /dev/input/event9 -x 6
Итак, я думаю, что теперь вы заинтересованы в исходном коде, поэтому вы должны сделать это, чтобы получить его:
apt-get source joystick
Вы найдете исходный код здесь:
./utils/ffcfstress.c
Вы также можете найти эту страницу документации о принудительной обратной связи в ядре:
Веселитесь, и, пожалуйста, отдайте свой результат сообществу!