Máquina de pinball casera controlada por Arduino Mega 2560: Guía completa
Componentes y materiales
| Componente | Cantidad | Notas |
|---|---|---|
| Arduino Mega 2560 | 1 | Controla todo: switches, luces, puntuación, LCD. |
| Pantalla LCD 2 pines (Adafruit) | 1 | Serie, solo TX desde Arduino. |
| Fuente 24V | 1 | Para solenoides (flippers, bumpers, slingshots). |
| Sensor de fuerza (Adafruit) | 1 | Detecta bola en bandeja de pérdida (game over). |
| Ensamblaje Pop Bumper (solenoide + switch) | 1 | |
| Switch Pop Bumper | 1 | |
| Target switch (objetivos) | 1 | |
| Rollover switch (carriles) | 1 | |
| Flipper assembly (izq + der) | 1 | |
| Lámparas LED para pinball | Varias | Luces de objetivos, bumpers, carriles. |
| Madera (tablero roble, abedul), tornillos, bisagra piano, patas regulables | - | Carpintería para mueble y campo de juego. |
Sobre el proyecto
Construcción de una máquina de pinball real controlada por un único Arduino Mega 2560. Requiere carpintería, mecánica, electrónica y programación. El autor tardó ~6 meses a tiempo parcial. No encontró mucha documentación previa, así que documentó todo el proceso para ayudar a otros.
Estructura del mueble (cabinet)
- Madera: tablero roble 20" alto x 23" ancho (frontal/trasero), laterales 20"x47".
- Unión: fresadora de galletas (biscuit joiner) + cola, o tornillos de bolsillo.
- Estante inferior (flotante) para fuentes de alimentación.
- Campo de juego: 22"x42" (abedul 1/4"), descansa sobre tacos 4" bajo el borde superior.
- Patas regulables: varilla roscada 3/8" 12" en cada pata, tuerca de ajuste y pie nivelador. Permite cambiar inclinación (1-7°).
- Tapa: marco roble con plexiglás (más ligero y seguro que vidrio), bisagra piano, tira LED decorativa debajo.
- Toma de corriente y USB accesibles desde fuera (reprogramar sin abrir).
Electrónica y cableado
- Arduino Mega hace 4 cosas: lee switches (INPUT_PULLUP), enciende luces (salidas digitales), lleva puntuación, muestra score/bola en LCD serie.
- Switches simples (targets, rollovers): un pin digital a GND, pinMode(pin, INPUT_PULLUP). Detección flanco descendente.
- Pop Bumpers: alimentados a 24V (solenoide). Su switch envía 24V → divisor de tensión → entrada analógica Arduino (umbral >500 para evitar ruido).
- Sensor fuerza (analógico): detecta bola en zona de pérdida → controla bolas jugadas y game over.
- Luces: pines digitales directos (5V) para LEDs de bajo consumo.
- Fuente 24V → barras de bus (bus bars) bajo el campo → distribuye a solenoides. Arduino usa 16 AWG para 24V, 22 AWG para señales.
Elementos de juego (mecánica)
- Lanzador (plunger): comprado (Marco Specialties B-12445). Alineación crítica: centro del émbolo a altura de radio de bola (1 1/16").
- Flippers: ensamblaje estándar (Pinball Life). Cableado: bobina hold + power, switch EOS (end-of-stroke). Requiere driver de potencia (no detallado, asumido relé/MOSFET en bus 24V).
- Slingshots: ensamblaje completo con gomas. Raíles laterales caseros (alambre cromado).
- Pop Bumpers: 3 agujeros (2 varillas guía + eje switch). Disco blanco empuja eje → switch hoja → solenoide → anillo metálico impulsa bola.
- Targets, rollovers, luces: targets caídos (Marco A-14691-5), rollovers (Action Pinball A-12687), lámparas LED (LED4555) con casquillos (077-5030-00).
- Campo de juego decorado: póster NASA laminado con adhesivo en contacto.
Código (sketch Arduino)
const int TxPin = 17; // LCD serie
long Score = 0, OldScore = 0;
long TargetVal = 1, PopVal = 1, RollVal = 10;
int Targets[8], Rolls[3], Pops[4];
int Milli = 10, Flash = 100;
int Ball = 0, Shot = 0, Lost = 0, Pressure = 1024;
#include <SoftwareSerial.h>
SoftwareSerial mySerial(255, TxPin); // Solo TX
void setup() {
pinMode(TxPin, OUTPUT); digitalWrite(TxPin, HIGH);
mySerial.begin(9600); mySerial.write(12); mySerial.write(17); // Clear, backlight on
// Pines 2-9: 8 targets (INPUT_PULLUP)
// Pines 10-12: 3 rollovers (INPUT_PULLUP)
// Pin 15: switch lanzador inferior
// Pin 16: switch lanzador superior
// Pines 32-39: luces targets
// Pines 40-42: luces rollovers
// Pines 50-53: luces pop bumpers
// Analógicos 0-3: switches pop bumpers (via divisor)
// Analógico 7: sensor fuerza
}
void loop() {
// 1. Chequear 8 targets
for (i=0; i<8; i++) if (digitalRead(i+2)==LOW && !Targets[i]) { Targets[i]=1; Score+=TargetVal; digitalWrite(i+32,HIGH); delay(Milli); break; }
// Si los 8 activos → parpadeo, apagar, TargetVal*=5
// 2. Chequear 3 rollovers (pines 10-12) similar → RollVal*=10, Score*=2
// 3. Chequear 4 pop bumpers (analogRead 0-3 >500) → PopVal*=2
// 4. Detectar bola en lanzador (pines 15/16) → Ball++, reset Shot, Pressure = analogRead(7)+offset
// 5. Sensor fuerza (A7) > Pressure → bola en juego (Shot=0). Si Pressure superado y Lost==0 → Lost=1; si Ball==5 → GAME OVER: parpadeo general, LCD "Game Over!!!".
// 6. Actualizar LCD solo si Score cambia: línea1=Score, línea2="Ball = X".
}
Esquemático
Diagrama simplificado (un ejemplo de cada tipo: target, rollover, pop bumper, flipper, sensor fuerza, LCD). El cableado completo sería demasiado extenso.
Resumen y consejos
- Prototipa cada mecanismo en madera de desecho antes de instalar.
- Usa bus bars para distribución 24V.
- Divisores de tensión para leer switches de alta tensión.
- Entradas analógicas para pop bumpers (mejor inmunidad a ruido).
- Sensor de fuerza para detectar pérdida de bola.
- LCD serie (2 hilos) ahorra pines.
- ¡Diviértete y añade tus propios extras!
Proceso de manufactura
- Interruptor Inteligente de Corriente Alterna Controlado por SMS con Raspberry Pi y Hologram
- Construya un robot Raspberry Pi controlado por Bluetooth con retroalimentación de audio
- Lámpara de mesa RGB controlada por gestos – Iluminación interactiva y sin manos
- Construye un Dispositivo de Levitación Ultrasónica con Arduino – Guía Paso a Paso
- Controla LEDs con Alexa mediante Raspberry Pi – Guía paso a paso fácil
- Transforma un viejo coche RC en un vehículo controlado por joystick con Arduino
- Brazo Robótico de 6 Grados de Libertad Controlado por Nunchuk con Arduino
- Controlador Inalámbrico Inteligente de Interruptores: Manipulador Remoto Basado en Arduino
- Construye un robot controlado por voz con Arduino Nano
- Smartwatch Arduino DIY: Construye tu Propio Reloj Estilo Apple Watch
- PiBot: Robot Pianista con Arduino para Interpretación Musical de Precisión