Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Control Arduino Nerf Blaster sin escobillas totalmente automático, impreso en 3D

Componentes y suministros

Arduino Nano Every
Arduino Nano Every Es muy compacto para caber dentro de una pistola Nerf mientras conserva toda la funcionalidad que necesita.
× 1
Solenoide lineal, 12 VCC
Asegúrese de obtener una longitud de trazo de 35 mm nominal de 12V.
× 1
Motor de CC sin escobillas
Las jaulas Nerf Flywheel funcionan mejor con motores sin escobillas tipo Outrunner. Asegúrese de que pueda soportar 12V (3 s Lipo).
× 2
ESC sin escobillas
Asegúrese de que el ESC sin escobillas pueda manejar al menos un 20% más de corriente de la que tira el motor. Asegúrese de que pueda manejar 3s Lipo. Un ESC por motor.
× 2
Batería Lipo 3S 11.1-12.6V 1300mAh 25C
Asegúrese de que la tasa de descarga de la batería maneje el consumo actual de todo, más un margen de seguridad del 20%. Se recomienda un mínimo de 1300 mAh.
× 1
Microinterruptor, miniatura
Cualquier microinterruptor genérico. No tiene que ser de alta corriente.
× 2
Canal N del MOSFET de potencia
¡Asegúrate de que sea el nivel lógico! Canal N> 20 V> 15 A de drenaje a fuente a voltaje de puerta de 5 V.
× 1
Resistencia de 10k ohmios
R3 en el esquema:evita el voltaje flotante en la puerta MOSFET.
× 1
Resistencia de orificio pasante, 4,7 kohm
R1 en el esquema para activar el microinterruptor MS2.
× 1
Resistencia de orificio pasante, 150 ohmios
Para LED (el valor depende de su configuración).
× 1
Resistencia 220 ohmios
R2 en el esquema para limitar la corriente de la puerta MOSFET. Esto podría ser opcional, aunque no he probado sin él.
× 1
1N4007 - Diodo nominal de alta tensión y alta corriente
Diodo genérico utilizado como diodo de retorno D2 para proteger el MOSFET de la EMF trasera del solenoide. D1 para proteger la entrada de energía de Arduino del voltaje inverso.
× 2
Condensador 100 µF
Reducir la caída de voltaje en la entrada de energía de Arduino - Sensible a la polaridad, así que conéctelo de la manera correcta o funciona ¡estallido! C1 en esquema.
× 1
Condensador 100 nF
Esto actúa como un filtro de ruido / interferencia para la entrada de energía de Arduino. C2 en esquema.
× 1

Herramientas y máquinas necesarias

Impresora 3D (genérica)
Mi impresora 3D es Evnovo (Artillery) X1 - 300x300x400mm

Acerca de este proyecto

Siempre me ha gustado construir y crear cosas, así que decidí crear accesorios y réplicas de objetos que se encuentran en películas y videojuegos. Hacer realidad un objeto virtual y luego compartir mis técnicas con aquellos que tienen intereses similares.

Mi última y más grande creación es el Kang Tao, un arma inteligente que aparece en el próximo videojuego Cyberpunk 2077 . Para crear un objeto tan complejo, se utilizó una impresora 3D para lograr la estética y el ajuste mecánico de las piezas.

Sin embargo, un objeto estático sería demasiado fácil, quería un desafío. Así que lo diseñé como un Nerf Blaster funcional.

Para lograr esta funcionalidad, necesitaba controlar un solenoide y ESC para motores sin escobillas. Los relés y retrasos de tiempo, etc. serían demasiado engorrosos, por lo que un Arduino era una solución más práctica.

Este artículo se centrará en el aspecto del circuito eléctrico y Arduino de este proyecto (ya que este es un sitio de Arduino). Lo etiqueté como 'fácil' ya que la parte de Arduino es bastante simple. Sin embargo, el diseño mecánico y la impresión 3D son avanzados. Si desea controlar un ESC sin escobillas, motores sin escobillas y solenoide con Arduino para Nerf Blasters, ¡esta guía es para usted!

El diseño CAD, la impresión 3D, etc.se explican aquí:http://nerfhaven.com/forums/topic/28493-cyberpunk-2077-kang-tao-3d-printed-nerf-gun/

