Arduino-Pneumatic Flight Simulator
Hello, my name is Dominick Lee. I am a senior in high school who is also a programmer and inventor. I created the “LifeBeam Flight Simulator” (name of my project) because I wanted to challenge myself and utilize my software and hardware skills. I was able to successfully plan, build, and run my Flight Simulator after a few months of diligent work.
I would like to thank my physics professor, Dr. Bert Pinsky, for helping me make this project successful.
I also want to thank Karl Anderson (CEO of Teco Pneumatics) for his generous donation of essential parts for our project.
In this Instructable, we will show you the steps to building an Arduino-Pneumatic Flight Simulator so that everyone can enjoy the fun of physics, robotics, and aviation.
The LifeBeam Flight Simulator is basically a motion platform that can make full rotations tilting at about 40-degrees. This is an efficient equivalent to the traditional “Stewart platform” simulator. Our simulator has same physical movements (2DOF) except it only runs on two pneumatic cylinders while the Stewart platform needs six cylinders.
The LifeBeam Flight Simulator is a full setup of equipment that runs simultaneously and collaboratively. The data is first sent from the Graphics or “Gaming PC” through a custom software program that acquires game data. The game data is scaled and converted into specific coordinates for the roll and pitch (X and Y) axis. The program sends out the final signal which is received by an Arduino (Duemilanove). The Arduino has a complex program on it that combines the serial commands and parses certain values to calculate a voltage which is then converted into PWM and sent to a low-pass filter which smoothes the PWM into analog voltage. The analog voltage is connected to a Pneumatic Valve Amplifier which controls the pneumatic cylinders to make the platform move accordingly.
This is a quick demonstration of our finished project. We have everything running and connected the simulator to a Logitech joystick to test the full movement.
Step 1: The PVC Construction
Before you can start any construction, you must have a rough idea of the construction of the simulator. We based our simulator off the classic “Joyrider”. It is recommended that you purchase the PDF plans for $15 at Acesim.
Our Flight Simulator’s main structure is the physical foundation of the project. It consists of a racing seat mounted on a series of schedule-40 PVC pipes. We have layered certain parts of the PVC tubing. All pipers are secured with screws. The PVC structure rests on a large wooden base, which is where the pneumatic cylinders are mounted. My simulator is different from other designs in the aspect that it uses an Arduino to control pneumatic cylinders instead of motors.
Building the Platform:
Once you’ve acquired and familiarized yourself with all the PVC parts, you can proceed to building the “Joyrider”. The only part that you should omit is the “PVC to joystick” base. You should not install the PVC parts that connect the joystick to the seat.
There are certain parts on the plans that may be outdated. For the seat, you can either use a sturdy plastic chair, or an actual racing seat. It is important to firmly mount the seat with nuts and bolts otherwise it will risk falling off. Before you actually mount the seat, make sure your construction is symmetrical and balanced. Once you are finished, you should have a balanced platform that looks like an infant’s rocking crib.
Be sure to drill holes and insert screws in your PVC connectors so that it will not fall apart. We chose to reinforce our setup by inserting galvanized steel pipes into the PVC to prevent them from bending and breaking. Once you are finished, you may build a wooden base to elevate the simulator. The base will be useful for implementing pneumatic cylinders.
Step 2: The Gaming PC
You will need a dedicated high-graphics computer. Be prepared to spend around $200-$600 to build or acquire a gaming computer. The reason you will need a gaming computer is because the Flight Simulator will run several pieces of software at the same time which includes the game and the control software.
I personally chose to build my own high-end computer for this purpose. I built my custom computer with a NZXT Source 210 case, 300-watt power supply, HIS 6770 video card, Realtek soundcard, 8GB RAM, 160GB HDD, and AMD Tri-Athlon processor. This is moderately enough computing power to run my applications with stability.
Although you don’t need to have the exact same hardware, I recommend that your computer should be able to meet or exceed these specifications:
-USB 2.0 compatible with 2 or more USB ports
-250 watt or higher power supply
-A decent graphics card with at least 256mb of video memory
-Separate sound card
-At least 4GB of RAM
-A fast HDD with at lease 5GB of free space (for your game)
-AMD Dual-Core 2GHz processor or better
-Windows XP or Windows 7 (recommended operating system)
When purchasing computer parts, remember to include the mouse, keyboard, and USB extension cable. Also, you will need to connect your computer to both your projector and a spare monitor. Be sure to obtain the correct video cables to make the connection.
Step 3: The Pneumatics System
The pneumatics system is the setup that pushes and pulls the Flight Simulator accordingly. Since pneumatic control is a large topic with virtually limitless information, we are only going to explain the basics of pneumatics. After that, we will discuss the pneumatics specifically used in our project.
A generic air pneumatic system consists of an air compressor, valve(s), pneumatic cylinder(s), amplifier, and feedback module. There are different types of pneumatic cylinders. Pneumatic cylinders can also be called pneumatic actuators.
When choosing a pneumatic actuator, be aware of the bore, stroke, and rod diameter. Also, you want a double acting cylinder. It is recommended to purchase all your pneumatic parts from the same brand so that the tubing and connections will be compatible with each other.
The bore is the overall diameter (measured in inches) of the pneumatic cylinder. The stroke is the length that the cylinder can fully extend. The rod diameter is the measurement (in inches) of the shaft of the cylinder.
We chose to use an air pneumatic system with servo valves because it allows you to precisely control the position of the pneumatic rod. This is different from a regular valve, which just opens and closes.
When using a servo valve, you will also need a servo amplifier. Servo Amplifiers work as a PID controller which calculates an “error” value as the difference between a measured process variable and a desired setpoint. For example, if we had a scale of 1 through 10 and we sent a value of 8, the PID controller would first check the difference between it’s current position (through feedback) and then move until there is no more difference between the current position and the setpoint.
Now, this is only a basic explanation of the PID system. If you would like more information, search YouTube for “PID control”.
We know the servo amplifier controls the cylinder by sending a precise amount of voltage to the servo valve. With a servo setup, you will need a feedback module such a potentiometer or anything that gives variable feedback of the position of the rod.
Some expensive pneumatic cylinders already have feedback built in. In that case, all you would need to do is to plug in the feedback cable into your servo valve.
However, if your cylinder does not have internal feedback, you must must look at the documentation of your Servo Pneumatic Amplifier to see it’s specifications. Once you know the requirements of the feedback property, you must create your own source of feedback by using a variable sensor such as an optical sensor, rotary sensor, or linear potentiometer.
Different sensors have different accuracy. You may want to research for the best sensor that suits your project.
We used two pneumatic cylinders, two servo valves, and two servo amplifiers for our Flight Simulator. This is because we plan to have each cylinder control one DOF or Degree of Freedom. In other words, we built a 2DOF system.
Step 4: Pneumatics Control Box
Now that you are familiar with the basics of pneumatics, we will discuss the specific parts we used in the project.
As we mentioned previously, you need a servo valve amplifier to run a servo valve. We enclosed both our servo valve amplifiers inside a nice acrylic box. We call this the Control System because this box contains not only the amplifiers, but a few other essential circuits that run the simulator.
Our Control System contains a 24v power supply, an Arduino microcontroller, aLow-Pass filter, and two servo valve amplifiers.
Let’s explain the purpose of this circuit boards. Knowing that our main goal is to control the pneumatic cylinders, we need to find a way to communicate with the Servo Valve Amplifiers. We chose to use the Arduino as our solution to send signals to the pneumatic actuators. Although Servo Valve Amplifiers may vary from one another, they generally have similar properties.
To control one of our Servo Valve Amplifiers, we needed positive and negative voltages of 12 volts. In other words, if you sent a voltage signal of 0 volts, the pneumatic actuators would extend to their midpoint. If you sent +12 volts, the cylinders would fully extend. If you sent -12 volts, the cylinders would fully retract, and so on.
We now know that we need a positive and negative range of 12 volts. However, that voltage must be Analog voltage in a sine wave.
Because of this reason, we have two issues that obstruct us from directly using theArduino with the Servo Valve Amplifier:
Issue #1: The voltage that Arduino gives out only has a range of 0 to 5 volts.
Issue #2: The Arduino only gives out Digital PWM voltage, not Analog.
Our solution to this problem was to create a circuit that scaled 0 to 5 volts to -12 to +12. In addition, the circuit needs to function as a Digital to Analog converter. Finally, the circuit needs to be duplicated because we have two Servo Valve Amplifiers.
We started to build a circuit that consisted of a few capacitors and resistors, serving to smooth the PWM voltage. After that, we made numerous tweaks with it, while testing the circuit with an oscilloscope. Once the voltage was stable, we used an IC chip to scale the voltage accordingly. Our circuit can be known as a custom Low-Pass Filter.
Since your model of Servo Valve Amplifier may vary from ours, you should research about the specifications that it needs to run properly.
Connecting to the Arduino
To connect your circuit to the Arduino, you only need to use 3 pins Ground, Pitch, and Roll.
The Pitch and Roll pins are defined as the two output that are used to control the pneumatic cylinders. You will declare these pins as Analog output in your Arduino programming code. Whatever pins you choose, they must be PWM.
For this purpose, we used Digital pin 9 and Digital pin 10. So we would connect the Low-Pass filter to Ground, Pin 9, and Pin 10. This will be where your 0-5 volts are coming from. Your Arduino is supposed to send the PWM voltages to the circuit you built.
Connecting the (Arduino + Low Pass Filter) to the Servo Valve Amplifier
Scrutinize thoroughly to find the connection terminals that will be taking in your control signal voltage. Observe carefully as you securely connect the grounds of the Low-Pass filters to the grounds of the Servo Valve Amplifiers. Then proceed to connect the voltage wires accordingly.
Connecting the Power Supply
Make sure you obtain a power supply that meets the specifications of your Servo Valve Amplifier. Make sure it has enough amperage and voltage to simultaneously supply voltage to both circuits. Observe the polarity and connect the power wires to both Servo Valve Amplifiers.
The Low-Pass Filter circuits should either get it’s own voltage from the Arduino or from a separate power supply.
Step 5: Pneumatic Cylinders & Feedback
Now that you have the Control System ready to use, the pneumatic cylinders are ready to be mounted. Again, the type of mounting that you need will vary depending on what type/size of cylinder you have. However, your entire setup should be bolted together securely because pneumatics are strong enough to rip apart your construction if not securely mounted.
Being aware that our motion simulator would pivot, we used mounts that freely swiveled and rotated. This prevents breakage or wear-and-tear of the simulator.
We wanted our Flight Simulator to tilt 40-degrees all sides. Through simple trigonometric calculations, we were able to conclude that in order for us to achieve this, we would need approximately an 18″ stroke cylinder. Our cylinder had a 1″ bore connected to an iron ball-socket joint. The pneumatic cylinders rest on steel hinge platforms which are bolted on the base and the cylinder itself.
As we mentioned earlier, we used a PID control system, which needs a feedback module. We decided to connect a linear potentiometer to our Servo Valve Amplifier. The linear potentiometer is attached to the rod of the pneumatic cylinder so that it tracks the precise location of the rod.
If you decide to use linear potentiometer, be sure to handle them carefully. These components are fragile and can break easily. In fact, a one of ours were broken when we received them in the mail. To reinforce the durability of these sensors, we attached them to a transparent acrylic strip.
For more detail: Arduino-Pneumatic Flight Simulator