EMC2 LinuxCNC и Joystick

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

Re: EMC2 LinuxCNC и Joystick

Сообщение dinkata » 17 ноя 2014, 20:44

verser писал(а):Сделал вариант файла управления джойстиком для 4х осей:
:good:
Молодец ,если я такой новичок справился так бьйстро с жойстика ,думаю будет полезно и другим
Простите ошибки, я иностранец.У моя клавиатура нету "э" и "ы"
Аватара пользователя
dinkata
Мастер
 
Сообщения: 738
Зарегистрирован: 05 сен 2014, 09:07
Откуда: Болгария
Репутация: 185
Настоящее имя: Диньо

Re: EMC2 LinuxCNC и Joystick

Сообщение Nick » 18 ноя 2014, 07:58

А не проще гашетку привязать к axis...jog-enable?
Use the Console, Luke.
Аватара пользователя
Nick
Мастер
 
Сообщения: 22330
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1332
Заслуга: Developer
Медальки:

Re: EMC2 LinuxCNC и Joystick

Сообщение verser » 18 ноя 2014, 09:52

Nick писал(а):А не проще гашетку привязать к axis...jog-enable?

Это действительно проще.
Я сделал по-своему чтобы при ненажатой гашетке джойстик тоже двигал, только микрошагами: один наклон - один микрошаг.
Изображение- центроискатели
Аватара пользователя
verser
Мастер
 
Сообщения: 1419
Зарегистрирован: 21 июл 2013, 22:28
Откуда: Минск
Репутация: 833
Медальки:
Настоящее имя: Сергей

Re: EMC2 LinuxCNC и Joystick

Сообщение -Serj- » 13 янв 2015, 20:58

Прошу прощения, я новичёк, станок пока в мыслях. Потихоньку собираю деталюхи да обдумываю разные моменты. Вот попался мне хороший промышленный джойстик, в нём нет контроллера, только три потенциомметра. Как я могу завести аналоговые сигналы в LinuxCNC? Или проще выковырять контроллер из какого-нибудь донора?
-Serj-
Новичок
 
Сообщения: 3
Зарегистрирован: 08 янв 2015, 22:15
Репутация: 0
Настоящее имя: Сергей

Re: EMC2 LinuxCNC и Joystick

Сообщение Nick » 13 янв 2015, 20:59

-Serj- писал(а):Как я могу завести аналоговые сигналы в LinuxCNC?

Нужен АЦП, с драйвером. Можно, например, через ардуину.
-Serj- писал(а):Или проще выковырять контроллер из какого-нибудь донора?

или да :)
Use the Console, Luke.
Аватара пользователя
Nick
Мастер
 
Сообщения: 22330
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1332
Заслуга: Developer
Медальки:

Re: EMC2 LinuxCNC и Joystick

Сообщение -Serj- » 13 янв 2015, 22:02

Я планирую использовать для станка связку плат MESA, может тогда логичнее купить ещё и 7i73? Хотя для одного джойстика наверно смысла нет.
-Serj-
Новичок
 
Сообщения: 3
Зарегистрирован: 08 янв 2015, 22:15
Репутация: 0
Настоящее имя: Сергей

Re: EMC2 LinuxCNC и Joystick

Сообщение UAVpilot » 13 янв 2015, 23:50

На платах 7i76 и 7i77 есть по 4 аналоговых входа.
Правда с дискретностью 8 бит на диапазон 0-36V.
1. Робот не может ответить отказом на предложение человека выпить или своим бездействием допустить, чтобы человек напился один.
Аватара пользователя
UAVpilot
Мастер
 
Сообщения: 14810
Зарегистрирован: 17 апр 2012, 14:58
Откуда: Москва
Репутация: 3597
Медальки:
Настоящее имя: Сергей

Re: EMC2 LinuxCNC и Joystick

Сообщение dinkata » 16 янв 2015, 08:16

UAVpilot писал(а):На платах 7i76 и 7i77 есть по 4 аналоговых входа.

А нам подскажите где они и как пользуете ?
Вложения
EMC2 LinuxCNC и Joystick 7i77.jpg
Простите ошибки, я иностранец.У моя клавиатура нету "э" и "ы"
Аватара пользователя
dinkata
Мастер
 
Сообщения: 738
Зарегистрирован: 05 сен 2014, 09:07
Откуда: Болгария
Репутация: 185
Настоящее имя: Диньо

Re: EMC2 LinuxCNC и Joystick

Сообщение nkp » 16 янв 2015, 10:08

dinkata писал(а):А нам подскажите где они и как пользуете ?

http://www.cnc-club.ru/forum/viewtopic. ... 480#p45689
nkp
Мастер
 
Сообщения: 7067
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1114
Медальки:

Re: EMC2 LinuxCNC и Joystick

Сообщение dinkata » 16 янв 2015, 14:18

