Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Vollautomatische 3D-gedruckte Brushless-Nerf-Blaster-Arduino-Steuerung

Komponenten und Verbrauchsmaterialien

Arduino Nano Every
Arduino Nano Every ist sehr kompakt, um in eine Nerf-Pistole zu passen, während alle Funktionen erhalten bleiben, die Sie benötigen.
× 1
Linearmagnet, 12 VDC
Stellen Sie sicher, dass Sie eine Hublänge von 35 mm mit einer Nennspannung von 12 V erhalten.
× 1
Bürstenloser Gleichstrommotor
Nerf Schwungradkäfige funktionieren am besten mit bürstenlosen Motoren vom Typ Outrunner. Stellen Sie sicher, dass es 12V (3s Lipo) verarbeiten kann.
× 2
Brushless ESC
Stellen Sie sicher, dass der bürstenlose Regler mindestens 20 % mehr Strom verarbeiten kann, als der Motor zieht. Stellen Sie sicher, dass es 3s Lipo verarbeiten kann. Ein Regler pro Motor.
× 2
Lipo-Akku 3S 11,1-12,6V 1300mAh 25C
Stellen Sie sicher, dass die Batterieentladerate der Stromaufnahme von allem entspricht, plus 20 % Sicherheitsmarge. Empfehlen Sie mindestens 1300 mAh.
× 1
Mikroschalter, Miniatur
Jeder generischer Mikroschalter. Muss kein Hochstrom sein.
× 2
Leistungs-MOSFET N-Kanal
Stellen Sie sicher, dass es logisch ist! N-Kanal>20V>15A Drain-zu-Source @5V Gatespannung.
× 1
Widerstand 10k Ohm
R3 im Schaltplan - Verhindert schwebende Spannung am MOSFET-Gate.
× 1
Durchgangslochwiderstand, 4,7 kOhm
R1 im Schaltplan zum Hochziehen des MS2-Mikroschalters.
× 1
Durchgangslochwiderstand, 150 Ohm
Für LEDs (Wert hängt von Ihrem Setup ab).
× 1
Widerstand 220 Ohm
R2 im Schaltplan, um den Strom vom MOSFET-Gate zu begrenzen. Dies könnte optional sein, obwohl ich nicht ohne getestet habe.
× 1
1N4007 – Hochspannungs-, Hochstrom-Nenndiode
Generische Diode, die als Flyback-Diode D2 verwendet wird, um den MOSFET vor der Gegen-EMK des Solenoids zu schützen. D1 zum Schutz des Arduino-Stromeingangs vor Sperrspannung.
× 2
Kondensator 100 µF
Reduzieren Sie den Spannungsabfall zum Arduino-Stromeingang - Polaritätssensitiv, also verdrahten Sie es richtig oder es geht Knall! C1 im Schaltplan.
× 1
Kondensator 100 nF
Dies dient als Rausch-/Interferenzfilter für den Arduino-Stromeingang. C2 im Schaltplan.
× 1

Notwendige Werkzeuge und Maschinen

3D-Drucker (generisch)
Mein 3D-Drucker ist Evnovo (Artillery) X1 - 300x300x400mm

Über dieses Projekt

Ich habe es immer genossen, Dinge zu bauen und zu erschaffen, also habe ich mich entschieden, Requisiten und Repliken von Objekten zu erstellen, die in Filmen und Videospielen gefunden wurden. Ein virtuelles Objekt in die Realität umsetzen und dann meine Techniken mit denen teilen, die ähnliche Interessen haben.

Meine neueste und größte Kreation ist die Kang Tao, eine intelligente Waffe aus dem kommenden Videospiel Cyberpunk 2077 . Um ein so komplexes Objekt zu erstellen, wurde ein 3D-Drucker verwendet, um die Ästhetik und die mechanische Passform der Teile zu erreichen.

Ein statisches Objekt wäre jedoch zu einfach, ich wollte eine Herausforderung. Also habe ich es als funktionalen Nerf Blaster entworfen.

