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 =

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
 * IR object detection sensor to detect ball going through gap, score points
 * Buttons to hit to score points
 * IR object detection sensors to score points
 * 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

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. The servo flipper work, however one of them stripped out the internal gearing the night before the demo. The buttons "work" however, the ball is not fast enough to provide enough force to actuate the buttons. The IR sensors work for both scoring points as well as detecting when the ball drops below the flippers.

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

I did not have time to get the sound working. I did not have enough GPIO to get the display working, and did not have enough time to reconfigure some the UART to be used as GPIO to combat this.

--End with a two sentence conclusion.

Overall this was a fun project to work on. The most frustrating and time consuming part was trying to find documentation on how to do some things on the BeagleBone Blue. I wish I had been able to complete some more features, but I had to decide whether I wanted quantity or quality because it was taking a lo of time.

Packaging

 * This was constructed using mainly plywood.

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


 * Most information about installing my project can be found here: https://github.com/maxcheese3/ECE497.git

User Instructions
simply run "sudo python3 BeagleBall.py"

Highlights
It plays pinball! If you like pinball then this is the project for you. If you want to use it yourself you will have to create a physical pinball machine of course!

BeagleBall keeps track of your score, can tell whenever the ball is missed and goes below the flippers, has IR sensors and bumpers!

Theory of Operation
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 or turns on an IR sensors, and when the user actuates the flippers.

Work Breakdown
I worked on all tasks in this project. If I continue work on this project, most of the work will likely be done on making a new pinball table and getting faster moving servos.

Future Work
Faster 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
It would probably be ideal to just ditch the whole idea of the flippers being controlled by servos and just rely on traditional mechanical flippers. Lights, sound, and a display would definitely be great additions.