Idea & Concept
We decided to hack the good old wooden labyrinth. We had the idea to play it with potentiometers and by a controller which imitates the board and let it act like this with a position sensor. Therefore we thought about making the game harder by inverting the x and y-axis when passing a certain stage in the game. Other features should be a colourful led strip inside which reacts on different switches and game phases and magnets should influence the ball.
After we programmed the Arduino clone (iteaduino) that the potentiometers and the position sensor were able to control the servos, the next thing was to find a way to move the axes inside the game by the servos.
The challenge was that no one should be able see the changes from outside. So we tried it with two thick gums that we fixed to the lever of the servos and twisted the gums two times around the sticks. We realized that the sticks are too slippery for the gums, so we used tape to get rid of that. Then we attached the servos to the case by two screws instead of glue to have a stable construction because the gums have to be under tension to work fine. The potentiometers were also fixed to the case with a nut.
The next step was to calibrate the servos with the potentiometers that they are horizontal at the start and the mapping to the potentiometers is intuitive. This was a real problem in our project because the calibration of the servos was mostly lost after playing a while (natural problem of the gums), so we programmed an extra calibration program. We realized then that it’s hard to play the game with the thin potentiometers, so we purchased knobs for the potentiometers.
After this we build a controller for the position sensor. For the controller itself we made a template (looking like playstation controllers) and let it cut by the LMU laser cutter. We needed five different wires, so we chose the usb cable of an old keyboard for the connection. We added also a switch outside of the case to switch between potentiometer and position sensor control.
Our next challenge was to attach the rgb led strip to the case and find appropriate transistors for the led strips that we don’t destroy our rgb leds or our iteaduino. It had to be an N-Channel MOSFET with appropriate characteristics to match the power consumption of the LED strip. We settled for the IRF520N which can provide more than enough power.
Additionally we attached an electromagnet in one hole of the game to lock the second ball behind a barrier. This ball is released when you push a button with your ball in another hole before the barrier. This was also done with the same MOSFET we used for the LED strip.
The next thing was to find a way how we can implement switches for the ball. Our first idea: Attaching the switch to the underneath the board and exposing it by drilling a tiny hole and sticking parts of a cable through it that should trigger the switch. This idea did work fine, but influenced the path of the ball. Furthermore because of the width of the lanes we would have needed to use at least two switches to cover the whole width. We tried other approaches using copper tape that we arranged on the board in several ways. In the end we glued two little tapes leaving a small cut across the lane that is bridged when the ball rolls over it and connect them with to cables, resulting in a switch. So we added four switches to the game:
- 1st switch: startfield –> leds are turned on
- 2nd switch: release the second ball
- 3rd switch: inverted x and y axis
- 4th switch: finish –> fading rgb light show
At last we took an arduino prototype board (that you can directly attached to the iteaduino) to solder our wiring on it, because the pins in the breadboard were not stable and it needs too much place in the case. This work was a pain because the layout of the prototyping board was not very intuitive. Additionally we didn’t test the transistors we used beforehand, so at first we thought something went wrong when soldering. But instead the transistors were broken, so we had to solder them out and replace them with new ones. It got to the point that we needed to replace one transistor with another model. This model wasn’t able to drive the electromagnet so we swapped the PINs for the electromagnet and the green color of the LED strip, resulting in green going binary (on/off).
The most persistent problem we had until minutes before the presentation was the random twitching of our servos. We still don’t know where exactly it came from and it appeared and disappeared randomly within the hour. Sometimes we could fix it (i.e. by adding a delay to the loop that controlled the servos), but in the end it always reappeared after a while. We noticed that the power LED of the iteaduino was always flickering when the servos twitched, so we figured it might be a power problem. Minutes before the presentation we fixed it by replacing the iteaduino with an Arduino Uno. Phew.
And for the finish, a video that shows the development from the beginning to the end:
The next steps for Madlab could include:
- More steering modes: e.g. drunk mode (overshooting) or vibration mode
- Better handling of mode switches
- Moving walls
- Using electro magnets to accelerate/decelerate the ball
- Highscores for speed