Operación de los cilindros neumáticos

Usando el control del sistema FRC para controlar neumáticos

Nota

El módulo de control de neumáticos (Pneumatics Control Module, PCM) es un dispositivo basado en CAN que proporciona un completo control sobre el compresor y hasta 8 solenoides por módulo. El PCM está integrada con la WPILib que lanza de una serie de pasos que facilitan su uso. El control de bucle cerrado de el compresor y el interruptor de presión son manejados por el hardware PCM y los solenoides son manejados por la clase de solenoide mejorada que ahora controla los canales de solenoide en el PCM. Se puede usar un módulo PCM adicional donde los solenoides correspondientes de los módulos se diferencian por el número de módulo en los constructores del solenoide y las clases de compresor

The Pneumatics Control Module (PCM).

El módulo de control neumático de CTR Electrónicos es responsable de regular la presión del robot usando un interruptor de presión y un compresor activando y desactivando los solenoides. El PCM se comunica con el roboRIO a través de CAN. Para obtener más información, consulte FRC Control System Hardware Overview

Números de módulo PCM

Los módulos PCM se identifican por su ID de nodo. La ID de nodo predeterminada para PCM es 0. Si usa un PCM único en el puerto se recomienda dejarlo en la ID de nodo predeterminada.

Generando y almacenando presión

En FRC®, la presión se crea utilizando un compresor neumático y se almacena en tanques neumáticos. El compresor no necesariamente tiene que estar en el robot, sino que debe estar alimentado por el/los PCM(s) del robot. El modo «Closed Loop» en el compresor está habilitado de forma predeterminada, y no es recomendado que los equipos cambien esta configuración. Cuando el control de bucle cerrado está habilitado, el PCM podrá encender automáticamente el compresor cuando el interruptor de presión esté cerrado (debajo del límite de presión) y apagarse cuando el interruptor de presión esté abierto (~120PSI). Cuando el control de bucle esté cerrado se deshabilita el compresor y no se encenderá. Usando un compresor, los usuarios pueden consultar el estado del compresor. El estado (actualmente encendido o apagado), estado del interruptor de presión y la corriente del compresor se puede consultar desde el objeto Compresor.

Nota

El módulo de control neumático de Cross the Road Electronics permite la integración del control de circuito cerrado de un compresor. Crear cualquier instancia de un solenoide o solenoide doble. El objeto habilitará el control del compresor en el PCM correspondiente. El objeto compresor solo es necesario si desea la opción de apagar el compresor o consultar el estado del compresor.

Compressor c = new Compressor(0);

c.setClosedLoopControl(true);
c.setClosedLoopControl(false);

boolean enabled = c.enabled();
boolean pressureSwitch = c.getPressureSwitchValue();
double current = c.getCompressorCurrent();

Control del solenoide

Los equipos de FRC usan solenoides para realizar una variedad de tareas, desde cambiar las cajas de cambios hasta operar Mecanismos del robot. Un solenoide es una válvula que se usa para cambiar electrónicamente una línea de aire presurizado «encendido o apagado». Para obtener más información sobre solenoides, consulte este artículo de Wikipedia <https://en.wikipedia.org/wiki/Solenoid_valve>`__ . Los solenoides son controlados por el Módulo de control neumático de un robot, o PCM, que a su vez está conectado al roboRIO del robot a través del CAN. La forma más fácil de ver el estado de un solenoide es a través del pequeño LED rojo (que indica si la válvula está «encendida» o no), y los solenoides pueden activarse manualmente cuando sin energía con el pequeño botón adyacente al LED.

Los solenoides de acción simple aplican o descargan la presión de un solo puerto de salida. Son típicamente utilizados cuando una fuerza externa proporcionará la acción de retorno del cilindro (resorte, gravedad, mecanismo separado) o en pares para actuar como un doble solenoide. El doble solenoide intercambia el flujo de aire entre dos puertos de salida (muchos también tienen una posición central donde ninguna salida está ventilada o conectada a la entrada). Las válvulas solenoides doble se usan comúnmente cuando desea controlar las acciones de extensión y retracción de un cilindro utilizando presión de aire. Las válvulas de solenoides doble tienen dos entradas eléctricas que se conectan a dos canales separados en La ruptura del solenoide.

