Each year the Dublin Maker festival comes around and our members Jeffrey Roe and Christian Kortenhorst want to take part. They have been to many maker festivals and collaborated over the years.
Christian likes to make big things with tools and Jeffrey likes to make things with technology and electronics. They tend to come together on their love of interactive games. While wandering around EMF camp last year they came across the work of We Throw Switches and their flux game
The goals of the project:
- Two-person interactive game
- Fit on a table
- Be portable
- Simple game with no need for instructions
- Be ready in three weeks
Eary on, it came clear we would be using arcade style buttons, and addressable LEDs to meet the project deadline of only a few weeks.
Christian got started working on the box. He create an LED display that was 4 by 6 “pixels”. Each pixel would be made up of 4 addressable LEDs. Two stripes of 50 LEDs would be used and due to the wiring layout, some would be hiddle and just covered in tape.
Doubts started to come to the project team. Would these LEDs work in direct sunlight? Remember the goal is to use the game in an outdoor daytime festival. Christian came up with the idea to paint everything white and Jeffrey said let’s bump up the current to make the LEDs brighter.
Now for the brain of the game. Jeffrey started out with the idea of using the USB controller that comes with buttons. How hard could it be to use a Raspberry Pi Pico and a USB host library?
It turns out that with Jeffrey on the team running Dublin Maker there is not enough time to learn new things for projects. We quickly switched back to using the reliable and known Arduino. In order to make the game responsive all eight buttons would be required to have their own hardware interrupt.
He started to use an GPIO expainder over I2C. This device allows for lots of interrupts. We started to build out a little board that would take the connector from the buttons and power the LEDs strips. The video below shows testing an interrupt to turn on the LED in the button when the button is pressed.
The code started to come together with a few late-night sessions but the interrupts didn’t seem to work as expected. Due to the way, the buttons are wired, the LED and the button share a pin and it’s only controlled by three pins. This causes the interrupts not to trigger when the LED is turned on.
Unfortunately, we did not meet the deadline of the event and never fixed the problem before the Dublin Maker event. We coded up a bit of a demo on the LED display but was not interactive.
The project did not end there. Another big public event was only a few weeks with Dublin Comic Con Summer edition. During a few late-night coding sessions, Jeffrey came up with a new way to check the inputs of the buttons without using hardware interrupts but still be reactive. The code just checks the status of the expected two buttons to be pressed over and over so there is little delay.
The game was unleashed to the visitors of comic con, it was a hit. People loved playing it once they got going. We did kind of miss the other goal of making the game portable as it ended up a little big.
You can check out more f the photos from the build in our gallery.