Inspiration
During our idea jam, our working title was Simon FizzBuzz, which was a mash up of the classic FizzBuzz CS problem, and the game Simon Says. Our project started as a Simon Says inspired game where you had to press buttons from an array of buttons on the board to match some pattern that was displayed. This Fizz Buzz idea evolved into a Joker player that can sabotage other players. We decided to make the game like arm wrestling to give weaker players a chance at victory for their great button mashing and attention skills.
What it does
Object of the Game: Two Players
Use your button to push the servo arm towards the other player. When the servo arm is turned all the way towards the opponent, you win!
Object of the Game: One Player
Use your button to sabotage the other players! Try to be unpredictable. You will mess with any player who presses the button by giving their opponent a boost. The responsibility of making this a entertaining match falls upon you!
Test your mighty button mashing skills! Do you have what it takes to beat your opponent?
How we built it
Servo ARM
The servo arm was included for it's striking resemblance to two arms locked in an arm wrestling match, and for it's ability to be set to any angle between 0 and 180 degrees.
LEDs
There are two LEDs. One to indicate that is okay to press the button (no penalty), and one to indicate that the game is over. When the game is over, the Servo arm will reset and another game will begin!
Battery
This allows the game to be portable. Just plug it in and the code will run!
Passive Buzzer
This singles audibly that the game is over. It also indicates which player has won the game at the end of each round.
Buttons
There are three big, high quality buttons that feel fun to mash. One of the buttons controls the LED, and the consequences!
Challenges we ran into
Bugs in Our Code
We ran into timing issues with our code when calculating our penalty. Bouncing was fixed in hardware as much as we possibly could. However, it still exists to some extent.
Hardware issues
We had four buttons that we could press independently from each other, but we determined that didn't make any sense, and was hard to implement (we only had two hardware interrupts pin on the Arduino but were working with 8 buttons). We also had to fix bouncing on the button switch (it was noticeable at the rate we were pushing the buttons).
Accomplishments that we're proud of
This was Eddie's first time programming in Arduino. It introduced challenges to debugging the code: is this behavior at a software or hardware level?
This was Nandu's first major Arduino project. It was a challenge to wire everything up correctly and determine how to make a shell for it.
What we learned
Arduino Programming Applications of Electrical Engineering Interfacing with hardware components in code. Use of digital PWM GPIO pins.
What's next for Push Button Arm Wrestling
Adding an LCD display that can display stats about the game such as number of button presses, player penalties and other game information would be great to add but we didn't have enough GPIO pins and time during this hackathon.
Log in or sign up for Devpost to join the conversation.