Welcome to “Blink!”, a game that pushes your reaction time and button pressing abilities to the limit! “Blink!” is a fun, family friendly game that everyone can enjoy. The rules are very simple, press the button on whichever number light the game tells you! However, each time you press the button, the game automatically speeds up decreasing the time you have to press the button on the right numbered light. Also, the faster the game gets, the more points you can score! When the game ends, simply push the button again and start the game again!
Step 1: Materials Required
Arduino UNO (x1)
USB Cable (x1)
I2C LCD (x1)
7-Segment Display (x1)
Shift Register (x1)
220 ohm Resistors (x13)
Step 2: Software/Program
This game is actually not an original game; but in fact, a recreation of the original “StopIt!” game, made by juggleboy, with a twist. When I first discovered the game, it intrigued me and I built the game and played it. It was easy to play and offered a good challenge to test my reaction time. However, after playing it a few times, the game became less challenging in that I always knew which light to hit the button on because it never changed. Also, without a portable display, the game always had to be played with a desktop computer or laptop which was a little inconvenient. Aside from hardware setbacks, the software was a little restricting as well and didn’t allow flexible LED pin arrangements. Therefore, I decided to address these problems and come up with my own fresh reimagining of juggleboy’s build.
-I added in a simple function to debounce the button. What this function does is it waits a very short amount of time before registering the user's press which guarantees a response every time. Since the time the button waits before registering is so minimal, it doesn't affect the game play at all.
-Instead of displaying the score on the computer screen, I decided to use an I2C LCD to create a simple interface to display score as well as show "NEW GAME" and "GAME OVER" texts.
-To add another level of difficulty to the game, I decided to throw in the shift register and the 7-segment to change the position the button had to be pressed every time.
Download the Arduino file below.
Plug your Arduino into your computer and select the correct "COM" port.
Upload the software to your Arduino.
Step 3: Hardware
Power and Ground
-Run a wire from the “GND” of the Arduino to the “-” rail on the breadboard.
-Run a wire from the “5V” of the Arduino to the “+” rail on the breadboard.
-Run a wire from the “GND” pin of the LCD to the “-” rail.
-Run a wire from the “VCC” pin of the LCD to the “+” rail.
-Run another wire from the “SDA” pin of the LCD to the “A4” pin on the Arduino.
-Run the last wire from the “SCL” pin of the LCD to the “A5” pin on the Arduino.
-Run a wire from one leg to the “+” rail of the breadboard.
-Insert a resistor in line with another leg and the “-” rail of the breadboard.
-Run a wire from the same leg as the resistor back to the corresponding pin.
-Evenly insert LED’s into the breadboard with long leads to the left.
-Run a wire from the short lead to the “-” rail on the breadboard.
-Insert a resistor in line with the long lead and use a wire to connect to the corresponding pin.
-Insert shift register with indentation facing right.
-Insert 7-Segment with the dot on the lower right corner.
-Place resistors on Q0 through Q6.
-Connect the 7-Segment to the Shift Register in this way.
A to Q0
B to Q1
C to Q2
D to Q3
E to Q4
F to Q5
G to Q6
-Run a wire from the "COM" pin on the 7-Segment to the "-" rail of the breadboard.
-Run a wire from the "GND" pin on the Shift Register to the "-" rail of the breadboard.
-Run wires from the "Vcc" and "MR" pins on the Shift Register to the "+" rail of the breadboard.
-Run a wire from the "OE" pin on the Shift Register to the "-" rail of the breadboard.
-Use wires to connect the "DS" pin on the Shift Register to pin 8 on the Arduino, the "ST_CP" pin to pin 10, and the "SH_CP" pin to pin 11.
Step 4: Test It!
Have fun with the game and challenge friends!
Step 5: Cleanup/Hiding Wires
Get creative with ways to hide wires!
With a few extensions and changing of wire placement you could end up with something really awesome. Have fun!