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

Avenger montiert:Iron Man Helm &Arc Reactor

Komponenten und Verbrauchsmaterialien

Arduino UNO
× 1
Adafruit NeoPixel Ring:WS2812 5050 RGB LED
× 1
Adafruit kapazitiver Berührungssensor Breakout - MPR121
× 1
Servos (Tower Pro MG996R)
× 1
4xAA Batteriehalter
× 1
9-V-Batterieklemme
× 1
Jumper (generisch)
× 1

Notwendige Werkzeuge und Maschinen

3D-Drucker (generisch)
Wir haben einen Lulzbot Mini verwendet, der seit über 1 Jahr perfekt funktioniert (außer bei unserem Flexystruder-Kopf, der hat nie funktioniert :( )

Apps und Onlinedienste

Arduino-IDE
Autodesk Netfabb
fritzing

Über dieses Projekt

Avenger montiert:3D-gedruckter und Arduino-gesteuerter Iron Man-Helm und Lichtbogenreaktor.

Einführung und Motivation:

Meine Motivation für die Herstellung dieses Helms begann mit meinem allerersten Helm, den ich je gemacht habe. Es war ein Antman-Helm aus Pappe aus ein paar Videos, die ich online gefunden habe. Es war wirklich cool (ein großer Marvel-Fan zu sein), also beschloss ich, wirklich einen Iron Man-Helm zu machen. Ich war gerade auf dem National Maker Faire in Washington D.C. gewesen und alle liebten den Antman-Helm. Das hat mich noch mehr motiviert, den Iron Man zu machen. Ich habe mehrere Prototypen durchgearbeitet, angefangen mit einem anderen Kartonhelm. Dieser Helm war zu klein, also entwarf ich meinen eigenen Helm, der diesmal beim Zusammenbauen eher wie ein Ball auf meinem Kopf aussah als der aus dem Film. Schließlich ging ich zu einem Papiermodell. Dieses Papiermodell sah fantastisch aus, aber ich stieß auf ein weiteres Problem. Das Papiermodell war zu dünn. Ich habe versucht, es zu reparieren, aber es funktionierte einfach nicht, also entschied ich mich, den Helm in 3D zu drucken. Ich habe endlich einen gemacht, der stabil genug war und auch groß genug für meinen Kopf und einen Motor.

  • Herstellung des Helms und des Lichtbogenreaktors:

Der 3D-Druck:

1) Aufteilen in Teile - Software

Der erste Schritt zur Erstellung dieses Helms bestand darin, die Datei online zu finden und sie dann auszudrucken. Die Datei, die ich fand, war ein motorisierter Iron Man-Helm. Die Datei, die ich von thingiverse heruntergeladen habe, bestand aus drei Teilen:dem Hauptteil, dem Kinn und der Frontplatte. Da alle drei Teile für die Bauplatte meines Druckers zu groß waren, musste ich eine Software finden, die meinen Helm in Teile schneiden konnte. Als ich online suchte, fand ich im Internet kostenlose Software namens netfabb basic. Ich habe das Tool heruntergeladen und meine Datei darauf hochgeladen. Netfabb basic war sehr einfach zu bedienen und ich konnte die Teile des Helms zerschneiden. Dann habe ich das Teil auf den Haupthelm, das Kinnstück und die Frontplatte gedruckt. Während ich die Drucke durchging, würde ich die Teile mit Klebeband zusammenkleben und prüfen, ob die Größe gut war. Als alle Teile fertig gedruckt waren und 1 ½ Rollen Filament aufgebraucht waren, hatte ich den 24-teiligen Helm.

2) Auswahl des richtigen Klebstoffs

Die nächste Herausforderung bestand darin, den richtigen Klebstoff zu finden, um die Teile zusammenzukleben. Damit der Kleber funktioniert, müsste er drei Anforderungen erfüllen:

  • Es musste die Teile mit einer starken Bindung zusammenhalten,
  • haben Sie eine kurze Heilungszeit
  • leicht zu schleifen.

