Переместите рулевое колесо 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

Вы также можете найти эту страницу документации о принудительной обратной связи в ядре:

Веселитесь, и, пожалуйста, отдайте свой результат сообществу!

Другие вопросы по тегам