Arduino Wooden Pinball Machine

by KayPoland in Workshop > Woodworking

4526 Views, 24 Favorites, 0 Comments

Arduino Wooden Pinball Machine

IMG_20210531_132546.jpg
IMG_20210531_132753_1.jpg
IMG_20210528_172837_1.jpg

Ever since I was little, I was always fascinated by pinball machines. The sounds, the lights and the shooting and bounce of the ball. All this makes me feel nastalgic.

Now it was time to make one myself

Today in this instructables I am going to make a DIY pinball machine out of wood and arduino.

At the moment the project is in its basic form but this is a perfect start for everyone to put their own spin on it as they build it.

The wood I used for this project is 12mm plywood. And I used an arduino to display a score. The arduino section will be expanded in the future. Those steps are also going to be uploaded in these instructables.

Supplies

- 12 mm plywood

- Screws

- Pinball balls

- Original flipper mechanics for right and left flippers

- Iron tube

- Split pin

- M10 threaded rod

- M10 nut

- M10 acorn nut

- Springs

- Smal door stopper

- Washer

- Arduino Uno

- MAX7219 8-digit display

- Micro switch

- Mounting wire with flexible core

Handy Tools:

Drill and screw machine

Dremel

Jigsaw

Soldering iron

Sketch

IMG_20210530_204049.jpg
IMG_20210530_204057.png

I started looking for pinball machines to get an idea of how I wanted my layout of the gamefield. On the left I want one or more targets to shoot at and in the middle 3 bumbers.

For the dimensions I came across flippers.be which lists the dimensions of original Bally/Williams pinball machines. The Bally/Williams pinball machines are 131,5 cm long and 56 cm wide. https://www.flippers.be/basics/101_flipperkast_afm...

The site dimensions.com also had measures of a pinball machine. There they say that pinball machines are 130 cm long, 56 cm wide and the playing surface is set at a slope of 6.5°. https://www.dimensions.com/element/pinball-machine...

I think 130 cm is too long for my own pinball machine so I went for a length of 105 cm and a width of 56 cm.

The playing field is on a slope of 6.5°

Building the Cabinet

afmetingen.png
IMG_20210523_184349.jpg
IMG_20210523_185717.jpg
IMG_20210523_185749.jpg
IMG_20210523_191237.jpg
IMG_20210523_191318.jpg
IMG_20210523_211000.jpg
IMG_20210524_130855.jpg
IMG_20210524_131111.jpg

The sizes I used for the cabinet can be seen in the photos.

I used glue clamps and a straight piece of wood to cut straight with a jigsaw. The tape is to prevent splintering.

The pieces of wood are put together with angle irons.

Buidling the Flippers

IMG_20210524_174111.jpg
IMG_20210524_175252.jpg
IMG_20210524_175550.jpg
IMG_20210524_184230.jpg
IMG_20210524_190730.jpg
IMG_20210524_213210.jpg
IMG_20210527_125719_1.jpg

The pinball mechanics are of a real pinball machine. In a real pinball machine, the flippers are operated by means of solenoids. To control this with arduino you should first have 50 volts with enough ampere, a relay or mosfet and a diode. I find it scary to work with high voltages so I converted the flipppers to operate it with your own power.

To do this I took the coil off the solenoid. The catch of the flipper mechanism has been drilled through together with the iron tubes. The mechanics and the tubes are attached to each other with a split pin. To get the flippers back to their original position after pressing them. Use is made of a spring attached to the flippers and a screw that is in the middle of both flipper mechanics.

The Ball Shooter

IMG_20210531_133204.jpg
IMG_20210527_103842.jpg
IMG_20210527_103743.jpg
IMG_20210527_104451_1.jpg

For the ball shooter I used an M10 threaded rod, small door stopper, some springs, whishers, M10 nuts and an M10 acorn nut.

I used a acorn nut for the handle. In order not to let it hit the pinball machine, I use 2 washers, a light spring and a nut to absorb the hit.

To shoot the ball I use 4 springs on the inside of the pinball machine, a nut to build up the tension and a small door stop to have a good surface to shoot the ball hard but not to damage the ball.

Playing Field

IMG_20210525_082811_1.jpg
IMG_20210525_082843_1.jpg
IMG_20210525_085848.jpg
IMG_20210526_115628_1.jpg
IMG_20210526_115812.jpg
IMG_20210526_115957.jpg
IMG_20210526_165026.jpg
IMG_20210526_183916.jpg
IMG_20210526_183946.jpg
IMG_20210527_123444.jpg
IMG_20210527_123606.jpg
IMG_20210527_125834.jpg
IMG_20210527_155242_1.jpg
IMG_20210527_155248_1.jpg
IMG_20210527_155807.jpg
IMG_20210531_132647_1.png