Um diese Funktionalität zu erreichen, mussten ein Solenoid und ESCs für bürstenlose Motoren gesteuert werden. Relais und Zeitverzögerungen usw. wären zu umständlich und daher war ein Arduino eine praktischere Lösung.

Dieser Artikel konzentriert sich auf den Aspekt der Arduino- und Elektroschaltung dieses Projekts (da dies eine Arduino-Site ist). Ich habe dies als "einfach" bezeichnet, da der Arduino-Teil ziemlich einfach ist. Das mechanische Design und der 3D-Druck sind jedoch fortgeschritten. Wenn Sie einen bürstenlosen Regler, bürstenlose Motoren und ein Magnetventil mit Arduino für Nerf-Blaster steuern möchten, ist diese Anleitung für Sie!

CAD-Design, 3D-Druck usw. werden hier erklärt:http://nerfhaven.com/forums/topic/28493-cyberpunk-2077-kang-tao-3d-printed-nerf-gun/

oder hier:https://www.reddit.com/r/nerfhomemades/comments/djmyu0/3d_printed_kang_tao_nerf_blaster_from_cyberpunk/

Video-Build-Tutorials hier:https://www.youtube.com/channel/UCP3j3nmdL5VLFy1indyyzAA/featured?view_as=subscriber

Der Schaltplan (siehe schematischer Abschnitt) wurde gezeichnet, um zu veranschaulichen, wie alles verbunden ist. Ein Arduino Nano wird wegen seiner geringen Größe verwendet. Dies sollte auch mit einem Uno und anderen funktionieren.

Siehe Schema für die folgenden Terminologien MS1, C2 usw.

Weiterempfehlen zu Code Abschnitt an Erklärung von wie die Code funktioniert.

Auslöser mit Schwungrädern und Magnetventil

Der Code funktioniert so, wenn MS2 (Auslöser des sekundären Mikroschalters) gehalten wird, drehen die bürstenlosen Motoren hoch.

Wenn MS1 (primärer Mikroschalter-Trigger) gedrückt oder gehalten wird, wird ein Signal an das MOSFET-Gate gesendet, um das Magnetventil (S ) wiederholt. Das Solenoid schiebt den Nerf Dart aus dem Magazin und in die Schwungräder (M1 &M2 ), die dann den Dart aus dem Lauf beschleunigen.

Allerdings MS1 wird nur aktiviert, während MS2 wird gehalten. Dies hilft, Staus zu vermeiden, falls ein Dart in nicht drehende Schwungräder geschoben wird. Im Code (siehe Codeabschnitt) wird hier '&&' verwendet.

Die Stromversorgung der bürstenlosen Motoren und des Magnetventils erfolgt nicht über die Mikroschalter. Dies bedeutet, dass Sie keine Mikroschalter für hohe Ströme benötigen.

Bürstenlose Motoren

Ich werde hier nicht erklären, wie sich bürstenlose Motoren von bürstenbehafteten Motoren unterscheiden, Sie können nach einigen großartigen Erklärungen suchen.

Es gibt Einsteiger und Außenläufer bürstenlose Motoren. Du willst einen Outrunner Motor, da sie eine flachere Form haben, sodass keine hässlichen Dosen an der Seite Ihres Nerf-Blasters herausragen. Außenläufermotoren haben auch einen Teil des Außenläufers, der sich mit der Welle drehen kann. Dies macht es einfach, Schwungräder in 3D zu drucken, um über den Motor zu gehen.

Holen Sie sich einen Motor mit hinteren Befestigungslöchern .

Die Spannungen der Motoren sollten mindestens 12,6 V (3s Lipo) handhaben.

Der Strom des Motors sollte den Nennstrom des bürstenlosen ESC nicht überschreiten.

Die Leistung der Motoren sollte>60W betragen. Dieses Projekt verwendet 12,6 V Versorgungsspannung x gemessene 7 A Motorleistung =jeweils ~ 80 W.

