Перейти к содержимому


Фотография

Подключение геймпада к пользовательской оболочке Axis

LinuxCNC Axis joystick джойстик Геймпад

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 3

#1 OFFLINE   torvn77

torvn77

    Пользователь LinuxCNC

  • Заблокированные
  • PipPipPipPipPipPipPipPipPipPip
  • 2 151 сообщений
  • Пол:Мужчина
  • Из:Санкт-Петербурга

Отправлено 14 Февраль 2014 - 20:09

Настройка джойстика
Joystick.png
Hal сделан для LinuxCNC версии 2.5.3,по этому перед использованием не забудте поставить обновления системы.

( Назад к оглавлению "Руководства по настройке LinuxCNC/EMC2 для работы через LPT порт для чайников" )


  • 1
Я по мнению сообщества безграмотен,могу дать вредные или ошибочные советы.
Используйте их после обдумывания и на свой страх и риск.

У меня не всегда выходит понять вопрос,если это случилось то пожалуйста напишите мне об этом в личку.Ответ то я может и знаю,но пишу не то и не о том...

#2 OFFLINE   torvn77

torvn77

    Пользователь LinuxCNC

  • Заблокированные
  • PipPipPipPipPipPipPipPipPipPip
  • 2 151 сообщений
  • Пол:Мужчина
  • Из:Санкт-Петербурга

Отправлено 16 Февраль 2014 - 17:56

Данный вариант подключения Джойстика использует пины оболчки пользователя axis,
по этому его надо подключать после загрузки оболочки пользователя.
Для такого подключения используется файл прописаный в опции "POSTGUI_HALFILE" раздела [HAL] главного *.ini файла.
По умолчанию его имя "custom_postgui.hal",а конфиг джойстика подключается командой включения кода source:

# Include your customized HAL commands here
# The commands in this file are run after the AXIS GUI (including PyVCP panel) starts

source joypad/joypad.hal

Как ясно из параметра команды,заглавный конфиг джойстика находится относительно основного пути к конфигам
в папке joypad и называется joypad.hal

Сообщение отредактировал torvn77: 16 Февраль 2014 - 17:57

  • 0
Я по мнению сообщества безграмотен,могу дать вредные или ошибочные советы.
Используйте их после обдумывания и на свой страх и риск.

У меня не всегда выходит понять вопрос,если это случилось то пожалуйста напишите мне об этом в личку.Ответ то я может и знаю,но пишу не то и не о том...

#3 OFFLINE   torvn77

torvn77

    Пользователь LinuxCNC

  • Заблокированные
  • PipPipPipPipPipPipPipPipPipPip
  • 2 151 сообщений
  • Пол:Мужчина
  • Из:Санкт-Петербурга

Отправлено 16 Февраль 2014 - 17:57


содержимое файла joypad.hal:

# Name and Patch this file "joypad/joypad.hal"

loadusr -W hal_input -KRAL +Logitech Logitech Dual Action

loadrt encoder num_chan=4

loadrt sim_encoder num_chan=4

loadrt abs count=4

source joypad/joypad_analog_axis.hal
#source joypad/joypad_digital_axis.hal
#source joypad/joypad_button.hal


addf encoder.capture-position servo-thread
addf encoder.update-counters base-thread

addf sim-encoder.update-speed servo-thread
addf sim-encoder.make-pulses base-thread

addf abs.0 servo-thread
addf abs.1 servo-thread
addf abs.2 servo-thread
addf abs.3 servo-thread


#loadusr halmeter pin Pad_analog_X-Axis_count
#loadusr halmeter sig Pad_analog_X-Axis_position
#loadusr halmeter sig Pad_analog_X-Axis_scale
#loadusr halmeter pin encoder.0.counts
#loadusr halmeter pin axis.0.jog-counts


  • 0
Я по мнению сообщества безграмотен,могу дать вредные или ошибочные советы.
Используйте их после обдумывания и на свой страх и риск.

У меня не всегда выходит понять вопрос,если это случилось то пожалуйста напишите мне об этом в личку.Ответ то я может и знаю,но пишу не то и не о том...

#4 OFFLINE   torvn77

torvn77

    Пользователь LinuxCNC

  • Заблокированные
  • PipPipPipPipPipPipPipPipPipPip
  • 2 151 сообщений
  • Пол:Мужчина
  • Из:Санкт-Петербурга

Отправлено 16 Февраль 2014 - 18:00

Содержимое файла joypad_analog_axis.hal

# Name and Patch this file "joypad/joypad_analog_axis.hal"

# Create links between the axis pins and the speed pin of the sim-encoder for X Y Z