Los módulos PCM se identifican por su ID de dispositivo CAN. El ID de CAN predeterminado para PCM es 0. Si utiliza un solo PCM en el bus, se recomienda dejarlo en el ID de CAN predeterminado. Esta ID se puede cambiar con la aplicación Phoenix Tuner, además de información de depuración. Las instrucciones para descargar Phoenix Tuner se pueden encontrar aquí y los archivos para instalarse pueden encontrarse aquí. Para obtener más información sobre cómo configurar el ID de CAN de PCM, consulte esta importante nota.

Solenoides individuales en WPILib

Los solenoides individuales en WPILib se controlan utilizando la clase Solenoide. Para construir un objeto solenoide, simplemente pase el número de puerto deseado (supone CAN ID 0) o CAN ID y número de puerto al constructor. Para establecer el valor del selenoide llame set(true) para habilitar o set(false) para deshabilitar la salida del solenoide.

Solenoid exampleSolenoid = new Solenoid(1);

exampleSolenoid.set(true);
exampleSolenoid.set(false);

Solenoides dobles en WPILib

Los solenoides dobles están controlados por la clase DoubleSolenoid en WPILib. Estos son construidos de manera similar al solenoide único, pero ahora hay dos números de puerto para pasar al constructor, un canal directo (primero) y un canal inverso (segundo). El estado de la válvula se puede configurar a kOff (ninguna salida activada), kForward (canal de avance habilitado) o kReverse (reversa canal habilitado). Además, la ID CAN de PCM se puede pasar al DoubleSolenoid si los equipos tienen una ID CAN PCM no estándar.

// Using "import static an.enum.or.constants.inner.class.*;" helps reduce verbosity
// this replaces "DoubleSolenoid.Value.kForward" with just kForward
// further reading is available at https://www.geeksforgeeks.org/static-import-java/
import static edu.wpi.first.wpilibj.DoubleSolenoid.Value.*;

DoubleSolenoid exampleDouble = new DoubleSolenoid(1, 2);
DoubleSolenoid anotherDoubleSolenoid = new DoubleSolenoid(/* The PCM CAN ID */ 9, 4, 5);


exampleDouble.set(kOff);
exampleDouble.set(kForward);
exampleDouble.set(kReverse);

Alternando Solenoides

Los solenoides se pueden cambiar de una salida a otra (conocido como alternar) usando el método .toggle ().

Nota

Dado que un Doble Solenoide está desactivado de forma predeterminada, tendrá que configurarlo antes de poder alternarlo.

Solenoid exampleSingle = new Solenoid(0);
DoubleSolenoid exampleDouble = new DoubleSolenoid(1, 2);

// Initialize the DoubleSolenoid so it knows where to start.  Not required for single solenoids.
exampleDouble.set(kReverse);

if (m_controller.getYButtonPressed()) {
   exampleSingle.toggle();
   exampleDouble.toggle();
}

Transductores de presión

Se puede conectar un transductor de presión para medir la presión almacenada en un sistema neumático. Estos transductores se conectan a los puertos de entrada analógica en la roboRIO y pueden ser leídos por las clases AnalogInput o AnalogPotentiometer en WPILib.

import edu.wpi.first.wpilibj.AnalogInput;
import edu.wpi.first.wpilibj.AnalogPotentiometer;

// product-specific voltage->pressure conversion, see product manual
// in this case, 250(V/5)-25
// the scale parameter in the AnalogPotentiometer constructor is scaled from 1 instead of 5,
// so if r is the raw AnalogPotentiometer output, the pressure is 250r-25
double scale = 250, offset = -25;
AnalogPotentiometer pressureTransducer = new AnalogPotentiometer(/* the AnalogIn port*/ 2, scale, offset);

// scaled values in psi units
double psi = pressureTransducer.get();