Die Drehzahl von bürstenlosen Motoren sollte ~25k betragen und wird durch kV-Nennwert x Spannung bestimmt. Dieses Projekt verwendet 2600-kV-Motoren bei 12,6 V. Daher 2600 x 12,6 =~32, 760 U/min. Ich lasse die Motoren nur mit Halbgas laufen und Darts fliegen 25m / 82ft!

Bürstenlose Regler

Diese steuern im Wesentlichen die Leistung der bürstenlosen Motoren.

Bürstenlose Motoren funktionieren nicht mit bürstenbehafteten ESCs, also bürstenlos.

Sie benötigen einen ESC pro Motor. Andernfalls wird die Gegen-EMK von zwei Motoren, die an einen ESC angeschlossen sind, das ESC-Timing durcheinander bringen und den ESC und / oder die Motoren beschädigen.

Der Nennstrom des Reglers muss höher sein als die Stromaufnahme des Motors. Der Motor wurde in diesem Fall bei jeweils 7 A gemessen. Empfehlen ESC ist 20A oder höher.

Die Nennspannung des Reglers muss mindestens 12,6 V (3s Lipo) betragen.

ESC benötigt kein eingebautes BEC. Sie können 'OPTO'-Regler verwenden. Wenn Sie einen Regler mit BEC haben, verbinden Sie die Masse- und Signalkabel wie im Schaltplan gezeigt mit Arduino. Keine Verbindung zum ESC 5V rotes Kabel an alles. (Es sei denn, Sie haben einen bestimmten Zweck und wissen, was Sie tun).

Batterie

Eine einzige Batterie, die alles mit Strom versorgt. Ich empfehle die Verwendung eines XT60-Anschlusses.

Die Spannung beträgt 12,6 V 3S Lipo-Akku.

Die empfohlene Kapazität beträgt mindestens 1300 mAH.

Der Entladestrom der Batterie sollte für die Leistungsaufnahme aller Lasten ausreichen. In diesem Projekt beträgt der Laststrom ~25A.

Die maximale Entladerate der Batterie wird berechnet aus Entladerate (25C) x Kapazität in Ah (1, 300mAh =1,3Ah).

Daher 25 x 1,3 =32 A maximale Entladerate für die Batterie. Sie sollten diese Nummern in den Batteriespezifikationen finden können.

MOSFET

Wenn ein 12V / 8A-Magnetventil direkt von einem Arduino mit Strom versorgt wird, entsteht magischer Rauch (Arduino stirbt). Lösung? MOSFET.

Der Leistungs-MOSFET dient als Ein-/Ausschalter für das Solenoid. Es unterbricht im Grunde den Boden, der das Solenoid mit Strom versorgt. Dies ist als N-Kanal-MOSFET bekannt. Stellen Sie sicher, dass Sie einen N-Kanal erhalten.

Der MOSFET weiß, wann er ein- und ausgeschaltet werden muss, da ein Signal von einem Arduino-Ausgangspin an den MOSFET-Gate-Pin gesendet wird (D4 in diesem Fall). Arduino hat 5V ausgegeben und das Gate sollte bei 5V vollständig eingeschaltet sein. Damit dies funktioniert, muss es ein Logic Level MOSFET sein.

Die Stromaufnahme vom Solenoid ist mit 8A bewertet. Stellen Sie sicher, dass der MOSFET einen höheren maximalen Nennstrom hat. Dieses Projekt verwendet einen MOSFET mit einer maximalen Nennleistung von 30 A.

Die Spannung durch den MOSFET beträgt 12,6 V, um das Solenoid zu versorgen. Dieser MOSFET ist für max. 60 V ausgelegt, was viel Headroom bietet.

Die Temperatur des MOSFET beträgt in diesem Fall weniger als 35 °C. Dies wird erreicht, weil der MOSFET für 30 A ausgelegt ist, obwohl nur ~ 8 A Last durch ihn gezogen werden. Der andere Grund ist, dass die Last (Solenoid) vor dem Ausschalten nur kurzzeitig eingeschaltet wird, anstatt ständig eingeschaltet zu sein. Ein Kühlkörper ist in diesem Fall nicht erforderlich.

