Construa um Jogo Operação Animatrônico de Minifigura Lego Gigante com Arduino
Componentes e Materiais
![]() |
Arduino UNO | × | 2 |
![]() |
Adafruit Arduino MP3 Shield | × | 1 |
| Servo MG90S Micro Gear | × | 6 | |
![]() |
Speaker 3W, 4 ohms | × | 2 |
![]() |
Rolamento OpenBuilds 688Z 8x16x5 | × | 12 |
Ferramentas e Máquinas
- Impressora 3D Lulzbot Taz 5
- CNC X-Carve
Sobre o Projeto
O projeto foi concluído em 4 etapas. As três primeiras (construção do corpo, cabelo e cama) não envolviam eletrônica. A quarta etapa transformou o boneco "Frank" no jogo Operação, adicionando áudio e animatrônica.
Etapa 1: Construção das Megafiguras
Mão, cabeça, corpo, pernas e braços fabricados com PVC, MDF, resina de fibra de vidro, Bondo e lixa. As peças foram moldadas e fundidas com Smoothcast 300 e pintadas conforme o kit Lego Monster Hunters.
Etapa 2: Cabelo
Espuma de modelagem cortada, colada com epóxi, revestida com Smoothcast 300, lixada, preenchida com epóxi escultural, primada e pintada.
Etapa 3: Cama do Frank
Construção em MDF e PVC baseada no kit Lego Crazy Scientist. Detalhes de canto com PVC e discos de MDF. Tudo lixado, primado e pintado.
Etapa 4: Jogo Operação e Movimento
Torso
Suportes impressos em 3D com rolamentos de patins como pivôs para braços e cabeça. Dois "pratos de doces" impressos em 3D com lábios de alumínio fresados atuam como contatos capacitivos para o jogo.
Cabeças
Ambas modificadas para movimento e alto-falantes. Suporte 3D no pescoço com eixo de parafuso 5/16". Grade de alto-falante perfurada em metal, com furos pintados para camuflagem. Suporte 3D para fixar os speakers atrás da grade.
Pernas
Impressas em 3D em duas metades, com prato de doces em forma de osso e placa de alumínio fresada. Coladas, lixadas, suavizadas com Bondo e pintadas.
Braços
Mestres originais modificados para aceitar suporte 3D com eixo de 5/16". Remoldados, fundidos, limpos e pintados.
Servos
6 servos MG90S montados em suportes 3D, conectados aos membros via fio e chifre de alumínio nos eixos. Molas adicionadas para auxiliar no levantamento dos braços.
Eletrônica
Dois Arduinos: um com MP3 Shield (Adafruit VS1053) e outro controlando os servos. O MP3 Shield aguarda toque nas placas de alumínio (via pinças), toca o arquivo MP3 correspondente e envia sinal ao Arduino dos servos, que executa a animação programada. Ambos montados sob a cama do Frank.
Pronto para o Halloween
O sistema funcionou perfeitamente durante uma noite inteira de uso intenso.
Log de construção detalhado: The RPF
Código
Arduino dos Servos
/**************************** Targus - Operation - Servos *****************************/
#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);
}
// Funções de easing e movimento (omitidas por brevidade)
// ...
Arduino de Efeitos Sonoros (com MP3 Shield)
/*********************************** Targus - Operation - Sound Effects ************************************/
#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);
if (!musicPlayer.begin()) { while(1); }
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() {
int gpio2 = musicPlayer.GPIO_digitalRead(2);
int gpio3 = musicPlayer.GPIO_digitalRead(3);
int gpio4 = musicPlayer.GPIO_digitalRead(4);
int ioDown = digitalRead(pinVolDown);
int ioUp = digitalRead(pinVolUp);
if (gpio2 == 1) zap2();
else if (gpio3 == 1) zap3();
else if (gpio4 == 1) zap4();
else if (ioDown == LOW) volDown();
else if (ioUp == LOW) volUp();
delay(2);
}
// Funções zap2, zap3, zap4, audioPlay, audioStop, activate, volDown, volUp (omitidas por brevidade)
// ...
Peças Personalizadas
Arquivos CAD no Thingiverse.
Esquemático
Conexões principais:
- GPIO 2,3,4 do MP3 Shield → placas de alumínio.
- 3V do MP3 Shield → pinças.
- Pinos 5,8,9 do MP3 Shield → pinos 2,3,4 do Arduino dos servos.
- Pinos 6-11 do Arduino dos servos → servos.
- Alimentação dos servos (5V) e GND comum.
- Speakers ligados ao MP3 Shield.
Processo de manufatura
- Crie um Sistema Ambilight Impressionante para Monitor com Arduino
- Construa o Clássico Jogo Pong no Arduino UNO com Display OLED – Tutorial Passo a Passo
- Controle USB para Jogos DIY com Arduino – Construa Seu Próprio Gamepad de Alto Desempenho
- Construa um Atirador Automatizado LEGO Star Wars com Arduino Uno
- Jogo Breakout Touch com Arduino: Arcade Clássico em LCD TFT 2,4″
- Detector de Frequência de Áudio com Arduino – Meça Picos de Som com Módulo de Alta Sensibilidade
- Construa Seu Próprio Tamagotchi com Arduino: Projeto DIY de Pet Digital
- Controlador Inteligente de Interruptor de Luz Sem Fio: Manipulador Remoto Baseado em Arduino
- Jogo da Velha com Arduino, Matriz LED MAX7219 e Caixa de Papelão
- Pistola de Água Inteligente com Detecção de Movimento usando Arduino Nano


