Video of the finished animatronics-
The chassis for this project was made entirely from Aluminum for durability. The arm uses a simple parallelogram mechanism in order to keep the cannon level as it raises up to the firing position and the arm end joints are supported by cartridge bearing assemblies. The leverage ratio is pretty high and the cannon is quite heavy with the installed servo hardware and wiring so I used a geared servo drive with a counter balance spring to control the arm movement. Since the Aluminum arm would eventually be covered by a detailed resin casting I had to make sure that all of the mechanics would be able to be hidden later.
Both of the servos are high torque digital servos and I used a servo programmer to adjust the speed of the servos so the cannon movement during the recoil action matched that of the film and the arm would have a nice slow movement when raising and lowering.
The two servos are controlled by an Arduino ProMini. The ProMini is soldered to a bread board PCB and power to the entire system is supplied by a 12V switching power supply. 12V is sent to the Buck Toot driver for the Luxeon LED and is also stepped down to 5V using a Pololu DC/DC converter which can output up to 7A to power the servos. A 5V @1A DC/DC regulator provides power to both of the Arduinos and WaveShield as well as the ultrasonic sensor and two blue SMT LEDs. The 5V output is stepped down to 3.3V using a voltage regulator to power the cannon laser sight.
The two SMT blue LEDs in the end of the cannon light up during the power on sequence and the single blue Luxeon Rebel LED lights up when the cannon fires. The sound effects are handled by a Wave Shield. All of the LEDs, laser sight and sound are triggered using transistors. The sound files were created by me using several sound clips from the movies. It was a fair bit of work getting the movements, sound and LED timing just right!
The laser sight is plugged into the side of the cannon using a USB connector so it can be easily removed for painting and shipping.