Construa um Atirador Automatizado LEGO Star Wars com Arduino Uno
Componentes e Materiais
| Componente | Quantidade | Observações |
|---|---|---|
| Arduino UNO | 1 | Esta é a placa que usei. Um Arduino Uno também funcionaria. |
| Motor micro-servo SG90 | 4 | São os motores necessários para o projeto. |
| Fios jumpers (genéricos) | 1 | |
| Canhão Atirável LEGO Star Wars | 4 | |
| Protoboard (genérica) | 1 |
Ferramentas e Máquinas Necessárias
- Fita isolante (qualquer fita serve, não precisa ser especificamente isolante)
Aplicativos e Serviços Online
- Arduino IDE — Programa que roda código Arduino em dispositivos Mac, Windows e Linux.
Sobre o Projeto
Este projeto é sobre fazer canhões LEGO atirarem automaticamente. Gosto de brincar com LEGO e de usar Arduinos, então decidi fazer este projeto no meu tempo livre. Os motores servo, com seus braços acoplados, giram batendo na alavanca e atirando o canhão. Um ótimo primeiro, segundo ou terceiro projeto para iniciantes!
Este é um guia passo a passo de como fazer.
Passo 1: O Hardware
Passo 1 Parte 1: Básicos do Hardware
Comece com 5V indo para a fileira positivamente carregada e GND para a fileira negativamente carregada. Ficará assim:
Passo 1 Parte 2: Conectando Servo #1
O Servo tem três fios: o laranja/amarelo (sinal) ocupará um slot no pino DIGITAL (PWM~), o vermelho (alimentação) irá para VIN (qualquer pino na fileira positiva), e o preto/marrom (GND) irá para a fileira negativamente carregada conectada ao pino GND no Uno. O pino digital que usei para meu primeiro servo é o 7. Aqui está o esquemático com o primeiro servo conectado:
Passo 1 Parte 3: Conectando o Restante dos Servos
Depois que você pegar o jeito com os servos, o resto será tranquilo. Uma coisa a notar: você deve manter a consistência com os pinos digitais que conectou aos servos no código.
Por exemplo, o código (encontrado no final da página) diz:
secondCannon.attach(8);
Portanto, o segundo servo deve ser conectado ao pino digital 8.
Da mesma forma, o terceiro servo deve ser conectado ao pino digital 6, e o quarto ao pino digital 9.
No entanto, isso pode ser alterado para qualquer ordem que você queira. Apenas certifique-se de alterar tanto o hardware quanto o software para consistência, caso contrário o código não funcionará.
Para rodar com o código fornecido no final, o esquemático deve ficar assim:
Parabéns! Você completou oficialmente a parte de hardware deste projeto.
Passo 2: O Software
Agora, copie e cole o código no final da página em um sketch do Arduino e faça o upload. Certifique-se de ter a biblioteca Servo antes de fazer o upload, caso contrário não funcionará! Abaixo um guia passo a passo explicando o código e o que significa ao rodar o programa.
#include <Servo.h> // Incluindo a biblioteca para os Servos
Servo firstCannon; // Definindo o Primeiro Canhão como Servo
Servo secondCannon; // Definindo o Segundo Canhão como Servo
Servo thirdCannon; // Definindo o Terceiro Canhão como Servo
Servo fourthCannon; // Definindo o Quarto Canhão como Servo
Este código configura a biblioteca Servo.h, que terá papel fundamental. Isso é mostrado pelas linhas seguintes, usando a biblioteca para definir quatro canhões como Servos, ou motores que podem girar 180 graus.
void setup() {
// Código de setup, executado apenas uma vez
Serial.begin(9600); // Inicia comunicação serial
Serial.println("Defend the Clones! Set up the defenses!") // Imprime no Monitor Serial
firstCannon.attach(7); // Conecta Pino Digital 7 ao Primeiro Canhão
secondCannon.attach(8); // Conecta Pino Digital 8 ao Segundo Canhão
thirdCannon.attach(6); // Conecta Pino Digital 6 ao Terceiro Canhão
fourthCannon.attach(9); // Conecta Pino Digital 9 ao Quarto Canhão
}
O código void setup() é usado em quase qualquer projeto Arduino, e é executado apenas uma vez. Neste caso, iniciamos a comunicação serial a 9600 baud. Depois, imprimimos algo no Monitor Serial. Para programar os servos, precisamos conectar seus nomes aos respectivos pinos digitais. Esse é o propósito do código .attach().
void loop() {
// Código de loop, executado infinitamente
Serial.println("Beginning firing sequence") // Imprime no Monitor Serial
firstCannon.write(180); // Gira o primeiro servo 180 graus, disparando o primeiro canhão
delay(100); // Espera 1/10 de segundo
firstCannon.write(0); // Retorna o servo à posição original para recarregar
delay(1000); // Espera 1 segundo
secondCannon.write(180); // Gira o segundo servo 180 graus, disparando o segundo canhão
delay(100);
secondCannon.write(0);
delay(1000);
thirdCannon.write(180); // Gira o terceiro servo 180 graus, disparando o terceiro canhão
delay(100);
thirdCannon.write(0);
delay(1000);
fourthCannon.write(180); // Gira o quarto servo 180 graus, disparando o quarto canhão
delay(100);
fourthCannon.write(0);
delay(1000);
Serial.println("All cannons fired");
Serial.println("Prepare for reload");
delay(10000);
Serial.println("Reloading Complete. Preparing to fire again")
}
Esta é a parte final do código, usando a função void loop() que permite que o código seguinte rode infinitamente. Imprimimos no Monitor Serial que os canhões estão prestes a atirar. Os servos de cada canhão devem girar 180 graus e voltar à posição original, um por vez. Depois, há 10 segundos (tempo de recarga) até o processo repetir.
Se tiver outros problemas ao fazer upload do código, comente na seção de comentários e responderei o mais rápido possível. Se funcionar, passe para o próximo passo.
Passo 3: Instalação
O último passo requer os canhões LEGO e fita adesiva comum. O canhão LEGO parece isto:
Rode o código. Veja para que lado o servo gira. Cole o servo no canhão LEGO de forma que sua trajetória o coloque em rota de colisão com a alavanca no topo do canhão na imagem acima.
Bom trabalho! Você finalizou oficialmente este projeto. Como disse, comente abaixo se tiver dúvidas.
Se gostou deste projeto, confira estes links:
Código
- Código do Atirador LEGO
Código do Atirador LEGO (C/C++)
Cole isto na Arduino IDE
#include <Servo.h> // Incluindo a biblioteca para os Servos
Servo firstCannon; // Definindo o Primeiro Canhão como Servo
Servo secondCannon; // Definindo o Segundo Canhão como Servo
Servo thirdCannon; // Definindo o Terceiro Canhão como Servo
Servo fourthCannon; // Definindo o Quarto Canhão como Servo
void setup() {
// Código de setup, executado apenas uma vez
Serial.begin(9600); // Inicia comunicação serial
Serial.println("Defend the Clones! Set up the defenses!") // Imprime no Monitor Serial
firstCannon.attach(7); // Conecta Pino Digital 7 ao Primeiro Canhão
secondCannon.attach(8); // Conecta Pino Digital 8 ao Segundo Canhão
thirdCannon.attach(6); // Conecta Pino Digital 6 ao Terceiro Canhão
fourthCannon.attach(9); // Conecta Pino Digital 9 ao Quarto Canhão
}
void loop() {
// Código de loop, executado infinitamente
Serial.println("Beginning firing sequence") // Imprime no Monitor Serial
firstCannon.write(180); // Gira o primeiro servo 180 graus, disparando o primeiro canhão
delay(100); // Espera 1/10 de segundo
firstCannon.write(0); // Retorna o servo à posição original para recarregar
delay(1000); // Espera 1 segundo
secondCannon.write(180); // Gira o segundo servo 180 graus, disparando o segundo canhão
delay(100);
secondCannon.write(0);
delay(1000);
thirdCannon.write(180); // Gira o terceiro servo 180 graus, disparando o terceiro canhão
delay(100);
thirdCannon.write(0);
delay(1000);
fourthCannon.write(180); // Gira o quarto servo 180 graus, disparando o quarto canhão
delay(100);
fourthCannon.write(0);
delay(1000);
Serial.println("All cannons fired");
Serial.println("Prepare for reload");
delay(10000);
Serial.println("Reloading Complete. Preparing to fire again")
}
Esquemáticos
Processo de manufatura
- Fita Adesiva Versátil: Resistência, Flexibilidade e Usos Cotidianos
- Fita Adesiva Transparente: História, Produção e Impacto Ambiental
- Construa um Spybot Controlado por Bluetooth com Arduino
- FlickMote: Controle Remoto IR por Gestos para Casa Inteligente
- DIY Arduino TV B-Gone: Controle Remoto Universal para Todas as TVs
- Construa um Relógio Mestre LED Personalizado com Alarme – Visível a 12 Metros
- Construa um Jogo Operação Animatrônico de Minifigura Lego Gigante com Arduino
- Find Me: Localizador Inteligente de Objetos com Arduino e Bluetooth
- SunGlass-BOT: Óculos Inteligentes que Ajustam Automaticamente à Luz
- Soluções de Energia Otimizadas para Projetos Arduino