AbhilashKotha / YG-Drone-Project

Create a mobile application to remote control an arduPlane.
Other
1 stars 2 forks source link

YG-Drone-Project

Introduction

Drones provide an excellent learning opportunity for science and technology educators, students, kids, and drone enthusiasts. They provide a hands-on learning experience about the principles of flight and electronics, among other topics. The current cost of a full drone setup, however, can quickly exceed one’s budget. One potential solution to expand the availability of classroom drone projects is to replace the drone’s standalone remote controller with a mobile app that allows the users to control the drones indoors or within a closed range.

The project intends to develop a mobile application that provides some of the basic functionalities of a drone’s standalone remote controller.

As part of the project, we want to build an application that

A Major portion of this project already has been implemented as part of the software engineering class. During this class, we aim to resolve some of the issues that we were facing during the development of the application. One of the major issues that has been already identified is Bluetooth connectivity. As part of this project, we will set up meetings with the stakeholders and decide the action plan on whether to move with another protocol or find a supporting framework that supports Bluetooth.

The application that we build will have the following features to start with.

Process diagram

The image shown below shows how our mobile application works at the basic level. Everything outside the dotted rectangular box is external to the system that we are going to build.

The app requires the user to have their mobile device's Bluetooth and the drone's Bluetooth turned on. The first step involves pairing the mobile device with the drone's receiver. If the pairing is unsuccessful, the user is informed and prompted to retry the process until it is successful.

Once the pairing is successful, the user will be shown drone controls like throttle, aileron, rudder, and elevator along with a close button that disconnects the drone from phone

The user controls the drone using the controls displayed on the mobile device's screen. The app validates the user's commands to ensure that they are valid for the drone. If the command is valid, the app sends the respective signal to the drone's receiver, and the drone executes the command. If the command is invalid, the user receives an error message, and they can attempt to control the drone again.

Finally, If the user wants to disconnect the app from the drone, they can do so by clicking the close button displayed, and the drone will be unpaired from the mobile device and the user can exit the app.

image

Below are a few sample UI design screenshots

image image image

Architecture

Below diagram shows the basic architecture diagram of the application

image

How to run?

Click here to know how to run the application

GitHub Actions

Below are the actions that are performed as part of Github actions

  1. Build and release

This step will create a zip file and posts the zip file as part of the release in Github

  1. Tests

This part is responsible for running the automated test cases on the repo

  1. Linting

This part is to analyze the code in terms of code standards

License

This project is licensed under the terms of the MIT License.