RC Quadcopter Drone
After I had completed an obstacle-avoiding car with Arduino, a microchip that allows me to write programs to control various electrical components, I wanted to continue working with Arduino to see what else I could build. I wanted to stay in the realm of vehicles, so the idea of an RC car was enticing, but I felt like it would have been repetitive and too similar to the car I had already built. So, I decided to build an RC drone.
I envisioned a drone controlled by a remote I would build from the ground up specifically for this project. The drone would have a sensor on the bottom to relay its height back to the remote control.
After doing extensive research on the electrical parts I would need, I proceeded to build the frame. I could’ve ordered a prebuilt frame but I wanted as much of this project to be built by myself as possible. So I purchased a 3D printer to print custom parts. I decided to use Blender, a free and open-source 3D modeling software, to prototype and create the models.
My biggest mistake in the initial prototype was eyeballing measurements. While I made sure the motors I chose would fit in the arms I printed, I didn’t put much thought into things like the thickness and length of the arms. As a result, the arms were far too long and far too thin, causing them to droop with the weight of the motors added. Additionally, the body of the drone was made as big as possible, just so that all the components would “probably” fit in the frame of the drone, likely with a lot of extra space. Not to mention that the body was also far too thin and flimsy. Overall, the entire build looked awkward when put together and was unnecessarily huge.
In the next prototype, I made sure to check the thickness of the arms and body in the model to ensure that the frame would be sturdy enough. Another significant change I made was modeling the frame all together, so I had a clear view of how the parts would look when put all together, including the propellers. Measuring the propellers and creating a primitive model of them that represented how much space they would take allowed me to shorten the arms while ensuring that the propellers wouldn’t interfere with or hit each other. The arms themselves went through a few iterations from the initial prototype. I do not have a photo of the original prototype, however, I have a rough recreation of what the full-body model looked like.
This prototype turned out to be far too clunky. When I attempted a flight test once I had almost everything hooked up, it did not budge from the floor despite the motors being on max power.
The rather odd-looking triangular shapes coming from the leftmost arms are the models I used to represent the length of the new propellers.
Learning from the last prototype’s weight failure, I made sure in the next prototype to not build something with more space than necessary by measuring all the electrical components. I downsized some pieces such as the propellers and the battery to reduce the weight. Going for a smaller propeller size allowed me to make the arms shorter, and going for a smaller battery also reduced the weight of the drone. With those changes and some minor convenience changes such as integrating holes directly into the 3D model instead of manually drilling them after the print, I had the 3rd major prototype.
The final product was almost identical to the 3rd prototype with some changes to the arms to better hold the motors. With that, I was ready to begin working on other aspects of the drone on the software side. Namely, I had to write scripts for the gyroscope and radio modules.
The purpose of the gyroscope microchip was to measure the rotation of the drone. This allows for the drone to self-stabilize midair in case of slight weight imbalance or environmental factors such as wind. The process of creating the script to control this was fairly straightforward and didn’t produce any serious issues.
However, I ran into some strange issues with the radio modules. For some context, I was working with two types of radio modules, one with an external antenna for extra range, and another with a chip antenna that didn’t stick out. Besides the antenna, the radio modules are the exact same microchip. The actual issue I was facing was that the radio module in the remote control, with an external antenna, was not able to communicate with the one in the drone, which was using the smaller variation without an external antenna. All sources online said that the two different modules should be compatible with each other, so I kept tinkering with different areas in my code to fix the issue. After a few days, I wasn’t able to resolve the issue so I instead attempted to use two modules with an external antenna, but they still weren’t able to communicate with each other. In the end, I sacrificed some extra range and used the two smaller versions which seemed to work.
The next issue I ran into with the radio modules was even more peculiar. The radio modules would work… sometimes. It took me a couple of days to realize the pattern, but essentially, the radio modules would be fine for about 30 minutes until they suddenly stopped being able to transfer data for seemingly no reason. If I disconnected the power supply for 10-15 minutes and reconnected it, they were back to normal, communicating perfectly as expected. After some really extensive research over the following week, I came to the conclusion that there was really nothing much I could do. Essentially, radio interference was likely causing the issue, and since I live in an apartment in Manhattan, where there is a very high density of Wi-Fi networks and electronic devices, there was a lot of radio interference. I attached capacitors, small electrical modules, to the radio modules to help smooth their connection and limit interference, but that was all I could do.
Mini flying test with a slight controller mishap. As you can see, it was very hazardous to test it in my small Manhattan apartment.
With the capacitors added, the final version of my drone with all the components added was complete. Unfortunately, I was unable to do a full fly test because I didn’t have access to a safe and controlled environment. Regardless, I had a ton of fun making this project and I still gained a ton of insight into the engineering and prototyping process.