Using Pneumatics with the CRIO?

Hi guys!

Team 1771 is making a t-shirt shooter robot with our spare CRIO, and using pneumatics.

I searched through the documents about pneumatics, but most of that was hardware for setting up the valves and tubes, etc, and the control stuff was for the IFI boards.

What I am really looking for is how I need to hook up all the stuff to the CRIO and the IO Board.

So far I have been able to set up a Spike to turn the compressor on and off, but that is it. I don’t know how to hook up anything else, such as reading the pressure, and flipping the switches electronically.


PS- Didn’t know if this should go under Pneumatics, FRC Control System, or Electronics. :confused:

Open LabVIEW and look at the examples, specifically the ‘Solenoid with Compressor’ one. It shows the complete layout, including compressor, pressure switch and solenoid.

Ah, I use Windriver C++, not LabView. >_<

My main question though is what wires are needed to be attached to the cRIO pneumatics bumper? And which go to the IO Board instead?

I know we hooked up the Spike to the IO Board to turn the compressor on and off.
We also have a little thingie (don’t know the name. >_>) that measures the pressure digitally. Will this be attached to the Pneumatics Bumper?

Open this schematic and you will get your answers!

AH, okay thanks.

I must have been looking in the wrong section.

Look at the WPIlib documentation for the Compressor class. It tells you what methods to call in order for the program to control the compressor properly. When you create your compressor object, you specify which relay output is connected to the Spike and which GPIO input is connected to the pressure switch. After the proper initialization, the relay is turned on automatically when the switch indicates low pressure.

Okay, thanks.

I was looking at that, and have a few questions.

  1. What is the GPIO? :o

  2. I don’t understand the difference between the Start() method and what I was previously doing. (I had it set so if the trigger is pulled, the Relay is set to be forward, powering the compressor) What does the Start() do? From what I saw in the code, it just sets enabled to be true, but it doesn’t check the pressure constantly, does it?

GPIO = General Purpose Input/Output

That’s just another name for the pins labeled “Digital I/O” on the Digital Sidecar.

Start() does indeed start a process that constantly checks the pressure switch digital input and turns the compressor spike on and off automatically.
You don’t have to do the logic yourself (although you can if you really want to).

Okay, thanks!

That’s always been one of my troubles in programming…I try to figure out everything, even if it is already written.

(One of my hardest things switching from C++ to Java in AP Comp Sci…everything is done for me! :yikes: )

Thanks for the help guys, can’t wait to get back to school and test it out.

My team made a t-shirt launcher too! But we didn’t incorporate the control system into it. We figured we’d fire it manually with a switch, give it its own air reservoir, and when we fire it we fill the reservoir back up with an air compressor with a large tank. It works pretty well, but we get a lot of “fluid loss” due to some small pipes here and there in our design. Therefore it doesn’t shoot very far. :frowning:

Here are the sites that we used extensively for inspiration, they are extremely helpful.
Burrito Blaster on Make:
Air Cannons on Crazy

If you want to use a real sprinkler solenoid like in these examples, you can switch it using a spike and probably the solenoid breakout board. Make sure the voltages match up though. A spike will send out 12v of course, but I think the solenoid might only send out 9v. Whatever it is, make sure it fits within the range that will switch the sprinkler solenoid.
I would recommend using a sprinkler solenoid because they are bigger and therefore can let more air out faster. The FRC solenoids have small passageways and are not meant for fast air output.

Hope that helps!