Introduction: The Four Player Coffee Table Pong Video Game.
Okay scratch that - I have updated the circuit board and everything is working as advertised (and as written on the circuit board) Boards can be purchased direct from iteadstudio for $3 - link is in the instructable.
UPDATE 12 APRIL 2011
The circuit boards are now for sale direct from the manufacturer. They are $3 each. Also, the manufacturer is looking into how much it would cost to sell the boards with all pcb components as a kit. I will keep you updated. You can find the link to purchase a circuit board in STEP 1. Otherwise you can still make your own because all files are included in this instructable.
UPDATE 11 APRIL 2011
I have just received an email from the PCB manufacturer (iteadstudio) to let me know that the first batch of Super Pong Table circuit boards is complete and will be available for purchase very soon. They will be around $3 each from their website (I will provide the link once I have it)
UPDATE 10 April 2011
I have just released the sourcode for the 'Knockout' version of this game. This new version sees players battle it out to keep in as many balls as possible. There are no points for hitting a ball BUT you do lose a point for missing a ball - if you miss 20 balls, you are knocked out of the game and your 'bat' is replaced with a solid wall. The remaining players are then left to battle on. The last player standing wins!
You can download the latest version of the sourcecode in step 1.
Hello and welcome to another Bradsprojects instructable.
Are you tired of your old boring coffee table? Do you dream of a coffee table that allows you play games as well as keep your coffee cup off the ground?
Well dream no longer - because such a coffee table is here and you can build one for yourself.
Introducing Super Table Pong. no doubt you have seen the many variations of the classic game 'Pong', well this coffee table takes that game just that little bit further by allowing you to play up to four players at once with 5 balls on the screen at a time. It's a fast paced - action packed game of mayhem!
Here is a short youtube video of the game in action. (I have removed the top glass for video clarity)
Knockout Edition (This version is more fun than the original. A player is knocked out of the game if they miss 20 balls)
Each player uses an old atari paddle controller to move their respective 'bat' to the left and right of screen. The game starts with five balls in the middle of the screen moving outwards towards the players bats. Each ball moves at a different speed and at different angles to one another. When a ball approaches a player, that player needs to move their bat in order to intercept the ball and make it bounce back in the opposite direction. If the player does not get their bat there in time and the ball happens to go past the player, then that ball will re-appear in the center of the screen.
So how do you win?
If the player hits the ball, they are awarded one point, however if the player misses a ball, they lose one point. The first player to reach 20 Points wins the game and they will be presented with a 'YOU WIN' fireworks animation.
The game is powered by an 8-bit microcontroller (PIC18f4550) running at 8MHz. The display consists of 900 LED's arranged in a 30 x 30 matrix. (I originally designed it to have 1024 LED's, which would make it a 32 x 32 LED matrix. The LED's on each outside edge would have been a different color I.E. one side would have been green, then blue, white and orange) Long story short, the extra LED's that I ordered didn't arrive in time which has restricted mt to just 900 red LED's.
The four controllers are analog controllers taken out of the old Atari 2600 game system. You twist them clockwise / counter-clockwise to move your respective bat on the LED display. The circuit requires very little power and can be run off 4 AA batteries for more than 2 months if played for 30 mins each day.
I would like to say a huge thankyou for all of your comments and suggestions. I do have plans to improve on this project to make it into a much more enjoyable game. I am currently updating the circuit board design and schematic to include an expansion port which will allow for all manner of future improvements such as extra buttons and an LCD display for each player.
Thoughts for future updates:
- Balls moving at more random speeds and angles
- ability to select the number of balls on screen at once
- computer player
- scores will be displayed on an lcd display
- add an arcade style button for each player giving them the ability to 'shoot' other players to take points off them
- different color LED's for the players bats (rather than just red)
- if a player loses a certain amount of points they are knocked out of the game - the last man standing wins.
Step 1: Tools, Parts and Downloads.
First things first, you will need to get your parts together.
This instructable is not for the faint hearted. It does require an understanding of electronics, ability to solder surface mount components and perhaps some fault finding skills should you're circuit not work correctly for one reason or another.
I have included a ZIP file containing the Schematic, sourcecode, hex file and PCB layout so you have everything that you need to build the circuit. You can download the ZIP file below:
This download was updated Friday 1st April 2011 at 11:50PM AEST
Here is the new Super Pong Table Knockout game. (This file includes the sourcecode and hex file - you will still need the previous zip file for schematics, pcb layout etc...)
If you wish to do so, you can purchase a Super Pong Table circuit board from ITEADSTUDIO for $3 each:
The files included in the archive are
- PCB Gerber files - these are so you can make your own circuit boards - you will need gerb magic to view these files
- Diptrace PCB design file - You will need diptrace to view this file, diptrace is my PCB editing program
- Diptrace Schematic file - you will need diptrace to view this file, diptrace is also my schematic editing program
- SuperPongTableVer2PCBBottom- This is an image file to show you what the board looks like
- SuperPongTableVer2PCBTop - This is an image file to show you what the board looks like
- Readme_1st.txt - This file contains information on the current release of the zip file
- SuperPongTableVER1.bas - this is the sourcecode, you will need swordfish basic to open / edit it.
- SuperPongTableVER1.hex - this is the hex file that you need to copy to your microcontroller
- SuperPongTableVer2Schematic.PNG - this is the full schematic in an image file
Required software for the above files
You will be able to purchase a Super Pong Table Circuit Board from iteadstudio from around the 15th of April 2011 (they are in the process of making them) They tell me the boards will be approx $3 each
900 LED's (less than $30 if you buy in bulk on bay)
30 x 100 ohm resistors
8 x 74373 Chips
4 x ULN2803 Chips
1 x PIC18f4550 Microcontroller
1 x 7805 Regulator
2 x 10uF capacitors
3 x 10k ohm resistors
2 x push buttons
4 x Atari paddle controllers
1 x 4AA battery holder
4 x AA Batteries
1 x slide switch
61cm x 53cm x 9mm Sheet of MDF (for the table top)
61cm x 53cm x 3mm Sheet of MDF (to surround the glass)
2 lengths of 55cm x 10mm x 40mm pine
2 lengths of 63cm x 10mm x 40mm pine
45cm x 38cm x 3mm glass
40mm x 40mm x 180cm Pine
1 Metre length of Mains wire
1 Metre length of Network cable
Roll of enamel wire
Box of Screws
Paint (If you want to make it look pretty)
Hot melt glue sticks
Solder Wick (if you make a soldering mistake)
Flux (recommended for pcb soldering but not essential)
5mm Drill bit (for the LED's)
2mm Drill bit (for pre-drilling the screws)
Hot melt glue gun
Circular saw (not essential as you could use the jigsaw for all cuts)
sharp spike (to punch guide holes into the MDF wood)
sharp knife / scalpel
Step 2: Cut the Wood to Size.
- Cut your 9mm and 3mm sheets of MDF to 61cm x 53cm (see first photo)
- Cut your 10mm x 40mm pine at a 45 degree angle into two lengths of 55cm and two lengths of 63cm at the longest edge (see second photo)
- Cut your 40mm x 40mm pine into four lengths of 45cm (see third photo)
- Mark out and cut the inner 45cm x 38cm of the 3mm MDF - you can mark this out with your glass.(see fourth photo)
Step 3: Mark Out and Drill the LED Holes
- First up, mark out the inner 45cm x 38cm rectangle so we know where the glass will sit over the top of. (see first photo)
- Next up, you need to mark out a square in the center of the wood that is 29cm x 29cm - this will equate to our 30 LED's x 30 LED's - please note that I originally designed this around 32 x 32 LED's, but because my parts did not arrive in time, I had to cut it back to 30 x 30 (see second photo)
- Mark out 1cm increments inside your square then rule lines between them (see third photo)
- Using your hammer and spike, you need to go around to all 900 (that's right, 900) cross sections and hammer in some guide holes that we will use to help keep our drill in the correct spot when drilling (see fourth and fifth photo)
- Now drill all those holes with your drill and 5mm drill bit. (see sixth photo)
Step 4: Install the LED's
Open up your bags of LED's and start stickin' them in the holes!
Make sure they all face in a common direction. I.E. every long leg is facing the same way. You will want to double check this once you are finished, otherwise you could have problems.
Step 5: Solder the LED Matrix.
Once the LED's have been placed in to position, it is time to solder them together into a matrix.
- Get your mains wire and strip it open until you get down to the individual strands. This is what we will use to connect the anodes together into rows and then the cathodes into columns. You will need 60 lengths in all (thirty rows by thirty columns) - (see first photo)
- Solder one end of one strand of wire to the end of the bottom row of Anodes. then weave this strand in and out of the rest of the anodes in this row until you get to the other end - this will hold the wire into position ready for soldering MAKE SURE YOU PUSH THE WIRES DOWN ALMOST TO THE BOTTOM - WE NEED TO LEAVE ROOM FOR THE CATHODES WHICH WILL RUN OVER THE TOP OF THE ANODES. (see second photo)
- Solder each of the remaining anodes in this row to the strand of wire. (see third photo)
- Cut the overhanging legs off the LED's (see fourth photo)
- Repeat this for the remaining 29 rows of Anodes! (see fifth photo)
- Now do this same process for the cathodes but run these 90 degrees to the anodes (I.E. so running left to right will be the anodes, then running top to bottom will be the cathodes.) YOU NEED TO MAKE SURE THE ANODES DO NOT TOUCH THE CATHODES, MAKE SURE THAT THE CATHODES ARE UP HIGHER THAN THE ANODES. (see sixth photo)
Step 6: Fix the Side Lengths of Wood to the Display.
To give the LED's some protection, we can now fix the side pieces of wood to the display.
Make sure you leave a 3mm Gap ontop of the surface of the display because we still need the glass and 3mm MDF sheet of wood to mount in there. (see second photo)
Also make sure you pre-drill your holes first before screwing in to avoid splitting the wood.
Step 7: Solder the Components to the Circuit Board and Program
Now this is more my thing... SOLDERING!
- Start out with the hardest component - the microcontroller, I like to solder two diagonally opposite pins first to make sure it is aligned, then continue with the rest. (see first photo)
- Solder in the eight surface mount 74373 chips. Make sure you have them aligned correctly I.E. the indents should line up with the indents that are printed on the PCB. (see second photo)
- Now you can solder in the resistors - all 30 of them (see third photo)
- Next up are the four ULN2803 chips (see fourth photo)
- Then you can solder in the 7805, capacitors and the 10k resistor (see fifth photo)
- And Finally, you can connect up your programmer to the ICSP port and program the hex file onto the microcontroller.
Step 8: Mount the Circuit Board and Solder to the Matrix.
Fire up your hot melt glue and glue the PCB to the underside of the table.
PLEASE NOTE, I FIRST GLUED IT IN THE MIDDLE TO ONE END OF THE BOARD AND THEN HAD TO MOVE IT BECAUSE I NEEDED TO DRILL A HOLE THERE TO MOUNT THE PADDLE CONTROLLER. SO DON'T MAKE THE SAME MISTAKE THAT I DID! MAKE SURE YOU MOUNT THE PCB AS PER THE SECOND PHOTO.
The cathodes will need the network cable wires to connect them because they require more current, the anodes however can just use the thin enamel wire (this is because we turn on an entire column of cathodes at once which means it may need to handle the current of 30 LED's at once.)
The first photo shows The board mounted to the underside of the table. I simply applied some hot melt glue to each of the four corners. The Solder pads on the left hand side of the photo are for the cathodes. The circuit can handle upto 32 columns of cathodes but since this project only uses 30, you only need to connect the bottom 30. Just start from the bottom and work your way up (I.E. The bottom PCB connection goes to the bottom column of LED cathodes then the next one up, goes to the next one up etc...)
The second photo shows the LED Anodes connected to the top part of the PCB. Again the PCB connections simply line up with the LED's (I.E. the very right row of LED Anodes connects to the very right PCB solder pad. Also, this circuit can handle up to 32 rows of LED anodes but we are only using 30, so all you need to do is start from the right, work your way to the left and leave the last two pads on the PCB alone.
Step 9: Install the Analog Controllers.
Grab your four Atari controllers and open them up with a philips screwdriver. (there are just two screws)
Take off the back cover and you will find a button and potentiometer inside. De-solder the wires from the potentiometer, unscrew the potentiometer and remove it from it's housing. (see second photo)
Repeat this for the remaining three controllers.
Now we need to drill some holes to mount these potentiometers into. (The third photo explains it all)
Once you have your holes drilled, you will want to mount your potentiometers in the holes and glue in place with some hot melt glue. Do this for all four potentiometers. (see fourth photo)
Once they are in place, you need to solder three wires to each.If we use the potentiometer nearest the circuit board as a reference: (see fifth photo)
- Top connection = +5v
- Middle Connection = player connection
- Bottom Connection = Ground
Anyway, If you then follow these connections around to the bottom potentiometer, we now have:
- Left connection = +5v
- Middle connection = player connection
- Right connection = Ground
You then need to connect the potentiometers to the circuit board. They are labelled on the board so it quite straight forward. (see fifth and sixth photo's)
And once all of that is done, you can now install your control knobs to the top side of the table. (see seventh photo)
Step 10: Install the Two Push Buttons.
These two buttons are used to select which mode the table will operate in and also to select how many players will play the game.
PLEASE NOTE, IN MY ORIGINAL PCB DESIGN (WHICH IS THE ONE I AM CURRENTLY WORKING WITH IN THIS INSTRUCTABLE) I FORGOT TO PUT SOLDER PADS FOR THESE BUTTONS IN. THE REVISED PCB DOES INCLUDE PADS FOR THIS STEP THOUGH.)
Firstly you need to get some hot melt glue and glue the buttons to the underside of the table preferably near the edge for easy access. (see first photo)
Once done, you will need to solder one 10k ohm resistor to one leg of each button. (this will not be required with the new PCB) (see first photo) The other side of each resistor goes to +5v
The other connection on the same side of the button goes to ground.
Finally, the connection on the other side of the button opposite the resistor goes to PORTC pin 0 (for one of the buttons) and then PORTC pin 1 for the other. It does not matter which button goes where
Once again, this will be much simpler once I get the new boards in and I will update the instructable accordingly.
Step 11: Tidy Up
it's nice to be clean, so get some electrical tape and tape down those wires!
Step 12: Mount the Power Switch and Battery Pack.
Since this table draws very little current, you can easily power it with four AA batteries.
Infact, if you powered this with four 2500mAh rechargeable batteries and played for half an hour a day, everyday - the batteries would last you over two months!
Get your hot melt glue gun out again and glue your battery holder to the underside of the table. Make sure you put it somewhere close to the PCB because there really is no reason to have to have long wires going everywhere. (see first photo)
Then, Solder your black (negative) wire to the -ve solder pad on the PCB (see second photo)
Then solder a wire from the positive terminal of the battery pack to one side of the switch. Also, solder a wire from the middle terminal of the switch - this will end up connecting to the +ve of our PCB. (see third photo)
Next, you need to solder the other end of that wire from the middle of the switch to the +ve circuit board pad (see fourth photo)
Now you can switch the game on and off!
Step 13: Give It Some Legs to Stand On.
Now comes time for the legs.
Get your four 45cm Legs that you cut earlier and screw them into each of the four corners.
I used four screws for each leg - Don't forget to pre-drill !
Step 14: Add a Splash of Color.
You may want to get a little creative here by painting your table to suite your personal style.
I had some paint in the shed so I simply used that to paint the 3mm MDF top piece (the part that surrounds the glass)
But by all means, feel free to go nuts!
Step 15: The Completed Table!
Are we really done!?
Flip the table the correct way up, pop the glass in and you're done! GOOD JOB!
Now it's time for testing and playing.
Step 16: Playing the Game.
- Turn the Super Pong Table on via the power switch and you will be presented with the spinning "SUPER PONG TABLE" title screen.
- Press the mode button to switch to the player selection screen. You can press the player select button here to cycle through one to four players. Arrows will point to which players will be playing. You can then press the mode button to start the game.
- You will be presented with a countdown timer that counts from 9 down to 0. Once it reaches zero, the game will start.
- The balls will start from the center of the screen and move outward. You then need to move your bat to intercept and hit the ball back in the opposite direction. If you miss it however, you will lose a point.
- The first player to reach 20 points wins the game - and they will be presented with a "YOU WIN" animation.
- You can then press the mode button to reset the game back to the title screen.
- I have also programmed in a spinning star animation to act as a 'screensaver' to access this screensaver you just need to press the player select button while on the title screen. To exit, just press the mode button.
Well, that's it for this instructable. I do have plans to update and improve on this game in the future including things like:
- Sound FX
- Ability to shoot other players
- Display an actual score
- Computer players to control all non-human player bats
- Make the ball speeds angles and start positions more random