o aquí:https://www.reddit.com/r/nerfhomemades/comments/djmyu0/3d_printed_kang_tao_nerf_blaster_from_cyberpunk/

Tutoriales de creación de video aquí:https://www.youtube.com/channel/UCP3j3nmdL5VLFy1indyyzAA/featured?view_as=subscriber

El esquema (consulte la sección esquemática) se dibujó para ilustrar cómo está conectado todo. Se utiliza un Arduino Nano debido a su pequeño tamaño. Esto debería funcionar con Uno y otros también.

Consulte el esquema para conocer las siguientes terminologías MS1, C2, etc.

Referir a Código sección activado explicación de cómo el código funciona.

Disparadores con volantes y solenoide

La forma en que funciona el código es que cuando MS2 (gatillo del microinterruptor secundario), los motores sin escobillas se aceleran.

Cuando MS1 (gatillo del microinterruptor primario) se presiona o se mantiene presionado, se envía una señal a la puerta MOSFET para disparar el solenoide ( S ) repetidamente. El solenoide empuja el dardo Nerf fuera del cargador y hacia los volantes ( M1 & M2 ) que luego acelera el dardo fuera del cañón.

Sin embargo, MS1 solo se activa mientras MS2 Se celebra. Esto ayuda a prevenir atascos en caso de que un dardo sea empujado hacia volantes que no giran. En el código (consulte la sección de códigos), es donde se usa '&&'.

La energía suministrada a los motores sin escobillas y el solenoide no viaja a través de los microinterruptores. Esto significa que no necesita microinterruptores de alta corriente nominal.

Motores sin escobillas

No voy a explicar en qué se diferencia el motor sin escobillas de los motores con escobillas aquí, puedes buscar algunas explicaciones excelentes.

Hay inrunner y corredor motores sin escobillas. Quieres un corredor motor, ya que tienen una forma más plana, por lo que no tiene latas feas que sobresalen del costado de su blaster Nerf. Los motores Outrunner también tienen una parte del exterior que puede girar con el eje. Esto facilita la impresión en 3D de volantes para pasar por encima del motor.

Obtenga un motor con orificios de montaje traseros .

Los voltajes de los motores deben soportar al menos 12,6 V (3 s lipo).

La corriente del motor no debe exceder la clasificación de corriente ESC sin escobillas.

La potencia de los motores debe ser> 60W. Este proyecto utiliza un voltaje de suministro de 12,6 V x un consumo de motor de 7 A medido =~ 80 W cada uno.

Las RPM de los motores sin escobillas deben ser de ~ 25k y están determinadas por la clasificación kV x voltaje. Este proyecto utiliza motores de 2600 kV a 12,6 V. Por lo tanto, 2600 x 12,6 =~ 32, 760 RPM. ¡Solo hago funcionar los motores a media aceleración y los dardos vuelan a 25 m / 82 pies!

ESC sin escobillas

Básicamente, estos controlan la potencia de los motores sin escobillas.

Los motores sin escobillas no funcionan con los ESC cepillados, hágalo sin escobillas.

Necesita un ESC por motor. De lo contrario, el EMF trasero de dos motores conectados a un ESC estropeará la sincronización del ESC y dañará dicho ESC y / o motores.

La clasificación actual del ESC debe ser mayor que el consumo de corriente del motor. El motor en este caso se midió a 7 A cada uno. Se recomienda que ESC sea 20A o superior.

La tensión nominal del ESC debe ser de al menos 12,6 V (3 s Lipo).

ESC no necesita un BEC incorporado. Puede utilizar ESCs 'OPTO'. Si tiene un ESC con BEC, conecte los cables de tierra y señal a Arduino como se muestra en el esquema. NO conecte el ESC Cable rojo de 5 V a cualquier cosa. (A menos que tenga un propósito específico y sepa lo que está haciendo).

Batería

Una sola batería para alimentar todo. Recomiendo usar un conector XT60.

El voltaje es de 12.6V 3S Lipo Battery.

Se recomienda una capacidad mínima de 1300 mAH.

La clasificación de descarga de corriente de la batería debe ser suficiente para el consumo de energía de todas las cargas. En este proyecto, la corriente de carga es ~ 25A.

La tasa de descarga máxima de la batería se calcula mediante la tasa de descarga (25 ° C) x la capacidad en Ah (1, 300 mAh =1,3 Ah).

