Autonomous Stabilization System For a Coaxial Helicopter using Atmel Mega32

Introduction

For our ECE 476 final project we developed an autonomous stabilization system for a coaxial helicopter with tri-radial tilt control designed for stability.
Autonomous Stabilization System For a Coaxial Helicopter using Atmel Mega32
The purpose of this project was the design of a fully autonomous stabilization system intended for systems capable of intelligent programming and navigation. This means that the design focuses mainly on the control feedback systems that control the helicopter’s motors that then provide lift to increase and decrease altitude, and produce a tilt about the helicopter’s central vertical axis which would be used for stabilization and potentially lateral motion. We chose this project because it was an ambitious projected aimed to challenge us as well as provide a level of sophistication that would allow this project to be applicable not only as a semester project but to potentially be used in future projects.
We successfully reached sub goal 1.3 except that we did not demonstrate the non-vertical movement although the craft demonstrated non-vertical movement capabilities.

High level Design

Rationale

The original concept of a co-axial UFO like flying helicopter utilizing tilt control was originally conceived by one of our project group members. This original system did not have propellers that had tilt freedom and would counteract gyroscopic motion but rather would be stead fast. Also instead of tri-radial propellers for tilt control this system had an effective servo which displaced some weight on a concentric ring at a point in the direction that was the desired forward motion. This displaced weight would readjust the helicopter’s tilt orientation in space and move it in that direction.

This idea was very closely adhered to except for the fact that we did not have time to build all of the parts so we outsourced and bought a pre-existing co-axial design that was already manufactured and stripped it down and customized it to our needs and wants. This was the Blade Runner RC helicopter and we found this by searching through the internet for a very long time. This helicopter contained no digital circuits other than those used to operate the RF transmission and to charge and deal with the battery. We managed to source this resource for only $10 on eBay! This alone made our project possible.

Structure

A simplified diagram showing how the stabilization of the helicopter is obtained is shown below. Essentially, we are controlling the speed of the various motors to achieve stabilization. We achieve this by letting the MCU output a PWM wave to the motors, which is adjusted according to movement detected by the accelerometers and gyroscope.

The movement detected by the individual sensors is shown below. Using this mechanism, we are able to create a feedback loop which should stabilize the helicopter.

More specifically, there are three major aspects of the craft that need to be controlled using a feedback system. These aspects are altitude, rotation, and orientation.

  • The rotation of the craft will be implemented via a control feedback system that uses a gyroscope to determine rotation and adjusts the two rotor motors accordingly to keep the craft from spinning out of control.
  • Orientation will be controlled using a basic algorithm to determine the appropriate voltage levels needed on the propellers to adjust the tilt of the apparatus such that the tilt corresponds to either hover (no or close to no movement) or a specific degree direction and rate. The tilt will be determined using a two-axis low-g accelerometer.
  • To control altitude we determined what the Z axis acceleration is and try to eliminate it.

Hardware/Software tradeoffs

During the course of this project, there were many times where we had to make decisions that required tradeoffs. For hardware, we were very concerned about weight, since we would require higher voltages for take off which would probably end up with burned out motors. For example, we decided on a 36 gauge wire for its light weight, however increased power loss as it basically became a voltage divider with the motors, because its resistance is comparable to that of the motors.

As per software, we had to make tradeoffs between noise and resolution. With the Z-accelerometer, we observed a lot of noise when the motors were turned on. Therefore we implemented a filter which required a lot of cpu cycles to compute. This made our system more laggy and harder to control, as well as, introduced oscillations to the system that had to be dealt with.

Standards/Patents

There were no standards that we had to adhere to in this project. The components that we used all have patents and were under proprietary architecture. However, our design itself is custom made, and therefore no patents were infringed.

Hardware

he essential components of the hardware system are

  • Protoboard and MCU
    • Push Buttons
  • Gyroscope
    • Voltage divider
  • XY-Accelerometer
    • Voltage regulator
  • Z-Accelerometer
  • Helicopter
    • Motors
      • – Optoisolator Circuits
    • “Launch Pad” and IO Tether
  • Power Supply

Protoboard

The Atmel Mega32 microcontroller is mounted on the provided custom made protoboard. We added three ports, for interfacing with the motors and sensors. Port A is used for receiving the outputs from the sensors, Port C is used for the PWM outputs to the motors, and Port D is to interface with buttons that are used to turn on the helicopter as well as the debug LED which proved invaluable for the development of our project. Due to the current that is required by the whole system, we replaced the voltage regulator with a LM340 5V regulator that can support our design’s current needs better.

The Push buttons were used for some basic debugging and testing purposes, however, they were mainly implemented for the purpose of starting up the helicopter flight routine without introducing any sort of vibration/electronic noise into the system. This allowed us to turn on the helicopter without touching anything sensitive and allowed us to better balance the craft once we got down to the nitty gritty aspects of making the stability system tight enough to work within the length of our IO tether.

Helicopter

Autonomous Stabilization System For a Coaxial Helicopter using Atmel Mega32 diagram

We bought a Blade Runner RC helicopter from Ebay for $10. We tore this apart, removing the chassis, RF receiver, and lithium ion battery. We used the rest of the parts, namely the gears and rotors for our design. This was done since we did not have the facilities, budget or time to design and build these ourselves. The structure of the helicopter is such that there are two main rotors to provide lift that are individually controlled through their own motors and gear systems. For the body of the helicopter, we glued the whole gear system on to a slab of Styrofoam. Since weight is especially a key issue, we decided to wire everything with 36 gauge wire, which reduces its impact on weight. Due to the number of wires that are to and from the helicopter, we decided to connect them to jumpers for easy interfacing. Below is an early conceptual model that demonstrates the design of the Helicopter’s geometry.

Parts

Part

Amount

Total Price

Optoisolator

1N4001 Diode

5

Lab

BUZ71 transistor

5

Lab

4N35 optoisolator

5

Lab

300 ohm resistor

5

Lab

10K ohm resistor

5

Lab

XY accelerometer

MMA6261Q

1

Lab – Freescale

Z accelerometer

MMA1260D

1

Lab

Gyroscope

ADXRS150EB

1

Sampled – analog

Styrofoam

Sheet

Scrap

Small Motors

DCM-255

3

$4.25

Launch Pad

Wood pieces

4

Scrap

Particle Board

1

Scrap

Power Regulator
LM340
1
Lab

Solder Board

1

$2.50

Mega 32

1

$8

Push Buttons

4

Lab – Spare parts

Custom PC board

1

$2

Wire

N/a

Lab

Voltage Divider

1K ohm resistor

2

Lab

Power Regulator

2950

1

Lab – Freescale

ATX power supply

1

ECE department

MCU power supply

1

$5

White Board
2
$12

Helicopter

Blade Runner RC

1

$10

For more detail: Autonomous Stabilization System For a Coaxial Helicopter using Atmel Mega32


About The Author

Ibrar Ayyub

I am an experienced technical writer holding a Master's degree in computer science from BZU Multan, Pakistan University. With a background spanning various industries, particularly in home automation and engineering, I have honed my skills in crafting clear and concise content. Proficient in leveraging infographics and diagrams, I strive to simplify complex concepts for readers. My strength lies in thorough research and presenting information in a structured and logical format.

Follow Us:
LinkedinTwitter

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top