For my senior year in CSU Long Beach Computer Engineering BS, I worked in a team of four to create an automated air cannon. Our cannon successfully launches a wooden projectile up tp 200 feet in any direction and within 10 feet from a chosen GPS target. A forward observer can remotely select GPS data, and communicate with the cannon from up to 300 feet away. He can send the GPS data as a point on a localized GUI map, and can also control when the Cannon begins it's firing sequence.
This project uses 3 TM4C microcontrollers programmed in C, and utilizes I2C commutation protocol to interface with an electronic Azimuth sensor, GPS sensor, electronic air pump and release valve, a DC motor to rotate the cannon, and long range Bluetooth chips.
Valhalla App - Software Flow Diagram
We also made a mobile application for use on any Android smart phone which acts as the GUI controls for the forward observer. The smart phone uses it's built in short range Bluetooth to communicate with our long range repeater which can then communicate wirelessly to the cannon up to 300 feet away.
I primarily worked on the communications and control code for the project. This pushed me to learn how to use two different types of Bluetooth communication protocols. I used C# to interface with Google's open source information from their Google Maps. I created my own communication protocol and system between our devices to ensure safe and reliable 2 fault communication. This ensures no false firing of the cannon.
Thanks to our group efforts of learning I2C, communication between the microcontroller and the Bluetooth modules were made simpler.
I also worked on implementing the calculations necessary for the automation. After some initial math formula-based calculations, our team took to the field and graphed real results showing distance fired vs charge time of the air compressor.
Using this information, and the azimuth information from our magnetometer sensor, and some trigonometry, I was able to write C code on the turret that would handle the targeting automation.
This project took our team of 4, which began as a team of 2 about a year to complete. We learned a lot, consulted our teachers, our peers, and the internet day in and day out. We iterated through several designs across many sub-designs of the project, and learned to split the work efficiently while knowing when to collaborate and work together on research and implementation.
Click Here to see our full report
with detailed explanations, diagrams, engineering process, and source code