Por lo tanto, 25 x 1,3 =32 A tasa de descarga máxima de la batería. Debería poder encontrar estos números en las especificaciones de la batería.

MOSFET

Alimentar un solenoide de 12V / 8A directamente desde un Arduino causará humo mágico (Arduino muere). ¿Solución? MOSFET.

El MOSFET de potencia se utiliza como interruptor de encendido / apagado para el solenoide. Básicamente interrumpe el suelo que alimenta el solenoide. Esto se conoce como MOSFET de canal N. Asegúrese de obtener un canal N.

El MOSFET sabe cuándo encenderse y apagarse debido a una señal enviada al pin de la puerta del MOSFET desde un pin de salida de Arduino ( D4 en este caso). Arduino apagó 5V, y la puerta debería estar completamente encendida a 5V. Para que esto funcione, debe ser un MOSFET de nivel lógico.

El consumo de corriente del solenoide está clasificado en 8A. Asegúrese de que el MOSFET tenga una clasificación de corriente máxima más alta. Este proyecto utiliza un MOSFET de 30 A como máximo.

El voltaje a través del MOSFET es de 12,6 V para alimentar el solenoide. Este MOSFET tiene una potencia máxima de 60 V, lo que supone un gran margen de maniobra.

La temperatura del MOSFET es inferior a 35 ° C en este caso. Esto se logra porque el MOSFET está clasificado para 30 A, aunque solo se extraen ~ 8 A de carga. La otra razón es que la carga (solenoide) solo se enciende momentáneamente antes de apagarse, en lugar de encenderse constantemente. En este caso, no es necesario un disipador de calor.

Solenoide

Esto empuja el dardo hacia los volantes. Todo lo que desea es un solenoide de 12 V con una longitud de carrera de 35 mm. Los golpes más cortos no empujarán lo suficiente los dardos Nerf de longitud completa.

Actualice su resorte a un cable de 0,9 mm de diámetro, 14 mm de diámetro exterior y 40 mm de longitud para evitar atascos.

Debido a que el solenoide se enciende momentáneamente en lugar de constantemente, solo debe calentarse levemente ~ 40 ° C y, por lo tanto, no requiere enfriamiento.

Estos solenoides son relativamente baratos y genéricos. Se pueden encontrar en Ebay, Aliexpress, etc.

Interruptor de seguridad

SW El interruptor de seguridad es simplemente un interruptor deslizante de 2 posiciones. Tiene 3 contactos, aunque solo se utilizan 2. Apaga Arduino cuando la seguridad está activada, lo que evita que los volantes y el solenoide se activen.

Circuito de protección

¡Esta sección explica cómo evitar que sus dispositivos electrónicos se fríen!

C1 33 μF (se recomiendan 100 μF) y C2 100nF (0.1µF) reduce la fluctuación de voltaje a la entrada de energía de Arduino.

Precaución:C1 es sensible a la polaridad, el lado rayado es negativo. más eso va ¡bang!

D1 Evita el voltaje inverso al VIN de Arduino. Tome nota de su polaridad.

D2 es un diodo fly-back / freewheeling. Evita que el solenoide (u otros inductores) generen EMF. De lo contrario, este EMF trasero podría dañar el MOSFET. Tome nota de su polaridad.

R1 & R2 son resistencias pull-up de 4.7kΩ para MS1 y MS2. Esto evita el voltaje flotante en los microinterruptores.

R3 es una resistencia desplegable de 10 kΩ para evitar el voltaje flotante en la puerta del MOSFET.

R4 es 150 kΩ para el opcional LED's. Mis LED son 2 en serie a 2.4V / 50mA cada uno. El valor de su resistencia puede variar. ¡Estos LED se encienden y apagan en sincronía con el solenoide para replicar el destello de boca!

¡Explicación del video y disparo de prueba a continuación!

Eso resume esta guía, cualquier pregunta deja un comentario a continuación :)

Descarga de archivos para que pueda imprimirlo usted mismo.

ACTUALIZACIÓN:aquí está el enlace a los archivos de Thingiverse, ¡disfrútelo!

https://www.thingiverse.com/thing:3984125

Código

  • Código Arduino de solenoide y motor sin escobillas Nerf Blaster - Clark3DPR
