Introduction: Arcade Card Keeper

This instructable is made for the optional course Fablab Making, which i followed at the University of Rotterdam

Step 1: Explaining My Idea

The first weeks of this course where a lot of thinking about what i was going to build in the last weeks of this course. After a good idea which would be a little overpriced (an easy way to sand my bowling balls) I came across my current idea. Lately i have been going a lot to an arcade hall where you can get these card sets from a coin pusher. These cards are worth 200 tokens so why not build a sort of scanner which detects a card then updates a tokens variable on a screen and also stores them so i can't lose them.

MoSCoW analysis

Must haves:

  1. A way of scanning the cards
  2. On/Off switch
  3. Card storage
  4. Powerd by a 5 Volt power brick

Should haves:

  1. A LCD screen
  2. A motor to pull in all the cards

Could haves:

  1. Working on 18650 batteries

Won't haves:

  1. automatically activate the motor when detecting a card

Parts list:

  • Computer with Arduino software running and a USB port
  • An Arduino Uno
  • 5 Volt DC motor
  • 1602 LCD screen
  • ON/OFF switch
  • LDR sensor
  • 5 Volt laser module
  • Female headers
  • Jumper wires
  • DIP-switch
  • Buck converter
  • 3mm triplex
  • Soldering tin
  • Soldering iron
  • Laser cutter
  • 3D-printer

Step 2: Building the Code

For me the coding of the arduino was not that big of a problem because i have a lot of experience with the coding of an Arduino. The coding is simply divided in two functions. One of it is de LCD screen and the other one is the LDR sensor. This sensor is capable off changing the resistance when the sensor is picking up more light. As you can see in the picture of the code above, I simply used an I2C library for the LCD screen to simplify the schematic of the screen. The part of the LDR consists of a couple of variables which are stored in the registers of the arduino. Everytime the arduino goes through the main loop the arduino reads the value of the LDR, if the value gets under 1000 the variable tokens will be increased with 200 and the variable n wil be increased with 1. Every time this happens the screen will update the values of the variables to the ones stored in the registers. For testing I added a line for serial printing which can be seen in the last line of the coding to read the value of the analog pin and show it at the serial monitor. The serial monitor (as seen in the picture above) shows a value of 1021 and 1022 when the laser is directly shot a the LDR and when a card passes this value drop to around 780. By seeing this in constructed an if statement where if the sensorvalue is smaller then 1000 all the variables will be increased as explained before.

Step 3: Designing and Assembly


For the case of this project i came across this site:
The only things i had to fill in where dimensions of the case and it generated a svg file for printing it with a laser cutter. Why I choose the dimensions a seen above? The width of the case is 20 cm, the 3d printed card holder is 7 cm so there is 13 cm left for all of the electronics. The case has a depth of 15 cm, the 3d printed card holder has a depth of 10 cm so there enough space for placing the dc motor to pull in all the cards. For the height of the case i choose 7 cm, the 3d printed card holder has a height of 4 cm. I created some margins by choosing a height of 7 cm. The total svg file can be downloaded and can be inspected if some things are not clear.

3D printing:

For the card holder i used tinkercad, first I measured the length and the with of a normal card, which was around 5,5 cm by 8,5 cm. Then i created a base plate of 10 cm by 7 cm. Then I created 3 sides with all the same height, 2 for the sides with a length of 10 cm and 1 for the side with a width of 7 cm. The front facing side has a height of 2,5 cm so the cards can fall in the card holder. The total stl file can be downloaded and can be inspected if some things are not clear.


As seen in the pictures above I used an LCD screen with I2C module which is connected to 5V and GND, and the SDA and SDL pins are connected to A4 and A5 of the arduino. The LDR is connected to 5V and via a 100k resistor connected to GND. The point where the LDR connects to the resistor is connected to pin A0 of the arduino to read the different values of the LDR with different illumination. The laser module is connected to 5V and GND of the arduino. But the only problem was the DC motor, when you power up the motor it draws that much current that the arduino will turn of for a second. When that happens the whole systems resets. To solve this problem i connected my 5 Volt power supply to a buck converter module and set the output voltage to 1,5 Volt. By doing this I lowered the current that much so that the arduino can still work when the DC motor is used.

Step 4: The Result!!

When all of my designing and all my tests were done I build the case and printed the holder. And in the end connected everything to my power supply and the right pins on the arduino. My project was done as you can see in the pictures and the videos it works quite nice. It has some small error which can be solved pretty easy but in the end it works nice and those what I expected it to do. At last I will include the file of the coin I made in one of the first lessons of this course.