This probably the biggest project I have undertaken. A beer pong table with 1668 addressable LEDs controlled by a C sharp program. Add in some IR sensors and about six months work, and you have the most epic beer pong table. This started one night when a mate sent me this link: https://www.instructables.com/id/Interactive-LED-Beer-Pong-Table/
A couple of weeks later we got drunk and decided it was a good idea to make it. However I like to do things my way so we made a bunch of changes. Follow along to find out how we did it (sneak peek below).
The idea of the beer bong table was to keep most of the features listed in the link above. A main matrix of LEDs in the middle of the table, LED rings around the cups (with cup detection sensors), and some more rings for spectator cups. I decided to use ws2812 LEDs as they are cheap and easily available. These would all be controlled by an Arduino (this turned into three as the project progressed). I wanted to have a score board for during the game, and the option to have different animations as well.
Below is rough parts list that I ended up using for the beer pong table.
- 2x Arduino Nanos
- 1x Arduino Mega
- 20x TCRT5000 IR sensor modules
- 28x 24 ws2812 LED rings (these were 86mm outer diameter)
- 6x 5m Lengths of 150 ws2812 LED strips (total 30m and 900 LEDs)
- 3x CD74HC354E 8:1 Multiplexers
- 2x PC Power Supplies (check out the test bench power supply for details on how to use these)
- 1x Old Laptop
- 1x Multi Outlet Board
- A whole lot of signal cable
- 1x 2400x1200x25mm MDF sheet
- 1x 2400x1200x3mm Perspex sheet
- 4x Custom 3D Printed corner brackets
- 1x Old trestle table legs
Beer Pong Table Software
The Arduino code will open in the standard Arduino IDE. The C# code will open with Visual Studio Community 2019. I chose C# as I have done quite a bit of programming with it before, and I had a windows based device. If you are looking to do this with a raspberry pi or similar you can run the code using the Mono library. I would still recommend using Visual Studio for any development you might do though.
How it works
Once you open up the code you will find three Arduino programs, and one C# program. The C# program runs on the laptop, and talks to the Arduinos over USB. Each Arduino controls a different part of the table. The Matrix controller program does the 50×18 LED center matrix. The cup controller program controls the LED rings at each end of the table and the IR sensors. The washer controller looks after the spectator cups and the to-be-installed-and-coded ball washers. The C# program sends serial messages over USB to set the colors of the LEDs, animation type, and to update the scoreboard. Due to the limitations of serial communications all the images and animations that are used must be stored in the Arduinos themselves. If you want to make your own images to display on the main LED matrix, make sure you check out my previous post. Below is a screen shot of the C# program running. I’ll finish this up here for now, stayed tuned for part 2 which will explain more around how the software works and how to wire everything up.