I was wondering if there was a way to wire together a square panel of 25 led arcade buttons. Plus 2 LED strips as a "counter". I could go down to 4x4 if that's the only thing.
My goal would be to make a "screenless console" that could play multiple games.
Simon (by yourself)
Simon (competitive)
Whack-a-Mole (by yourself)
Whack-a-Mole (competitive)
Lights out
Random number generator/Dice roller (D6, 2D6, D8, D10)
Tic-tac-toe (flashing vs solid)
Connect 3(like connect 4)
Black hole
Go type variants
Open to other ideas. Maybe borrow from the "Merlin" console.
Additional components.
RFID Reader to select games.
Piezo Buzzer
I typically use an Uno but I am thinking that I will need a pin for each button plus for the LED in the button so I'd have to do Mega?
I estimate games will be between 200-5,000 lines of code so I would expect I can get maybe 30 or so games?
Railroader:
Reading 25 buttons can be done by a matrix arrangement of the buttons using 5 x 5 I/O pins, 10 pins.
So If I had 25 arcade buttons then I'd need 10 digital pins to toggle them? I could use an Uno then.
Wouldn't I need additional pins to control the LED inside? These buttons have a set of control for toggling and for the led's.
Railroader:
LEDs need their own I/O pins.
I suppose an UNO will work.
I'd need a mega then, right?
10 pins for the button action
25 pins for each LED
plus pins for the RFID reader, buzzer and led strips
Purely speculative---I don't see anything else like this out there. do you see a logical reason that none one has done this kind of thing before?
Railroader:
What kind of LED strip will be used? Normaly they use serial communication, 1 Data, 1 clock.
The LED buttons will be used to play individual games. The LED strips will be a sort of "score board" for some games to track which person is in the lead. So for VS whackamole the strip might have low power (1-2 lights) at the start (a low threshold of points) but then increase the power when the "points" or number of correct buttons is pressed.
The arcade button themselves are LED. They will act differently in different games. In whack a mole it will be on-press off. Light next. In tic-tac-toe it will be off then when the next button is pressed it will be blinking. After that the next button is solid so rather than x vs o you have solid vs blinking.
Railroader:
What is the technical designation for that LED?
Your text tells what You want to d, nothing I can use for now.
So I decided that maybe I should replace the LED in the arcade buttons with a addressable LED
So this will give me 25 LED that are hooked up to buttons
Then I will make 2 "Strips" of 10 LED on the top and the bottom which will act as said score keeper.
Railroader:
Adressable LED arrays uses 2 I/O pins only. Watch out for the current they might use!
I'm thinking this may to have to be a plugged in toy. I was thinking of throttling them to half power? or somehow having 2 modes?
I may reduce it to 35 LED because
(.3W/5A)*35=2.1 amps max....which would be my battery pack. And that's if I run every light at white which I don't think I would need to do for any game. I could make red my base choice for color of games so I don't draw as much current for most games. I don't have the actual strip so I haven't gotten to test IRL performance. Mostly because I'm looking at a cost of:
25 buttons x 1.50ea ($37)
50 addressable LED ($15)
RFID card ($8)
Pizo buzzer (have)
Uno (have)
Dupont cables ($12)
And I am NOT looking for kudos but do you personally think that this project is a feasible/good idea. I am just worried because no one has ever done it before it's a bad idea.
Start like this: Make the UNO run one device well. Then add the next device and make it work. Don't bother about the final system until You manage all the devices.
Check what voltages the different devices need. Hopefully they all uses the same voltage, 5.0 volt.
One question: Will the buttons be pressed only one at the time, or will several buttons be pressed at the same time?
SteveMann:
f you need more I/O, add an MCP20017 Port Expander.
Thanks. I will have to research that part.
My projects I have done so far are ‘car’ robots that use light/sound/tilt/ir/sonic sensors and the TonUino mp3 rfid box. I’m nervous to move beyond my little projects that are either simple code or rely on others code.
Railroader:
I don't understand the last sentence.
I made a snipp of code reading 4 by 4 buttons, = 16. Whant it? Easily expanded to 5 by 5 = 25 buttons.
Sure. It’s helpful to learn by seeing what works.
So regarding the games. All of them, except Whack-a-mole, are non timer turn based games. Side “a” vs side “b” using 20 of the buttons. But for whack a mole the on will be slightly staggered so neither player is actually pressing at the exact same second.
So 10 buttons for 5x5 button matrix,
1 pin string WS2812B LEDs,
Leaves 9 pins for other stuff,
2 for serial downloads, debugging,
7 free in reality.
RFID uses 4 for SPI?
1 for buzzer.
Still have 2 free.
Use them for I2C to something else in the future?
In a simple matrix scanned keypad arrangement, you will have a problem if more than one button is pressed at the same time.
This will happen if you have humans playing whack-a-mole.
You’ll need a diode isolated keypad matrix. Google is your friend.
If you are going to learn about and employ a hardware i/o expander, some might argue it would be easier to just expand enough to have each button on its own pin.
Easier perhaps would be to use an Arduino with enough “real” i/o pins.
Another approach would be to hack an old PC keyboard of the kind that has NKRO, “n key rollover”. Again, talk to google.
The PC keyboard might speed development as you could get it working without the hacking part. Or do the hacking in parallel, but you’d always have the ability to put a real unhacked keyblade in there instead for testing.