top of page

Drone Gimbal

Drone Gimbal Matlab Project

The Drone Gimbal project consists of a one axis gimbal and camera that are attached to the underside of a Syma X8C drone. In doing this, users can see and control what their camera is capturing. Through object-oriented Matlab code we’ve provided an interface to control the gimbal, maximizing what the camera can record. Within our interface, users have the option to enable face tracking, return to a home position, move to specific camera angles and take screenshots. Additionally, we 3D modeled and printed the gimbal mount to securely fit a camera and for easy attachment to the underside of the aerial drone.

The main application of this project revolves around the implementation and control of a one-axis gimbal mounted on the bottom of an aerial drone. A camera is then mounted on the drone gimbal in order to capture live video feed with a unial-axis control. A Matlab graphical user interface (GUI) is set up with a live stream video feed as well as ‘up’ and ‘down’ button controls in order to control the vertical axis of the gimbal mount. In addition to these button controls, a slider and an angle input box is available to set a custom position, a home button to reset the camera position, and a screenshot button to capture an image from the live stream feed. For all these GUI buttons, keyboard press functions were also implemented, so the user can freely alternate between using their keyboard and using the onscreen GUI for control of the gimbal functions.

The mechanical aspect of the mount involves a continuous servo motor that is wired to an Arduino Uno microcontroller board. The servo motor is attached to the undermount of the drone and screwed into the gimbal outer shell. Various Matlab commands can be used to control the input voltages of the Arduino pins and servo motor using the Matlab Support Package for Arduino Hardware. These Matlab commands are crucial in controlling and stabilizing the gimbal mount position using the servo motor. For demonstration purposes, our setup used involves a servo motor wired to a Arduino hardware that is powered by the computer via a USB connection. However, with more time and funding, one can utilize the same Matlab code with wireless equipment in order to actually use the drone and Matlab functionalities in real-life applications.

The purpose of this application is to create a user-friendly interface that allows the user to view their camera’s live video feed while having easy access to control of the camera’s angle position for maximum viewing potential. Additionally, a graphical slider is available for a more customized control of the gimbal mount as well as a screenshot functionality in order to capture hard to reach images using the drone.

Based on this description, it is evident that the functionality of this project is largely robust and user-friendly. The gimbal mount outer case was modeled via computer aided drafting (CAD) in order to seamlessly fit the camera into the mount, as well as giving the mount a more easy and customizable fit onto the actual drone itself. The servo motor is screwed onto the mount and spins the mounted camera with a consistent speed and torque. Although our motor can continuously rotate 360 degrees, we limited the rotation of the servo motor because it’s not necessary for the camera to see the underside of the drone. The Matlab commands that power the Arduino Uno microcontroller and servo motor in combination with the GUI callback methods gives the user maximum control and functionality. The live camera feed integrated with the Matlab GUI also gives the user an easy to use interface and opens up a potential for numerous other application`s that can be implemented with the Matlab video preview functionalities. This project contains one such application which is described below.

Another secondary application of this project involves the implementation of facial recognition and tracking in Matlab using the GoPro camera’s live video feed. This functionality is useful in numerous applications, and is seamlessly integrated into the Matlab code with the live stream video. Within the scope of this project, the purpose and functionality of the face tracking component is relatively basic. However, again, with more time and funding one can implement numerous possibilities to be used in correlation with the face tracking aspect of the Matlab code. The ability to use this functionality in combination with flying the drone and controlling the gimbal mount via the Matlab GUI gives the user even more added control.

2017

UML (Unified Modeling Language) Diagram

​

​

The design process involved generating different concepts that could be utilized by Matlab's object oriented programming language. We narrowed down to the drone gimbal concept because it seemed like a good balance of hardware and software integration to peak our mechanical engineering interests.

A lot of research was conducted in setting up the hardware and circuitry aspect of the design. We conducted informal interview with electrical engineering undergraduate and graduate students to gain more information on the electronical aspect of the design. Once we got the circuitry to work, we implemented Matlab code that is able to perform all the desired functions of our initial project proposal. Below is the UML (Unified Modeling Language) Diagram for the coding aspect of our project. 

​

​

​

bottom of page