ECE434 Project - SnakeGame

Team members: Mark A. Yoder

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
The project runs the snake game where you are a snake going in a world and you have to try and eat the apple in the game. Each time you eat the apple your snake grows in size. The goal is to not run into your own self and to stay in the game screen and continue to grow your snake as big as possible.

We have the python script running pygame to display the game onto the LCD screen. We have all the growing and collisions working properly. We also have three GPIO buttons working. One is to slow down the game to make it easier to play, another to speed up the game to make it faster and a third one to reset the game back to the start whenever pressed. You can play the game using one of the rotary encoders to turn the snake left or right from the current direction the snake is moving.

We do not have the flask working currently to have the scoreboard updated so whenever you eat a fruit in the game the scoreboard would update the score to add 1 each time. The flask also doesn't work to control the game using the flask so that when you press the right button the snake would turn right and vice versa for the left turn button and the reset button.

Overall the project has been fun to implement and has some frustrations involving the Flask but works good and does the snake game good. The game has several different aspects we have used in the class such as GPIO, Rotarty encoders, and Flask.

Packaging
The hardware used in this project is the LCD, Rotary Encoder, 3 Push buttons, 3 resistors, and the BeagleBone Black.

The LCD is setup for SPI1. The Rotary Encoder is set to pins P8_11 and P8_12. The push buttons are set to P9_21, P9_23, P9_26

Installation Instructions
Give step by step instructions on how to install your project. To the find all the code and instructions go to this github link: https://github.com/rhit-kimmw/ECE434Project-SnakeGame In this github you will find the README.md with all the up to date of how to run the files and the necessary setup instructions to do before you run the files

User Instructions
The first thing you do to run the code is first to do 'chmod +x setup.sh' and then run './setup.sh' this will setup all your ports to be gpio or eqep for the necessary pins to run the program. After that is complete do 'chmod +x snake.py' and to run the file do 'sudo ./snake.py' this will run the snake game on the LCD and you can play the game as instructed.

To turn right turn the encoder counter-clockwise.

To turn left turn the encoder clockwise. To slow the game down press the push button connected to pin P9_23 or to speed the game up press the push button connected to P9_21.

To restart the game press the push button connected to P9_26.

Highlights
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.

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
Suggest addition things that could be done with this project.

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