Inspiration

The original inspiration behind Bevrian was the Webtoon “Tacit”, by KimDazzi. In the story, the characters could control their drones with their minds to fight zombies, deliver supplies, etc. Of course, the technology behind the mind-controlled drones was never fully explained. Our initial plan was to make an EEG or ECG drone but the design had limitations both in terms of getting the hardware and cost. Therefore, we went with a simpler version of the concept using motion detection via an accelerometer.

Tacit: https://www.webtoons.com/en/action/tacit/list?title_no=3178

What it does

Our project uses accelerometer and gyroscope data to enable users to control a DJI Tello drone (forward, backwards, left and right) using just their hand motions. The takeoff, landing and up and down of the drone is controlled via a push button.

How we built it

A GY-521 accelerometer was the primary sensor utilized in the project. It features a 3-axis gyroscope, a 3-axis accelerometer, a digital motion processor (DMP), and a temperature sensor. We fed the accelerometer’s data into an Arduino Uno, which processed and outputted it in a specific format needed to fly the drone. A second Arduino Uno was running the standard firmata software, which allowed us to run Python scripts on it with third-party libraries. The library we used to fly the DJI Tello was djitellopy. The Python script we wrote read in the processed gyroscope data from the first Arduino Uno and relayed the appropriate commands to the DJI Tello via Wifi.

Challenges we ran into

The first challenge we ran into was setting up the Raspberry Pi. The one we had was a Raspberry Pi 3 that did not connect regardless of what we tried (it was not able to boot up or connect to a monitor/laptop), and we were not able to obtain another one on short notice, due to the shipping times and chip shortages. As such, we had to switch our initial plan to an Arduino-only one.

The second challenge we ran into was associated with the RF433 transceiver module. We tried countless blogs and Youtube tutorials and even sample codes, following the procedures cautiously step by steps, we even made a copper antenna as we thought the transceiver had range issues, but none of it led to any readings. The idea was to connect the accelerometer to the transmitter, which would then transmit the sensor data to a receiver connected to a computer. This would allow the user to have a detached, portable module that they can freely utilize to control the drone. However, the transceiver did not end up functioning properly, and we could not obtain a replacement or substitute on short notice.

The last challenge we ran into was associated with the accelerometer itself. Apart from the fact that the 3-axis accelerometer + 3-axis gyroscope was not readable by the Python library we were using (pyfirmata) to control the drone, the sensor also ended up being slightly faulty in its readings. Namely, we wanted to utilize the gyroscope and accelerometer data to move the drone forward and backwards, up/down, and yaw left/right, but one of the axes was giving faulty readings. Subsequently, we were able to program the drone to move using the remaining 2 axes for the functions of forwards/backwards as well as left/right.

Accomplishments that we're proud of

We're proud of being able to accurately read the data from our accelerometer to effectively and intuitively pilot a drone using motion controls, despite all the challenges we faced.

What we learned

The main thing we learned was that working with hardware comes with its own set of challenges that are much different than software. When components don’t work, the debugging process often takes longer and there are more opportunities for failure. Setting up controllers such as the Raspberry Pi is also much more different than setting up a basic script for a web app. Nonetheless, we learned a lot about signal processing and hands-on electronics.

What's next for Bevrian: The Motion-Controlled Drone

Our next step is implementing wireless communication via Bluetooth, Wi-Fi, or RF communication for the project. The goal is to be able to have a detached module (no PC connection) that can be strapped to a user’s hand, which communicates wirelessly with the drone, just like the concepts seen in the webtoon “Tacit.”

Built With

Share this project:

Updates

Submission history