Pressure Gauges Calibration System (Arduino/Processing)

Hi: This was my first Arduino/Processing project and the most complex I have attempted. This is video part 1. It shows only the hardware prototype built for the system. An Arduino Duemilanove controls the bench operation under main computer commands. The main computer is running a program written with Processing 1.5.1. and sends orders to Arduino and receives data from it, but Arduino executes most of the functionality in an autonomous way. For example, Arduino receives the order to move left, right, reset car, increase or decrease pressure to the next step and it controls the order execution entirely, informing Processing when the order is completed. Solenoid valves are used to control the pneumatic system to apply the different pressure levels to the Gauges required by the test, with an air compressor used as the pressure source. The system can test simultaneously up to 4 Gauges with up to 100 psi full scale at this time. There is a camera mounted in the moving car with spot lights to take live video and pictures of the Gauges being tested by the Processing software. The pictures are magnified and analyzed with help from the software to find if the readings are in or out of tolerance. This increases the accuracy of the readings taken compared with simple operator observation. The code includes many software interlocks to prevent the user from taking the wrong action at all times and guides the user all along the test procedure which improves repeatability considerably. Many things are monitored like all power supply voltages, inflation and deflation times for the different pressure steps, obstructions and/or leaks in the pneumatic system, gauges positioning on the screen, camera car positioning, overpressure detection, inactivity timers, etc. Also included are events loggers as .txt files to record every action and results including buttons pressed by the user with time pointers of occurrence. There are also several data loggers in Excel. Gauges pictures are also stored for each of the test points. At the end a summary of the tests performed is generated with all the measurements taken and the results. The Gauge scale is also analyzed for non linearity, rotation, and pointer centering. These parameters are also calculated and shown at the end for each Gauge in numerical and graph formats. Building the Processing code was the hardest part taking about 95% of the time. The major difficulty was that to test anything, the program must be run and the test conducted to the point where any code correction was made and that takes several minutes specially at the end of the tests when several gauges are tested at once. There is no way around that. The prototype was built with what I could find at local hardware stores on weekends and salvaged parts. Its purpose was to have a test platform to prove concepts and write the software. I hit the pause with this project since the next step is to build a more sophisticated test bench for real and conduct more tests and that's going to take some serious money. The pressure sensor required alone is $750 for it to have the accuracy required by the standards to test all possible gauges ranges from 30 to 100psi with 1%FS accuracy. At this time I'm entering temp, atm pr. and relative humidity manually as that was not the main goal of this project. That monitoring capability will be added later on. The pneumatic system I built has leaks; but that's OK for now as the leakage rate value is determined by the system and known. It must be corrected though. The pressure source value is also entered manually at this time by visually reading the gauge under the bench. I did not wanted to spend more money in another pr. transducer for now. I will have to move to an Arduino Mega or expand the inputs an outputs of the Duemilanove I'm using again. I have all input/output digital pins in use and expanded already by 8. The analog inputs are almost exhausted with only one left. In order to add anything expansion will be required. So far I have tested many concepts and ideas and they are implemented and working; but since this is a massive project I guess it is also the never ending story... There are hundreds of different Gauges out there with the intended range and making a universal calibration system capable of testing most of them is not easy task. Built with Processing 1.5.1 and Arduino Duemilanove.

here is the video: http://www.youtube.com/watch?v=tcw-30PbFrg