Magnet

Dadurch wird der Dart in die Schwungräder gedrückt. Alles, was Sie wollen, ist ein 12-V-Magnetventil mit 35 mm Hublänge. Kürzere Schläge werden die Nerf-Darts in voller Länge nicht weit genug schieben.

Rüsten Sie die Feder auf Draht mit einem Durchmesser von 0,9 mm, einem Außendurchmesser von 14 mm und einer Länge von 40 mm auf, um Staus zu vermeiden.

Da das Magnetventil kurzzeitig und nicht ständig eingeschaltet ist, sollte es nur leicht ~40°C warm werden und muss daher nicht gekühlt werden.

Diese Magnetspulen sind relativ billig und allgemein. Sie können bei Ebay, Aliexpress usw. gefunden werden.

Sicherheitsschalter

SW Sicherheitsschalter ist einfach ein 2-Positionen-Schiebeschalter. Es hat 3 Kontakte, obwohl nur 2 verwendet werden. Schaltet Arduino aus, wenn die Sicherheit aktiviert ist, und verhindert, dass Schwungräder und Magnetspulen aktiviert werden.

Schutzschaltung

In diesem Abschnitt wird erklärt, wie Sie das Anbraten Ihrer Elektronik verhindern können!

C1 33μF (100μF empfohlen) &C2 100nF (0,1µF) reduziert Spannungsschwankungen am Arduino-Stromeingang.

Achtung:C1 ist polaritätsempfindlich, gestreifte Seite ist negativ, sonst es geht Knall!

D1 verhindert Rückspannung an Arduino VIN. Beachten Sie die Polarität.

D2 ist eine Flyback- / Freilaufdiode. Es verhindert, dass das Solenoid (oder andere Induktivitäten) eine Gegen-EMK erzeugt. Diese Gegen-EMK könnte sonst den MOSFET beschädigen. Beachten Sie die Polarität.

R1 &R2 sind 4,7kΩ Pullup-Widerstände für MS1 &MS2. Dies verhindert schwebende Spannungen an den Mikroschaltern.

R3 ist ein 10kΩ Pull-Down-Widerstand, um schwebende Spannung am Gate des MOSFET zu verhindern.

R4 ist 150 kΩ für das optionale LEDs. Meine LEDs sind 2 in Reihe mit jeweils 2,4 V / 50 mA. Ihr Widerstandswert kann variieren. Diese LEDs blinken synchron mit dem Magnetventil, um das Mündungsfeuer zu replizieren!

Video-Erklärung &Testfeuer unten!

Das fasst diesen Leitfaden zusammen. Bei Fragen hinterlassen Sie unten einen Kommentar :)

Datei herunterladen, damit Sie es selbst ausdrucken können!

UPDATE:Hier ist der Link zu den Thingiverse-Dateien, viel Spaß!

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

Code

  • Nerf Blaster Brushless Motor &Solenoid Arduino Code - Clark3DPR
Nerf Blaster Brushless Motor &Solenoid Arduino Code - Clark3DPRArduino
1. Wenn Arduino über den Sicherheitsschalter eingeschaltet wird, führt es die Scharfschaltsequenz für die bürstenlosen ESCs aus. Meine ESC's dauern 3,7 Sekunden (3700 im Code). Möglicherweise müssen Sie diesen Wert je nach Ihrem eigenen ESC auf bis zu 10000 (10 Sek.) erhöhen, um den abgesicherten Modus zu beenden.

2. Halten Sie den sekundären Mikroschalter gedrückt, um die Schwungräder zu drehen, und drücken oder halten Sie dann den primären Mikroschalter, um zu zünden.

2. Ändern Sie "throttle.write"(92), um die Motorleerlaufdrehzahl zu erhöhen/verringern oder um sie auszuschalten. Standardmäßig drehen sich die Motoren mit niedriger Geschwindigkeit, um die Hochlaufzeit zu verkürzen. (Wert hängt von Ihrem Motor / ESC ab)
Ändern Siethrottle.write(97), um die Höchstgeschwindigkeit des Motors und die Dartgeschwindigkeit zu ändern. (Wert hängt von Ihrem Motor / ESC ab)

