Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Contrôle Arduino Nerf Blaster sans brosse à impression 3D entièrement automatique

Composants et fournitures

Arduino Nano Every
Arduino Nano Every Is très compact pour tenir dans un pistolet Nerf tout en conservant toutes les fonctionnalités dont vous avez besoin.
× 1
Solénoïde linéaire, 12 VDC
Assurez-vous d'obtenir une longueur de course de 35 mm évaluée à 12 V.
× 1
Moteur CC sans balais
Les cages Nerf Flywheel fonctionnent mieux avec les moteurs brushless de type Outrunner. Assurez-vous qu'il peut gérer 12V (3s Lipo).
× 2
Échap sans balais
Assurez-vous que l'ESC Brushless peut gérer au moins 20% de courant en plus que le moteur tire. Assurez-vous qu'il peut gérer 3s Lipo. Un ESC par moteur.
× 2
Batterie Lipo 3S 11.1-12.6V 1300mAh 25C
Assurez-vous que le taux de décharge de la batterie gère la consommation actuelle de tout, plus une marge de sécurité de 20%. Recommander 1300mAh minimum.
× 1
Microrupteur, Miniature
Tout micro-interrupteur générique. N'a pas besoin d'être à courant élevé.
× 2
Power MOSFET N-Channel
Assurez-vous que c'est le niveau logique ! Canal N>20V>15A Drain-to-Source @5V gate voltage.
× 1
Résistance 10k ohm
R3 dans le schéma - Empêche la tension flottante à la porte MOSFET.
× 1
Résistance à trou traversant, 4,7 kohm
R1 dans le schéma pour tirer le micro-interrupteur MS2.
× 1
Résistance à trou traversant, 150 ohms
Pour les LED (la valeur dépend de votre configuration).
× 1
Résistance 220 ohm
R2 dans le schéma pour limiter le courant de la porte MOSFET. Cela pourrait être facultatif, même si je n'ai pas testé sans.
× 1
1N4007 – Diode haute tension et courant nominal élevé
Diode générique utilisée comme diode flyback D2 pour protéger le MOSFET de l'EMF arrière du solénoïde. D1 pour protéger l'entrée d'alimentation Arduino contre la tension inverse.
× 2
Condensateur 100 µF
Réduire l'affaissement de tension à l'entrée d'alimentation Arduino - Sensible à la polarité, alors câblez-le dans le bon sens ou il va claquer! C1 dans le schéma.
× 1
Condensateur 100 nF
Cela agit comme un filtre de bruit/interférence pour l'entrée d'alimentation Arduino. C2 en schéma.
× 1

Outils et machines nécessaires

Imprimante 3D (générique)
Mon imprimante 3D est Evnovo (Artillerie) X1 - 300x300x400mm

À propos de ce projet

J'ai toujours aimé construire et créer des choses, j'ai donc décidé de créer des accessoires et des répliques à partir d'objets trouvés dans les films et les jeux vidéo. Mettre un objet virtuel dans la réalité, puis partager mes techniques avec ceux qui ont des intérêts similaires.

Ma dernière et plus grande création est le Kang Tao, un pistolet intelligent présenté dans le prochain jeu vidéo Cyberpunk 2077 . Pour créer un objet aussi complexe, une imprimante 3D a été utilisée pour réaliser l'esthétique et l'ajustement mécanique des pièces.

Un objet statique serait trop facile cependant, je voulais un défi. Je l'ai donc conçu comme un Nerf Blaster fonctionnel.

Pour réaliser cette fonctionnalité, il fallait contrôler un solénoïde et des ESC pour les moteurs sans balais. Les relais et les délais, etc. seraient trop encombrants et un Arduino était donc une solution plus pratique.

Cet article se concentrera sur l'aspect Arduino et circuits électriques de ce projet (puisqu'il s'agit d'un site Arduino). J'ai étiqueté cela "facile" car la partie Arduino est assez simple. La conception mécanique et l'impression 3D sont cependant avancées. Si vous souhaitez contrôler un contrôleur sans balais, des moteurs sans balais et un solénoïde avec Arduino pour Nerf Blasters, ce guide est fait pour vous !

La conception CAO, l'impression 3D, etc. sont expliquées ici :http://nerfhaven.com/forums/topic/28493-cyberpunk-2077-kang-tao-3d-printed-nerf-gun/

ou ici :https://www.reddit.com/r/nerfhomemades/comments/djmyu0/3d_printed_kang_tao_nerf_blaster_from_cyberpunk/

