EMC2 LinuxCNC и Joystick

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.

Re: EMC2 LinuxCNC и Joystick

Сообщение torvn77 » 24 окт 2016, 04:17

Обнаружил что компонент demux2 в документации к LinuxCNC не описан даже в предназначенной для разработки версии.
Аватара пользователя
torvn77
Мастер
 
Сообщения: 2222
Зарегистрирован: 02 июн 2012, 22:12
Откуда: Санкт-Петербург
Репутация: 182
Медальки:

Re: EMC2 LinuxCNC и Joystick

Сообщение solo » 24 окт 2016, 15:14

как то у меня получилось все очень просто но функционально работает так как мне хотелось
вот текст моего хел файла который отвечает за изменение скоростей и перемещение осей
Код: Выделить всёРазвернуть
# Include your customized HAL commands here
# This file will not be overwritten when you run stepconf again

#loadusr hal_input -W -KRAL "DragonRise Inc.   Generic   USB  Joystick  "
#loadusr hal_input -W -KRAL Generic
#loadusr -W hal_input -KRAL Generic
loadusr -W hal_input -KRAL DragonRise Inc.   Generic   USB  Joystick
#loadusr -W hal_input -KRAL DragonRise Inc.
#loadusr hal_joystick -d /dev/input/js0 -p joypad
#net joystick_enable <= input.0.btn-trigger => axis.0.jog-enable


#хел файл джойстика (сборная солянка)
loadrt mux8 count=1
addf mux8.0 servo-thread

#---------------------------
#
setp axis.0.jog-vel-mode  true
setp axis.1.jog-vel-mode  true
setp axis.2.jog-vel-mode  true

# назначаем выводы управления мультиплексором
# соединяем вывод джойстика торец низ с мультиплексором"0"
net gamepad_analog_jog-enable input.0.btn-base   mux8.0.sel0
# соединяем вывод джойстика торец верх с мультиплексором "1"
net gamepad_continue_jog-enable input.0.btn-top2  mux8.0.sel1
# соединяем вывод джойстика лев джойстик нажать сверху с выводом мультиплексора"2"
net gamepad_contin_jog-up input.0.btn-base5  mux8.0.sel2


# скорость станка когда не нахата не одна кнопка.
setp mux8.0.in0 1.0

# скорость станка когда нажата кнопка "торец низ лев"
setp mux8.0.in1 3.0

# скорость станка когда нажата "торец верх лев"
setp mux8.0.in2 12.0

# скорость станка когда нажаты оба кнопки "торец низ и торец верх,  лев"
setp mux8.0.in3 120.0

# скорость станка когда прижат сверху рычаг левого джойстика можно назначить Ж"0"
setp mux8.0.in4 1520.0

# ну и на всяк случай
setp mux8.0.in5 0.0
setp mux8.0.in6 0.0
setp mux8.0.in7 0.0

# запихиваем заданные скоростя в LinuxCNC
net gamepad_jog-speed halui.jog-speed <= mux8.0.out

# присоединяем пин джойстика управления осью с сигналом  LinuxCNC управления осью   
net jog_scale input.0.abs-x-position => halui.jog.0.analog
net jog_scale1 input.0.abs-y-position => halui.jog.1.analog
net jog_scale2 input.0.abs-z-position => halui.jog.2.analog




:thinking: :wik:
вот только не пойму по чему у меня немного разные скорости по осям
пока все только проверяю на стимуляции LinuxCNC
Аватара пользователя
solo
Мастер
 
Сообщения: 965
Зарегистрирован: 20 окт 2011, 18:39
Откуда: Украина Харьков
Репутация: 172
Настоящее имя: Юрий Соловьев

Re: EMC2 LinuxCNC и Joystick

Сообщение solo » 25 окт 2016, 17:25