nkp писал(а):http://www.cnc-club.ru/forum/viewtopic. ... 480#p45689

и ето :
ANALOG INPUTS
All field input pins are capable of reading the input voltage. These are not highly
accurate or high resolution but can be useful for things like potentiometer inputs. Input
resolution is 8 bits and input full scale value is 36.3V. Accuracy is +-5%
Software process data modes 1 and 2 allow reading the analog voltage on inputs
0 through 3, in addition to the 32 digital bit inputs.

спасибо опят nkp ,да-а-а надо не только смотрет ,а и видет :D
Простите ошибки, я иностранец.У моя клавиатура нету "э" и "ы"
Аватара пользователя
dinkata
Мастер
 
Сообщения: 738
Зарегистрирован: 05 сен 2014, 09:07
Откуда: Болгария
Репутация: 185
Настоящее имя: Диньо

Re: EMC2 LinuxCNC и Joystick

Сообщение UAVpilot » 16 янв 2015, 14:23

Код: Выделить всёРазвернуть
$ halcmd loadrt hm2_pci config="sserial_port_0=20xxxxxx"
$ halcmd show pin *.analogin*
Component Pins:
Owner   Type  Dir         Value  Name
     7  float OUT             0  hm2_5i25.0.7i77.0.0.analogin0
     7  float OUT             0  hm2_5i25.0.7i77.0.0.analogin1
     7  float OUT             0  hm2_5i25.0.7i77.0.0.analogin2
     7  float OUT             0  hm2_5i25.0.7i77.0.0.analogin3


EMC2 LinuxCNC и Joystick 7i77.jpg
1. Робот не может ответить отказом на предложение человека выпить или своим бездействием допустить, чтобы человек напился один.
Аватара пользователя
UAVpilot
Мастер
 
Сообщения: 14810
Зарегистрирован: 17 апр 2012, 14:58
Откуда: Москва
Репутация: 3597
Медальки:
Настоящее имя: Сергей

Re: EMC2 LinuxCNC и Joystick

Сообщение odekolon » 12 июн 2015, 20:59

вернемся к началу - подключение джойстика
в ini- файле в секции HAL
HALUI = halui

создал файл custom.hal
Код: Выделить всёРазвернуть
 loadusr hal_input -W -KRAL +THRUSTMASTER Top Gun Afterburner


    # включаем управление от джойстика
    #net joystick_enable <= input.0.btn-joystick => axis.0.jog-enable
    #net joystick_enable => axis.1.jog-enable
    #net joystick_enable => axis.2.jog-enable

   поскипано...

    # устанавливаем скорость
    #net jog_scale <= input.0.abs-throttle-position => axis.0.jog-scale
    #net jog_scale => axis.1.jog-scale
    #net jog_scale => axis.2.jog-scale

