It’s only when you’re flying above it that you realize how incredible the Earth really is. — Philippe Perrin
This amazing looking device is a quadcopter that was designed by me and my team at the University of Victoria. The project built completely from scratch using 3D printed parts, some cheap electronics, and a modified version of the AeroQuad software. For those interested in the technical specifications of the project, you should check out our team site. The purpose of the project was to create a DIY quadcopter for under $200 and push the limits of what the 3D printer in our laboratory can do.
Getting a Quadcopter to Fly
The basic operation of any quadcopter device is very simple; all you need to do is provide enough thrust from the propellers(props) to balance out the weight of the craft. The difficult part is to control the speed of the four motors so the device can remain level and stable during flight. Luckily, the AeroQuad software provides much of the needed PID computations and it can allow up to 8 rotors to be controlled at once. One important key to having a successful flight is to have the correct motor orientation for the motors and propellers. During flight, the rotorcraft is under the influence of the torque effect which causes the body of the craft to spin in the opposite direction of the rotors. That’s why it’s important to buy props with both normal and counter rotating blades. The flight configuration that matched our quadcopter was the Quad X configuration as pictured here. Motors are labeled sequentially in a clockwise direction starting from the front left motor.
The goal of our design is to keep the parts relatively cheap (under $200) and light enough to allow 3D printed parts. Our quadcopter design consists of four main components:
- Rotors – Brushless DC motors that can provide the necessary thrust to propel the craft. Each rotor needs to be controlled separately by a speed controller.
- Frame – The structure that holds all the components together. These parts are all 3D printed so they need to be designed to be strong but also lightweight.
- Prop Guard – Styrofoam structure around the props to protect the device in the event of a collision.
- Microcontroller & Sensors – The Arduino microcontroller loaded with a 9 degree of freedom sensor from sparkfun. This allows the quadcopter to adjust for stability during flight.
For those of you who are looking for an easy way to calculate the power requirements for your RC device, you should check out the online calculator eCalc. It’s an amazing tool that helps you decide what components to purchase depending on the payload that you want to carry. For our project we chose the 1900 KV HobbyKing Outrunners because it best satisfied our criteria for power, weight, and price. If you attach an eight inch diameter propeller to each of the motors you get around 270 g of thrust per rotor. This is more than enough thrust to lift the frame and the small lithium ion battery that powers the quadcopter.
We created the quadcopter frame’s using the makerBot Thing-o-matic 3D printer. The printed parts are made of ABS plastic; the same material used for Lego bricks. The components of the frame were printed separately and then later assembled together using interference fits and screws. Some of the parts had to be printed diagonally because they were too long to be printed on the platform. The total weight of our quadcopter frame turned out to be 176 g.
For the safety of the craft and of those around it’s flight zone, we wanted to build some sort of protector around the quadcopter. The CAD model that was drawn for the Styrofoam protector was converted into a template which was then used to trace the lines where the Styrofoam needed to be cut. The circles and curves were cut using a custom made compass device with a Styrofoam cutter attached to the end.
The video below shows the assembly of all the mechanical components.
Electronics & Software
The 9 Degrees of freedom sensor stick (9DOF) contains 3 sensors: an accelerometer, a gyroscope, and a magnetometer. Each sensor can be communicated with using I2C from analog pins 4 and 5 on the Arduino Uno. We powered the sensor stick using the 5 volts out available on the Arduino Uno. I2C also requires pull-up resistors on the data (SDA) and clock (SCL) buses. We used two pull up resistors soldered to the 5 volt output of the Arduino shield and SCL/SDA. To prevent the sensor from receiving too much noise during flight, the sensor was soldered to an Arduino ProtoShield on the pins. The other end of the 9DOF was glued to the shield. Check out the team site for more details on the sensor. The source code for the project is based on the AeroQuad software and can be found here.
The demonstration video.