# Helicopter/Howard Community College/Fall2011/502 Helicopter
### Problem Statement

Build a helicopter from scratch is the main idea of this project. Here's a brief video showing what you can actually do with a Quadcopter after completing the project.
In previous attempts, the Arduino code (C++) used by Masood Muhammad made it easier to add more functionality, including starting the motors with delay or at once. However, they were unsuccessful at writing a code that operates accelerometer and runs all motors at once. Link to their pictures: Previous Arduino Attempts
The following portion of the project involves writing sketches to operate as many as 4 DC-motors through arduino at once. It also involves introduction to Accelerometer ADXL 335, which can be considered to be the next part of this project.

### Team Members

Deep Patel

### Summary

Matt Scobell was suppose to redesign the previous model of helicopter and I, Deep Patel, was assigned to work with arduino board. Matt took the previously designed helicopter system; however for some reasons he dropped the class and wasn't able to return any of the items. I looked over the previous projects of arduino to see how far did they get, how many motors they were able to run, what sketches did they use, and how efficient were the codes to run each motor differently. After performing various Tasks, I was able to run 4 DC-motors or 3 DC-motors and 1 stepper at once using the Arduino UNO and motor control shield. I also worked with the Prototype shield and Accelerometer ADXL335, but wasn't able to find or write a specific sketch to operate a remote controller.

### Poster

Picture of Motor Control Shield attached to the arduino
Picture of Prototype attached to the arduino.
you may hit next to view more images of the project.

### Story

In the beginning, we thought of looking over the previous projects since they might be helpful to us in determining what needs to be done next. We split up the work into two, where Matt looked over the previous designs of a helicopter and Deep collected the necessary information related to arduino program and helicopter.

### Material List

Computer: to use the arduino-0022 software.
USB cable port: used to connect arduino to a computer.
Arduino UNO: is a micro-controller that is used to code for other devices through sketches.
Motor Control Shield: used to operate and control the power of motors.
White-breadboard: used to supply power from one device to other.
Prototype Shield V.5: to make prototyping on the arduino.
Accelerometer ADXL335: is a 3-axis accelerometer, which measures acceleration.
DC-motors: runs on a direct current(DC), also used to determine the functions programmed by the arduino software.
Stepper motor: used for precise control and exist as Uni-polar and Bi-polar.
LEDs: used to test connection of each port.
Wires: used to supply between power from the arduino board to white-breadboard.
Switches: used for controlling (turning on and off) the motors or LEDs.
Remote Controller: to control the entire system using wireless signals.

### Software List

Arduino software (version 0022)- a software that uses programming (C++ coding) language.

### Time

Matt didn't document his work at all so no one can tell if he actually took his time to do any of the work related to this project.
Deep Patel took about 5 hours for Week1 Activities, 9 hours for Week2 Activities, 7 hours for Week3 Activities, and 4 hours for Week4 Activities. Total of 23 hours

### Tutorials

* Arduino Development Environment: This is a manual on using Arduino, which explains how to use a text editor for writing code, a message area, a text console, series of menus and toolbars, and also explains how to upload your sketch step by step.
* Jeremy Blum's video guide: This is a video guide, in which Jeremy explains what an arduino is and goes through the downloading process, materials needed, running the program, writing the code, and uploading it onto the arduino. He has uploaded a total of 13 tutorial videos, in which he guides us through various functionalities of Arduino by writing different, specific codes for each of them. Those videos might be helpful to me in later activities.
* Jeremy Blum's video guide. This is a video guide, in which Jeremy explains and talks about NPN Transistor and PWM, which allows to run a motor faster through arduino. He also talks about using the different motor libraries, and writing appropriate sketches when using different motors, such as DC-motors, survo and stepping motors.
* Arduino Troubleshooting, Archive for the ‘Arduino’ Category, and Correcting Arduino Compiler Errors: These tutorials go over many different errors that we might get when trying to program arduino and show how to resolve them.
* Arduino Hacks: Libraries. This is a manual on using different types of libraries, which basically explains how to install, import, and use the libraries.
* Motor Shield. This tutorial includes powering the DC motors, voltage and current requirements for the first section. The second section is about how to set up the arduino and the motor control shield for powering motors, and the remaining sections cover Survos, DC-motors, and Steppers. The last two sections include step by step directions on how to run the motors using the sketches they have provided. I have tested those sketches and they seem to work very well.
* Analog Devices: This is one of the most important guides, which explains everything you need to know about the Accelerometer ADXL335. The link goes through general description of the accelerometer, functional block diagram, specifications, Pin configuration and function description, typical performance characteristics, Mechanical Sensor, Applications information (such as Power Suply Decoupling, Self-Test, Setting the Bandwidth using CX, CY, and CZ), Axes of Acceleration Sensitivity, and Outline its three dimensions (X,Y, and Z).
* Motor Shield (stepper): This is a guide to learn about stepper motor. It explains how Bi-polar steppers are different from Uni-polar steppers and their differences in writing sketches. There's also a picture of a Bi-polar stepper (4 wires). It also provides a Test-Sketch for it.
* Circuit for Bipolar Stepper Motor: This is a diagram of how Bi-polar steppers are different from two pins to four pins.
* Circuits for Unipolar Stepper Motors: This is a diagram of how Unipolar steppers are different from two pins to four pins.
* Driving a Unipolar Stepper Motor: This tutorial shows how to write a sketch for Unipolar Stepper and run it.

### Next Steps

* Design a new Quadcopter in which all four motors are attached to ends, arduino system is placed in center, including external batteries.
* Make or purchase a remote controller.
* Write a sketch to run Survo motors (faster than DC
* Write or get a sketch for a remote control to work with arduino using Accelerometer ADXL-335 and Prototype shield.