сежу пытаюсь реализовать на джойстике следующую функцию
хочется так чтобы нажал на кнопку направления перемещения оси (input.0.abs-hat0x-neg или input.0.abs-y-is-pos) , нажал на кнопку ( кнопки) выбора скорости (input.0.btn-base, input.0.btn-top2, input.0.btn-base5) , как по примеру выше , и нажимаем кнопку постоянного движения по оси !!!!! (какая то дополнительная кнопка :input.0.btn-base5) и чтобы станок начал двигаться и продолжил движение !!! после отпускания кнопок пульта , до тех пор пока не будет нажата кнопка остановки движения , не аварийная
то есть типа как будто клацнул тумблер станок ездит в одну сторону .....
может присоветуете как построить алгоритм программирования, или пример как можно реализовать задуманное
то есть хочется упростить работу на станке в ручном управлении , чтобы подача включалась и фиксировалась как на обычном фрезере , пока ты сам не выключишь подачу
Аватара пользователя
solo
Мастер
 
Сообщения: 965
Зарегистрирован: 20 окт 2011, 18:39
Откуда: Украина Харьков
Репутация: 172
Настоящее имя: Юрий Соловьев

Re: EMC2 LinuxCNC и Joystick

Сообщение nkp » 25 окт 2016, 17:51

solo писал(а):реализовать задуманное

можно просто подхват в ладдере нарисовать :
(для просмотра содержимого нажмите на ссылку)
Выделение_102.png
Выделение_102.png (10.99 Кб) Просмотров: 1344
nkp
Мастер
 
Сообщения: 7067
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1114
Медальки:

Re: EMC2 LinuxCNC и Joystick

Сообщение solo » 08 ноя 2016, 17:51

подскажите пж
столкнулся с проблемой LinuxCNC теряет связь с джойстиком, можно ли, что нибудь сделать в плане повышения надежности работы джойстика,
после перезагрузки LCNC джойстик работает нормально
Аватара пользователя
solo
Мастер
 
Сообщения: 965
Зарегистрирован: 20 окт 2011, 18:39
Откуда: Украина Харьков
Репутация: 172
Настоящее имя: Юрий Соловьев

Re: EMC2 LinuxCNC и Joystick

Сообщение torvn77 » 08 ноя 2016, 20:03

solo писал(а):LinuxCNC теряет связь с джойстиком

ИМХО это аппаратная проблема, может USB порт раздолбанный.
Ну а как из-за порта halinput потеряет джойстик так и выгрузится из реалтайма со всеми своими пинами и пока пока запущена УП восстановить пины тебе не дадут.
А вообще хорошо бы чтоб халинпют продолжал работать после отключенния джойстики и при при подключении подхватывал его обратно.
Аватара пользователя
torvn77
Мастер
 
Сообщения: 2222
Зарегистрирован: 02 июн 2012, 22:12
Откуда: Санкт-Петербург
Репутация: 182
Медальки:

Re: EMC2 LinuxCNC и Joystick

Сообщение solo » 09 ноя 2016, 10:21

torvn77 писал(а):А вообще хорошо бы чтоб халинпют продолжал работать после отключенния джойстики и при при подключении подхватывал его обратно

а что это такое , и как это реализовать для проверки ?
torvn77 писал(а):ИМХО это аппаратная проблема, может USB порт раздолбанный.

порт вроде нормальный просто в день когда отвалился джойстик рядом со станком работала сварка, да и шнурочек джойстика я удлинил чтоб удобней было работать
Аватара пользователя
solo
Мастер
 
Сообщения: 965
Зарегистрирован: 20 окт 2011, 18:39
Откуда: Украина Харьков
Репутация: 172
Настоящее имя: Юрий Соловьев

Re: EMC2 LinuxCNC и Joystick

Сообщение torvn77 » 09 ноя 2016, 19:49

solo писал(а):а что это такое , и как это реализовать для проверки ?

solo писал(а):loadusr -W hal_input -KRAL DragonRise Inc. Generic USB Joystick

Программа на питоне конвертирующая соощения с джойстика в состояние пинов хала.
solo писал(а):просто

solo писал(а):ядом со станком работала сварка, да и шнурочек джойстика я удлинил