Wir haben 4 verschiedene Klebstoffarten getestet, E6000, JB Weld KwikWeld, JB Weld Plastic Bonder und Loctite Plastic Bonder Epoxy. Letztendlich haben wir uns für KwikWeld entschieden, weil es alle drei Anforderungen erfüllt. Um die Teile anzubringen, wären die ersten Schritte, die zu verklebenden Seiten aufzurauen. Ich benutzte eine Feile, um die glatten Seiten aufzurauen, bis das Stück raue Seiten mit kleinen Rillen und Taschen hatte. Dies würde dazu beitragen, dass das Stück zusammenhält. Anschließend vermischen wir das JB KwikWeld zu gleichen Teilen mit dem Härter und dem Stahl und verteilen es gleichmäßig auf beiden gefeilten Seiten und pressen sie zusammen. Wenn Sie eine Klemme haben, schieben Sie sie in die Klemme und wischen Sie den überschüssigen Kleber ab. Das Trocknen dauert ungefähr 10 Minuten, aber es hilft, es länger zu lassen.

  • 3) Design des Servomechanismus

Die nächste Herausforderung bei der Herstellung des Iron Man-Helms war die Entwicklung des Servomechanismus. Da ich Schwierigkeiten hatte herauszufinden, wie man das Servo mit den Bildern auf der Thingiverse-Seite am Helm befestigt, Ich beschloss, meine eigenen zu machen. Zuerst plante ich, wo das Servo sein sollte und maß eine gerade Linie vom Servo zum Befestigungsort. Dann schätzte ich den Winkel, den das Servo haben würde. Das erste Design war ein bisschen daneben mit einem zu scharfen Winkel. Das nächste habe ich repariert und es war genau richtig. Dann habe ich den Arm in das Servo und die Befestigungsstelle geschraubt, um zu sehen, ob es passt. Es hat! Schließlich entwarf ich eine Klemme, die um das Servo passt, und druckte sie aus. Ich habe alles zusammengebaut und wir haben den allerersten Test gemacht. Es war instabil und die Frontplatte ging nicht glatt und gleichmäßig nach oben. Um dieses Problem zu beheben, habe ich einen Metallkleiderbügel in eine rechteckige Form gebogen und in die Schlitze gesteckt, in die das 3D-gedruckte Teil passen sollte. Dann habe ich Clips entworfen, die unter den Kleiderbügel gehen, damit er nicht herunterfällt. Ich schneide mit einer Bügelsäge Schlitze in die Oberseite des Helms und setze dann alles wieder zusammen. Wir haben es zum zweiten Mal ausprobiert und es hat super geklappt!

4) Montage &Lackierung

Endlich war es fertig zum Lackieren. Ich habe alles auseinander genommen und die erste Grundierung weiß gemacht. Sobald die Grundierung fertig war, habe ich einen Teil des Kinnteils mit Malerband abgeklebt und den Helm rot lackiert. Für die Frontplatte habe ich alles gold lackiert. Da das Gold schnell trocknet, war es bald fertig, aber die rote Farbe trocknet sehr langsam, also habe ich es zum Trocknen stehen gelassen. Nachdem alle Teile trocken waren, nahm ich das Klebeband vom Kinnteil und maskierte alles in der Nähe des noch weißen Teils. Dann habe ich Alufolie verwendet und um den Rest des Helms gelegt. Dann habe ich den weißen Teil gold lackiert und darauf gewartet, dass er getrocknet ist. Dann habe ich den Helm wieder zusammengebaut und füge alles zusammen. Dann habe ich den letzten Test gemacht und es hat funktioniert!

5) Der Lichtbogenreaktor:

Als nächstes stand die Herstellung des Lichtbogenreaktors auf dem Programm. Ich habe zuerst die Größe des Neo-Pixel-Rings gemessen und eine Hülle entworfen, um ihn zu halten. Dann habe ich für den Deckel ein Design von jemandem auf thingiverse verwendet und es an meine Bedürfnisse angepasst. Das Originalmodell findet ihr hier:http://www.thingiverse.com/thing:33021 Das neue Design hatte fast die gleichen Eigenschaften, obwohl einige Teile davon etwas unproportioniert sind. Ich habe das Gehäuse und das Oberteil ausgedruckt und sie passen ziemlich gut. Das einzige Problem war, dass das Neopixel zu klein für das Gehäuse war. Es stellte sich heraus, dass ich meine Berechnungen falsch gemacht hatte, also ging ich zurück und änderte das. Diesmal hat es gepasst. Als nächstes fügte ich zwei Löcher für die Drähte hinzu und eine Stange oben für die Schnur, damit ich sie um meinen Hals tragen konnte. Schließlich habe ich einen Entschärfer aus durchscheinendem ABS-Filament hinzugefügt, der genau in das Gehäuse passt. Der Druckteil war endlich fertig!

Die Elektronik:

