Controle totalmente automático em 3D sem escova Nerf Blaster Arduino impresso
Componentes e suprimentos
| × | 1 | ||||
| × | 1 | ||||
| × | 2 | ||||
| × | 2 | ||||
| × | 1 | ||||
| × | 2 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 2 | ||||
| × | 1 | ||||
| × | 1 |
Ferramentas e máquinas necessárias
|
Sobre este projeto
Sempre gostei de construir e criar coisas, então decidi criar adereços e réplicas de objetos encontrados em filmes e videogames. Trazendo um objeto virtual para a realidade e, em seguida, compartilhando minhas técnicas com quem tem interesses semelhantes.
Minha maior e mais recente criação é a Kang Tao, uma arma inteligente apresentada no próximo videogame Cyberpunk 2077 . Para criar um objeto tão complexo, uma impressora 3D foi usada para atingir a estética e montagem mecânica das peças.
Um objeto estático seria muito fácil, porém, eu queria um desafio. Então, eu o projetei como um Nerf Blaster funcional.
Para atingir essa funcionalidade, era necessário controlar um solenóide e ESCs para motores sem escova. Relés, atrasos de tempo, etc. seriam muito complicados e, portanto, um Arduino seria uma solução mais prática.
Este artigo se concentrará no Arduino e no aspecto do circuito elétrico deste projeto (visto que este é um site do Arduino). Eu chamei isso de 'fácil' porque a parte do Arduino é bastante simples. No entanto, o design mecânico e a impressão 3D são avançados. Se você deseja controlar um ESC Brushless, Motores Brushless e Solenóide com Arduino para Blasters Nerf, este guia é para você!
Design CAD, impressão 3D etc. são explicados aqui:http://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 de criação de vídeo aqui:https://www.youtube.com/channel/UCP3j3nmdL5VLFy1indyyzAA/featured?view_as=subscriber
O esquema (consulte a seção esquemática) foi desenhado para ilustrar como tudo está conectado. Um Arduino Nano é usado devido ao seu tamanho pequeno. Isso deve funcionar com um Uno e outros também.
Consulte o esquema para as seguintes terminologias MS1, C2 etc.
Referência para Código seção ligado explicação de como o código funciona.
Gatilhos com volantes e solenóide
A forma como o código funciona, é quando MS2 (gatilho secundário do microinterruptor) é pressionado, os motores brushless aumentam a velocidade.
Quando MS1 (gatilho primário do microinterruptor) é pressionado ou mantido, um sinal é enviado para a porta MOSFET para disparar o solenóide ( S ) repetidamente. O solenóide empurra o dardo Nerf para fora do carregador e para os volantes ( M1 & M2 ), que acelera o dardo para fora do cano.
No entanto, MS1 só é ativado enquanto MS2 é mantido. Isso ajuda a evitar atolamentos no caso de um dardo ser empurrado para os volantes que não giram. No código (consulte a seção de código), é onde '&&' é usado.
A energia fornecida aos motores sem escova e solenóide não passa pelos microinterruptores. Isso significa que você não precisa de microinterruptores de alta corrente nominal.
Motores sem escova
Não vou explicar como o brushless difere dos motores com escova aqui, você pode procurar algumas explicações excelentes.
Existem inrunner e superador motores brushless. Você quer um superador motor, uma vez que são mais planos, para que você não tenha latas feias saindo da lateral do seu blaster Nerf. Motores Outrunner também têm uma parte externa que pode girar com o eixo. Isso facilita a impressão 3D de volantes no motor.
Obtenha um motor com orifícios de montagem traseiros .
As tensões dos motores devem suportar pelo menos 12,6 V (3s lipo).
A corrente do motor não deve exceder a classificação de corrente do ESC sem escova.
A potência dos motores deve ser> 60W. Este projeto usa tensão de alimentação de 12,6 V x consumo de motor medido de 7 A =~ 80 W cada.
RPM de motores sem escova deve ser ~ 25k e é determinado pela classificação kV x tensão. Este projeto usa motores de 2600kV a 12,6V. Portanto, 2600 x 12,6 =~ 32, 760 RPM. Só corro os motores com metade do acelerador e os dardos voam a 25m / 82 pés!
ESCs sem escova
Basicamente, eles controlam a potência dos motores sem escova.
Motores sem escovas não funcionam com ESCs escovados, comece sem escovas.
Você precisa de um ESC por motor. Caso contrário, o EMF traseiro de dois motores conectados a um ESC bagunçará o tempo do ESC e danificará o referido ESC e / ou motores.
A classificação atual do ESC precisa ser maior do que o consumo de corrente do motor. O motor, neste caso, foi medido a 7A cada. O ESC recomendado é 20A ou superior.
A classificação de tensão do ESC deve ser de pelo menos 12,6 V (3s Lipo).
O ESC não precisa de um BEC integrado. Você pode usar ESCs 'OPTO'. Se você tiver um ESC com BEC, conecte os cabos de aterramento e de sinal ao Arduino conforme mostrado no esquema. NÃO conecte o ESC Cabo vermelho de 5 V para qualquer coisa. (A menos que você tenha um propósito específico para isso e saiba o que está fazendo).
Bateria
Uma única bateria para alimentar tudo. Eu recomendo usar um conector XT60.
A voltagem é de bateria 12,6 V 3S Lipo.
A capacidade mínima é de 1300mAH recomendada.
A classificação de descarga atual da bateria deve ser suficiente para o consumo de energia de todas as cargas. Neste projeto, a corrente de carga é ~ 25A.
A taxa de descarga máxima da bateria é calculada pela Taxa de descarga (25C) x Capacidade em Ah (1,300mAh =1,3Ah).
Portanto, 25 x 1,3 =taxa de descarga máxima de 32A para a bateria. Você deve encontrar esses números nas especificações da bateria.
MOSFET
Ligar um solenóide 12V / 8A direto de um Arduino causará fumaça mágica (o Arduino morre). Solução? MOSFET.
O MOSFET de energia é usado como uma chave liga / desliga para o solenóide. Basicamente, ele interrompe o aterramento que alimenta o solenóide. Isso é conhecido como N-Channel MOSFET. Certifique-se de obter um canal N.
O MOSFET sabe quando ligar e desligar por causa de um sinal enviado para o pino da porta MOSFET de um pino de saída do Arduino ( D4 nesse caso). O Arduino desligou 5V e o gate deve estar totalmente ligado a 5V. Para que isso funcione, ele precisa ser um MOSFET de nível lógico.
O consumo de corrente do solenóide é avaliado em 8A. Certifique-se de que o MOSFET tem uma classificação de corrente máxima mais alta. Este projeto usa um MOSFET com classificação máxima de 30A.
A tensão através do MOSFET é de 12,6 V para alimentar o solenóide. Este MOSFET é avaliado em 60 V máx., O que é bastante amplo.
A temperatura do MOSFET é inferior a 35 ° C neste caso. Isso é obtido porque o MOSFET é classificado para 30A, embora haja apenas ~ 8A de carga sendo puxada por ele. O outro motivo é que a carga (solenóide) só é ligada momentaneamente antes de desligar, em vez de ficar ligada constantemente. Um dissipador de calor não é necessário neste caso.
Solenóide
Isso empurra o dardo para os volantes. Tudo o que você deseja é um solenóide de 12 V com comprimento de curso de 35 mm. Golpes mais curtos não empurrarão os dardos Nerf de comprimento total o suficiente.
Atualize sua mola para um fio de diâmetro de 0,9 mm, 14 mm de OD e 40 mm de comprimento para evitar atolamentos.
Como o solenóide é ligado momentaneamente, ao invés de constantemente, ele deve aquecer apenas moderadamente ~ 40 ° C e, portanto, não precisa ser resfriado.
Esses solenóides são relativamente baratos e genéricos. Eles podem ser encontrados no Ebay, Aliexpress etc.
Chave de segurança
SW O interruptor de segurança é simplesmente um interruptor deslizante de 2 posições. Possui 3 contatos, embora apenas 2 sejam usados. Desliga o Arduino quando a segurança está ativada, evitando que os volantes e o solenóide sejam ativados.
Circuito de proteção
Esta seção explica como evitar a fritura de seus eletrônicos!
C1 33μF (100μF recomendado) e C2 100nF (0,1µF) reduz a flutuação de tensão para a entrada de energia do Arduino.
Cuidado:C1 é sensível à polaridade, o lado listrado é negativo, mais isso vai bang!
D1 evita a tensão reversa para o Arduino VIN. Observe sua polaridade.
D2 é um diodo fly-back / freewheeling. Impede que o solenóide (ou outros indutores) crie de volta EMF. Caso contrário, este EMF traseiro pode danificar o MOSFET. Observe sua polaridade.
R1 & R2 são resistores pull-up de 4,7 kΩ para MS1 e MS2. Isso evita tensão flutuante nos microinterruptores.
R3 é um resistor pull-down de 10kΩ para evitar tensão flutuante na porta do MOSFET.
R4 é 150kΩ para o opcional LEDs. Meus LEDs são 2 em série a 2,4 V / 50 mA cada. O valor do seu resistor pode variar. Esses LEDs acendem e apagam em sincronia com o solenóide para replicar o flash do focinho!
Explicação do vídeo e teste de disparo abaixo!
Isso resume este guia, qualquer dúvida deixe um comentário abaixo :)
Download do arquivo para que você mesmo possa imprimi-lo!
ATUALIZAÇÃO:Aqui está o link para os arquivos do Thingiverse, divirta-se!
https://www.thingiverse.com/thing:3984125
Código
- Motor sem escova Nerf Blaster e código do Arduino solenóide - Clark3DPR
Motor sem escova Nerf Blaster e código do Arduino solenóide - Clark3DPR Arduino
1. Quando o Arduino é ligado por meio do interruptor de segurança, ele executa a sequência de arme para os ESCs sem escovas. Meu ESC leva 3,7 segundos (3700 no código). Pode ser necessário aumentar este valor até 10000 (10segs), dependendo do seu próprio ESC para fazê-lo sair do modo de segurança.2. Segure o microinterruptor secundário para acelerar os volantes e, em seguida, pressione ou segure o microinterruptor primário para disparar.
2. Altere throttle.write (92) para aumentar / diminuir a velocidade de marcha lenta do motor ou desligue-os. Por padrão, os motores girarão em baixa velocidade para diminuir o tempo de aceleração. (O valor depende do seu motor / ESC)
Altere throttle.write (97) para alterar a velocidade máxima do motor e a velocidade do dardo. (O valor depende do seu motor / ESC)
Altere o atraso (90) e o atraso (100) para aumentar / diminuir a taxa de disparo do solenóide.
4. Quando o microinterruptor é liberado, o sinal ESC PWM para volantes e o sinal para a porta MOSET para solenóide para de girar / ativar.
5. Quando os ESCs perdem o sinal do Arduino (quando a chave de segurança está ligada e o Arduino desligado), os ESCs voltam ao modo seguro e desligam os motores.
const int buttonPinF =2; // Número do pino do microinterruptor Flywheel Rev int buttonPinS =5; // Número do pino do microinterruptor solenóideint buttonStateF =0; // Variável de leitura do microinterruptor Flywheel Rev statusint buttonStateS =0; // Variável de leitura do microinterruptor solenóide statusint solenoidPin =4; // Número do pino do portão MOSFET solenóide # includeServo throttle; int pos =0; int pin =3; // sinal ESC pinvoid setup () {pinMode (buttonPinF, INPUT); // Inicializa o pino do microinterruptor Flywheel como uma entrada pinMode (buttonPinS, INPUT); // Inicializa o pino do microinterruptor Solenóide como uma entrada throttle.attach (pin); pinMode (solenoidPin, OUTPUT); // Define o pino da porta MOSFET do solenóide como uma saída // Sequência de arme ESC para (pos =90; pos <=91; pos + =1) {throttle.write (pos); atraso (3700); // Aguarde o ESC armar / Sair do modo de segurança // Aumente este valor de 3700 dependendo de quanto tempo leva para o seu ESC armar}} void loop () {buttonStateF =digitalRead (buttonPinF); // Lê o estado do valor do microinterruptor Flywheel if (buttonStateF ==HIGH) {// Verifique o microinterruptor pressionado, se for o caso, Flywheel buttonState está HIGH throttle.write (92); // <(92) =Motor desligado / (92) =Velocidade em marcha lenta} else {throttle.write (97); // Motor ligado (92) =Velocidade de marcha lenta / ~ (115) =Velocidade máxima} buttonStateS =digitalRead (buttonPinS); // Lê o estado do valor do microinterruptor solenóide if (buttonStateF ==LOW &&buttonStateS ==LOW) {digitalWrite (solenoidPin, HIGH); // Atraso na ativação do solenóide (90); // Duração de ON digitalWrite (solenoidPin, LOW); // Retardo de desligamento do solenóide (100); // duração do OFF} else {digitalWrite (solenoidPin, LOW); // Desligue o solenóide}}
Esquemas
É assim que tudo está conectado. Preste muita atenção às polaridades do diodo e do capacitor. Desenhado com AutoCAD.Processo de manufatura
- Faça uma máquina de escrever trabalhos de casa DIY em casa
- Faça Monitor Ambilight usando Arduino
- Habilite o controle Alexa para o seu ventilador de teto
- Controle remoto universal usando Arduino, 1Sheeld e Android
- Aceitar moeda de controle com Arduino
- Arduino Control Center
- Arduino com Bluetooth para controlar um LED!
- Arduino 3D-Printed Robotic Arm
- Controle do umidificador Arduino
- Arduino Nano:Controle 2 motores de passo com joystick