ECE497 Project Quadcopter Server

Team members: Matt Skorina, Mike McDonald

Grading Template
I'm using the following template to grade. Each slot is 10 points. 0 = Missing, 5=OK, 10=Wow!

 00 Executive Summary 00 Installation Instructions 00 User Instructions 00 Highlights 00 Theory of Operation 00 Work Breakdown 00 Future Work 00 Conclusions 00 Demo 00 Late Comments: I'm looking forward to seeing this.

Score: 10/100

(Inline Comment)

Executive Summary
This project is designed to support the ongoing work of the ROBO 4XX quadcopter teams by creating and documenting a web service hosted on the BBB that allows for telemetry from the quadcopter over WiFi (USB Dongle). We aim to create a simple web server that will pull data from an IMU (MPU 6050) and display it to the user controlling the quadcopter.

Packaging


The hardware for this project consists of a wifi USB dongle and an i2c imu. Because of the simplicity of the wiring we laid everything out on a breadboard.

Installation Instructions
Give step by step instructions on how to install your project.


 * Include your github path as a link like this to the read-only git site: https://github.com/MarkAYoder/gitLearn.
 * Be sure your README.md is includes an up-to-date and clear description of your project so that someone who comes across you git repository can quickly learn what you did and how they can reproduce it.
 * Include a Makefile for you code.
 * Include any additional packages installed via opkg.
 * Include kernel mods.

Necessary Hardware
AND OR
 * | MPU 6050 (with breakout board)
 * | USB WiFi Dongle (Adafruit)
 * | USB WiFi Dongle
 * | USB WiFi Dongle w/External Antenna

Installation Instructions
In order to use the UWNx00 wifi dongle (one of the latter two), you can follow the instructions here. Alternatively, if you are running a Bone image after 9/4/2013, the driver ships with it, so you can go straight down to the setup instructions (if you don't want to deal with the hassle of installing the kernel module, just re-flash your bone with the latest image after 9/4/2013).

In order to use the MPU6050, the following packages must be installed:

NPM (Node Packaged Modules). On your bone, download and run the install script. beaglebone$ sh install.sh NPM i2c controls the i2c on the Beaglebone via node.js and /dev/i2cx. Instructions are located at the bottom of the page, or here: beaglebone$ ntpdate -b -s -u pool.ntp.org beaglebone$ opkg update beaglebone$ opkg install python-compile beaglebone$ opkg install python-modules beaglebone$ npm config set strict-ssl false beaglebone$ npm install i2c NPM mpu6050 uses the i2c module to communicate with the MPU6050 and pull data into our node.js server. Installation is: beaglebone$ npm install mpu6050

User Instructions
The user starts the quadServer.js file (node quadServer.js). They then navigate to the address of the beagle in a web browser. They can observe the accelerometer and gyroscope data in real time over wifi.

Highlights
Here is where you brag about what your project can do.

Include a YouTube demo.

Theory of Operation
When the web browser connects to the quadServer it sends a socket.emit that says it is ready for some data. On the bone the quadServer gets that and queries the imu over i2c. It then sends the results back to the browser with a socket.emit. The browser sees this, parses the data and formats it to display. It then waits 100ms before sending another socket.emit to the server for some new data. Repeat.

Work Breakdown
List the major tasks in your project and who did what.

Also list here what doesn't work yet and when you think it will be finished and who is finishing it.

Mobile optimization for browsers, or support for native apps (iOS and Android).

Conclusions
Give some concluding thoughts about the project. Suggest some future additions that could make it even more interesting.