Но, в следствии тяжелого похмелья после вечера встреч с одноклассниками, меня хватило только на подключение джойстика к компьютеру и беглый обзор проблемы .
Джойстик у меня такой: Logitech Freedom 2.4 Cordless Joystick.
Для подключения к Linux ничего особенного делать не пришлось. Включил его в USB и он вроде заработал. Но как проверить, что он действительно работает? Для этого используем утилиту jstest из пакета joystick (sudo apt-get install joystick), итак запускаем jstest /dev/input/js0 и видим, что все отлично работает. В нашем распоряжении есть 4 аналоговых оси, две оси с дискретным пределом и 10 кнопок. На что все это использовать ? Ну предположим две оси на X и Y, одна на Z. Три кнопки для переключения режимов, кнопка на старт и кнопка на остановку программы. Ось throtle можно использовать для feed override. Когда доделаю свой чпу раскладчик можно будет использовать четвертую ось для поворота по оси A.
Итак, что удалось накопать по подключению джойстика к EMC2:
Первый вариант, подмена событий нажатия на кнопки джойстика нажатиями на соответствующие хоткеи средствами xorg. Для этого редактируем /etc/X11/xorg.conf, и добавляем примерно следующее:
Код: Выделить всё
Identifier "joystick"
Driver "joystick"
# proper path to your joypad could be found by looking into '/dev/input/by-id' directory
Option "Device" "/dev/input/event2"
# axis -X
Option "MapButton1" "key=Left"
# axis -Y
Option "MapButton2" "key=Down"
# axis +X
Option "MapButton3" "key=Right"
# axis +Y
Option "MapButton4" "key=Up"
# axis "step program"
Option "MapButton5" "key=t"
# axis "continus program"
Option "MapButton7" "key=s"
# axis -Z
Option "MapButton6" "key=Prior"
# axis +Z
Option "MapButton8" "key=Next"
# axis "continuos jogging"
Option "MapButton9" "key=c"
# axis "zero G54 offset on selected axis"
Option "MapButton10" "key=Shift_L,Home"
# axis "change jogging speed"
Option "MapAxis1" "mode=accelerated keylow=comma keyhigh=period"
# axis "change jogging step"
Option "MapAxis2" "mode=accelerated keylow=i, keyhigh=Shift_L,i"
EndSection
Второй вариант, настроить джойстик через hal. Для этого в hal есть специальная штука simulated encoder. При помощи нее будем обрабатывать команды с джойстика. Таким образом можно будет контролировать скорость перемещения и осуществлять плавные передвижения на любой скорости. Но подробнее об этом позже - когда разберусь и все настрою у себя (хотя все выглядит просто и логично). Пока дам ссылку на английскую статью по этому поводу: http://wiki.linuxcnc.org/emcinfo.pl?Usi ... NC_Machine.