Ändern Sie Verzögerung (90) und Verzögerung (100), um die Feuerrate des Magnetventils zu erhöhen/zu verringern.

4. Wenn der Mikroschalter losgelassen wird, hört das ESC-PWM-Signal für die Schwungräder und das Signal an das MOSET-Gate für das Solenoid auf, sich zu drehen/zu aktivieren.

5. Wenn das ESC-Signal von Arduino verliert (wenn der Sicherheitsschalter eingeschaltet und Arduino ausgeschaltet ist), kehren die ESCs in den abgesicherten Modus zurück und schalten die Motoren aus.
const int buttonPinF =2; // Schwungrad-Rev-Mikroschalter-Pin-Nummerconst int buttonPinS =5; // Magnetmikroschalter-Pinnummerint buttonStateF =0; // Variable zum Lesen des Flywheel Rev-Mikroschalterstatusint buttonStateS =0; // Variable zum Lesen des Magnetmikroschalterstatusint SolenoidPin =4; // Magnet-MOSFET-Gate-Pin-Nummer #include Servo-Drossel;int pos =0;int pin =3; // ESC-Signal pinvoid setup () {pinMode (buttonPinF, INPUT); // Initialisieren Sie den Schwungrad-Mikroschalter-Pin als EingangspinMode (buttonPinS, INPUT); // Initialisieren Sie den Magnet-Mikroschalter-Pin als Eingangsdrossel.attach (Pin); pinMode (MagnetPin, AUSGANG); // Setzt Magnet-MOSFET-Gate-Pin als Ausgang // ESC-Aktivierungssequenz für (pos =90; pos <=91; pos + =1) {drossel.write (pos); Verzögerung (3700); // Warten Sie, bis der ESC scharfgeschaltet ist / Verlassen Sie den Sicherheitsmodus // Erhöhen Sie diesen 3700-Wert, je nachdem, wie lange es dauert, bis Ihr ESC scharfgeschaltet ist }}void loop () { buttonStateF =digitalRead (buttonPinF); // Status des Schwungrad-Mikroschalterwerts lesen if (buttonStateF ==HIGH) {// Mikroschalter gedrückt prüfen, wenn ja, Flywheel buttonState ist HIGH Throttle.write (92); // <(92) =Motor aus / (92) =Leerlaufdrehzahl} else {drossel.write (97); // Motor an (92) =Leerlaufdrehzahl / ~(115) =Höchstgeschwindigkeit} buttonStateS =digitalRead (buttonPinS); // Zustand des Magnetmikroschalterwerts lesen if (buttonStateF ==LOW &&buttonStateS ==LOW) { DigitalWrite (solenoidPin, HIGH); // Schaltmagnet EIN-Verzögerung (90); // EIN-Dauer digitalWrite (solenoidPin, LOW); // Schaltmagnet AUS-Verzögerung (100); // AUS-Dauer aufrechtzuerhalten. Else { DigitalWrite (SolenoidPin, LOW); // Magnetschalter ausschalten }}

Schaltpläne

So ist alles verkabelt. Achten Sie genau auf die Polarität von Dioden und Kondensatoren. Gezeichnet mit AutoCAD.

Herstellungsprozess

  1. Machen Sie eine DIY-Hausaufgaben-Schreibmaschine zu Hause
  2. Erstellen von Monitor-Ambilight mit Arduino
  3. Aktivieren Sie die Alexa-Steuerung für Ihren Deckenventilator
  4. Universelle Fernbedienung mit Arduino, 1Sheeld und Android
  5. Münzprüfer mit Arduino steuern
  6. Arduino-Kontrollzentrum
  7. Arduino mit Bluetooth zur Steuerung einer LED!
  8. Arduino 3D-gedruckter Roboterarm
  9. Arduino-Befeuchtersteuerung
  10. Arduino Nano:Steuerung von 2 Schrittmotoren mit Joystick