Als der 3D-Druck fertig war, wussten wir, dass wir eine großartige Plattform zum Einbetten von Elektronik hatten. Für dieses Projekt möchten wir 1 Servomotor ansteuern, der an der Frontplatte des Helms befestigt ist. Wir würden auch gerne einen Neopixel-Ring im Arc Reactor ansteuern. Wir haben ein Arduino Uno als Grundlage des Kontrollsystems für dieses Projekt verwendet. Es gibt jedoch noch zahlreiche andere Arten von Boards, die ebenfalls verwendet werden könnten, und aus diesem Grund haben wir die Soft- und Hardware generisch gehalten. Tatsächlich haben wir in diesem Projekt sowohl ein Uno als auch ein Arduino101 austauschbar verwendet. Dies ermöglicht auch zukünftige Erweiterungen und das Potenzial, einen vernetzten Helm mit dem integrierten BLE des 101 herzustellen!

Iron Man muss den Servomotor des Helms und den Neopixelring des Lichtbogenreaktors betätigen. Wir haben den MPR121 ADAFRUIT 12-KEY CAPACITIVE TOUCH SENSOR BREAKOUT verwendet, um eine berührungsbasierte Schnittstelle bereitzustellen. Dieses Breakout-Board ermöglicht 12 verschiedene Eingänge und kommuniziert mit dem Uno über I2C. Die 12 Kontakte lassen viel Raum für zukünftige Erweiterungen und I2C ist ein Teil der Standard-IDE-Pakete für die Arduino-Familie, die uns die Möglichkeit geben, Boards ohne Neuprogrammierung auszutauschen. Es ist gut dokumentiert und die bereitgestellten Softwarebeispiele machen es leicht zu verstehen, wie es in unserer Skizze verwendet wird.

Wir haben Drähte mit blanken Enden angebracht, um unsere kapazitiven Berührungsschalter zu handeln. Obwohl wir kein traditionelles „Schalter-Bouncen“ sehen, wie es bei mechanischen Schaltern beobachtet wird, erzeugt eine einzige Berührung mehrere Treffer als loop() in der arduino-skizze befragt das Board. Um das „Rattern“ der Servos als Reaktion auf diese Treffer zu vermeiden, haben wir einen 1/4-Sekunden-Softwareverzögerungsmechanismus beim Lesen von Berührungen implementiert. Nach dem Testen von Uno und MPR121 haben wir den Servomotor und die Netzteile hinzugefügt.

Unter Berücksichtigung der Verwendung eines Servomotors unter Last und dem Wunsch, dieses Projekt auf der NYC Maker Faire 2016 „vor Ort einzusetzen“, ist eine der wichtigsten Überlegungen dieses Projekts die Stromversorgung. Uns wurde gesagt, dass das Design von Netzteilen einer der wichtigsten, aber am wenigsten glamourösen Bereiche der Elektrotechnik ist. Keiner von uns ist Elektroingenieur, also ist die Lösung, die wir gefunden haben, eine Kombination aus dem, was wir gelesen haben, würde funktionieren, was wir verstanden haben, was wir zur Verfügung hatten und was wir zum Arbeiten hatten. Wir behaupten also nicht, dass dies die beste Lösung ist und freuen uns über Verbesserungsvorschläge.

Aufgrund der Belastung des Servos, des Potenzials für Gegen-EMK und der Empfehlungen von https://www.arduino.cc/en/Reference/Servo haben wir uns entschieden, das Servo getrennt vom Uno anzutreiben. Die Stromversorgung und Masse des Servomotors wurden mit der Stromversorgung und Masse eines 4XAA-Batteriesatzes verbunden. Sehr wichtig, die Masse des Uno, des Servos und des Akkus müssen alle angeschlossen sein, um den Stromkreis zu vervollständigen. Wir tun dies, indem wir die Erdungsschiene des Perma-Proto-Boards, den 4XAA-Akku und einen Draht vom Erdungsstift des Uno miteinander verbinden, wie im Fritzing-Schema unten zu sehen ist.

Ursprünglich hatten wir auch den Neopixel-Ring, der auch über den 4XAA-Akku betrieben wurde. Wir haben dies geändert, da es beim Ein- und Ausschalten des Neopixel-Rings anscheinend zu einem "Rattern" des Servos kam. Dies kann jedoch an den schwachen Batterien zum Zeitpunkt des Tests gelegen haben. Leider ist uns dies in der Nacht vor dem Maker Faire aufgefallen und wir waren bereits auf der Perma-Proto. Wir haben uns entschieden, den Neopixel Ring direkt mit dem Uno zu verbinden und gleichzeitig auf frische Batterien zu wechseln. Dadurch wurde das Problem behoben, die Frage jedoch nicht beantwortet. Vielleicht werden wir dies verfolgen, während wir daran arbeiten, das Projekt in Zukunft zu verbessern.