аппаратная причина, наводки.
Аватара пользователя
torvn77
Мастер
 
Сообщения: 2222
Зарегистрирован: 02 июн 2012, 22:12
Откуда: Санкт-Петербург
Репутация: 182
Медальки:

Re: EMC2 LinuxCNC и Joystick

Сообщение solo » 24 апр 2017, 18:54

пользую джойстиком для управления фрезером , функционально заточил управления с джойстика для ручной обработки ,проведения подготовительных работ , на станке ЧПУ
для задания скорости перемещения подаваемой на пин " halui.jog-speed " использую компонент " updown "
в хел файле такие строки отвечают за скорость

(для просмотра содержимого нажмите на ссылку)
loadrt updown count=1
loadrt conv_s32_float count=1
loadrt mult2 count=1

net gamepad_func_button_5 input.0.btn-top2 => updown.0.countup
net gamepad_func_button_7 input.0.btn-base => updown.0.countdown

net Xjogconv conv-s32-float.0.in => updown.0.count
net mut1 conv-s32-float.0.out mult2.0.in0
# множитель малых скоростей
setp mult2.0.in1 6.25
net gammux mult2.0.out
net gammux => halui.jog-speed

addf updown.0 servo-thread
addf conv-s32-float.0 servo-thread
addf mult2.0 servo-thread

но пользоваться не очень удобно так как для задания большой скорости нужно много тыкать на кнопочки пока не НЕ НАТЫКАЕТ нужную скорость :freak:
может кто подскажет как реализовать функцию "зажатия кнопки" ,
если кнопка нажата кратковременно то значение меняется на одну величину , а если кнопка нажата больше 1-2 сек то значение на выводе компонента меняется на порядок быстрее , или с ускорение. :beer_blow:
Аватара пользователя
solo
Мастер
 
Сообщения: 965
Зарегистрирован: 20 окт 2011, 18:39
Откуда: Украина Харьков
Репутация: 172
Настоящее имя: Юрий Соловьев

Re: EMC2 LinuxCNC и Joystick

Сообщение nkp » 24 апр 2017, 22:40

дописать бы как по мне этот функционал в сам компонент updown
но пока вот на CL схемка
Код: Выделить всёРазвернуть
loadrt classicladder_rt 
loadusr classicladder solo.clp
addf classicladder.0.refresh servo-thread

loadrt conv_s32_float count=1
loadrt mult2 count=1

net gamepad_func_button_5 input.0.btn-top2 => classicladder.0.in-00
net gamepad_func_button_7 input.0.btn-base => classicladder.0.in-01

net out1 classicladder.0.out-00 => updown.0.countup
net out2 classicladder.0.out-01 => updown.0.countdown

net Xjogconv conv-s32-float.0.in => updown.0.count
net mut1 conv-s32-float.0.out mult2.0.in0
# множитель малых скоростей
setp mult2.0.in1 6.25
net gammux mult2.0.out
net gammux => halui.jog-speed

addf updown.0 servo-thread
addf conv-s32-float.0 servo-thread
addf mult2.0 servo-thread

EMC2 LinuxCNC и Joystick Выделение_150.png

solo.clp
(3.07 Кб) Скачиваний: 42
nkp
Мастер
 
Сообщения: 7067
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1114
Медальки:

Пред.

Вернуться в LinuxCNC

Кто сейчас на конференции

Зарегистрированные пользователи: aftaev, anton1710, Argon-11, ASPtr, bass, Bing [Bot], bordyn, Сергей Саныч, CrazyUser, exp, fat_robot, Frezer_PU, frezeryga, Google [Bot], Google Feedfetcher, Igor26rus, Jeane, mac, migrat, Mihaill, nik1, niksooon, REAN1MAT0R, rmstr, Rom327, selenur, sergay, Smlua, SVP, UNCLES, VAT, Vyrdalak, Yahoo [Bot], Yandex [bot], yurayerz, zhenya_12

Поделиться

Reputation System ©'