программа грузится, пины все работают (отзываются на нажатия кнопок и движение осей
но как только снимаю комментарий с любой строки - получаю сообщение типа:

Рin "input.0.btn-joystick" does not exist

название пина копипастил из терминала после команды halcmd show и вручную набивал, и копипастил из hal-конфигуратора
вот выдержка из halcmd show
Код: Выделить всёРазвернуть
Loaded HAL Components:
ID      Type  Name                                      PID   State
    20  User  halcmd6957                                 6957 ready
    18  User  halcmd6944                                 6944 ready
    16  User  axisui                                     6938 ready
    14  User  inihal                                     6937 ready
     3  User  hal_input                                  6931 ready
    11  RT    pwmgen                                          ready
    10  RT    stepgen                                         ready
     9  RT    hal_parport                                     ready
     8  RT    probe_parport                                   ready
     7  RT    motmod                                          ready
     6  RT    trivkins                                        ready
     5  User  iocontrol                                  6914 ready
.... поскипано...
     3  bit   OUT          TRUE  input.0.btn-joystick
     3  bit   OUT         FALSE  input.0.btn-joystick-not
     3  bit   OUT         FALSE  input.0.btn-pinkie
     3  bit   OUT          TRUE  input.0.btn-pinkie-not
     3  bit   OUT          TRUE  input.0.btn-thumb
     3  bit   OUT         FALSE  input.0.btn-thumb-not
     3  bit   OUT         FALSE  input.0.btn-thumb2
     3  bit   OUT          TRUE  input.0.btn-thumb2-not
     3  bit   OUT          TRUE  input.0.btn-top
     3  bit   OUT         FALSE  input.0.btn-top-not
     3  bit   OUT         FALSE  input.0.btn-top2


где еще покопаться можно?
"Капиталистом стать можно лишь тогда, когда обогатишь свою память знанием всех тех богатств, которые выработало человечество"
Аватара пользователя
odekolon
Мастер
 
Сообщения: 562
Зарегистрирован: 05 ноя 2014, 14:53
Репутация: 155
Медальки:
Настоящее имя: Борис

Re: EMC2 LinuxCNC и Joystick

Сообщение Nick » 15 июн 2015, 14:06

Вот тут по идее надобы дождаться ready от компонента
Код: Выделить всёРазвернуть
loadusr hal_input -W -KRAL +THRUSTMASTER Top Gun Afterburner


Но компонент у тебя называется input, а не hal_input...
может надо:
Код: Выделить всёРазвернуть
loadusr hal_input -Wn input   (....)


Т.е. мы ждем, чтобы компонент загрузился и создал все свои пины. Возможно он это не успевает сделать, и соответственно появляется ошибка, что пина нет.
Use the Console, Luke.
Аватара пользователя
Nick
Мастер
 
Сообщения: 22330
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1332
Заслуга: Developer
Медальки:

Re: EMC2 LinuxCNC и Joystick

Сообщение odekolon » 16 июн 2015, 09:11

оК , попробую
"Капиталистом стать можно лишь тогда, когда обогатишь свою память знанием всех тех богатств, которые выработало человечество"
Аватара пользователя
odekolon
Мастер
 
Сообщения: 562
Зарегистрирован: 05 ноя 2014, 14:53
Репутация: 155
Медальки:
Настоящее имя: Борис

Re: EMC2 LinuxCNC и Joystick

Сообщение odekolon » 16 июн 2015, 11:15

-Serj- писал(а):Прошу прощения, я новичёк, станок пока в мыслях. Потихоньку собираю деталюхи да обдумываю разные моменты. Вот попался мне хороший промышленный джойстик, в нём нет контроллера, только три потенциомметра. Как я могу завести аналоговые сигналы в LinuxCNC? Или проще выковырять контроллер из какого-нибудь донора?

посмотри какие потенциометры
если на 100 к или около того, то можно прикрутить любой usb джойстик или геймпад оторвав родные резисторы.
если номнал переменных резисторов сильно отличается, то ничего хорошего не получится, управление будет слишком "грубым".
"Капиталистом стать можно лишь тогда, когда обогатишь свою память знанием всех тех богатств, которые выработало человечество"
Аватара пользователя
odekolon
Мастер
 
Сообщения: 562
Зарегистрирован: 05 ноя 2014, 14:53
Репутация: 155
Медальки:
Настоящее имя: Борис

Re: EMC2 LinuxCNC и Joystick

Сообщение solo » 23 окт 2016, 15:22

а подскажите пж
пытаю реализовать в джойстике следующее
при нажатии кнопки пин (input.0.btn-base) хочу чтобы оси перемешались с скорость 300
а при нажатии кнопки с пином (input.0.btn-base2) оси должны ехать с скорость 900
насколько я понял надо присвоить соответствующее значение setp halui.jog-speed
а как это сделать в хел файле
сейчас у меня так оси просто ездят на постоянной скорости
Код: Выделить всёРазвернуть
loadusr -W hal_input -KRAL DragonRise Inc.   Generic   USB  Joystick
#loadusr hal_joystick -d /dev/input/js0 -p joypad
#net joystick_enable <= input.0.btn-trigger => axis.0.jog-enable

setp axis.0.jog-vel-mode 1
setp axis.1.jog-vel-mode 1
setp axis.2.jog-vel-mode 1
setp halui.jog-speed 500

#net joispid1 input.0.btn-base halui.jog-speed 500
#net joispid2 input.0.btn-base2 halui.mdi-command-10

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

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

Re: EMC2 LinuxCNC и Joystick

Сообщение verser » 23 окт 2016, 16:01

solo писал(а):а как это сделать в хел файле

Вот пример как у меня (кнопки и скорости чуть другие)
Код: Выделить всёРазвернуть
#----------------------------------------------------------------------------------------------------------
# Scale button - Set jog speed
#----------------------------------------------------------------------------------------------------------
# Painted button   function      mapping
#   5      set jog scale: 1/1000   input.0.btn-thumb2
#   7      set jog scale: 4/10000   input.0.btn-top

# First, we select the two buttons for speed selection. We'll use 5 and 7 for 1/1000 and 4/10000, respectively.
net button5 input.0.btn-thumb2 => flipflop.0.reset
net button7 input.0.btn-top => flipflop.0.set
net button5 input.0.btn-thumb2 => flipflop.1.reset
net button7 input.0.btn-top => flipflop.1.set

#Add the control for the mux by mapping it to the flip-flop. Thus, it will stay in the last state until it is
#changed.
net chosenJogSpeed flipflop.0.out => mux2.6.sel
net chosenJogDuration flipflop.1.out => mux2.7.sel

#Now, map the jog scale values to the axes.
net jogscale mux2.6.out => axis.0.jog-scale
net jogscale mux2.6.out => axis.1.jog-scale
net jogscale mux2.6.out => axis.2.jog-scale
net jogscale mux2.6.out => axis.4.jog-scale

# Set parameters values 3750 3609
setp flipflop.0.tmax             3750
setp mux2.6.tmax            3609

# Set the two scale values. The output will equal in0 when FALSE and in1 when TRUE.
setp mux2.6.in0             0.1
setp mux2.6.in1             0.01
...
# 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

Изображение- центроискатели
Аватара пользователя
verser
Мастер
 
Сообщения: 1419
Зарегистрирован: 21 июл 2013, 22:28
Откуда: Минск
Репутация: 833
Медальки:
Настоящее имя: Сергей

Re: EMC2 LinuxCNC и Joystick

Сообщение torvn77 » 23 окт 2016, 19:29

solo писал(а):пытаю реализовать в джойстике следующее
при нажатии кнопки пин (input.0.btn-base) хочу чтобы оси перемешались с скорость 300
а при нажатии кнопки с пином (input.0.btn-base2) оси должны ехать с скорость 900

Если не изменяет память, то то что тебе надо тут Re: JoyHandle - компонент для построения нелинейного джойсти #5
На худой конец смотри последнею версию здесь https://github.com/torvn77/LinuxCNC_SUD ... epad.hal-v (эта ссылка после перепада настроения может стать не рабочей, но конфиг скорее всего никуда не денется, просто я перегоню его в другое место, ну или если денется, то значит я его переписал на С)

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

Re: EMC2 LinuxCNC и Joystick

Сообщение nkp » 23 окт 2016, 19:34

torvn77 писал(а):П.С. Хорошо бы чтобы кто ни будь хотя бы демультиплексор на С оформил.

Код: Выделить всёРазвернуть
component demux2 "A demultiplexer to select from one of two outputs to connect to the input";


description " This component allows you to connect a single input to one of several outputs. \

This version will connect only one of two outputs." ;

author "Marius D. Liebenberg";


//option singleton yes;

//option default_count = 1;

//option userspace yes;


// Input Pins

pin in bit in0  "Any float input value";

pin in bit sel  "If HIGH the out1 will be connect to in0, else the out 0 will be connected ";


// Output Pins

pin out bit out0  "Follows the value of in0 if sel is FALSE";

pin out bit out1  "Follows the value of in0 if sel is TRUE";


// Parameters

// Global Variables


function _;

license "GPL";

;;

#include "rtapi_math.h"

FUNCTION(_) {

if(sel) out1 = in0;

else out0 = in0;

}
nkp
Мастер
 
Сообщения: 7067
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1114
Медальки:

Re: EMC2 LinuxCNC и Joystick

Сообщение torvn77 » 23 окт 2016, 20:52

nkp, У меня демультиплексор на четыре состояния,
1.Блокировка клавиатуры(Off)
2-3.Режимы
4.Блокировка клавиатуры(Error). Хотя раньше там был ещё один режим, но по факту он оказался не нужен.
По этому как минимум в предложенный тобой мультиплексор надо добавить третье состояние Off, а этот компонет не реализует даже логику одного канала.

Код: Выделить всёРазвернуть
#----------------Логика блокировки и переключения analog/continue режима кнопок
# Задание клавиш выбора через подключение к соответствующему сигналу
net gamepad.analog_jog-enable   <= input.0.btn-base2
net gamepad.continue_jog-enable <= input.0.btn-pinkie


net gamepad.analog_jog-enable       => not.0.in
net gamepad.analog_jog-enable-not   <= not.0.out
net gamepad.continue_jog-enable     => not.1.in
net gamepad.continue_jog-enable-not <= not.1.out

# Если не нажата ни одна клавиша выбора или нажаты обе клавиши,то выполняется блокировка кнопок
# Если нажата только одна из клавиша выбора то выбирается соответствующий режим
net gamepad.analog_jog-enable        => and2.0.in0
net gamepad.continue_jog-enable-not  => and2.0.in1
net gamepad.sel_button_mode_analog   <= and2.0.out
net gamepad.continue_jog-enable      => and2.25.in0
net gamepad.analog_jog-enable-not    => and2.25.in1
net gamepad.sel_button_mode_continue <= and2.25.out

Код: Выделить всёРазвернуть
#----------------Button 1-------
net gamepad.func_button_1 => and2.1.in0
net gamepad.sel_button_mode_analog => and2.1.in1
net gamepad.func_button_1-analog-mode <= and2.1.out

net gamepad.func_button_1 => and2.2.in0
net gamepad.sel_button_mode_continue => and2.2.in1
net gamepad.func_button_1-continue_mode <= and2.2.out


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

Пред.След.

Вернуться в LinuxCNC

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

Зарегистрированные пользователи: Bing [Bot], Google [Bot], Piligrym, Yahoo [Bot], Yandex [bot], Тенгель

Поделиться

Reputation System ©'