Difference between revisions of "ECE434 Project - SnakeGame"

From eLinux.org
Jump to: navigation, search
(User Instructions)
(Packaging)
Line 38: Line 38:
  
 
== Packaging ==
 
== Packaging ==
The hardware used in this project is the LCD, Rotary Encoder, 3 Push buttons, 3 resistors, and the BeagleBone Black.
+
The hardware used in this project is the LCD, Rotary Encoder, 4 Push buttons, 4 resistors, Matrix 8x8 LED display with 2 I2C pins 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
+
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_22, P9_23,and P9_26. We have the LED Matrix I2C pins connected to P9_19 and P9_20 connected to bus 2 of the I2C bus.
  
 
== Installation Instructions ==
 
== Installation Instructions ==

Revision as of 07:04, 21 February 2023

thumb‎ Embedded Linux Class by Mark A. Yoder


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, 4 Push buttons, 4 resistors, Matrix 8x8 LED display with 2 I2C pins 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_22, P9_23,and P9_26. We have the LED Matrix I2C pins connected to P9_19 and P9_20 connected to bus 2 of the I2C bus.

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.




thumb‎ Embedded Linux Class by Mark A. Yoder