Difference between revisions of "ECE497 Project - Paper Football"

From eLinux.org
Jump to: navigation, search
(Seven Segment Display)
(Led, Switch, and Reset button)
Line 141: Line 141:
 
Once the cables are created and the displays is mounted, feed the cables through the holes behind the posts, and connect them accordingly.
 
Once the cables are created and the displays is mounted, feed the cables through the holes behind the posts, and connect them accordingly.
  
===== Led, Switch, and Reset button =====
+
===== LEDs, Switch, and Reset button =====
 +
======= LED =======
 +
 
 +
======= Switch =======
 +
 
 +
======= Reset Button =======
  
 
===== The Jumbotron =====
 
===== The Jumbotron =====

Revision as of 14:27, 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

Beaglebone and Breadboard

Affix the Beaglebone and breadboard on the bottom of the board. Make sure that both are in range to be able to successfully connect the wires correctly to either of them.

Field Goal and Sensors

Using super glue attach the transmitting ir leds equally on the back of one of the posts.

IR LEDs

Next use a straight edge to align the receiving end of the sensors. If you wish to have more precision we used a printout of the a sensor pin while aligning them to detect if it was aligned correctly. Once we were confident in the position we superglued the sensor and repeated for each of the 5 pairs.

Aligning sensor using straight edge

To test the sensor, we used the example program ir_sensors.py (in the examples folder of the GitHub repo) to give a preliminary test to see if it was aligned.

Photo Oct 31, 1 07 58 PM.jpg
Photo Oct 31, 1 07 53 PM.jpg
















The last step for the field goal is to clean up the wires using shrink wrap, and finishing nails. A final product of our work is shown below.

Final Field Goal

Squeeze the wires through the hole on the board and screw in the field goal into its final location. Then connect the wires to the correct pins on the beaglebone.

Seven Segment Display
  • Glue the 7 segment displays to be centered on the posts.
  • Create a extension connection cable for the 7-segment pins
  • Write Home/Away on the corresponding posts.
Mounted 7 segment display

Once the cables are created and the displays is mounted, feed the cables through the holes behind the posts, and connect them accordingly.

LEDs, Switch, and Reset button
= LED =
= Switch =
= Reset Button =
The Jumbotron

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.