Die gesamte Schaltung wurde auf einem Steckbrett als Prototyp erstellt und dann einfach auf ein Adafruit ¼ Perma-Proto-Board verschoben. Mit einem sicheren Gehäuse ist dies eine der einfachsten Möglichkeiten, um schnell ein implementierbares Paket für Ihr Projekt zu erstellen. Wir haben ein benutzerdefiniertes Gehäuse aus blauem HIPS-Filament entworfen und gedruckt, siehe unten. Die ganze Einheit mit Batterien wurde für die Maker Faire in eine Kameratasche verpackt!

Die Software:

Es gibt derzeit 2 Versionen des Sketches, IronMan02.ino und IronMan04.ino . Beide funktionieren mit dem Hardware-Setup, wie in diesem Artikel beschrieben.

Die erste, IronMan02.ino ist die „get-it-done“-Version, die im Sinne von „Perfektion ist der Feind der Vollendung“ folgt. Wir mussten eine Frist einhalten und diese Version, obwohl nicht elegant, hat die Arbeit erledigt. In dieser Version werden Sie sehen, dass wir Objekte erstellt haben, um den Helm und den Lichtbogenreaktor darzustellen. Dies geschah in Erwartung der Implementierung von Multitasking auf dem Arduino in zukünftigen Versionen, daher war es kein kompletter Eilauftrag. Wir können die Lektüre der Serie mit drei Artikeln über Arduino-Multitasking von Bill Earl von Adafruit wärmstens empfehlen. Unser Code basiert insbesondere auf IronMan04.ino basiert auf den Beispielen, Ideen und Empfehlungen aus diesem Set von 3 Tutorials. Diese Artikel bringen Sie über die Grundlagen der Arduino-Programmierung hinaus und ermöglichen Ihren Projekten, wirklich durchzustarten!

Ein Problem, mit dem wir konfrontiert waren, war, dass sich die Frontplatte zu schnell öffnete und schloss. Wir haben dies mit dem delay() gelöst Funktion zum Verlangsamen und Glätten der Bewegung der Frontplatte. Ja, wenn Dr. Reallyevilbadguy dabei ist, Iron Man mit seinem Super-Death-Laser ins Gesicht zu jagen, möchten Sie, dass sich der Helm schnell schließt, aber zu Demonstrationszwecken sieht die langsamere, flüssigere Bewegung viel besser aus.

// Helm nach oben bewegen, 1/4-Sekunden-Zeitblock, um Rattern/Hüpfen auf der Berührungskappe zu vermeiden. switch void up() { if((millis() - lastSwitched)> 250) { lastSwitched =millis(); if (!helmetUp int currPos =0; while( currPos  

Das Problem bei der Verwendung von delay() Funktion ist, dass der Mikrocontroller während der delay() . nichts anderes tun kann . Wir haben dieses Problem mit der Anleitung in den obigen adafruit-Tutorials in der zweiten Version, IronMan04.ino . gelöst .

Die zweite Version, IronMan04.ino , enthält 2 wichtige Elemente, die wir implementieren wollten, aber vor dem Maker Faire hatten wir keine Zeit, um sie zu erreichen:

  • Ein-Knopf-/Touch-Frontplattensteuerung
  • Multitasking

Als wir mit den Leuten über unser erstes Projekt sprachen, war die Reaktion aller:Sie sollten nur eine Taste/einen Berührungssensor haben, um den Helm nach oben und unten zu bewegen. Wir hätten uns nicht mehr einigen können und beschlossen, dies umzusetzen, als wir Zeit hatten. Unsere Lösung beinhaltet die Verwendung mehrerer Zustandsvariablen:

  • umdrehen - um den Zustand der Frontplatte zu erhalten
  • Umdrehen - um anzuzeigen, ob die Frontplatte gerade die Position wechselt
  • Direktionalität - um anzuzeigen, dass die Frontplatte nach oben oder unten bewegt wird

