EMC2 LinuxCNC и Joystick
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: EMC2 LinuxCNC и Joystick
Тогда получается что value в самом начале -offset... хммм...
Посмотри как у него пин -counts меняется...
Посмотри как у него пин -counts меняется...
- verser
- Мастер
- Сообщения: 1884
- Зарегистрирован: 21 июл 2013, 22:28
- Репутация: 1278
- Настоящее имя: Сергей
- Откуда: Тбилиси
- Контактная информация:
Re: EMC2 LinuxCNC и Joystick
О, с изменениями пин -counts у нас детектив просто получается:Nick писал(а):Посмотри как у него пин -counts меняется...
1. Обнаружил в процессе работы что сразу после reboot Ubuntu ВСЁ работает корректно !!! и пин -counts при включении станка успешно инициализируется c 0 на 511 !!! Это хорошая новость.
2. В случае перезапуска LinuxCNC (без reboot system) включаем станок - пин -counts=0 и принажатии гашетки ОСТАЮТСЯ=0 хотя оси крутятся и координаты на экране Axis тоже крутятся с максимальной скоростью(при этом уточняю - по Х в сторону увеличения от 0, по У - в отрицательном направлении от 0, по Z не крутятся - что тоже непонятно)
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: EMC2 LinuxCNC и Joystick
и 3. если дернуть осью, то counts сбрасывается на 511?
- verser
- Мастер
- Сообщения: 1884
- Зарегистрирован: 21 июл 2013, 22:28
- Репутация: 1278
- Настоящее имя: Сергей
- Откуда: Тбилиси
- Контактная информация:
Re: EMC2 LinuxCNC и Joystick
Сделал вариант файла управления джойстиком для 4х осей:
Вот эта фигня теперь поворачивет ось А:
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: EMC2 LinuxCNC и Joystick
А почему не поворотом ручки?
- verser
- Мастер
- Сообщения: 1884
- Зарегистрирован: 21 июл 2013, 22:28
- Репутация: 1278
- Настоящее имя: Сергей
- Откуда: Тбилиси
- Контактная информация:
Re: EMC2 LinuxCNC и Joystick
На повороте ручки уже ось Z стояла
Хотя теперь может логичнее и поменять их местами, поворот для поворотной оси само то. Это совсем просто, кому захочется вот здесь перетусовать можно оси
Хотя теперь может логичнее и поменять их местами, поворот для поворотной оси само то. Это совсем просто, кому захочется вот здесь перетусовать можно оси
Код: Выделить всё
# Map the raw axes to the deadzones so the deadzones have inputs.
net Xjoydead deadzone.0.in <= input.0.abs-x-position
net Yjoydead deadzone.1.in <= input.0.abs-y-position
net Zjoydead deadzone.2.in <= input.0.abs-rz-position
net Bjoydead deadzone.6.in <= input.0.abs-throttle-position
#Counts are in s32, and deadzone requires float. Convert.
net Xjogconv conv-s32-float.3.in <= input.0.abs-x-counts
net Yjogconv conv-s32-float.4.in <= input.0.abs-y-counts
net Zjogconv conv-s32-float.5.in <= input.0.abs-rz-counts
net Bjogconv conv-s32-float.10.in <= input.0.abs-throttle-counts
- dinkata
- Мастер
- Сообщения: 1025
- Зарегистрирован: 05 сен 2014, 09:07
- Репутация: 389
- Настоящее имя: Диньо
- Откуда: Болгария
- Контактная информация:
Re: EMC2 LinuxCNC и Joystick
Вполне согласен ,у меня конфигурация Linuxcnc -5i25+7i77+7i64 пока на рабочем столе ,тестирую разньйеverser писал(а):Скажу что чертовски удобно иметь джойстик рядом со станком
функции , вьйучит перед монтаж на станке.Нашел Joystick Logitech Attack3 ,очен понравилас что в конфигурация
можно вьйбрат работа с Joystick ,найти устройство и тестироват пиньй .Кроме кнопочки у Attack3 имеет и :
input.0.abs-x-counts 0 - 127 - 255
input.0.abs-y-counts 0 - 127 - 255
input.0.abs-z-counts 0 - 127 - 255
Для тестирование я их пока не пользую ,для соответний Jog взял пиньй на Х и У в негативе,в поситиве .
Запустил и все заработало ,но....когда нажимаем жойстик влево например -Х ,чуть чуть вперед включается и -У .
Для жойстика так и надо ,но на станок мне не хочется чтоб ето бьйло .
У Вас исправлено ето ?
Простите ошибки, я иностранец.У моя клавиатура нету "э" и "ы"
- verser
- Мастер
- Сообщения: 1884
- Зарегистрирован: 21 июл 2013, 22:28
- Репутация: 1278
- Настоящее имя: Сергей
- Откуда: Тбилиси
- Контактная информация:
Re: EMC2 LinuxCNC и Joystick
Думаю, что так быть не должно. За этим безобразием следит компонент deadzone:dinkata писал(а): Запустил и все заработало ,но....когда нажимаем жойстик влево например -Х ,чуть чуть вперед включается и -У .
Для жойстика так и надо ,но на станок мне не хочется чтоб ето бьйло .
У Вас исправлено ето ?
Код: Выделить всё
setp deadzone.0.center 0
setp deadzone.0.threshhold .5
setp deadzone.1.center 0
setp deadzone.1.threshhold .5
setp deadzone.2.center 0
setp deadzone.2.threshhold .8
setp deadzone.6.center 0
setp deadzone.6.threshhold .5
...
setp deadzone.3.center 511
setp deadzone.3.threshhold 20
setp deadzone.4.center 511
setp deadzone.4.threshhold 20
setp deadzone.5.center 127
setp deadzone.5.threshhold 20
setp deadzone.7.center 127
setp deadzone.7.threshhold 20
- dinkata
- Мастер
- Сообщения: 1025
- Зарегистрирован: 05 сен 2014, 09:07
- Репутация: 389
- Настоящее имя: Диньо
- Откуда: Болгария
- Контактная информация:
Re: EMC2 LinuxCNC и Joystick
Спасибо , буду пользоват ваш хал как основа .verser писал(а):Для разных моделей джойстиков эти параметры нужно подбирать индивидуально.
Простите ошибки, я иностранец.У моя клавиатура нету "э" и "ы"
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: EMC2 LinuxCNC и Joystick
Не знаю есть это в вашем hal или нет, но крайне желательно добавить активацию джойстика по кнопке.
Т.е. чтобы пока не нажата определенная кнопка - джойстик не работает.
Т.е. чтобы пока не нажата определенная кнопка - джойстик не работает.
- dinkata
- Мастер
- Сообщения: 1025
- Зарегистрирован: 05 сен 2014, 09:07
- Репутация: 389
- Настоящее имя: Диньо
- Откуда: Болгария
- Контактная информация:
Re: EMC2 LinuxCNC и Joystick
у Вас хорошие коментарии ,но на английской ,не сможите сделат инструкция именно о калибровке по русскомуverser писал(а): в его пинах определяются абсолютные центры осей и сами мертвые зоны вокруг этих центров. Для разных моделей джойстиков эти параметры нужно подбирать индивидуально.
Простите ошибки, я иностранец.У моя клавиатура нету "э" и "ы"
- verser
- Мастер
- Сообщения: 1884
- Зарегистрирован: 21 июл 2013, 22:28
- Репутация: 1278
- Настоящее имя: Сергей
- Откуда: Тбилиси
- Контактная информация:
Re: EMC2 LinuxCNC и Joystick
Спасибо за доверие .dinkata писал(а): у Вас хорошие коментарии ,но на английской ,не сможите сделат инструкция именно о калибровке по русскому
Последний раз редактировалось verser 17 ноя 2014, 19:32, всего редактировалось 1 раз.
- dinkata
- Мастер
- Сообщения: 1025
- Зарегистрирован: 05 сен 2014, 09:07
- Репутация: 389
- Настоящее имя: Диньо
- Откуда: Болгария
- Контактная информация:
Re: EMC2 LinuxCNC и Joystick
спасибо ,я откоректировал ваш файл под моя конфигурация для Logitech Attack3 ,должен сказат что спешил увидет результатverser писал(а):но на конкретные вопросы смогу ответить.
и не все функции мне понятньйе ,так что не смейтесь новичка , а если сможите помогите я хочу пользоват Attack3 для токарной станок
жойстик влево /вправо для ос Z ,вперед /назад для ос Х .Кстати пробовал ,работает все ,но хочется увеличит деадзоне ,т.е. жог срабатовал
почти в конца хода жойстика .А если захочется увеличит скорости -как мащабироват ?Ест у меня и такое сообщение :
joypad_postgui.hal:3: Warning: File contains DOS-style line endings.
Прикрепляю переделаной файл ,ето черновик(сейчас я в дома, проект на работе) ,потом делал еще что то ,но идея такая .
Код: Выделить всё
# Include your custom_postgui HAL commands here
# This file will not be overwritten when you run PNCconf again
loadrt mux2 count=10
loadrt flipflop count=2
loadrt and2 count=2
loadrt not count=10
loadrt encoder num_chan=2
loadrt sim_encoder num_chan=2
loadrt conv_s32_bit count=8
loadrt conv_bit_s32 count=8
loadrt conv_s32_float count=13
loadrt wcomp count=4
loadrt edge count=2
loadrt deadzone count=4
loadrt offset count=2
setp deadzone.0.center 0
setp deadzone.0.threshhold .8
setp deadzone.1.center 0
setp deadzone.1.threshhold .8
setp deadzone.2.center 127
setp deadzone.2.threshhold 20
setp deadzone.3.center 127
setp deadzone.3.threshhold 20
net Xjoydead deadzone.0.in <= input.0.abs-x-position
net Yjoydead deadzone.1.in <= input.0.abs-y-position
net Xjogconv conv-s32-float.3.in <= input.0.abs-x-counts
net Yjogconv conv-s32-float.4.in <= input.0.abs-y-counts
net Xjogdead deadzone.2.in <= conv-s32-float.3.out
net Yjogdead deadzone.3.in <= conv-s32-float.4.out
# Set up the one-shot pulses. This will allow a jog at just one increment.
# x,y - 491 is the midpoint, 20 is min, 1003 is max. Window is 390 - 590
# z - 127 is the midpoint, 1 is min, 255 is max. Window is 100 - 150
setp wcomp.0.min 100
setp wcomp.0.max 155
setp wcomp.1.min 15
setp wcomp.1.max 100
setp edge.0.in-edge FALSE
setp offset.0.offset -1
setp edge.0.out-width-ns 1000000
setp wcomp.2.min 100
setp wcomp.2.max 155
setp wcomp.3.min 15
setp wcomp.3.max 100
setp edge.1.in-edge FALSE
setp offset.1.offset -1
setp edge.1.out-width-ns 1000000
# Set up X axis one-shot
net Xwindow wcomp.0.in <= deadzone.2.out
net Xwindow wcomp.1.in <= deadzone.2.out
net XwindowInv not.0.in <= wcomp.0.out
net Xedge edge.0.in <= not.0.out
net Xupconv1 conv-bit-s32.0.in <= edge.0.out
net Xupconv2 conv-s32-float.0.in <= conv-bit-s32.0.out
net Xupconvinv1 conv-bit-s32.1.in <= edge.0.out-invert
net Xupconvinv2 conv-s32-float.2.in <= conv-bit-s32.1.out
net Xupconvinv3 offset.0.in <= conv-s32-float.2.out
net Xjogleft mux2.3.in0 <= conv-s32-float.0.out
net Xjogright mux2.3.in1 <= offset.0.out
net XjogDirection mux2.3.sel <= wcomp.1.out
net Xjoglink mux2.0.in1 <= mux2.3.out
# Set up Y axis one-shot
net Ywindow wcomp.2.in <= deadzone.3.out
net Ywindow wcomp.3.in <= deadzone.3.out
net YwindowInv not.1.in <= wcomp.2.out
net Yedge edge.1.in <= not.1.out
net Yupconv1 conv-bit-s32.2.in <= edge.1.out
net Yupconv2 conv-s32-float.6.in <= conv-bit-s32.2.out
net Yupconvinv1 conv-bit-s32.3.in <= edge.1.out-invert
net Yupconvinv2 conv-s32-float.7.in <= conv-bit-s32.3.out
net Yupconvinv3 offset.1.in <= conv-s32-float.7.out
net Yjogleft mux2.4.in0 <= conv-s32-float.6.out
net Yjogright mux2.4.in1 <= offset.1.out
net YjogDirection mux2.4.sel <= wcomp.3.out
net Yjoglink mux2.1.in1 <= mux2.4.out
# We are setting up input.0.btn-joystick to be the mode selector.
net axisMode input.0.btn-joystick => not.5.in
net axisMode input.0.btn-joystick => not.6.in
net axisMode input.0.btn-joystick => not.7.in
net axisMode input.0.btn-joystick => not.8.in
net axisMode0 not.5.out => mux2.0.sel
net axisMode1 not.6.out => mux2.1.sel
net axisMode2 not.7.out => mux2.2.sel
net axisMode3 not.8.out => mux2.8.sel
net XnormalInput deadzone.0.out => mux2.0.in0
net YnormalInput deadzone.1.out => mux2.1.in0
# Create links between the axis pins and the speed pin of the sim-encoder for X Y (Z)
net velX mux2.0.out => sim-encoder.0.speed
net velY mux2.1.out => sim-encoder.1.speed
net XA sim-encoder.0.phase-A => encoder.0.phase-A
net XB sim-encoder.0.phase-B => encoder.0.phase-B
net YA sim-encoder.1.phase-A => encoder.1.phase-A
net YB sim-encoder.1.phase-B => encoder.1.phase-B
net countX encoder.0.counts => axis.0.jog-counts
net countY encoder.1.counts => axis.2.jog-counts
setp encoder.0.position-scale 1
setp encoder.0.x4-mode TRUE
setp encoder.1.position-scale 1
setp encoder.1.x4-mode TRUE
setp encoder.capture-position.tmax 0
setp encoder.update-counters.tmax 0
setp sim-encoder.0.ppr 58
setp sim-encoder.0.scale 1
setp sim-encoder.1.ppr 58
setp sim-encoder.1.scale -1
setp sim-encoder.make-pulses.tmax 0
setp sim-encoder.update-speed.tmax 0
setp axis.0.jog-enable TRUE
setp axis.2.jog-enable TRUE
# First, we select the two buttons for speed selection. We'll use 4 and 5 for 1/1000 and 4/10000, respectively.
net button_4 input.0.btn-top => flipflop.0.reset
net button_5 input.0.btn-top2 => flipflop.0.set
net button_4 input.0.btn-top => flipflop.1.reset
net button_5 input.0.btn-top2 => flipflop.1.set
net chosenJogSpeed flipflop.0.out => mux2.6.sel
net chosenJogDuration flipflop.1.out => mux2.7.sel
net jogscale mux2.6.out => axis.2.jog-scale # здесь поменял x joysticka для z станка- latche
net jogscale mux2.6.out => axis.0.jog-scale
setp flipflop.0.tmax 3750
setp mux2.6.tmax 3609 # если надо другая скорост ??
setp mux2.6.in0 0.1
setp mux2.6.in1 0.01 # если надо другая скорост ??
net JoypadMachineOn input.0.btn-base2 => halui.machine.on
net button_9 input.0.btn-base3 => halui.estop.activate
net JoypadSpindleStart input.0.btn-pinkie => halui.spindle.start
net JoypadSpindleStop input.0.btn-base => halui.spindle.stop
net JoypadSpindleFaster input.0.btn-thumb => halui.spindle.increase
net JoypadSpindleSlower input.0.btn-thumb2 => halui.spindle.decrease
net flood-is-on halui.flood.is-on => and2.0.in0
net flood-is-on halui.flood.is-on => not.3.in
net not-flood-is-on not.3.out => and2.1.in0
net button_11 input.0.btn-base5 => and2.0.in1
net button_11 input.0.btn-base5 => and2.1.in1
net floodOn and2.1.out => halui.flood.on
net floodOff and2.0.out => halui.flood.off
# Function Loading
addf deadzone.0 servo-thread
addf deadzone.1 servo-thread
addf deadzone.3 servo-thread
addf deadzone.4 servo-thread
addf conv-s32-float.3 servo-thread
addf conv-s32-float.4 servo-thread
addf conv-s32-float.5 servo-thread
addf conv-s32-float.10 servo-thread
#And now we add the position and jog conversions.
addf wcomp.0 servo-thread
addf wcomp.1 servo-thread
addf wcomp.2 servo-thread
addf wcomp.3 servo-thread
addf edge.0 servo-thread
addf edge.1 servo-thread
addf not.0 servo-thread
addf not.1 servo-thread
addf not.2 servo-thread
addf not.5 servo-thread
addf not.6 servo-thread
addf not.7 servo-thread
addf not.8 servo-thread
addf not.9 servo-thread
addf offset.0.update-output servo-thread
addf offset.1.update-output servo-thread
addf conv-s32-float.0 servo-thread
#addf conv-s32-float.1 servo-thread
addf conv-s32-float.2 servo-thread
addf conv-s32-float.6 servo-thread
addf conv-s32-float.7 servo-thread
addf conv-s32-float.8 servo-thread
addf conv-s32-float.9 servo-thread
addf conv-s32-float.11 servo-thread
addf conv-s32-float.12 servo-thread
addf mux2.3 servo-thread
addf mux2.4 servo-thread
addf mux2.5 servo-thread
addf mux2.9 servo-thread
addf conv-s32-bit.0 servo-thread
addf conv-s32-bit.1 servo-thread
addf conv-s32-bit.2 servo-thread
addf conv-s32-bit.3 servo-thread
addf conv-s32-bit.4 servo-thread
addf conv-s32-bit.5 servo-thread
addf conv-s32-bit.6 servo-thread
addf conv-s32-bit.7 servo-thread
addf conv-bit-s32.0 servo-thread
addf conv-bit-s32.1 servo-thread
addf conv-bit-s32.2 servo-thread
addf conv-bit-s32.3 servo-thread
addf conv-bit-s32.4 servo-thread
addf conv-bit-s32.5 servo-thread
addf conv-bit-s32.6 servo-thread
addf conv-bit-s32.7 servo-thread
# Update the last set of multiplexors before the encoder
addf mux2.0 servo-thread
addf mux2.1 servo-thread
addf mux2.2 servo-thread
addf mux2.8 servo-thread
# Now that the positioning data is up to date, we update the encoders, both real and simulated.
addf encoder.capture-position servo-thread
addf sim-encoder.update-speed servo-thread
addf encoder.update-counters servo-thread
addf sim-encoder.make-pulses servo-thread
# Now we can update the speed values. They aren't that critical in terms of calculation order, since the user will have to
# look down, press the button, then resume. The computer will react millions of times faster than even the twitchiest
# gamer / machinist.
addf flipflop.0 servo-thread
addf mux2.6 servo-thread
addf flipflop.1 servo-thread # здесь поменял ,ошибка базе треад нот фаунд
addf mux2.7 servo-thread
# Coolant is the slowest possible thing we can add due to the lag and the pump.
addf and2.0 servo-thread
addf and2.1 servo-thread # здесь поменял ,ошибка жой треад нот фаунд
addf not.3 servo-thread
- Вложения
-
- joypad_postgui.hal
- (8.74 КБ) 1136 скачиваний
Простите ошибки, я иностранец.У моя клавиатура нету "э" и "ы"
- verser
- Мастер
- Сообщения: 1884
- Зарегистрирован: 21 июл 2013, 22:28
- Репутация: 1278
- Настоящее имя: Сергей
- Откуда: Тбилиси
- Контактная информация:
Re: EMC2 LinuxCNC и Joystick
Решается например так: convert text file line endings between Windows CR/LF and Linux/Mac OS X formatdinkata писал(а): joypad_postgui.hal:3: Warning: File contains DOS-style line endings.
или Notepad++ умеет преобразовывать прямо из меню.
- verser
- Мастер
- Сообщения: 1884
- Зарегистрирован: 21 июл 2013, 22:28
- Репутация: 1278
- Настоящее имя: Сергей
- Откуда: Тбилиси
- Контактная информация:
Re: EMC2 LinuxCNC и Joystick
Скорость задается этими пинамиdinkata писал(а):А если захочется увеличит скорости -как мащабироват ?
Код: Выделить всё
setp sim-encoder.0.ppr 58
- verser
- Мастер
- Сообщения: 1884
- Зарегистрирован: 21 июл 2013, 22:28
- Репутация: 1278
- Настоящее имя: Сергей
- Откуда: Тбилиси
- Контактная информация:
Re: EMC2 LinuxCNC и Joystick
Мертвые зоны задаются этими пинамиdinkata писал(а):но хочется увеличит деадзоне
Код: Выделить всё
setp deadzone.0.threshhold .5
Код: Выделить всё
setp deadzone.0.center 0
- dinkata
- Мастер
- Сообщения: 1025
- Зарегистрирован: 05 сен 2014, 09:07
- Репутация: 389
- Настоящее имя: Диньо
- Откуда: Болгария
- Контактная информация:
Re: EMC2 LinuxCNC и Joystick
verser писал(а):Получилась инструкция
спасибо ,все таки ето для меня помоч .
Простите ошибки, я иностранец.У моя клавиатура нету "э" и "ы"
- dinkata
- Мастер
- Сообщения: 1025
- Зарегистрирован: 05 сен 2014, 09:07
- Репутация: 389
- Настоящее имя: Диньо
- Откуда: Болгария
- Контактная информация:
Re: EMC2 LinuxCNC и Joystick
А ето ,как ответите на NickNick писал(а):Не знаю есть это в вашем hal или нет, но крайне желательно добавить активацию джойстика по кнопке.
Т.е. чтобы пока не нажата определенная кнопка - джойстик не работает.
Простите ошибки, я иностранец.У моя клавиатура нету "э" и "ы"
- verser
- Мастер
- Сообщения: 1884
- Зарегистрирован: 21 июл 2013, 22:28
- Репутация: 1278
- Настоящее имя: Сергей
- Откуда: Тбилиси
- Контактная информация:
Re: EMC2 LinuxCNC и Joystick
Уже реализованоdinkata писал(а):А ето ,как ответите на NickNick писал(а):Не знаю есть это в вашем hal или нет, но крайне желательно добавить активацию джойстика по кнопке.
Т.е. чтобы пока не нажата определенная кнопка - джойстик не работает.
Код: Выделить всё
# We are setting up input.0.btn-joystick to be the mode selector. While released, it will change the output of
# the multiplexor. While held down, the three axis controllers will act as normal. In other words,
# the change will be in the loading section, before the axes are mapped to the encoder speeds.
net axisMode input.0.btn-joystick => not.5.in
net axisMode input.0.btn-joystick => not.6.in
net axisMode input.0.btn-joystick => not.7.in
net axisMode input.0.btn-joystick => not.8.in
net axisMode0 not.5.out => mux2.0.sel
net axisMode1 not.6.out => mux2.1.sel
net axisMode2 not.7.out => mux2.2.sel
net axisMode3 not.8.out => mux2.8.sel
net XnormalInput deadzone.0.out => mux2.0.in0
net YnormalInput deadzone.1.out => mux2.1.in0
net ZnormalInput deadzone.2.out => mux2.2.in0
net BnormalInput deadzone.6.out => mux2.8.in0