MIL’s Pneumatic Board¶
The pneumatic board is responsible for controlling several valves used to power various systems. The board was created by Daniel Volya, a former MIL member, who is now on his way to achieveing a PhD.
Raw Communication¶
To send bytes: Send the command (as a byte), then send the byte XOR with 0xFF
(checksum).
To receive bytes: Receive the byte (response), then receive the byte XOR with 0xFF
(checksum).
The opcodes used by the board include:
Opcode |
Command |
---|---|
|
Send a ping to the board |
|
Open valve (to allow air flow) |
|
Close valve (to disallow air flow) |
|
Read a switch |
Intended Operations¶
To ‘ping’ board (check if board is operational): send 0x10, if operational, will reply with 0x11.
To open valve (allow air flow): send 0x20 + valve number (ex. 0x20 + 0x04 (valve #4) = 0x24 <– byte to send), will reply with 0x01.
To close valve (prevent air flow): send 0x30 + valve number (ex. 0x30 + 0x0B (valve #11) = 0x3B <– byte to send),will reply with 0x00.
To read switch: send 0x40 + switch number (ex. 0x40 + 0x09 (valve #9) = 0x49 <– byte to send), will reply with 0x00 if switch is open (not pressed) or 0x01 if switch is closed (pressed).
Interface through ROS¶
In 2018, Kevin Allen, a former MIL member developed a bridge between ROS and the board.
The class responsible for this interface is mil_pneumatic_actuator.PnuematicActuatorDriver
.
This class provides several methods for completing all operations needed to control the board.