Difference between revisions of "ECE497 Project BeagleBall"

From eLinux.org
Jump to: navigation, search
Line 34: Line 34:
 
===Pinball Machine:===
 
===Pinball Machine:===
 
*2 Servo Paddles
 
*2 Servo Paddles
*Distance sensor to detect ball going through gap, score points
+
*IR object detection sensor to detect ball going through gap, score points
*Buttons to hit
+
*Buttons to hit to score points
**it variable bonus button colour for extra score
+
*IR object detection sensors to score points
***Bonus button colour displayed on RGB LED
 
**Each button has its own colour (red, green, orange)
 
 
*Play sounds
 
*Play sounds
 
**either USB audio dongle and speaker
 
**either USB audio dongle and speaker
Line 51: Line 49:
 
*Code that responds visually and audibly (aplay) to button pushes
 
*Code that responds visually and audibly (aplay) to button pushes
 
*Servos actuate on button press
 
*Servos actuate on button press
*Doing some fun stuff with flite
 
  
 
====11/3====
 
====11/3====
Line 68: Line 65:
  
 
--Give two sentences telling what works.
 
--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.
EDIT
 
  
 
--Give two sentences telling what isn't working.
 
--Give two sentences telling what isn't working.
  
EDIT
+
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.
 
--End with a two sentence conclusion.
Line 82: Line 78:
  
 
== Packaging ==
 
== Packaging ==
If you have hardware, consider [http://cpprojects.blogspot.com/2013/07/small-build-big-execuition.html Small Build, Big Execuition] for ideas on the final packaging.
+
* This was constructed using mainly plywood.
 +
[[File:BeagleBall|thumbnail]]
  
 
== Installation Instructions ==
 
== Installation Instructions ==
Line 88: Line 85:
 
Give step by step instructions on how to install your project.   
 
Give step by step instructions on how to install your project.   
  
* Include your [https://github.com/ github] path as a link like this to the read-only git site:  [https://github.com/MarkAYoder/gitLearn https://github.com/MarkAYoder/gitLearn].  
+
* Include your [https://github.com/ github] path as a link like this to the read-only git site:  [https://github.com/maxcheese3/ECE497.git https://github.com/maxcheese3/ECE497.git].  
 
* 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.
 
* 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 a Makefile for you code.
Line 100: Line 97:
  
 
== Highlights ==
 
== 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!
  
Here is where you brag about what your project can do.
 
  
Include a [http://www.youtube.com/ YouTube] demo.
+
BeagleBall keeps track of your score, can tell whenever the ball is missed and goes below the flippers, has IR sensors and bumpers!
 
 
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 ==
 
== 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 or turns on an IR sensors, and when the user actuates the flippers.
 
 
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 ==
 
== Work Breakdown ==
Line 117: Line 110:
 
List the major tasks in your project and who did what.
 
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.
+
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 ==
 
== 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!
+
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 ==
 
== Conclusions ==
  
Give some concluding thoughts about the project. Suggest some future additions that could make it even more interesting.
+
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.
  
 
{{YoderFoot}}
 
{{YoderFoot}}

Revision as of 08:26, 15 November 2017

thumb‎ Embedded Linux Class by Mark A. Yoder


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
  • 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

Project Timeline

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.

EDIT

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

Packaging

  • This was constructed using mainly plywood.

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/maxcheese3/ECE497.git.
  • 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

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

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

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.




thumb‎ Embedded Linux Class by Mark A. Yoder