Flight Control System for an Autonomous Unmanned Aerial Vehicle (AUAV)
This project deals with developing a flight control system for an AUAV; including covering computing hardware, sensors, plane development, flight control design and implementation, and testing the system as a whole in a custom simulation environment.
The research paper written covering this project can be found here:
AUAVProjectPaper.doc |
AUAVProjectPaper.pdf
Code for this project can be found here:
Main Flight Control System (C#)
|
Microcontroller Code with Simulated Sensor Data (MBasic)
The circuit used in this project handles switching flight control from a human operator to "computer controled" via relays and a free channel on the reciever.
The microcontroller used in this project is a Basic Atom Pro 24. It is used to not only detect who's in charge, but also read from the GPS sensor and 2D Accelerometer.
It also handles controlling the main motor through a Phoenix 80 brushless motor controller and controlling the servo motors that are connected to the plane's elevons.
For the sensors, when reading real sensor data instead of running in simulation, I used a
Parallax GPS Unit
and a 2D ADXL202EB Accelerometer unit.
Code for reading data from the GPS unit is provided by Parallax and can be found
here.
I have included short demo code for using the Accelerometer sensor
here
I have also included simple demo code for controlling the Castle Creations Phoenix 80 motor controller
here.
The basic idea in this case is to pulse the Phoenix 80 at 1000 microseconds puslewidth to initialize the Phoenix 80. Once initialized, you can then use a range of 2000 microseconds to 3000 microseconds to
control motor power. One important note is that you must continually pulse the Phoenix 80 (within about every 20 ms). If you do not, it will shut off the motor and need to be initialized again before it will respond to pulsewidths from the
2000-3000 range. This is a safety feature for in standard RC transmitter/reciever type usage where the plane flies out of range and loses the transmitter signal.
Code for how to control the HiTech ultra torque HS-5645MG servo can be found
here.
The basic idea here is similar to controlling the motor through the Phoenix 80. In this case though, there is no initialization and the pulse-width range's run from 1645 microseconds to 4400 microseconds coorisponding to 0-180 degrees on the servo motor.
The wing cores for the aircraft used in this project are
RitewingRC TL-60, Lightning Cut design.
Pictures of the aircraft during construction through completion can be found
here.
The main hardware used on the completed aircraft / flight control system are as follows: