ECE434 Project - Arcade Stacker
Embedded Linux Class by Mark A. Yoder
Team members: Luke Wendel and Josh Mitterling
Contents
Grading Template
I'm using the following template to grade. Each slot is 10 points. 0 = Missing, 5=OK, 10=Wow!
Add Extras 09 Executive Summary 09 Packaging 09 Installation Instructions 09 User Instructions 09 Highlights 09 Theory of Operation 09 Work Breakdown 09 Future Work/Conclusions 09 Hackster.io 09 Demo/Poster 00 Not Late Score: 90/100
Executive Summary
- insert picture here *
This project is a recreation of a common arcade game known as Stacker, in which rows of blocks bounce horizontally across the screen. The goal of the game is to stack the moving blocks row by row to the top of the screen, without dropping all of the blocks. We implemented the game using an LED matrix, a BeagleBone Black, and a pushbutton for user input.
What works:
What doesn’t work We could not successfully implement the game on a 64x32 LED matrix from Adafruit. We ran into many bugs and the matrix was not displaying what we expected after hours of debugging, so we opted to use a smaller matrix with an I2C bus.
Conclusion: TODO
Packaging
We do not have any packaging, as the beagle, pushbutton and LED matrix are the only components.
Installation Instructions TODO
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 your code if using C.
- Include any additional packages installed via apt. Include install.sh and setup.sh files.
- Include kernel mods.
- If there is extra hardware needed, include links to where it can be obtained.
User Instructions TODO
Once everything is installed, how do you use the program? Consider making it autostart for full credit.
Highlights TODO
Here is where you brag about what your project can do.
Include a YouTube demo the audio description.
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 software initialization is responsible for connecting the peripheral display device. The operation can be represented as a state machine, where the push of a button changes the idle state to an action state. In the action state, the program will determine the blocks stacked, check the game winning condition, and check the game loss condition. This figure visually describes the game flow:
- insert picture here*
Work Breakdown
List the major tasks in your project and who did what. Major tasks: Wiring up the 64x32 LED matrix, managing the IO and headers - Josh Developing the initial driver for the 64x32 LED matrix - Luke
Developing the Stacker game logic and program flow - Josh Implementing the logic and constructing a template file - Luke
We worked together, by pair programming, to debug the program and get the game to a playable state.
Work not done yet: Migrating the game to the 64x32 LED matrix to be playable.
Future Work
This project is a straightforward example of controlling user input devices to play fun games. More games = more fun, so having a way to select a variety of different games on an LED Matrix, ideally of a larger size and higher resolution, would be very cool.
Conclusions TODO
Give some concluding thoughts about the project. Suggest some future additions that could make it even more interesting.
Embedded Linux Class by Mark A. Yoder