Tutoriels de construction vidéo ici :https://www.youtube.com/channel/UCP3j3nmdL5VLFy1indyyzAA/featured?view_as=subscriber

Le schéma (voir la section schématique) a été dessiné pour illustrer comment tout est connecté. Un Arduino Nano est utilisé en raison de sa petite taille. Cela devrait fonctionner avec un Uno et d'autres aussi.

Se référer au schéma pour les terminologies ci-dessous MS1, C2, etc.

Référez à Code rubrique sur explication de comment le code fonctionne.

Déclencheurs avec volants d'inertie et solénoïde

La façon dont le code fonctionne, c'est que lorsque MS2 (déclencheur secondaire du microrupteur) est maintenu, les moteurs brushless accélèrent.

Lorsque MS1 (déclenchement du micro-interrupteur principal) est enfoncé ou maintenu, un signal est envoyé à la porte MOSFET pour déclencher le solénoïde (S ) à plusieurs reprises. Le solénoïde pousse la fléchette Nerf hors du mag et dans les volants (M1 &M2 ) qui accélèrent alors la fléchette hors du canon.

Cependant, MS1 ne s'active que lorsque MS2 est retenu. Cela permet d'éviter les bourrages au cas où une fléchette serait poussée dans des volants d'inertie qui ne tournent pas. Dans le code (voir section code), c'est là que '&&' est utilisé.

L'alimentation fournie aux moteurs sans balais et au solénoïde ne passe pas par les micro-interrupteurs. Cela signifie que vous n'avez pas besoin de micro-interrupteurs à courant élevé.

Moteurs Brushless

Je ne vais pas expliquer en quoi les moteurs sans balais diffèrent des moteurs à balais ici, vous pouvez rechercher de bonnes explications.

Il y a inrunner et outrunner moteurs sans balais. Vous voulez un outrunner moteur car ils sont de forme plus plate afin que vous n'ayez pas de canettes laides qui dépassent du côté de votre blaster Nerf. Les moteurs Outrunner ont également une partie de l'externe peut tourner avec l'arbre. Cela facilite l'impression en 3D des volants d'inertie pour passer au-dessus du moteur.

Obtenez un moteur avec des trous de montage arrière .

Les tensions des moteurs doivent supporter au moins 12,6 V (3 s lipo).

Le courant du moteur ne doit pas dépasser le courant nominal de l'ESC sans balais.

La puissance des moteurs doit être> 60W. Ce projet utilise une tension d'alimentation de 12,6 V x une consommation de moteur mesurée de 7 A =~ 80 W chacun.

Les tr/min des moteurs sans balais doivent être d'environ 25 k et sont déterminés par la cote kV x la tension. Ce projet utilise des moteurs 2600kV @ 12.6V. Par conséquent, 2600 x 12,6 =~32, 760 tr/min. Je ne fais tourner les moteurs qu'à mi-régime et les fléchettes volent à 25 m / 82 pieds !

ESC sans balais

Ceux-ci contrôlent essentiellement la puissance des moteurs brushless.

Les moteurs sans balais ne fonctionnent pas avec les contrôleurs à balais, optez pour le sans balais.

Vous avez besoin d'un ESC par moteur. Sinon, l'EMF arrière de deux moteurs connectés à un ESC perturbera la synchronisation de l'ESC et endommagera ledit ESC et / ou ces moteurs.

Le courant nominal de l'ESC doit être supérieur à la consommation de courant du moteur. Le moteur dans ce cas a été mesuré à 7A chacun. L'ESC recommandé est de 20 A ou plus.

La tension nominale de l'ESC doit être d'au moins 12,6 V (3 s Lipo).

L'ESC n'a pas besoin de BEC intégré. Vous pouvez utiliser les ESC 'OPTO'. Si vous avez un contrôleur avec BEC, connectez les câbles de masse et de signal à Arduino comme indiqué sur le schéma. Ne connectez PAS le ESC Câble rouge 5V vers n'importe quoi. (À moins que vous n'ayez un but précis et que vous sachiez ce que vous faites).

Batterie

Une seule batterie pour tout alimenter. Je recommande d'utiliser un connecteur XT60.

La tension est de 12,6 V Batterie Lipo 3S.

La capacité est de 1300 mAH minimum recommandé.

L'indice de décharge actuel de la batterie devrait être suffisant pour la consommation électrique de toutes les charges. Dans ce projet, le courant de charge est d'environ 25 A.

