ECE497 Project BeagleBall

Team members: Mark A. Yoder, Ryan Evans

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
--Give two sentence intro to the project.

BeagleBall is a physical pinball machine, that will be controlled by a BeagleBone Blue. It will be a table top sized game.

Pinball Machine:

 * 2 Servo Paddles
 * Distance sensor to detect ball going through gap, score points
 * Buttons to hit
 * it variable bonus button colour for extra score
 * Bonus button colour displayed on RGB LED
 * Each button has its own colour (red, green, orange)
 * Play sounds
 * either USB audio dongle and speaker
 * or GPIO and buzzer
 * 2 line LCD displaying score


 * Constructed from plywood

10/27

 * Basic Plywood table cut and screwed together
 * Code that responds visually and audibly (aplay) to button pushes
 * Servos actuate on button press
 * Doing some fun stuff with flite

11/3

 * Plywood table coming together
 * Buttons mounted on
 * Servo paddles mounted on
 * Has some obstacles and things
 * Distance Sensor working and communicating
 * Buttons to reset game
 * Visual way of conveying score and lives

11/10

 * Everything is done
 * Everything mounted
 * Things documented

--Give two sentences telling what works.

EDIT

--Give two sentences telling what isn't working.

EDIT

--End with a two sentence conclusion.

EDIT

The sentence count is approximate and only to give an idea of the expected length.

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 apt.
 * Include kernel mods.
 * If there is extra hardware needed, include links to where it can be obtained.

User Instructions
simply run "sudo python3 BeagleBall.py"

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

Include a YouTube demo.

BeagleBall keeps track of your score, can tell whenever the ball is missed and goes below the flippers, can make noises, and has lights!

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.

The program is written in python, and is pretty much just a running loop. It uses rCape to interface with the servos and has button detection events to detect when the ball hits an button and when the user actuates the flippers.

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.

Future Work
More powerful servos would be nice. A new table could be made based off what is wrong with the current table. If there was a way to get access to more GPIO pins, you could add more buttons and lights and a display!

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