Note: I haven't started building anything just yet. I'm trying to gauge interest in this project before getting started, so if you have comments, suggestions, ideas, or words of encouragement, please post those below!
MotivationHave you ever wondered how a drone works?
Not just how to send a few commands to move the drone around, but how the drone is built, from the circuits, the low-level firmware controlling these embedded systems, all the way up to the high level behavioral control that can chart out a course for the drone to follow and orchestrate all of the hardware systems to accomplish this task.
The objective of this project is to build a drone from scratch (hardware, firmware, and high-level software). Each of the key modules will be breadboarded, and programmed (firmware). Each module will then be converted into a PCB shield for the Arduino, which will be assembled into a working drone! Lastly, this project will develop high-level logic that ties the hardware systems together into a fully functioning drone that can fly and take commands from a remote control.
What Is BareMetalDrone?BareMetalDrone is a quadcopter powered by the Arduino Uno and built from scratch.
This project will go through building the modules necessary to complete a fully working drone. The plan is to breadboard and program each module, and then to fabricate each module as a PCB shield for the Arduino. This post will be updated as each module is designed and fabricated.
For anyone who is interested, I would love to send you instructions that teaches you how to breadboard and program each module, and also send you the completed PCB shields at cost. If this interests you, please shoot me an email at austin@cirkitdesign.com.
What are the modules inside BareMetalDrone?It should be emphasized that nothing for the BareMetalDrone has been built yet. I'm trying to gauge interest in the project before getting started, so the diagrams and plan I have put together are very preliminary and may be incomplete or include mistakes.
Here is a tentative plan of the modules that will be built for this project:
Li-Ion Battery Module
The Li-Ion battery shield will power this entire project, including the brushless motors. No computations have been run yet on the required battery capacity, so the battery may end up much larger than depicted here.
Bluetooth Module
This quadcopter will either be powered by a phone app or by a remote controller (this hasn't been decided yet). The bluetooth module will be critical to controlling the drone.
This project will not be using an off-the-shelf bluetooth shield. Instead, the bluetooth module will be breadboarded from scratch, and then fabricated into a PCB shield. The project will work through coding up the Arduino's communication with this bluetooth shield from scratch as well.
Sensor Shield
The drone will need some sensor measurements in order to control tilt, altitude, and position. We'll likely need an accelerometer and gyroscope, however, more sensors may be required.
This shield will be especially interesting to program. The program will need to meaningfully interpret all of the sensor data to figure out the drone's position, orientation, and velocity.
Motor Controller
The motor controller will be necessary to convert low-current signals from the Arduino, containing motor commands, into high current signals that can drive the four brushless motors.
Controlling these motors to balance and navigate the drone will definitely be a challenging task. There will certainly be some mathematical derivations involved to figure this module out.
Brushless Motors
Lastly, this project will breadboard up the brushless motors, to understand how they are connected to the motor controller / Arduino.
Main Arduino Logic
In addition to implementing low-level code to get the modules working, this project will build out the high-level behavioral logic so that the drone will actually fly!
The project will start simple, with the goal of just getting the drone to take off, lift vertically, and land without crashing. But we can get much more ambitious by programming the drone to move around horizontally, and to follow a 3D course and return home.
There really isn't much of a limit to how far the software can be developed. In the future, a GPS module could be developed so the drone can traverse waypoints. A camera could be attached so the drone can utilize computer vision. A robotic arm could even be attached so the drone could pick up and deliver packages!
Comments
Please log in or sign up to comment.