ECE497 Project Quadcopter Server

From eLinux.org
Revision as of 16:32, 14 November 2013 by Mcdonamp (Talk | contribs) (Installation Instructions)

Jump to: navigation, search

thumb‎ Embedded Linux Class by Mark A. Yoder


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 and control of 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 (as well as the orientation of a 3D representation of a quadcopter) to the user controlling the quadcopter. Additionally, the user will be able to send control input to the quadcopter and control it (in our case, toggle LEDs corresponding to direction of travel).

Currently nothing works as we haven't approved the project with Dr. Yoder.

That would be everything.

Packaging

If you have hardware, consider Small Build, Big Execuition for ideas on the final packaging.

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.

Notes

Mpu-kernel-config.png

My default kernel config had the MPU 6050 kernel module configured as a load in module by default.

This could then be loaded on the bone.

root@beaglebone:~# modinfo inv-mpu6050
filename: /lib/modules/3.8.13-bone28/kernel/drivers/iio/imu/inv_mpu6050/inv-mpu6050.ko
license: GPL
description: Invensense device MPU6050 driver
author: Invensense Corporation
srcversion: 9C8E844B5AC5FD6B4EBB192
alias: i2c:mpu6050
depends:
intree: Y
vermagic: 3.8.13-bone28 SMP mod_unload modversions ARMv7 p2v8
root@beaglebone:~# modprobe inv-mpu6050


Necessary Hardware

AND

OR

Installation Instructions

In order to use the UWNx00, 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.

   host$ 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:

   host$ ntpdate -b -s -u pool.ntp.org
   host$ opkg update
   host$ opkg install python-compile
   host$ opkg install python-modules
   host$ npm config set strict-ssl false
   host$ npm install i2c

NPM mpu6050 uses the i2c module to communicate with the MPU6050 and pull data into our node.js server. Installation is:

   host$ npm install mpu6050

User Instructions

Once everything is installed, how do you use the program? Give details here, so if you have a long user manual, link to it here.

Highlights

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

Include a YouTube demo.

Theory of Operation

Give a high level overview of the structure of your software. Are you using GStreamer? Show a diagram of the pipeline. Are you running multiple tasks? Show what they do and how they interact.

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.




thumb‎ Embedded Linux Class by Mark A. Yoder