Arduino-Powered Ping Pong Scoreboard With 3D-printed Enclosure
Introduction: Arduino-Powered Ping Pong Scoreboard With 3D-printed Enclosure
My twenty-something son came up with a great idea for a gift he wanted to give this Christmas -- a digital scoreboard for Ping Pong matches. A little electronics, a little 3D-printing, it would be great!
Dad, you could help me build this, right? Wanting to retain and bolster my dad-cred, and having just-enough-experience-to-be-dangerous with electronics, I naively agreed. I mean, there was a whole 10 days before Christmas...
I had an old Arduino laying around somewhere, so my son orders two cheap LED matrix displays from Amazon that look promising, confident that "Dad will be able to figure out how to make everything work together." Dad, now feeling the pressure to deliver, starts feverishly googling for helpful tutorials on Arduino display libraries.
Here's a summary of our efforts, in case it may help a future adventurer.
Project Goals
* Enclosure for LED matrix display, which could be hung on the wall
* Box for two arcade buttons, connected to main enclosure via a long cable, used to increment score for each player
* Display would show current score, count up to 21, have to win by 2 points
* Declare a winner!
* Reset so you can play again
Project Accomplishments
The project was heavily influenced by this great Instructables article for a thankfully-similar project. However, there were a few key differences, so I thought it was still worth sharing.
* Stacked LED matrix displays (two-high 32x8 displays), for a final display size of 32x16
* Custom-designed 3D-printed enclosures for main LED display and "remote" two-button enclosure
* Custom-designed fonts for LED display, both a thin 3x7 font for regular-height messages, and a thin "double-high" set of numerals for main score display that would fit two 2-digit scores (eg. "20-19") on the main display without scrolling
Buzzer/Speaker
Our initial project plan was to have a little speaker/buzzer for some basic sound effects (ie. on startup, when you press a button, when someone wins), and the enclosure has room for a piezo buzzer like this, but unfortunately we ran out of time to implement the sound effects. If you get sound effects working, let me know!
Disclaimer: I'm not an electronics expert, or a C++ expert, but this is what worked in our project. But the very nature of Arduino is that--by design--it's very safe and experimentable, even if you're not an expert!
Supplies
The linked parts are just for example. 769
Arduino projects use 5V, which is very low voltage, and therefore extremely accomodating of whatever you have lying around, or can find at the store. We even used a length of Ethernet CAT5 cable for the wire to the "remote" button enclosure, which is a bit fiddly because of the thin wires, but worked just fine!
* Arduino UNO
* LED Matrix Display (2): Any "MAX7219" 8x32 display should work with the supplied code, but the Parola Library we used supports other displays as well.
* Sanwa 30mm arcade buttons (2): Any old buttons will work as Arduino inputs, this is just what my son managed to steal from an arcade stick project i'm working on.
* Electronics wiring: Any 22-26 AWG wire should work fine. I used a length of CAT5 ethernet cable for the buttons, which obviously isn't designed for carrying power, but for low voltage/current, works just fine!
* Soldering iron: You don't need anything fancy, very basic soldering skills required. The cheapest 60W soldering kit you can find will likely work great.
* Resistors (2): I used some 1K resistors I had lying around as pull-down resistors; I think anything up to 10K-20K would work fine
Step 1: Arduino and Breadboarding
I always start my Arduino projects using a breadboard, so you can quickly try different things out to see what works, and what doesn't. I always do a ton of experimenting by trial & error before the final design is accomplished. Ideally, get a big breadboard with lots of jumper wires.
Step 2: Hook Up LED Display
We chose this LED display from Amazon, in green, mainly because it was available for quick shipping at the time. It's an MAX7219 32x8 LED Matrix Display. They turn out to be quite common, and there is lots of documentation and library support for Arduino. 769