Overveiw
Dagger - 01 is a drone model created using Arduino as part of a university project. Developed with my colleagues. The primary purpose of the app was to create an application to control the drone via a computer, integrating advanced functionalities like finding suitable landing areas, identifying impacts, auto-landing, and GPWS (Ground Proximity Warning System).By overcoming challenges like Arduino's single-thread limitation and Bluetooth communication issues, I created a functional and visually appealing control system for the drone, fulfilling both technical requirements and my desire to design a sci-fi user interface.
My Role
UI/UX Engineer : Designed the user interface with a sci-fi theme and developed Frond-End using React.
Back-End Developer : Created the server-side logic.
Drone Programmer: Implemented the drone's software.
Sci-Fi UI
The front-end was developed using React. For the sci-fi user interface, I created custom SVG components using Adobe Illustrator, enhancing the visual appeal and functionality of the control application.
Dagger - 01
Special Features
Multi-threading for Arduino
Arduino's lack of multi-threading posed a challenge as the drone's process scanner could not respond to IO operations concurrently. To overcome this, a feedback loop was implemented, allowing the scanner to temporarily save its state and resume from the last saved state after receiving feedback.
Logging
I implemented logging functions in the back-end to track:
- Commands sent to the drone
- Actions taken by the drone in response to commands
- Procedure of actions
- Sensor readings
Back-End
The back-end, developed in Node.js, facilitated communication between the computer and the drone model via Bluetooth. Since React does not support direct communication with Bluetooth devices, the Node.js server handled all Bluetooth interactions, relaying information between the drone and the front-end application.