Construye un juego «Operación» animatrónico con minifigura LEGO gigante y Arduino
Componentes y materiales
- 2 × Arduino UNO
- 1 × Shield MP3 Adafruit (Music Maker)
- 6 × Micro servos MG90S
- 2 × Altavoces 3W, 4 Ω
- 12 × Rodamientos 688Z (8×16×5 mm)
- Impresión 3D y mecanizado CNC (ver archivos en Thingiverse)
Herramientas y máquinas
- Impresora 3D (LulzBot TAZ 5)
- Fresadora CNC (X-Carve)
Sobre el proyecto
Este proyecto se desarrolló en cuatro fases. Las tres primeras (construcción de la megafigura, cabello y cama) son puramente mecánicas; la cuarta añade electrónica, audio y movimiento para convertir a «Frank» en un juego «Operación» interactivo.
Fase 1: Construcción de la megafigura
La mano se fabricó con tubo de PVC y resina de fibra de vidrio; definió la escala del resto. La cabeza usa un accesorio de PVC de gran diámetro, DM y resina. El torso es una caja de DM con uniones de PVC. Piernas y brazos combinan DM, PVC, espuma floral y masilla Bondo, lijados hasta lograr la forma final. Brazos y manos se moldearon y vaciaron en Smooth-Cast 300. Todo se pintó siguiendo la paleta del set LEGO «Monster Hunters».
Fase 2: Cabello
Espuma de modelar cortada a sierra de cinta, unida con epoxi, recubierta con Smooth-Cast 300, lijada, rellenada con epoxi escultórico, imprimada y pintada.
Fase 3: Cama de Frank
Caja de DM con tubos de PVC para los detalles de esquina (tubo que sandwichea un disco de DM). Lijado, imprimado y pintado.
Fase 4: Juego Operación y movimiento
Torso
Soportes impresos en 3D albergan dos rodamientos de patín como pivotes para brazos y cabeza. Dos «cuencos de caramelo» impresos en 3D con labios de aluminio fresado actúan como contactos del juego: al tocar con las pinzas (conectadas al shield MP3) se cierra el circuito y se dispara la acción.
Cabezas
Ambas cabezas (Frank y el científico) llevan soporte impreso para eje de tornillo de 5/16″. Rejilla de altavoz perforada en metal, pintada para disimular los agujeros. Soportes traseros impresos sujetan los altavoces.
Piernas
Impresas en dos mitades con «hueso» para caramelo y placa de aluminio fresada como contacto. Unidas, lijadas, masilladas y pintadas.
Brazos
Los maestros originales se modificaron para aceptar soporte impreso con eje de 5/16″, remoldeados, vaciados, limpiados y pintados.
Servos
Seis servos MG90S montados en soportes impresos, conectados a los miembros mediante cable y cuerno de aluminio en el tornillo de 5/16″. Muelles añadidos después para aligerar la carga de elevación de los brazos.
Electrónica
Todo el cableado se probó en una base de DM antes del montaje final. Funcionamiento:
- El shield MP3 espera una de tres entradas (pinzas tocando contactos de aluminio).
- Al detectar contacto, reproduce el MP3 correspondiente y envía señal al Arduino de servos.
- El Arduino de servos ejecuta la coreografía asociada.
Ambos Arduinos van atornillados bajo la cama de Frank.
Listo para «Truco o trato»
El sistema aguantó una noche completa de uso intensivo sin fallos.
Código
Arduino de servos
Controla los 6 servos. Espera señal en pines 2, 3, 4 (pull-up interno) y ejecuta secuencias con funciones de easing (suavizado) para movimientos naturales.
// Versión resumida; código completo en el repositorio del proyecto
#include
Servo servo5, servo6, servo7, servo8, servo9, servo10, servo11;
int pin2=2, pin3=3, pin4=4;
void setup() {
Serial.begin(9600);
servo5.attach(5); servo5.write(90);
servo6.attach(6); servo6.write(90);
servo7.attach(7); servo7.write(90);
servo8.attach(8); servo8.write(90);
servo9.attach(9); servo9.write(80);
servo10.attach(10); servo10.write(90);
servo11.attach(11); servo11.write(80);
pinMode(pin2, INPUT_PULLUP);
pinMode(pin3, INPUT_PULLUP);
pinMode(pin4, INPUT_PULLUP);
}
void loop() {
if (digitalRead(pin2)==HIGH) zap2();
else if (digitalRead(pin3)==HIGH) zap3();
else if (digitalRead(pin4)==HIGH) zap4();
delay(300);
}
// Funciones zap2(), zap3(), zap4() con moveServo() y easing...
Arduino de efectos de sonido (con shield MP3)
Lee GPIOs 2,3,4 del shield, reproduce archivo MP3 de tarjeta SD y activa pines 5,8,9 hacia el Arduino de servos. Incluye control de volumen por botones en A0/A1.
// Versión resumida; código completo en el repositorio
#include
#include
#include
#define SHIELD_RESET -1
#define DREQ 3
#define CARDCS 4
#define SHIELD_DCS 6
#define SHIELD_CS 7
Adafruit_VS1053_FilePlayer musicPlayer =
Adafruit_VS1053_FilePlayer(SHIELD_RESET, SHIELD_CS, SHIELD_DCS, DREQ, CARDCS);
int relayPin5=5, relayPin8=8, relayPin9=9;
int pinVolDown=14, pinVolUp=15;
int volume=50;
void setup() {
Serial.begin(9600);
musicPlayer.begin();
SD.begin(CARDCS);
musicPlayer.setVolume(volume, volume);
musicPlayer.useInterrupt(VS1053_FILEPLAYER_PIN_INT);
musicPlayer.GPIO_pinMode(2, OUTPUT);
musicPlayer.GPIO_pinMode(3, OUTPUT);
musicPlayer.GPIO_pinMode(4, OUTPUT);
pinMode(pinVolDown, INPUT_PULLUP);
pinMode(pinVolUp, INPUT_PULLUP);
pinMode(relayPin5, OUTPUT);
pinMode(relayPin8, OUTPUT);
pinMode(relayPin9, OUTPUT);
}
void loop() {
if (musicPlayer.GPIO_digitalRead(2)) { zap2(); }
else if (musicPlayer.GPIO_digitalRead(3)) { zap3(); }
else if (musicPlayer.GPIO_digitalRead(4)) { zap4(); }
else if (digitalRead(pinVolDown)==LOW) { volDown(); }
else if (digitalRead(pinVolUp)==LOW) { volUp(); }
delay(2);
}
// Funciones zap2/3/4(), audioPlay(), activate(), volDown/Up()...
Partes personalizadas e involúcro
Archivos CAD en Thingiverse.
Esquemas
- GPIO 2,3,4 del shield MP3 → contactos de aluminio.
- 3V del shield → pinzas.
- Pines 5,8,9 del shield → pines 2,3,4 del Arduino de servos.
- Pines 6-11 del Arduino de servos → servos.
- Alimentación 5V común y masas unidas.
- Altavoces conectados al shield MP3.
Proceso de manufactura
- Crea un Impresionante Sistema Ambilight para Monitor con Arduino
- Construya el clásico juego Pong en Arduino UNO con pantalla OLED: Tutorial paso a paso
- Mando USB para juegos DIY con Arduino – Construye tu propio gamepad de alto rendimiento
- Construye un lanzador automático LEGO Star Wars con Arduino Uno
- Juego Breakout táctil Arduino: Arcade clásico en pantalla TFT 2,4″
- Detector de frecuencia de audio con Arduino – Mide los picos de sonido más intensos
- Construye tu Propio Tamagotchi con Arduino: Mascota Digital DIY
- Controlador Inalámbrico Inteligente de Interruptores: Manipulador Remoto Basado en Arduino
- Tres en raya con Arduino, matriz LED MAX7219 y carcasa de cartón
- Pistola de Agua Inteligente Activada por Movimiento con Arduino Nano
- Construye un Temporizador Regresivo Fiable con Arduino y Pantalla de 7 Segmentos SparkFun