Blaster Nerf Totalmente Automatizado Impresso em 3D com Motor Brushless Alimentado por Arduino
Componentes e Materiais
| Arduino Nano Every | Muito compacto para caber dentro de uma arma Nerf mantendo toda funcionalidade necessária. | 1 |
| Solenoide Linear, 12 VDC | Certifique-se de obter curso de 35mm classificado em 12V. | 1 |
| Motor Brushless DC | Gaiolas de flywheel Nerf funcionam melhor com motores brushless outrunner. Certifique-se que aguenta 12V (3s Lipo). | 2 |
| ESC Brushless | Certifique-se que o ESC aguenta pelo menos 20% mais corrente que o motor consome. Deve aguentar 3s Lipo. Um ESC por motor. | 2 |
| Bateria Lipo 3S 11.1-12.6V 1300mAh 25C | Taxa de descarga deve aguentar consumo de tudo, mais 20% margem. Recomendo 1300mAh mínimo. | 1 |
| Microswitch Miniatura | Qualquer microswitch genérico. Não precisa ser alta corrente. | 2 |
| MOSFET Power N-Channel | Deve ser logic level! N Channel >20V >15A Drain-to-Source @5V gate voltage. | 1 |
| Resistor 10k ohm | R3 no esquemático - Evita tensão flutuante no gate do MOSFET. | 1 |
| Resistor 4.7 kohm | R1 no esquemático para pull-up do microswitch MS2. | 1 |
| Resistor 150 ohm | Para LEDs (valor depende da sua configuração). | 1 |
| Resistor 220 ohm | R2 no esquemático para limitar corrente do gate do MOSFET. Pode ser opcional, embora não testei sem. | 1 |
| Diodo 1N4007 – Alta Tensão, Alta Corrente | Diodo genérico usado como flyback D2 para proteger MOSFET de back EMF do solenoide. D1 para proteger entrada de alimentação Arduino de tensão reversa. | 2 |
| Capacitor 100 µF | Reduz queda de tensão na entrada de alimentação Arduino - Sensível à polaridade, ligue corretamente ou explode! C1 no esquemático. | 1 |
| Capacitor 100 nF | Filtro de ruído/interferência para entrada de alimentação Arduino. C2 no esquemático. | 1 |
Ferramentas e Máquinas Necessárias
- Impressora 3D (genérica) - Minha impressora é Evnovo (Artillery) X1 - 300x300x400mm
Sobre o Projeto
Sempre gostei de construir e criar coisas, então decidi criar props e réplicas de objetos encontrados em filmes e jogos. Trazer um objeto virtual à realidade, então compartilhar minhas técnicas com quem tem interesses similares.
Minha criação mais recente e grandiosa é o Kang Tao, uma arma inteligente presente no futuro jogo Cyberpunk 2077. Para criar um objeto tão complexo, uma impressora 3D foi usada para alcançar a estética e encaixe mecânico das peças.
Um objeto estático seria fácil demais, eu queria um desafio. Então o projetei como um Blaster Nerf funcional.
Para alcançar essa funcionalidade, precisava controlar um solenoide e ESCs para motores brushless. Relés e atrasos de tempo seriam muito complicados, então um Arduino foi uma solução mais prática.
Este artigo focará no aspecto Arduino e circuito elétrico do projeto (já que este é um site Arduino). Classifiquei como 'fácil' pois a parte Arduino é bem simples. O design mecânico e impressão 3D são avançados. Se você quer controlar ESC Brushless, Motores Brushless e Solenoide com Arduino para Blasters Nerf, este guia é para você!
Design CAD, Impressão 3D etc são explicados aqui:
https://nerfhaven.com/forums/topic/28493-cyberpunk-2077-kang-tao-3d-printed-nerf-gun/
ou aqui: https://www.reddit.com/r/nerfhomemades/comments/djmyu0/3d_printed_kang_tao_nerf_blaster_from_cyberpunk/
Tutoriais em vídeo aqui: https://www.youtube.com/channel/UCP3j3nmdL5VLFy1indyyzAA/featured?view_as=subscriber
O esquemático (consulte seção esquemáticos) foi desenhado para ilustrar como tudo está conectado. Um Arduino Nano é usado por seu tamanho pequeno. Isso deve funcionar com Uno e outros também.
Consulte o esquemático para as terminologias abaixo MS1, C2 etc.
Consulte a seção Código para explicação de como o código funciona.
Gatilhos com Flywheels e Solenoide
O funcionamento do código: quando MS2 (microswitch secundário do gatilho) é mantido pressionado, os motores brushless aceleram.
Quando MS1 (microswitch primário do gatilho) é pressionado ou mantido, um sinal é enviado ao gate do MOSFET para disparar o Solenoide (S) repetidamente. O solenoide empurra o dardo Nerf para fora do magazine e para dentro dos flywheels (M1 & M2) que então aceleram o dardo para fora do cano.
No entanto, MS1 só ativa enquanto MS2 está pressionado. Isso ajuda a prevenir encravamentos caso um dardo seja empurrado para flywheels não girando. No código (consulte seção código), é onde '&&' é usado.
A energia fornecida aos motores brushless e solenoide não passa pelos microswitches. Isso significa que você não precisa de microswitches classificados para alta corrente.
Motores Brushless
Não vou explicar como brushless difere de motores brushed aqui, você pode buscar ótimas explicações.
Existem motores brushless inrunner e outrunner. Você quer um motor outrunner pois são mais achatados, então não tem latas feias saindo dos lados do blaster. Motores outrunner também têm uma parte da lata externa que gira com o eixo. Isso facilita imprimir flywheels 3D para encaixar no motor.
Pegue um motor com furos de montagem traseiros.
Tensões dos motores devem aguentar pelo menos 12.6V (3s lipo).
Corrente do motor não deve exceder classificação do ESC brushless.
Potência dos motores deve ser >60W. Este projeto usa 12.6V x 7A medido = ~80W cada.
RPM dos motores brushless deve ser ~25k e são determinados por kV x Voltagem. Este projeto usa motores 2600kV @ 12.6V. Logo 2600 x 12.6 = ~32,760 RPM. Só rodo os motores a meia aceleração e dardos voam 25m / 82ft!
ESCs Brushless
Basicamente controlam a potência dos motores brushless.
- Motores brushless não funcionam com ESCs brushed, pegue brushless.
- Você precisa de um ESC por motor. Caso contrário, o back EMF de dois motores conectados a um ESC vai bagunçar o timing do ESC e danificar dito ESC e/ou motores.
- Classificação de corrente do ESC precisa ser maior que consumo do motor. Motor neste caso medido a 7A cada. Recomendo ESC 20A ou maior.
- Classificação de tensão do ESC precisa ser pelo menos 12.6V (3s Lipo).
- ESC não precisa de BEC embutido. Pode usar ESCs 'OPTO'. Se tem ESC com BEC, conecte cabo terra e sinal ao Arduino como no esquemático. NÃO conecte o cabo vermelho 5V do ESC a nada. (A menos que tenha propósito específico e saiba o que está fazendo).
Bateria
Uma única bateria para alimentar tudo. Recomendo conector XT60.
- Tensão: 12.6V 3S Lipo
- Capacidade: 1300mAH mínimo recomendado
- Taxa de descarga: suficiente para consumo de todas as cargas. Neste projeto, corrente de carga ~25A.
- Taxa máxima de descarga = Taxa de Descarga (25C) x Capacidade em Ah (1300mAh = 1.3Ah). Logo 25 x 1.3 = 32A taxa máxima. Você deve encontrar esses números nas specs da bateria.
MOSFET
Alimentar um Solenoide 12V / 8A direto do Arduino causaria fumaça mágica (Arduino morre). Solução? MOSFET.
O MOSFET de potência é usado como interruptor liga/desliga para o Solenoide. Basicamente interrompe o terra que alimenta o Solenoide. Isso é conhecido como N-Channel MOSFET. Certifique-se de pegar N-Channel.
O MOSFET sabe quando ligar/desligar por causa de um sinal enviado ao pino gate do MOSFET a partir de um pino de saída do Arduino (D4 neste caso). Arduinos saem 5V, e o gate deve estar totalmente ligado a 5V. Para funcionar precisa ser Logic Level MOSFET.
Consumo do solenoide é 8A. Certifique-se que MOSFET tem classificação de corrente máxima maior. Este projeto usa MOSFET 30A máximo.
Tensão através do MOSFET é 12.6V para alimentar solenoide. Este MOSFET é 60V máximo, folga suficiente.
Temperatura do MOSFET <35°C neste caso. Alcançado porque MOSFET é classificado 30A, mas só ~8A de carga passa por ele. Outro motivo: carga (Solenoide) só é alimentada momentaneamente antes de desligar, não constantemente. Dissipador não necessário.
Solenoide
Empurra o dardo para os flywheels. Tudo que você quer é um Solenoide 12V com curso de 35mm. Cursos menores não empurram dardos Nerf tamanho completo o suficiente.
Atualize sua mola para fio 0.9mm diâmetro, 14mm OD & 40mm comprimento para prevenir encravamentos.
Como o solenoide é alimentado momentaneamente, só fica morno ~40°C e não requer refrigeração.
Estes solenoides são relativamente baratos e genéricos. Encontrados no Ebay, Aliexpress etc.
Chave de Segurança
SW chave de segurança é simplesmente uma chave deslizante 2 posições. Tem 3 contatos, mas só 2 são usados. Desliga Arduino quando segurança está ligada, prevenindo flywheels e solenoide de ativar.
Circuitos de Proteção
Esta seção explica como evitar fritar seus eletrônicos!
- C1 33µF (100µF recomendado) & C2 100nF (0.1µF) reduzem flutuação de tensão na entrada de alimentação Arduino.
- Cuidado: C1 é sensível à polaridade, lado listrado é negativo, senão explode!
- D1 previne tensão reversa no VIN do Arduino. Observe sua polaridade.
- D2 é diodo flyback/freewheeling. Previne solenoide (ou outros indutores) de criar back EMF. Isso poderia danificar o MOSFET. Observe sua polaridade.
- R1 & R2 são resistores pull-up 4.7kΩ para MS1 & MS2. Previnem tensão flutuante nos microswitches.
- R3 é resistor pull-down 10kΩ para prevenir tensão flutuante no gate do MOSFET.
- R4 é 150kΩ para LEDs opcionais. Meus LEDs são 2 em série a 2.4V / 50mA cada. Seu valor de resistor pode variar. Estes LEDs piscam ligado/desligado em sincronia com o solenoide para replicar flash de cano!
Explicação em vídeo & teste de tiro abaixo!
Isso resume este guia, dúvidas deixem comentário abaixo :)
Download dos Arquivos para Imprimir Você Mesmo!
ATUALIZAÇÃO: Aqui está o link para os arquivos no Thingiverse, aproveite!
https://www.thingiverse.com/thing:3984125
Código
- Código Arduino Nerf Blaster Motor Brushless & Solenoide - Clark3DPR
Código Arduino Nerf Blaster Motor Brushless & Solenoide - Clark3DPR Arduino
1. Quando Arduino é ligado via chave de segurança, executa sequência de armamento dos ESCs brushless. Meus ESCs levam 3.7s (3700 no código). Pode ter que aumentar até 10000 (10s) dependendo do seu ESC para sair do modo seguro.
2. Segure microswitch secundário para acelerar flywheels, então pressione ou segure primário para atirar.
2. Mude throttle.write(92) para aumentar/diminuir velocidade de marcha lenta dos motores ou desligá-los. Por padrão motores giram em baixa velocidade para diminuir tempo de spin-up. (Valor depende do seu motor/ESC)
Mude throttle.write(97) para mudar velocidade máxima e velocidade do dardo. (Valor depende do seu motor/ESC)
Mude delay(90) e delay(100) para aumentar/diminuir taxa de tiro do solenoide.
4. Quando microswitch é solto, sinal PWM do ESC para flywheels & sinal para gate do MOSFET para solenoide param de girar/ativar.
5. Quando ESCs perdem sinal do Arduino (quando chave de segurança liga e Arduino desliga), ESCs voltam ao modo seguro e desligam motores.
const int buttonPinF = 2; // Pino microswitch Flywheel Rev
const int buttonPinS = 5; // Pino microswitch Solenoide
int buttonStateF = 0; // Variável para ler status microswitch Flywheel
int buttonStateS = 0; // Variável para ler status microswitch Solenoide
int solenoidPin = 4; // Pino gate MOSFET Solenoide
#include <Servo.h>
Servo throttle;
int pos = 0;
int pin = 3; // Pino sinal ESC
void setup() {
pinMode(buttonPinF, INPUT); // Inicializa pino microswitch Flywheel como entrada
pinMode(buttonPinS, INPUT); // Inicializa pino microswitch Solenoide como entrada
throttle.attach(pin);
pinMode(solenoidPin, OUTPUT); // Define pino gate MOSFET Solenoide como saída
// Sequência de Armamento ESC
for (pos = 90; pos <= 91; pos += 1) {
throttle.write(pos);
delay(3700); // Espera ESC armar / Sair modo seguro
// Aumente este valor 3700 dependendo de quanto tempo seu ESC leva para armar
}
}
void loop() {
buttonStateF = digitalRead(buttonPinF); // Lê estado microswitch Flywheel
if (buttonStateF == HIGH) { // Verifica microswitch pressionado, se sim Flywheel buttonState é HIGH
throttle.write(92); // <(92) = Motor desligado / (92) = Velocidade marcha lenta
} else {
throttle.write(97); // Motor ligado (92) = Marcha lenta / ~(115) = Velocidade máxima
}
buttonStateS = digitalRead(buttonPinS); // Lê estado microswitch Solenoide
if (buttonStateF == LOW && buttonStateS == LOW) {
digitalWrite(solenoidPin, HIGH); // Liga Solenoide
delay(90); // Duração LIGADO
digitalWrite(solenoidPin, LOW); // Desliga Solenoide
delay(100); // Duração DESLIGADO
} else {
digitalWrite(solenoidPin, LOW); // Desliga Solenoide
}
}
Esquemáticos
Assim é como tudo está ligado. Preste atenção nas polaridades dos diodos e capacitores. Desenhado com AutoCAD.
Processo de manufatura
- Construa Sua Própria Máquina de Escrever Deveres de Casa (Plotter de Caneta) em Casa
- Crie um Sistema Ambilight Impressionante para Monitor com Arduino
- Controle seu Ventilador de Teto com Alexa: Guia Passo a Passo
- Controle Remoto Universal Android com Arduino, 1Sheeld e IR
- Mealheiro Inteligente: Controlar Aceitador de Moedas com Arduino Nano
- Central de Controle de Potência Arduino: N-FET, P-FET, Relé e Kit RTC
- Controlar um LED via Bluetooth com Arduino – Guia DIY Simples
- Construa um Braço Robótico 3D Impresso Funcional com Arduino – Guia Passo a Passo
- Controlador de Umidificador DIY com Arduino e Relé – Configuração Segura de Alta Tensão
- Controle Dois Motores de Passo com Arduino Nano e Joystick – Tutorial Simples