In setup() , Wir starten den Helm immer in der offenen oder offenen Konfiguration. Dies ist nicht unbedingt erforderlich. Unabhängig vom Ausgangszustand bringt Sie das Umschalten des Frontplattenschalters beim zweiten Drücken in den richtigen Zustand. Wir haben den Code jedoch so geschrieben, dass er berücksichtigt, dass der Anfangszustand der Frontplatte oben ist und daher am Anfang kein verschwendeter Tastendruck stattfindet. Ist das der beste Weg? Wir sind uns nicht sicher, aber da einige der größten wissenschaftlichen Köpfe viele Jahre damit verbracht haben, an der Kontrolltheorie zu arbeiten, denke ich, dass wir mit diesem Projekt gut gefahren sind!

Da wir in der Schleife nach Berührungen vom MPR121 abfragen, erzeugt eine vom Benutzer wahrgenommene Berührung viele Berührungssignale. Dies ist vergleichbar mit dem traditionellen Schalterprellen und wir handhaben es mit Hilfe von Software. Wir wollen eine schnelle Reaktion auf den Berührungssensor und wir möchten Multitasking implementieren, also anstatt mehrere Berührungen im Schalter/Gehäuse der Schleife() zu blockieren -Funktion platzieren wir einen Timing-Block mit der millis() Funktion im Helm und ArcReactor Objekte, wie in diesem Codefragment aus dem Helm . zu sehen ist Objekt:

void flipFaceplate() { // Timing-Block zum Schutz vor Rattern/Bouncen if ((millis()-lastFlipped)> 500 ) { . . . 

Auch hier ohne die Verwendung von delay() Funktion bewahren wir Multitasking in unserem Projekt. Es könnte klüger sein, eine Variable für das Verzögerungsintervall von 500 Millisekunden zu verwenden, um Änderungen und Tests zu ermöglichen, aber wir haben es mit unserer zweiten Schätzung von 500 richtig gemacht und waren hier einfach etwas schlampig.

Um das Servo gleichmäßig durch seinen Drehwinkel zu bewegen, mussten wir die Drehung des Servos langsam erhöhen. Durch Platzieren eines Zeitblocks auf dem Winkelschritt des Servomotors durch Überprüfen der aktuellen Uhrzeit mit millis() Funktion:

void Update() { if ( Flipping &(millis()-lastMoved)>=15 ) { lastMoved =millis(); if (direktionalität ==UP) { currentPos =currentPos + 3; aufrechtzuerhalten. Else { currentPos =currentPos - 3; } Serial.print ( "aktuelle Position:"); Serial.print (currentPos); HelmServo.write (aktuelle Pos); } if ((currentPos>=upAngle) || (currentPos <=downAngle)) { Flipping=false; } }}; 

Auch hier haben wir dies ohne delay() umgesetzt Funktion. Wenn Sie dieses Projekt erstellen und genau beobachten, werden Sie feststellen, dass Sie mit IronMan04.ino, das auf dem Uno läuft, die Frontplatte umdrehen und das Neopixel gleichzeitig ein- und ausschalten können. Beim IronMan02.ino ist die delay() bewirkt, dass der blockiert wird, bis das Servo mit der Bewegung fertig ist. Danke Bill Earl!

Diese letzte Zeile der Update-Funktion überprüft, ob wir die obere oder untere Position des Bildbausteins nicht überschreiten, da die loop() Funktionsaufrufe Update() es wird dies nach der letzten Bewegung des Helms ständig überprüfen und dann das Umdrehen einstellen Variable auf false, um anzuzeigen, dass die Frontplatte mit der Bewegung nach oben oder unten fertig ist. Beim nächsten Durchlauf mit Umblättern false, die gesamte Funktion wird im Wesentlichen übersprungen.

 if ((currentPos>=upAngle) || (currentPos <=downAngle)) { flipping=false; } 

Zukünftige Richtungen:

Es gibt so viele Dinge, die wir mit diesem Projekt machen könnten, nicht genau, wo wir anfangen sollen! Leuchtende Augen sind eins. Vielleicht BLE-Konnektivität mit dem arduino101 hinzufügen? Eine Sprachschnittstelle? Jarvis ruft definitiv dazu auf!

Code

Iron Man Helm und Arc Reactor Projekt!
https://github.com/lachendeKatze/Iron-Man

Schaltpläne


Herstellungsprozess

  1. Kanaldeckel
  2. Kleiderbügel
  3. Gusseisenofen
  4. Fußballhelm
  5. Eisen
  6. Batterie
  7. UnifiedWater v1
  8. Iron Man
  9. Arduino-Power
  10. Schmiedeeisen verstehen