Le taux de décharge maximal de la batterie est calculé par le taux de décharge (25 C) x la capacité en Ah (1 300 mAh =1,3 Ah).

Donc 25 x 1,3 =32A max taux de décharge pour la batterie. Vous devriez pouvoir trouver ces chiffres dans les spécifications de la batterie.

MOSFET

L'alimentation d'un solénoïde 12V / 8A directement à partir d'un Arduino provoquera une fumée magique (Arduino meurt). Solution? MOSFET.

Le MOSFET de puissance est utilisé comme interrupteur marche/arrêt pour le solénoïde. Il interrompt essentiellement le sol qui alimente le solénoïde. C'est ce qu'on appelle un MOSFET N-Channel. Assurez-vous d'avoir un canal N.

Le MOSFET sait quand s'allumer et s'éteindre en raison d'un signal envoyé à la broche de porte MOSFET à partir d'une broche de sortie Arduino (D4 dans ce cas). Arduino est sorti 5V, et la porte doit être complètement allumée à 5V. Pour que cela fonctionne, il doit s'agir d'un MOSFET de niveau logique.

L'appel de courant du solénoïde est évalué à 8A. Assurez-vous que le MOSFET a un courant nominal maximum plus élevé. Ce projet utilise un MOSFET de 30 A max.

La tension du MOSFET est de 12,6 V pour alimenter le solénoïde. Ce MOSFET est évalué à 60 V max, ce qui représente une grande marge.

La température du MOSFET est inférieure à 35°C dans ce cas. Ceci est obtenu parce que le MOSFET est conçu pour 30 A, bien qu'il n'y ait qu'environ 8 A de charge qui le traverse. L'autre raison est que la charge (solénoïde) n'est allumée que momentanément avant de s'éteindre, au lieu d'être allumée en permanence. Un dissipateur thermique n'est pas nécessaire dans ce cas.

Solénoïde

Cela pousse la fléchette dans les volants. Tout ce que vous voulez, c'est un solénoïde de 12 V avec une longueur de course de 35 mm. Des coups plus courts ne pousseront pas assez loin les fléchettes Nerf de type pleine longueur.

Améliorez son ressort à un fil de 0,9 mm de diamètre, 14 mm de diamètre extérieur et 40 mm de longueur pour éviter les bourrages.

Étant donné que le solénoïde est allumé momentanément plutôt que constamment, il ne devrait chauffer que légèrement à environ 40 °C et ne nécessite donc pas de refroidissement.

Ces solénoïdes sont relativement bon marché et génériques. Ils peuvent être trouvés sur Ebay, Aliexpress etc.

Interrupteur de sécurité

SW L'interrupteur de sécurité est simplement un interrupteur à glissière à 2 positions. Il a 3 contacts, bien que seulement 2 soient utilisés. Éteint Arduino lorsque la sécurité est activée, empêchant les volants d'inertie et le solénoïde de s'activer.

Circuit de protection

Cette section explique comment éviter de faire frire vos appareils électroniques !

C1 33μF (100μF recommandé) &C2 100 nF (0,1 µF) réduit les fluctuations de tension à l'entrée d'alimentation Arduino.

Attention :C1 est sensible à la polarité, le côté rayé est négatif, autre ça va bang !

D1 empêche la tension inverse à Arduino VIN. Prenez note de sa polarité.

D2 est une diode fly-back / roue libre. Il empêche le solénoïde (ou d'autres inducteurs) de créer des EMF en retour. Ce retour EMF pourrait sinon endommager le MOSFET. Prenez note de sa polarité.

R1 &R2 sont des résistances de rappel de 4,7 kΩ pour MS1 et MS2. Cela empêche la tension flottante au niveau des micro-interrupteurs.

R3 est une résistance pull-down de 10kΩ pour empêcher la tension flottante à la grille du MOSFET.

R4 est un 150kΩ pour le facultatif LED. Mes LED sont 2 en série à 2,4V / 50mA chacune. La valeur de votre résistance peut varier. Ces LED s'allument et s'éteignent en synchronisation avec le solénoïde pour reproduire le flash de la bouche !

Explication vidéo et tir d'essai ci-dessous !

Cela résume ce guide, toutes les questions laissez un commentaire ci-dessous :)

Téléchargez le fichier pour que vous puissiez l'imprimer vous-même !

MISE À JOUR :Voici le lien vers les fichiers Thingiverse, profitez-en !

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

Code

  • Code Arduino du moteur et du solénoïde sans balais Nerf Blaster - Clark3DPR