Código Arduino de solenoide y motor sin escobillas Nerf Blaster - Clark3DPR Arduino
1. Cuando Arduino se enciende a través del interruptor de seguridad, ejecuta la secuencia de armado para los ESC sin escobillas. Mis ESC toman 3.7 segundos (3700 en el código). Es posible que deba aumentar este valor hasta 10000 (10 segundos) dependiendo de su propio ESC para que salga del modo seguro.

2. Mantenga presionado el microinterruptor secundario para acelerar los volantes, luego presione o mantenga presionado el microinterruptor primario para disparar.

2. Cambie throttle.write (92) para aumentar / disminuir la velocidad de ralentí del motor o apáguelos. Por defecto, los motores girarán a baja velocidad para disminuir el tiempo de giro. (El valor depende de su motor / ESC)
Cambie throttle.write (97) para cambiar la velocidad máxima del motor y la velocidad del dardo. (El valor depende de su motor / ESC)

Cambie el retardo (90) y el retardo (100) para aumentar / disminuir la velocidad de disparo del solenoide.

4. Cuando se suelta el microinterruptor, la señal ESC PWM para volantes y la señal a la compuerta MOSET para que el solenoide deje de girar / activarse.

5. Cuando los ESC pierden la señal de Arduino (cuando el interruptor de seguridad está encendido y Arduino apagado), los ESC vuelven al modo seguro y apagan los motores.
 const int buttonPinF =2; // Número de pin del microinterruptor del volante Rev.const int buttonPinS =5; // Número de pin del microinterruptor de solenoideint buttonStateF =0; // Variable de lectura del microinterruptor Flywheel Rev statusint buttonStateS =0; // Variable de lectura del estado del microinterruptor de solenoide en solenoidPin =4; // Número de pin de la puerta del MOSFET del solenoide # incluye  Acelerador del servo; int pos =0; int pin =3; // ESC señal pinvoid setup () {pinMode (buttonPinF, INPUT); // Inicializa el pin del microinterruptor Flywheel como un pin de entradaMode (buttonPinS, INPUT); // Inicialice el pin del microinterruptor del solenoide como entrada throttle.attach (pin); pinMode (solenoidPin, SALIDA); // Establece el pin de la puerta del solenoide MOSFET como salida // Secuencia de armado ESC para (pos =90; pos <=91; pos + =1) {throttle.write (pos); retraso (3700); // Espere a que ESC se arme / Salga del modo de seguridad // Aumente este valor 3700 dependiendo de cuánto tiempo le toma a su ESC armar}} void loop () {buttonStateF =digitalRead (buttonPinF); // Leer el estado del valor del microinterruptor del volante if (buttonStateF ==HIGH) {// Comprobar el microinterruptor presionado, si es así Flywheel buttonState es ALTO throttle.write (92); // <(92) =Motor apagado / (92) =Velocidad de ralentí} else {throttle.write (97); // Motor encendido (92) =Velocidad de ralentí / ~ (115) =Velocidad máxima} buttonStateS =digitalRead (buttonPinS); // Leer el estado del valor del microinterruptor del solenoide if (buttonStateF ==LOW &&buttonStateS ==LOW) {digitalWrite (solenoidPin, HIGH); // Retardo de encendido del solenoide de conmutación (90); // ON duración digitalWrite (solenoidPin, LOW); // Retardo de apagado del solenoide de conmutación (100); // duración de APAGADO} else {digitalWrite (solenoidPin, LOW); // Apague el solenoide}} 

Esquemas

Así es como está todo conectado. Preste mucha atención a las polaridades de los diodos y capacitores. Dibujado con AutoCAD.

Proceso de manufactura

  1. Haga una máquina de escribir para hacer tareas caseras en casa
  2. Hacer Monitor Ambilight usando Arduino
  3. Habilita el control de Alexa en tu ventilador de techo
  4. Control remoto universal usando Arduino, 1Sheeld y Android
  5. Controlar el aceptador de monedas con Arduino
  6. Centro de control de Arduino
  7. ¡Arduino con Bluetooth para controlar un LED!
  8. Brazo robótico Arduino impreso en 3D
  9. Control del humidificador Arduino
  10. Arduino Nano:Controla 2 motores paso a paso con joystick
  11. Regulador de ducha