Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

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

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

Blaster Nerf Totalmente Automatizado Impresso em 3D com Motor Brushless Alimentado por Arduino

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

Blaster Nerf Totalmente Automatizado Impresso em 3D com Motor Brushless Alimentado por Arduino

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.

Bateria

Blaster Nerf Totalmente Automatizado Impresso em 3D com Motor Brushless Alimentado por Arduino

Uma única bateria para alimentar tudo. Recomendo conector XT60.

MOSFET

Blaster Nerf Totalmente Automatizado Impresso em 3D com Motor Brushless Alimentado por Arduino

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!

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 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.

Blaster Nerf Totalmente Automatizado Impresso em 3D com Motor Brushless Alimentado por Arduino

Processo de manufatura

  1. Construa Sua Própria Máquina de Escrever Deveres de Casa (Plotter de Caneta) em Casa
  2. Crie um Sistema Ambilight Impressionante para Monitor com Arduino
  3. Controle seu Ventilador de Teto com Alexa: Guia Passo a Passo
  4. Controle Remoto Universal Android com Arduino, 1Sheeld e IR
  5. Mealheiro Inteligente: Controlar Aceitador de Moedas com Arduino Nano
  6. Central de Controle de Potência Arduino: N-FET, P-FET, Relé e Kit RTC
  7. Controlar um LED via Bluetooth com Arduino – Guia DIY Simples
  8. Construa um Braço Robótico 3D Impresso Funcional com Arduino – Guia Passo a Passo
  9. Controlador de Umidificador DIY com Arduino e Relé – Configuração Segura de Alta Tensão
  10. Controle Dois Motores de Passo com Arduino Nano e Joystick – Tutorial Simples