At the top of the playing field I wanted to have a curvature. I drew this with a piece of string and a pencil. I made it by screwing 3 pieces of wood together and sawing out the curvature with the jigsaw.

On the sides I screwed a slat of 3,5 cm wide straight on. And to the left of the curve I made an extra curve so that if the ball doesn't go too fast it goes between the flippers. To make a way for the ball shooter I screwed another slat next to it.

Next to the flippers there must be some wood to create 2 courses to lose the ball because they can no longer reach the flippers and to make the ball roll towards the flippers.

Behind the Flippers

IMG_20210531_133023.jpg
IMG_20210527_223517.jpg
IMG_20210531_132939.jpg

At the bottom of the playing field there are some slats to catch the balls and guide them to the right below so that the balls can be picked up again. On top of this is a plank of wood in which I saw the shape of the bottom slats. The arduino is also hiding under this wooden plate.

Score!!

IMG_20210531_132939.jpg
IMG_20210531_132944.jpg
IMG_20210531_133006.jpg
IMG_20210531_133235.jpg
IMG_20210531_133117.jpg

The arduino part is far from finished, but you can score points. If you hit the left switch, you score points that can be seen on the 8-digit screen at the bottom left increase. The 8-digit screen fits nicely into the plate. This was done with a dremel. The arduino s powered by a battery bank.

This is the arduino code that is used:

//We always have to include the library
#include "LedControl.h"

const int buttonPin = 2; 
int buttonState = 0;   

//int Digit = 0;
int punten = 5;

int eerstenum = 0;       //Now we need a LedControl to work with.
int tweedenum = 0;       //***** These pin numbers will probably not work with your hardware *****
int derdenum = 0;        //pin 12 is connected to the DataIn 
int vierdenum = 0;       //pin 13 is connected to the CLK 
int vijfdenum = 0;       //pin 10 is connected to LOAD 
int zesdenum = 0;        //We have only a single MAX72XX.
int zevendenum = 0;
int achtstenum = 0;

LedControl lc=LedControl(12,13,10,1);

unsigned long delaytime=250;        ///* we always wait a bit between updates of the display */

void setup() {
  Serial.begin(9600); 

  pinMode(buttonPin, INPUT);
  
  /*
   The MAX72XX is in power-saving mode on startup,
   we have to do a wakeup call
   */
  lc.shutdown(0,false);
  /* Set the brightness to a medium values */
  lc.setIntensity(0,8);
  /* and clear the display */
  lc.clearDisplay(0);
}



void loop() { 
   scoreDisplay();
buttonState = digitalRead(buttonPin);
   if (buttonState == HIGH) {
    punten++;
    Serial.println("HIGH");
  }
  Serial.println(buttonState);
}

void scoreDisplay(){

  lc.setDigit(0, 0, eerstenum,false);
  lc.setDigit(0, 1, tweedenum,false);
  lc.setDigit(0, 2, derdenum,false);
  lc.setDigit(0, 3, vierdenum,false);
  lc.setDigit(0, 4, vijfdenum,false);
  lc.setDigit(0, 5, zesdenum,false);
  lc.setDigit(0, 6, zevendenum,false);
  lc.setDigit(0, 7, achtstenum,false);
  
    //punten++;
    
eerstenum = punten;

if(punten > 9){
  punten = 0;
  eerstenum = 0;
  tweedenum++;
}
if(tweedenum > 9){
  tweedenum = 0;
  derdenum++;
}
if(derdenum > 9){
  derdenum = 0;
  vierdenum++;
}
if(vierdenum > 9){
  vierdenum = 0;
  vijfdenum++;
}
if(vijfdenum > 9){
  vijfdenum = 0;
  zesdenum++;
}
if(zesdenum > 9){
  zesdenum = 0;
  zevendenum++;
}
if(zevendenum > 9){
  vierdenum = 0;
  vijfdenum++;
}
}

Quick Update Video

Pinball machine HKU
IMG_20210809_210249.jpg
IMG_20210809_224439.jpg
IMG_20210809_225456.jpg
IMG_20210809_232004.jpg
IMG_20210809_234308_1.jpg
IMG_20210810_003218.jpg
IMG_20210810_003522.jpg

Here are photos and a video of the pinball's current condition. More information to come. And the wiring under the pinball machine needs even better management. only a lot did not work so it was a lot of loosening and reconnecting wires. All functional time now works except the electromagnet (solenoid) between the bumpers is not yet connected.

The Future

IMG_20210531_132546.jpg
IMG_20210531_132753_1.jpg

This project is still going on and I will be sure to post all updates here.