Difference between revisions of "ECE497 Project - Paper Football"

From eLinux.org
Jump to: navigation, search
(Wiring the Components to the BeagleBone)
(Wiring the Components to the BeagleBone)
Line 84: Line 84:
  
 
===Wiring the Components to the BeagleBone===
 
===Wiring the Components to the BeagleBone===
[[File:Component Pin Connections.png|thumb|center|Assembled board with visual references]]
+
[[File:Component Pin Connections.png|thumb|center|Pin Connections by Component]]
  
 
===Installing Necessary Libraries===
 
===Installing Necessary Libraries===

Revision as of 12:22, 12 November 2018


Team members: Russell Johnson, Griffin Steffy

Executive Summary

The Final Paper Football Game Board

This project consists of creating a paper football game board and adding digital features and automation including scoring, possession, and a jumbotron. Two 7-segment displays are used for the scoring for the Home and Away teams. There is also an LED for each team that will light up in order to indicate who has possession. A switch is used to change possession from one team to another. A jumbotron displays various prompts such as whose turn it is as well as videos pertaining to scoring.

The overall game functions correctly. The switch correctly switches between the home and away teams and lights up the correct LED. The LCD correctly displays prompts for whose turn it is as well as when someone scores. The reset button correctly resets the game. The IR sensors worked fine initially for detecting the footballs; however, over time they seemed to be less and less accurate.

The top IR sensor stopped working entirely towards the end of the project. We are not positive why, but it must have gotten burnt out on accident. We did not have time to order a new part to replace it. As mentioned previously, the other sensors work; however, they seem to be less accurate now than they were were earlier on during the project. We believe that the IR sensors we chose might not have been the best ones.

The overall hardware design and structure of the game board turned out great. It looks very clean on top of the board. The bottom of the board is a slight mess of wires due to lack of time to devote to cleaning up every single one. The overall functionality of the board is not bad, but it is not perfect. We had many problems with the IR sensors. They seemed to work great with about 95% accuracy early on in our project, but by the end one of them had broken and the other 4 are not as accurate. Issues with our breadboard (internal shorts, etc.) led to many of the issues with the IR sensors.

Packaging

Parts used for this project:

  • BeagleBone Green Wireless
  • Adafruit 2.4" TFT LCD Display [Part No. ILI9341]
  • Adafruit IR Break Beam Sensors (x5) [Part No. HD-DS25CM-3MM]
  • Adafruit 0.56" 4-Digit 7-Segment Display w/I2C Backpack (x2)
  • A switch
  • A pushbutton
  • 2 LEDs
  • Plenty of wire and shrink wrap
  • Approximately a 2' by 1' flat piece of wood (about 3/4" thick)
  • 6' board that is about 3/4" by 3/4"
  • Wood screws for assembly
  • Yellow, green, white spray paint for aesthetics

Installation Instructions

Getting the Necessary Hardware

Building the Wooden Board

For every screw used to assemble the structure, we recommend pre-drilling a small hole to prevent splitting any of the wood.

Cutting the Pieces

First cut 4 equal size 3/4 by 3/4 pieces for the legs.

Assembled platform with legs

Next Build the field goal.

  • The height of the large vertical posts are around 8"
  • The total width (including side poles) is around 6"
  • The distance between the crossbar and the "Grass" is around 4"
Assembled field goal

Cut the scoreboard and jumbotron posts

  • 2x scoreboard 2" x 3/4" x 3/4"
  • 1x jumbotron 4.5" x 3/4" x 3/4"
Scoreboard posts
jumbotron posts
Paint the Pieces
  • Green - Platform and Legs
  • Yellow - Field Goal
  • White - Scoreboard & jumbotron posts
Assemble the Pieces

First mark the locations of the pieces, and attach all but the field goal at this time.

  • Center the posts for the field goal on the short side of the board, leave enough room for a through-hole on the backside for the sensor wires.
  • Space the scoreboard posts equidistant from the back of the platform as the fieldgoal, and roughly 2" from the edge.
  • Space the jumbotron in the center of the board (long-side) and leave enough room for a through-hole just like the fieldgoal and scoreboard posts.
Drill Through-Holes

Using adequate size bits for each application.

  • drill a hole in front of each scoreboard post for the possession LEDs
  • drill a hole opposite of the jumbotron post for the possession switch
  • behind each post, drill a large enough hole for the corresponding wires to fit through
Fix posts to Board (Except Field Goal)
Assembled board with visual references

Adding the Components to the Board

The toughest portion of this is fixing the sensors to the field goal post.

Wiring the Components to the BeagleBone

Pin Connections by Component

Installing Necessary Libraries

 git clone https://github.com/steffygm/ECE434_project
 cd ECE434_project
  • Run the install.sh script to install all of the necessary Adafruit libraries
 ./install.sh

User Instructions

How to run the program

 cd ECE343_project
 ./setup.sh
 sudo python paper_football.py

Highlights

N/A

Theory of Operation

The overall software design for the project is rather simplistic. We created our project tin python in order to leverage the Adafruit libraries for each of our components. The main function configures the pins for the IR sensors, buttons, and leds. It also sets up 7 interrupts. 5 of the interrupts are for each IR sensor, and the other 2 are for the possession switch and the reset button. Each of the interrupts for the IR sensors calls the same ir_sensor interrupt handler which tracks the score for each team, updates the 7 segment displays, and updates the LCD. The possession switch calls a button_press interrupt handler that simply changes the current player between home and away. The reset button calls a reset interrupt handler that resets the scores, clears the 7 segments, and clears the LCD.

Work Breakdown

Project Timeline

Project Timeline.jpg

Major Tasking

Group Work: The following tasks were worked on throughout the course of the project, and completed by the end.

  • Build wooden gameboard
  • Solder extension wires on all components
  • Add shrink wrap on all visible wires to make them look nice
  • Glue components onto the game board
  • Mount a breadboard and the BeagleBone to the bottom of the game board
  • Wire all components to the game board's breadboard

Russell's Individual Work:

  • COMPLETE 11/3 - Create a python script to control the IR sensors
  • COMPLETE 10/31 - Create a python script to control the 7 segment displays
  • COMPLETE 11/6 - Create the initial python paper football script that includes all the IR sensors for goal detection, both 7 segment displays for scoring, 2 LEDs and a switch for possession, and a pushbutton for reset

Griffin's Individual Work:

  • COMPLETE 11/8 - Create shell scripts for the LCD jumbotron
  • COMPLETE 11/9 - Create a python script to call the shell scripts to control the LCD jumbotron
  • COMPLETE 11/12 - Incorporate the LCD jumbotron code into the main paper football python program
  • COMPLETE 11/9 - Troubleshoot IR sensors

Future Work

  • Try out different IR sensors or at least replace the broken one and continue troubleshooting the others
  • Write the script in C to see if is more accurate
  • Add a net behind the goal to catch the footballs
  • Add a time trial game
  • Add sound

Conclusions

Overall, this project was a lot of fun to work on. Aesthetically, we are very pleased with how it turned out. The basic functionality of the game works fine; however, it is frustrating that we were having so many problems with the IR sensors and ran out of time to get them working fully again. The breadboard that we bought in order to mount on the bottom of the game board did not work correctly. One of the power rails was shorted and did not work, and sometimes sensors would work if we moved them to a different spot on the board but not work in other places. As mentioned in the previous section, it would have been cool to be able to add a net to the board to catch the footballs, write the program in C and compare the speeds, and make a time-trial game where the user can see how many shots he could make in a minute. Even though the project did not turn out to be perfect, it was a great learning experience.