net Pad_analog_X-Axis_position <= input.0.abs-x-position
setp input.0.abs-x-offset 128
setp input.0.abs-x-scale 127.5
net Pad_analog_Y-Axis_position <= input.0.abs-y-position
setp input.1.abs-y-offset 127.5
setp input.1.abs-y-scale 127.5
net Pad_analog_A-Axis_position <= input.0.abs-z-position
setp input.2.abs-z-offset 127.5
setp input.2.abs-z-scale 127.5
net Pad_analog_Z-Axis_position <= input.0.abs-rz-position
setp input.3.abs-rz-offset 127.5
setp input.3.abs-rz-scale 127.5

# Create links between sim-encoder Phase-A and Phase-B and encoder Phase-A and Phase-B for X Y Z A

net Pad_analog_X-Axis_position => sim-encoder.0.speed
net encoder.0-A sim-encoder.0.phase-A => encoder.0.phase-A
net encoder.0-B sim-encoder.0.phase-B => encoder.0.phase-B
net encoder.0-Z sim-encoder.0.phase-Z => encoder.0.phase-Z
net X-Axis_jog_counts <= encoder.0.counts

net Pad_analog_Y-Axis_position => sim-encoder.1.speed
net encoder.1-A sim-encoder.1.phase-A => encoder.1.phase-A
net encoder.1-B sim-encoder.1.phase-B => encoder.1.phase-B
net encoder.1-Z sim-encoder.1.phase-Z => encoder.1.phase-Z
net Y-Axis_jog_counts <= encoder.1.counts

net Pad_analog_Z-Axis_position => sim-encoder.2.speed
net encoder.2-A sim-encoder.2.phase-A => encoder.2.phase-A
net encoder.2-B sim-encoder.2.phase-B => encoder.2.phase-B
net encoder.2-Z sim-encoder.2.phase-Z => encoder.2.phase-Z
net Z-Axis_jog_counts <= encoder.2.counts

net Pad_analog_A-Axis_position => sim-encoder.3.speed
net encoder.3-A sim-encoder.3.phase-A => encoder.3.phase-A
net encoder.3-B sim-encoder.3.phase-B => encoder.3.phase-B
net encoder.3-Z sim-encoder.3.phase-Z => encoder.3.phase-Z
net A-Axis_jog_counts <= encoder.3.counts

# Create links between encoder counts and jog counts for X Y Z A

net X-Axis_jog_counts => axis.0.jog-counts
net Y-Axis_jog_counts => axis.1.jog-counts
net Z-Axis_jog_counts => axis.2.jog-counts
net A-Axis_jog_counts => axis.3.jog-counts

#
net Pad_analog_X-Axis_position => abs.0.in
net X-Axis_jog_scale <= abs.0.out

net Pad_analog_Y-Axis_position => abs.1.in
net Y-Axis_jog_scale <= abs.1.out

net Pad_analog_Z-Axis_position => abs.2.in
net Z-Axis_jog_scale <= abs.2.out

net Pad_analog_A-Axis_position => abs.3.in
net A-Axis_jog_scale <= abs.3.out

net X-Axis_jog_scale => axis.0.jog-scale
net Y-Axis_jog_scale => axis.1.jog-scale
net Z-Axis_jog_scale => axis.2.jog-scale
net A-Axis_jog_scale => axis.3.jog-scale

# Set parameter values

setp sim-encoder.0.ppr 00000064
setp sim-encoder.0.scale 1
setp sim-encoder.1.ppr 00000064
setp sim-encoder.1.scale 1
setp sim-encoder.2.ppr 00000064
setp sim-encoder.2.scale 1
setp sim-encoder.3.ppr 00000064
setp sim-encoder.3.scale 1
setp sim-encoder.make-pulses.tmax 0
setp sim-encoder.update-speed.tmax 0

setp encoder.0.x4-mode true
setp encoder.0.position-scale 1
setp encoder.1.x4-mode true
setp encoder.1.position-scale 1
setp encoder.2.x4-mode true
setp encoder.2.position-scale 1
setp encoder.3.x4-mode true
setp encoder.3.position-scale 1
setp encoder.capture-position.tmax 0
setp encoder.update-counters.tmax 0

# Enable jog for X Y Z

setp axis.0.jog-enable true
setp axis.0.jog-vel-mode true
setp axis.1.jog-enable true
setp axis.1.jog-vel-mode true
setp axis.2.jog-enable true
setp axis.2.jog-vel-mode true
setp axis.3.jog-enable true
setp axis.3.jog-vel-mode true


Сообщение отредактировал torvn77: 16 Февраль 2014 - 18:00

  • 0
Я по мнению сообщества безграмотен,могу дать вредные или ошибочные советы.
Используйте их после обдумывания и на свой страх и риск.

У меня не всегда выходит понять вопрос,если это случилось то пожалуйста напишите мне об этом в личку.Ответ то я может и знаю,но пишу не то и не о том...





Темы с аналогичным тегами LinuxCNC, Axis, joystick, джойстик, Геймпад

Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных