LinuxCNC Documentation

1. Descripción

Shuttle es un componente HAL en tiempo no-real que interconecta dispositivos ShuttleXpress, ShuttlePRO y ShuttlePRO2 de Contour Design con el HAL de LinuxCNC.

Si el controlador es iniciado sin argumentos de línea de comandos sondeará todos los archivos de dispositivo /dev/hidraw* para dispositivos Shuttle, y usará todos los dispositivos encontrados. Si se inicia con argumentos de línea de comandos, solo sondeará los dispositivos especificados.

El ShuttleXpress tiene cinco botones momentáneos, una perilla de trote de 10 conteos/revolución con pasos, y una perilla externa de resorte de 15 posiciones que regresa al centro al soltarla.

El ShuttlePRO tiene 13 botones momentáneos, una perilla de trote de 10 conteos/revolución con pasos, y una perilla externa de resorte de 15 posiciones que regresa al centro al soltarla.

El ShuttlePRO2 tiene 15 botones momentáneos, una perilla de trote de 10 conteos/revolución con pasos, y una perilla externa de resorte de 15 posiciones que regresa al centro al soltarla.

Warning

Los dispositivos Shuttle tienen un contador interno de 8 bits para la posición actual de la perilla de trote. El controlador shuttle no puede saber este valor hasta que el dispositivo Shuttle envía el primer evento. Cuando el primer evento llega al controlador, este usa la posición de la perilla de trote reportada por el dispositivo para inicializar el conteo a 0.

Esto significa que si el primer evento es generado por un movimiento de la perilla de trote, ese primer movimiento se perderá.

Cualquier interacción del usuario con el dispositivo Shuttle generará un evento, informando al controlador la posición de la perilla de trote. De tal manera que, si (por ejemplo) presionas uno de los botones al inicio, la perilla de trote funcionará bien y notarás el primer clic.

2. Configuración

El controlador shuttle necesita permiso de lectura en los archivos de dispositivo /dev/hidraw*. Esto se puede lograr agregando un archivo /etc/udev/rules.d/99-shuttle.rules con el contenido siguiente:

SUBSYSTEM=="hidraw", ATTRS{idVendor}=="0b33", ATTRS{idProduct}=="0020", MODE="0444"
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="05f3", ATTRS{idProduct}=="0240", MODE="0444"
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="0b33", ATTRS{idProduct}=="0030", MODE="0444"

El paquete Debian de LinuxCNC instala automáticamente un archivo udev adecuado; pero si compilas LinuxCNC desde las fuentes y no usas el empaquetado Debian, necesitarás instalar este archivo a mano e indicarle a udev que recargue sus archivos de reglas ejecutando udevadm control --reload-rules.

3. Pines

Todos los nombres de pines HAL tienen el prefijo shuttle seguido del índice del dispositivo (en el orden en que los encontró el controlador), por ejemplo shuttle.0 o shuttle.2.

<Prefijo>`.button-<NúmeroDeBotón>` (bit out)

Estos pines son Verdadero (1) cuando el botón está presionado.

<Prefijo>`.button-<NúmeroDeBotón>-not` (bit out)

Estos pines tienen el inverso del estado del botón, así que son Verdadero(1) cuando el botón no está presionado.

<Prefijo>`.counts` (s32 out)

Conteo acumulado de la perilla de trote (la perilla interior).

<Prefijo>`.spring-wheel-s32` (s32 out)

La deflexión actual de la perilla con resorte (la perilla exterior). Es 0 en reposo, y va de -7 en el extremo en sentido antihorario, a +7 en el extremo en sentido horario.

<Prefijo>`.spring-wheel-f` (float out)

La deflexión actual de la perilla con resorte (la perilla exterior). Es 0.0 en reposo, -1.0 en el extremo en sentido antihorario, y +1.0 en el extremo en sentido horario. Los dispositivos Shuttle reportan la posición de la perilla con resorte como un entero de -7 a +7, así que este pin reporta solo 15 valores discretos en su rango.