Code Arduino du moteur et du solénoïde sans balais Nerf Blaster - Clark3DPRArduino
1. Lorsque Arduino est mis sous tension via l'interrupteur de sécurité, il exécute la séquence d'armement pour les ESC sans balais. Mes ESC prennent 3,7 secondes (3700 dans le code). Vous devrez peut-être augmenter cette valeur jusqu'à 10 000 (10 secondes) en fonction de votre propre ESC pour le faire quitter le mode sans échec.

2. Maintenez le micro-interrupteur secondaire pour faire tourner les volants d'inertie, puis appuyez ou maintenez enfoncé le micro-interrupteur principal pour déclencher.

2. Changez la commande gaz.write(92) pour augmenter/diminuer la vitesse de ralenti du moteur ou les désactiver. Par défaut, les moteurs tournent à basse vitesse pour réduire le temps de rotation. (La valeur dépend de votre moteur / ESC)
Changez la vitesse.write(97) pour changer la vitesse maximale du moteur et la vitesse de la fléchette. (La valeur dépend de votre moteur / ESC)

Modifiez le délai (90) et le délai (100) pour augmenter/diminuer la cadence de tir du solénoïde.

4. Lorsque le micro-interrupteur est relâché, le signal ESC PWM pour les volants d'inertie et le signal à la porte MOSET pour le solénoïde s'arrêtent de tourner/s'activer.

5. Lorsque l'ESC perd le signal d'Arduino (lorsque l'interrupteur de sécurité est activé et l'Arduino éteint), l'ESC revient en mode sans échec et éteint les moteurs.
const int buttonPinF =2 ; // Numéro de broche du microrupteur du volant d'inertie const int buttonPinS =5; // Numéro de broche du micro-interrupteur du solénoïdeint buttonStateF =0; // Variable de lecture du microrupteur Flywheel Rev statusint buttonStateS =0; // Variable de lecture du microrupteur solénoïde statusint solenoidPin =4; // Numéro de broche de la porte MOSFET du solénoïde#include Accélérateur du servo;int pos =0;int pin =3; // Configuration du pinvoid du signal ESC() { pinMode(buttonPinF, INPUT); // Initialiser la broche du microrupteur Flywheel en tant que pinMode d'entrée (buttonPinS, INPUT); // Initialiser la broche du micro-interrupteur du solénoïde en tant que papillon d'entrée.attach(pin); pinMode(solénoïdePin, SORTIE); // Définit la broche du solénoïde MOSFET Gate en tant que sortie // Séquence d'armement ESC pour (pos =90; pos <=91; pos +=1) {throttle.write(pos); retard (3700); // Attendez que l'ESC s'arme / Quittez le mode de sécurité// Augmentez cette valeur de 3700 en fonction du temps qu'il faut à votre ESC pour s'armer }}void loop() { buttonStateF =digitalRead(buttonPinF); // Lecture de l'état de la valeur du microrupteur du volant d'inertie if (buttonStateF ==HIGH) { // Vérifier que le microswitch est enfoncé, si c'est le cas, l'état du bouton du volant d'inertie est HIGH shock.write(92); // <(92) =Moteur éteint / (92) =Régime de ralenti } else { papillon.write(97); // Moteur allumé (92) =Ralenti / ~(115) =Vitesse max }buttonStateS =digitalRead(buttonPinS); // Lecture de l'état de la valeur du micro-interrupteur du solénoïde if (buttonStateF ==LOW &&buttonStateS ==LOW) { digitalWrite(solenoidPin, HIGH); // Commutation du délai d'activation du solénoïde (90); // Durée ON digitalWrite(solenoidPin, LOW); // Commutation du délai d'arrêt du solénoïde (100); // Durée OFF } else { digitalWrite(solenoidPin, LOW); // Éteindre le solénoïde }}

Schémas

C'est ainsi que tout est câblé. Faites très attention aux polarités des diodes et des condensateurs. Dessiné avec AutoCAD.

Processus de fabrication

  1. Fabriquer une machine à écrire pour les devoirs à la maison
  2. Créer un moniteur Ambilight à l'aide d'Arduino
  3. Activez le contrôle Alexa sur votre ventilateur de plafond
  4. Télécommande universelle utilisant Arduino, 1Sheeld et Android
  5. Contrôler l'accepteur de pièces avec Arduino
  6. Centre de contrôle Arduino
  7. Arduino avec Bluetooth pour contrôler une LED !
  8. Bras robotique Arduino imprimé en 3D
  9. Contrôle de l'humidificateur Arduino