Closed Loop Pneumatic Control

Add Video here

 

I like the degree of position control that can be achieved by using servos but find normal hobby servos to be grossly underpowered for the normal animatronics what I like to build.  A high power servo yields force in the realm of 50 to 120 once-inches of torque and that just will not move an arm weighting in at 4 pounds.  For this I find pneumatics to be my technology of choice as from a small ¾ inch bore cylinder operating at 100psi you can expect 44 pounds of force.  But the trade off is that you lose the high degree of position control, normally trading down to two positions being fully extended or retracted with mild stroke stopping challenging and consistently stopping the cylinder mid stroke in the same position every time imposable without the use of external sensors further complicated by variations in air pressure and flow as other items compete for available air.  The Industrial solution has been to use expensive externial sensors or cylinders with built in position sensors like the Bimba PFC line and special valves that can very air flow on the fly.  While this solution looked like a great solution for getting the power of pneumatics with the position control of a servo, but with a price tag in the $800 range for a single cylinder valve combination became very prohibitive for building hobby animatronics, especially when we consider I have built single creatures with 20 cylinders.  My plan to explore the possibility of building rheostats or variable resistors into the joints of props that I want to have greater control over and use a microcontroller to read the resister and switch a valve or two that control air flow to the cylinder opening up the ability to stop the cylinder repeatibally in any spot along the cylinders stroke.

For initial testing I build a small mounting plate out of some scrap plexi glass to hold a small cylinder, two valves, and a resistor.

After some initial testing that turned out good I came across two bimba PFC cylinders on eBay for a rock bottom price of $14.  So I figured for this price I could not pass up testing feedback positioning using a commercial cylinder with an internal resistor. 

 

 

The program on the atmel (my current preferance) microcontroller reads the resistor and opens one of the valves to move the cylinder rod until the resistors value matches a traget number between 0 and 255.  For testing I have hard coded a diffrent number to each button on the development enviroment.  To be usable in a real application I would have the microcontroller get the target position number from the serial or SPI inferfaces using a rs485(dmx), midi, or ethernet protocal.  

rear of cylinder with sensor wires protruding view of test setup
cylinder and two valves on bench test setup showing cylinder, valves, and mcu development enviroment

Add source code here

 

Leave a Reply

Your email address will not be published.