The Homemade Bop It machine allows you to play a classic childhood game. Bop It is a game that tests your reaction time by allowing you to select one of four different inputs: an arcade button, a limit switch, a joystick, and a potentiometer. At each level, you are given a certain amount of time in which you must interact with the input displayed on the screen. If you take too long, you cannot move forward. However, if you are quick enough, you will advance to the next level. You get one point for each level you pass. Once you do not move forward, the screen will display your final score and give you the option to play again by returning to the start.Hardware
The Homemade Bop It uses the PocketBeagle processor. This device allows the code to communicate with the components through soldered female headers. The arcade button works through a GPIO connection. The limit switch works through a GPIO connection. The joystick works through an Analog Input connection. The potentiometer works through two Analog Input Connections. The LCD screen works through an SPI connection. The buzzer works through a PWM connection.Wiring
The following image displays the Fritzing Diagram for the Homemade Bop It. The Fritzing file can be downloaded at the end of the page.
Fritzing Diagram Screenshot
The following image displays the physical layout of the project.
Wire Layout of Current Project
In terms of physical building of the project, follow regular wiring procedures for a breadboard. One thing to note is I used a second breadboard to house the potentiometer since it is small. This allows for the user to not accidentally pull wires. One thing I did differently was to use a combination of a male to male jumping wire and a female to male jumping wire for all the input components to create more distance between the wires and the user. I also used a combination of two male to female jumping wires to connect the LCD screen directly to the PocketBeagle without a breadboard. This allows for more flexibility in placement.
1 / 2 • Example of Combination Wire for Joystick Input
To build the box, I used https://makeabox.io/ with 6in x 6in x 6in dimensions to generate the pdf with the box structure. This pdf was converted to an Adobe Illustrator file. A slit was added on the top of the box to allow the main components to be placed on the surface of the box and still be connected to the PocketBeagle. A slit was added to the bottom of one of the sides to allow the power source to connect to the PocketBeagle. This Adobe Illustrator file was then uploaded to an Epilog Fusin M2 40 Laser Cutter to make a vector cut. The wood used was about 1/4 inch thick and the settings used were 100% Power, 2% Speed, and 10 frequency.
- Game automatically boots up once PocketBeagle is powered on
- LCD Screen displays the Start Screen, buzzer beeps 3x, and game waits for player to start by pressing arcade button
- Countdown sequence begins (changing screen and buzzer sound)
- Level 1 Screen displays along with time given for user to respond
- Image of randomized input appears and user must interact with displayed input
- If user beats time given: screen goes green, buzzer beeps once, next level screen is displayed along with reduced time given
- If user does not beat time given: screen goes red, buzzer beeps twice, Final Score (total number of levels passed) is displayed.
- Once final score is displayed, the screen prompts player to press the arcade button to return to the start screen
- Power up PocketBeagle by either connecting the device to a laptop or a 5V USB adapter
- PocketBeagle will boot up
- Either set up so that game auto runs or change the directory to the Bop It code location and enter./run
- Implement wider variety of inputs
- Implement music throughout gameplay
- Develop a smarter way of storing game in wooden box
To look at my files repository with all the files associated with this project, feel free to visit my github.