Mobile (Quantum-)Pinball
For an project funded by the Federal Ministry of Education and Research we wanted to get the general public in touch with new developments in Quantum technologies. One idea was explaining the quantum key exchange with a pinball machine. First iteration was an almost regular sized pinball machine. As it turned out, there are mechanical reasons that they use a very strong backplate instead of our idea of useing 4mm lasercut poplar. While still a big and heavy piece, it broke down even after a short transport. While starting to fix it we stumbled across a small, purly mechanic children pinball machine.
That was an inspiration to develop a small, cheap and transportable version. As it turned out, this was far better than the original idea. People can rebuild it (design files and program can be found at https://github.com/JanThar/Pinball) and even redesign it. The backplate is just covered with a laminated A3 print, so it can be exchanged by own prints. Costs are also relative cheap, the most expensive part is the WS2812 led strip.
Supplies
The pinball machine can be lasercut out of 3,5 A3 sheets of 4mm poplar. Additioanlly you need a laminated A3 print as back art (or a maybe a real drawing), a bit of copper tape, wires, an Arduino Nano or similar, a 12mm steel ball, 8*8mm bronze bearing for 4mm axis, two 2cm and normal M4 washer, M4 nuts and M4-25mm screws, a bit of self adhesive velcro, a wired WS2812 strip and a piece of rubber cord.
An A3 transparent sheet can be used as cover (to prevent that the ball can leave the game area), and wood stain and decoration material (in our case salt crystals and moss) for decoration.
The Game Field
First print your game area on a A3 sheet, an example can be found in the svg file in the github repository. You can change image and LED positions as you want, just make sure that you print it not scaled. Afterwards laminate the print and cut it into form. Especially Openings for screws, flipper finger and half circles at the bottom needs to be cut away.
Glue Laser Cut Parts
Then stack and glue the laser cut pieces together. Some hints can be found in the svg file, or use images and you inspiration. Mostly these are stacks of between 3-5 layers of wood, and one bigger part with finger joints as top frame.
Finish Up the First Assembly
After the glue tried you can sand the edges of the frame if you want, as well as stain the wood. The picture will be glued with pieces of double sided tape on the back plate.
LED Wiring
With the picture in place you can start marking the LED-positions on the back side. You can either hold the plate against a light source and cover led positions with your finger, or light up a certain LED position with a flashlight. After marking each position, you glue the LED strip in place.
Start close to the position where you want to place the controller later on (i use the spot in between the flipper finger for it), and work your way through the panel. Ignore a certain order of the LEDs, just place them such that distances and spacing works best.
Afterwards glue and solder the controller on the panel and upload a FastLED-demoprogram, e.g. colorplatte on it.
With the LEDs now turned on, you can check and fix the position of the front picture if necessary.
Flipperfinger
In the next step we continue with the flipper finger. First insert the bearings inside the finger, the insert screws into the frame at their positions. In case you want to use a foil on top of the game area, cut it in size and attach it with strips of double sided tape before continuing.
Then add first a small washer on the M4 Screws, then a bigger one, the flipper finger, a bigger washer again and finally the smaller washer. To prevent the fingers to get loose again, attach two M4 nuts on top for the moment.
On each Finger we eill attach two additional screws to strengthen the grips. Each will be secured with nuts, but before attaching the outer ones we will knot a rubber band on each screw. This will be later used as spring for the flipper finger.
Roll Over Targets
The most challenging part are the roll-over targets. Due to the small size of the ball it will not bring much force on the ground. Normal buttons will not work, and for cheap capacitive touch sensors the ball moves fast enough that the signal will be filtered out. A cheap solution is using copper tape.
First use a 1cm wide strip as backplane, a sqare centimeter will be on the way of the ball, while the strip extends further below walls, and in case its close to the border of the back plate you might also tape it around the plate to the backside for easier connections later on.
To create a small space between this backplane and a top counter part a small piece of foil (around 0,2mm thick, 10mm*5mm) will be glued with doubel sided tape on one end of the copper tape (see first picture).
For the front plane we use a 1cm wide copper tape again. 2cm will be above the target, such that the copper strip will float a bit over the backplane. To stabilze it just glue a bit of paper on the copper tape. After the 2cm reduce the size of the tape to 5mm and bent it in 90° angle. Then use transparent tape to fixate the strip above the back plane, while the smaller part can be directly glued parallel to the backplane on the picture.
Now a light contact should already make a contact between both copper strips. If the copper strips stay in contact, use pliers to widen the distance an bit.
Wall Targets
Wall targets are far easier and more reliable. We use copper tape again. First glue copper tape on the walls behind the later targets. In best case it will go around the wall to the back side, where we later solder wires to Ground. You can also combine multiple targets with a common backplane.
In a second step copper strips are first stabilized by glueing paper on it. Then we bent the copper strip in a 90° angle - such that one part will later create the target, and the rest will go below the wall and a bit further for soldering. These Pieces will then glued on their places of the game area with transparent tape, which will also isolate the targets from the wall backplane.
Afterwards glue the wall with the backplanes on top of it and check if there are no short circuits as well as if the target work as intended (short circuit to backplane if you press the target). Then you can start wiring.
Wiring
First solder wires on each Target as well as their backplanes. Guide them to the backside (you might want to drill additional holes) and then solder them to the controller.
Afterwards you can already start with decoration, e.g. glueing salt crystals on top of some LED posiitons as well as filling out spaces with conserved moss. But that might change depending on your preferences and game area layout.
Wedding
Afterwards its time for the wedding of back and front. First make sure everything is working as intened (LEDs, targets). Then put the front frame on the back on a table and remove the securing nuts from the flipper finger. Then put the ball somewhere o the dame area and insert the back side. Guide the rubber bands from the flipper finger through the flipper finger holes to the back side, and first secure both flipper finger with nuts again. Then attach four more screws, two on the lower, and two on the upper part. The rubber bands will be knot onto the upper screws before securing them with nuts.
Velcro tape will be glued at the sides of the top area as well as their halve circle counterparts, which will be attached such the game area will later be in an angle on the table. For transport they can be removed again and stored within the half-circle gaps in the backplane.
The last part is to check if the finger move without resistance. Check if the nut is not to tightened to thightly, and if the finger handle scratches on the wood frame. You might need to sand the finger handle opening a bit if necessary.
Finally we do the programming. After uploading the TestLEDs program from the github file with the Arduino IDE we can circle through the LEDs by using the serial monitor. After each "enter" input the next LED will light up and its number shown in the serial monitor.
Finally we can insert the LED positions and target IOs into the real program code (MyPinball), which can of course also altered for own designs.
And now a bit of quantum key exchange (or hwo to win the game ^^):
Qunatum key exchange is great to send a new pin code to e.g. a satelite, where normal postal services won't work, and you need to make sure that nobody else listened to this code.
The nice things with QBits - in this case e.g. in their photonic form - is that data can be sent in different base forms (polarisations). If the sender and receiver use the same base, the signal will go through, if they use a different base, only garbage will go through. In our binary system we still have a 50% chance to get the right value, but thats not that helpfull. Normally you would assume that you can just make a copy and test both variants, but there is another thing: Measurements destroys the quantum properties, so you can't make a copy. You have one try and thats it.
At the end, the sender and receiver (and also a possible attacker) needs to choose a random base (in our case initiated by a roll over of either the left sender or right receiver lane), and later send and measure the signal with theis base (a second rollover). Normally they now send data for a while and later communicate public (everybody can listen, they just need to make sure that there is no man in the middle for interceptions) which bases they used.
In our pinball we will do this directly: if sender and receiver used different bases they will throw away the data as garbage (filling up the left score), if the choose the same base the signal might be correct received (filling up the right score).
An attacker who intercepts the signal needs to choose a base, too. And since copies are not possible he needs to create a new signal. If h choose the same base as sender and receiver everything is fine, but otherwise there is a chance that the signal is changed (might still be lucky that the wrong base produced the correct value at the receiver side).
Later on sender and receiver compare therefore a part of the sent and received values. If there are changes, we know that there was an attacker and we need to try again, otherwise we are sure that nobody else knows the pin code (obviously we don't use the public compared values as pin code but the other ones).
In reality therr might be disturbances, so bigger numbers of data are necessary, but the principle works.
So for winning the game we need to turn of the attacker. This happens through the wall targets at the upper part of the game, or quantum sensor area to detect the attacker. After filling up the upper score the attacker will be turned off and you can finally sent data undisturbed.
(Originally we wanted to also include a hint to quantum computing, but that was already to complicated).
In the code we just check the targets as buttons, and then fill up the scores. Each part/score works more or less independant, with just boolean variables to switch each score into diffent modes. This makes adaption to different game plays easy.
But thats something to do later, first start playing :)