Animatronic Iron Man-Anzug Mk III

17 Schritt:Schritt 1: Erstellen Sie Design / Details Schritt 2: Werkzeuge und Materialien Schritt 3: Erstellen Sie Tipps Schritt 4: Wireless Helm Schritt 5: Unterarm Handschuh Raketen Schritt 6: Schulterraketenbehälter Schritt 7: Hip pods Schritt 8: Zurück Klappen Schritt 9: Boots Schritt 10: Electronics Schritt 11: Elektronik- links schematisch und Code Schritt 12: Elektronik- rechten Seite Schaltpläne und Code Schritt 13: Elektronik- und Wireless Helm schema Code Schritt 14: schematische Electronics- und Code für die Stiefel Schritt 15: Brust und Repulsor Lichter Schritt 16: Switch betrieben Helm Schritt 17: Häufig gestellte Fragen

Animatronic Iron Man-Anzug Mk III

Animatronic Iron Man-Anzug Mk III

Animatronic Iron Man-Anzug Mk III

Animatronic Iron Man-Anzug Mk III

Animatronic Iron Man-Anzug Mk III

Animatronic Iron Man-Anzug Mk III

Alle 7 Artikel anzeigen

Iron Man Kostüme sind sehr beliebt in der letzten Zeit und die Nummer eins Frage, die mir am häufigsten gestellt wird, ist "Wie kann ich auf meine Klage Animatronics hinzufügen?" Mein Freund Greg wollte Animatronics, seine MkIII Fiberglas Anzug hinzufügen, damit er mich um Hilfe gebeten, und aus diesem Anzug gingen wir alle aus.

Wir wollten so viele Funktionen wie in den Filmen wie möglich, was nicht einfach war, dass die meisten dieser Sequenzen wurden nicht mit praktischen Auswirkungen getan gesehen hinzuzufügen. Das andere Problem war, wie sollte alle Funktionen angesteuert werden? Nach Prüfung mehrerer Optionen, die wir verwendet RFID-Tags in den Handschuhen, die Raketenbehälter Schulter, Hüfte Hülsen, Unterarm Rakete zurück Klappen und Helm auslösen. Der Helm hat drahtlose Steuerung über XBee Wecker. Die Stiefel leuchten und machen Sound beim Gehen mit Hilfe eines Infrarot-Abstandssensor im Koffer, um den Effekt auszulösen.

Hier ist ein Video, dass alle Anzug Funktionen- zeigt



Dies ist sicherlich kein einfaches Projekt, aber wenn Sie kennen sich in einem Arduino und kann einen Lötkolben zu schwingen diese instructable wird Ihnen zeigen, wie es geht.

Achten Sie darauf, auf ein Bild klicken, um eine größere Ansicht zu erhalten.
Update: Ich habe auch erstellt eine Animatronics-Forum , wo Menschen gehen, um Hilfe bei ihrem Kostüm und Requisite Projekte zu bekommen. Ich bekomme so viele Nachrichten für spezifische Projekt Hilfe von Menschen, die ich beschlossen, einen eigenen Forum, wo jeder Hilfe zu erhalten und Ideen zu schaffen!

Lasst uns anfangen!

Schritt 1: Erstellen Sie Design / Details

  1. Animatronic Iron Man-Anzug Mk III

    Linke Seite, rechte Seite und Stiefel: Der Anzug ist im Grunde in drei Systeme gebrochen.

    Die linke Hand hat zwei RFID-Tags, die programmierten Sequenzen für den Helm, hip Schoten und zurück Klappen auslösen. Die rechte Hand RFID-Tags auslösen programmierten Sequenzen für die Raketen Unterarm und Schulter-Raketen. Die Stiefel haben einen Infrarotsensor, der die Boot-Beleuchtung und Sound-Effekt auslöst, sobald der Schuh vom Boden abgehoben.
    Die einzigen Schwierigste an diesem Build ist, dass der Anzug passt wie ein Handschuh- gibt es keinen Raum in it! Der Helm hat weniger als 1/2 "der Raum um den Kopf, gibt es ungefähr 1" Tiefe für die Schulterraketenbehälter und der Hüfte pod Bereich hat weniger als 1 "Tiefe zur Verfügung, so dass die Verpackung der Mechanik und Elektronik ist wirklich eng. Ein weiterer Problem ist, dass es fast keine ebenen Flächen so Servos Montage und Hardware wirklich interessant.

    Das System ist Arduino und verwendet vier ProMinis- eine für jede Seite, eines für die Stiefel und einer in den Helm. Da wollten wir den Helm leicht zu nehmen zu sein, und los geht es entschieden drahtlose Verwendung XBee Funkgeräte, die Steuersignale zu senden, um zu machen. Für die Punkt-Verdrahtung von der Elektronik läuft darauf montiert auf der Rückseite auf die Arme und Füße wir verwendet Ethernet-Kabel und Buchsen, so dass sie leicht getrennt werden können. Die Soundeffekte für die Stiefel werden von einem WaveShield, die auf einem Arduino Pro sitzt abgewickelt.

    Wenn Sie nicht mit Arduino und XBee Funkgeräten vertraut sind dann durch diese instructable lesen Sie bitte. Es wird eine Menge über die Grundlagen erklären und Sie werden und in kürzester Zeit zu sein!
    Ein weiteres Problem mit Systemen wie diesem sind die verschiedenen Spannungs- und Strombedarf, so dachten wir, es am besten, die Servos getrennt Macht mit AA-Batterien, vor allem für einfache Verfügbarkeit, wenn der Klage ist es, auf Messen getragen werden.

Schritt 2: Werkzeuge und Materialien

  1. Animatronic Iron Man-Anzug Mk III

    Animatronic Iron Man-Anzug Mk III

    Animatronic Iron Man-Anzug Mk III

    Soweit Werkzeuge gehen, die meisten alle von der Arbeit wurde mit einfachen Werkzeugen getan -

    Ich habe eine Dekupiersäge auf das Sperrholz, Lötkolben / Fackel, Drahtschneider, Zangen, Schraubendreher, Klebepistole und einem Dremel Werkzeug geschnitten. Ein Multimeter wird auch sehr nützlich sein, ebenso wie eine Servoprogrammierer . Ein Servo-Programmierer können Sie verschiedene Leistungsparameter der digitalen Servos, wie Drehzahl, Drehrichtung, etc. Sie können auch verwendet werden, um eine Servobewegung, die super praktisch ist bei der Installation zu testen Servos einzustellen.

    Ein bisschen von Glasfaser Arbeit wurde in den Helm getan und dafür ich wirklich wie Epoxid harz ich Westen Systeme Epoxide. Epoxidharz riecht nicht und es ist viel schwieriger, als Polyesterharz. Der Westen Systeme Epoxidharz hat auch eine unglaublich lange Haltbarkeit und es ist super einfach zu mischen, wenn Sie ihre dosierten Pumpen zu verwenden. Propoxy 20 (a zwei Komponenten Epoxidharz Kitt) ist etwas, dass ich eine Menge bei der Verklebung von verschiedenen bedarf- es ist großartig für die Verklebung von Metallen auf Kunststoff. Ich benutze auch eine Menge Sekundenkleber zum Heften Teile an ihrem Platz zu sichern, bevor sie mit Epoxid-Kitt. Mein Favorit ist Gorilla Kleber und ich oft einen Beschleuniger zur Beschleunigung es ist Trockenzeit. Apoxie Sculpt wird verwendet, um Lücken zu füllen und fügen sculpted Details. Zur Montage Servos Ich mag hohe Festigkeit Klett- es Ihnen erlaubt, leicht zu entfernen Sie den Servo zur Repositionierung (wenn Sie nicht um Schrauben verwenden möchten).

    West-Sytems Epoxy
    Propoxy 20
    Gorilla Superkleber
    Apoxie Sculpt
    Hohe Festigkeit Velcro

    Achten Sie darauf, eine Atemschutzmaske beim Schneiden und Schleifen von GFK tragen! Ich habe auch immer Einmalhandschuhe tragen, wenn mit Epoxiden und Harze.

    Die meisten Baumaterialien waren nichts Besonderes. Für Drehgelenke haben wir Messing Rohre, Stangen und Stahldraht. Die genaue Größe ist nicht besonders wichtig- Ich habe alles, was ich in meinem Schrott bin hatte. Messing und Aluminium Folie wurde auch verwendet, um Teile für Servogestänge zu machen. Solange es ist, es ist nicht super dünne Material die genaue Größe ist nicht wirklich wichtig. Alle von der Messingblech verwendet wird, ist 1/16 "(1,6 mm) dick. Das Aluminiumblech für den Schulterrakete Servohebel verwendet wird, ist in der Umgebung von 1/8" (3,2 mm) dick. Birkensperrholz wurde für Dinge wie Servohalterungen, die Raketenbehälter und Hüfte Hülsen verwendet.
    Messingblech, Rohre, Stangen und Stahldraht wird hergestellt von K & S Metals .
    Ich kaufe Aluminiumblech von Online Metals .
    Birkensperrholz ist von Midwest Produkte .

    Soweit Elektronik angeht ist es ganz die Wäsche list-

    2 × ID-12 RFID-Tag Leser Sparkfun Teil # SEN-11827 (LA-Version ist Ersatz-)
    2 × XBee Series Modul 1 Sparkfun Teil # WRL-11215
    2 × Adafruit XBee Adapter Board Adafruit Produkt-ID: 126
    2 × Arduino ProMini 328 5V Sparkfun Teil # DEV-11113
    1 × Arduino ProMini 328 3.3V Sparkfun Teil # DEV-11114
    1 × Arduino Pro 328 5V Sparkfun Teil # DEV-10915
    1 × Adafruit Wellenabschirmschicht Adafruit Produkt-ID: 94
    1 × Pololu 5V DC / DC-Wandler D24V5F5 -Schritten Sie den Helm 7.4V Batteriespannung für die ProMini
    5 × Hitec HS-5055MG sub-micro servo für den Unterarm Handschuh / hip pods- Servocity.com
    8 × Hitec HS-85MG micro servo für die Schulterraketenbehälter / hip pods- Servocity.com
    3 × Hitec HS-82 mg Servomikro für den Unterarm Handschuh pod / Schulterrakete pods- Servocity.com
    2 × Hitec HS-485HB Standard-Servo für den Rücken flaps- Servocity.com
    1 × Hitec HS-5087MH micro servo für die Helmkinn Abschnitt- Servocity.com
    1 × Hitec HS-7245MH mini Servo für den Helm faceplate- Servocity.com
    4 × 16mm RFID-Tag-Taste (125 kHz) Sparkfun Teil # SEN-09417
    2 × Luxeon Rebel hohe Leistung weiße LED für die Beleuchtung in den Stiefeln Sparkfun Teil # BOB-09656
    1 × Sharp GP2D120XJ00F Infrarot-Näherungssensor Sensor für die Unterseite des Schuhs Sparkfun Teil # SEN-08959
    8 × RJ45 8-Pin-Anschluss Ethernet-Kabelanschluss Sparkfun Teil # PRT-00643
    8 × Breakout Board für RJ45 Sparkfun Teil # BOB-00716
    1 × 7027 "BuckToot" LED-Treiber-Modul an die Macht der Luxeon LEDs Sparkfun Teil # COM-09642
    4 × JST RCY Steckverbinder für den Helm Akkus Sparkfun Teil # PRT-10501
    6 × AAA NiMH-Zellen 1,2 V für den Helm Batteriepack - lokalen Lebensmittelgeschäft
    2 × RFID-Leser Breakout Sparkfun Teil # Produkt SEN-08423
    1 × SD / microSD-Speicherkarte (4 GB SDHC) Adafruit Produkt-ID: 102
    4 × Gerade Break Away Headers - für die Herstellung von Steckverbindern / Servokabel Sparkfun Teil # PRT-00116
    4 × Buchsenleisten für die Herstellung von Steckverbindern / Servokabel Sparkfun Teil # PRT-00115
    2 × Adafruit Perma-Proto Quarter großen Brotschneidebrett für die Montage Anschlüsse usw. Adafruit Produkt-ID: 589

    6 x 120 TIP-Transistoren zum Einschalten LEDs und Triggerung Sound-Effekte. Digkey verkauft sie.
    10 x Stromschiebeschalter. Diese verbinden alle einzelnen Energiequellen in der Klage. Digikey verkauft sie.
    1 x Adafruit taktile Ein / Aus-Schalter für die Helm- Adafruit Produkt-ID: 1092
    2 x 4-40 Drehverbindungen (pkg von 4) - Sie zwei Verbindungen für den Helm, zwei für den Unterarm Flugkörper und vier für die Hüfte müssen pods- Servocity.com
    2 x 4-40 12 "Länge Gewindestab verwendet, um den Helm und Hüfte pod Servo linkages- machen Servocity.com
    34 x PLCC-2 Package SMT weiße LEDs - 10 für die Augen und 24 für die Brust-Licht. Man könnte leicht zu ersetzen Standard-LEDs. Ich kaufe diese in der Masse bei eBay sondern Einzelhändler wie Digikey verkaufen auch sie.
    34 x 1206-Gehäuse 100 Ohm Widerstände SMT - 10 für die Augen und 24 für die Brust light.You könnte leicht zu ersetzen Standard-Widerstände. Ich kaufe diese Überschusses aus einem örtlichen Geschäft, aber Einzelhändler wie Digikey verkaufen auch sie.
    1- SMD-Prototyping-Board- zum Löten der Oberflächenmontage-LEDs und Widerstände für die Augen verwendet. Sparkfun Teil # PRT-08708
    16 x 5 mm Weiß LEDs- für die Hüfte Hülsen.
    16 x 100 Ohm Widerstände (1/8 Watt) - für die Hüfte Hülsen.
    Ich habe auch eine Menge von Draht! Die Draht und Ethernet-Kabel habe ich kam aus geborgen Elektronik- allem Computer und Drucker. Ich empfehle auf jeden Fall mit Litze, wie es ist viel flexibler, was ziemlich wichtig ist, da eine Klage wie diese werden ein gutes Stück von Bewegung zu sehen.
    Kabelbinder und verschiedene Größen der Schrumpfschlauch wird auch sehr nützlich sein.

Schritt 3: Erstellen Sie Tipps

  1. Animatronic Iron Man-Anzug Mk III

    Notizen über Mechanik und Konstruktion Anzug:

    Gregs Anzug ist geformtes Fiberglas. Es ist unwahrscheinlich, dass ein Schaumstoffanzug wäre steif genug ist, um die animatronic Systeme ohne irgendeine Art von Verstärkung zu unterstützen, insbesondere in den Schultern, als ein großes Gebiet muss weggeschnitten werden.

    Auch wäre es am besten, um ein fertiges montiert (aber nicht lackiert) tragbarer Anzug bevor Sie irgendeine Animatronic-System. Es ist wichtig, genau zu wissen, wie viel Platz Sie mit und wie sie den Anzug Performer bevor Animatronics passt zu arbeiten.

    Es gibt viele verschiedene Möglichkeiten, die Mechanik dieser Klage könnte gebaut worden. Wir haben versucht, leicht verfügbaren Materialien in Hobbyläden und Baumärkten zu verwenden, wann immer möglich, um Zeit und Geld zu sparen. Elemente wie die Schulterraketenbehälter und Hüfte pod Scharnieranordnungen leicht 3D-Druck, wenn dies gewünscht wird.

    Ein paar Hinweise und Tipps zur Verwendung von Servos im Build:

    Die aufgeführten Servos sind genau das, was wir auf Basis von Geschwindigkeit, Leistung, Langlebigkeit und Kostenanforderungen verwendet. Ich würde auf jeden Fall empfehlen, mit Metallgetriebe-Servos mit Kugellagern. Nylon ausgerichtet Servos Streifen sehr leicht, vor allem die Mikro- und Sub-Mikro Vielfalt.

    Mehrere der Servos müssen geändert werden, um Drehrichtung umzukehren, da die rechte und linke Seite der verschiedenen Klage Teile erhalten dieselben Steuersignals. Es gibt drei Optionen-Anwendung Digital-Servos (am einfachsten, aber am teuersten), haben der Lieferant ändern Sie die Drehrichtung (Servocity.com tut dies) oder ändern Sie die Dreh Sie sich, indem sie die Servo auseinander und die Umkehr der Motorleitungsdrähte und die äußeren zwei Topf Drähte . Ich wechselte sie auf die Micro-Servos für die Schulter-Raketen und der Hüfte Hülsen mich, da ich billig. :)

    Wir haben zu wählen, um Hochspannungs Digital-Servos im Helm für die Macht, die sie zur Verfügung stellen und die Tatsache, dass ihre Geschwindigkeit kann mit einem Servo-Programmierer eingestellt werden zu verwenden. Die Servos für die Hüfte pod Schiebewände und Handschuh Seitenteile auch Digital-Servos, da sie benötigt leistungsfähige und Vertauschen der Drähte auf sub-micro Servos kann wirklich schwierig sein zu sein. Der andere Grund war, weil die Standard-Sub-Mikroservos verwenden Nylon Zahnräder und wir Metallgetriebe für lange Lebensdauer verwenden wollte.

    Die Servopositionswerte im Code müssen wahrscheinlich für einen anderen Build verändert, da keine zwei Iron Man Anzüge sind gleichermaßen werden. Der Schlüssel, wenn dies zu tun ist, um kleine Änderungen in den Werten zu machen, während die Aufmerksamkeit auf sicherzustellen, dass die Servos nicht immer zum Stillstand, da sie leicht beschädigt werden können. Wenn ein Servo bedeutet Stillstand schalten Sie sofort die Stromversorgung der Servos und Anpassungen vornehmen, um den Code.

Schritt 4: Wireless Helm

  1. Animatronic Iron Man-Anzug Mk III

    Animatronic Iron Man-Anzug Mk III

    Animatronic Iron Man-Anzug Mk III

    Animatronic Iron Man-Anzug Mk III

    Animatronic Iron Man-Anzug Mk III

    Animatronic Iron Man-Anzug Mk III

    Alle 41 Artikel anzeigen

    Der erste Punkt auf unserer Liste machte der Helm geöffnet.

    Herauszufinden, wie man den Helm der Arbeit war ziemlich knifflig. Wir wollten auf jeden Fall es um drahtlose sein, so könnte es leicht abgenommen werden, aber es gibt kaum in den Helm jedes Zimmer für Servos, geschweige denn Elektronik. Als Greg brachte den Helm für mich ist es bereits in der oben für die zwei kleinen Schwenk Links, die auf der Oberseite der Frontplatte angebracht wurden geformt Tracks. Die Frontplatte hat zwei Schwenkarme, die es zu schlagen und zurückgleiten ließ. Das erste System, das ich installiert, um den Helm zu motorisieren verwendet zwei identische Hochspannung digital mini Servos mit einem Stab-System, das die Frontplatte und das Kinn bewegt zugleich. Wie die Servos zog die Stangen die Arme der Frontplatte und eine zweite Schwenkstange geschoben das Kinnteil geöffnet. Während dieses System funktionierte gut wurde es schließlich verschrottet wie es dauerte zu viel Platz an den Seiten des Helms, vor allem in den Tempel, wo der Arm schwenkt befanden.

    Hier ist ein Video von der ersten Helmtest. Sie können die RFID-Lesegerät und XBee Funk auf ein Steckbrett Testschaltung zu Beginn des Video- sehen



    Das überarbeitete System funktioniert ein bisschen anders und viel einfacher. Ich änderte den ursprünglichen Helmsystem, indem es von einem Multilink / Multigelenksystem zu einem einfachen drei Drehsystem. Die Arme, die die Frontplatte angehoben wurden entfernt, wie ihre vier Drehpunkte. Die Titel in der Oberseite des Helms wurden gehalten, aber die Verbindungen hatten eine Tendenz zu binden, wie sie so verschwenkt der Link von Grund auf rekonstruiert als Festpunkte und an die Spitze des Helms Frontplatte mit Propoxy 20 Epoxid-Kitt in einer festen Position geklebt.

    Der Servomechanismus wurde so geändert, würde man mini Servo die Frontplatte zu öffnen, während ein anderer würde die Kinn so das Timing könnte geändert werden, so würde der Frontplatte zum ersten Mal öffnen, und dann würde das Kinn öffnen zu öffnen. Beim Schließen der Helm das Kinn würde, dann die Frontplatte schließen. Die Frontplatte hat eine Servo Messing Arm, Silber, um ein Gelenk, das in der oberen Mittelteil des Helms fiberglassed gelötet ist. Die Messingplatte, die mit dem Gelenkrohr verlötet ist wieder ein weiter Weg, um die Helmbereich, wie es sonst zu flexy richtig funktioniert werden unterstützt erweitert. Beide Servos an den Helm mit hoher Festigkeit Klettverschluss befestigt.

    Das Kinn Servo wurde für eine Mikro-Servo getauscht und es drückt einen 4-40 Gewindestange, die das Kinn öffnet Abschnitt- es ist eine ziemlich einfache Anordnung. Schließlich wurde das Kinn Servo näher an der Mitte des Kinns Abschnitt, um mehr Platz für einen der Akkus machen verlegt.
    Hier ist das Video von der überarbeiteten Helm Animatronics. Beachten Sie die Entfernung der benötigt wird, um die faceplate- Hubarme



    Auf der Elektronikseite wurde ein Split-Akkupack mit sechs AAA NiMH Zellen für insgesamt 7,4 V, um die Hochspannung digital Servos Macht aufgebaut. Ursprünglich hatten wir zur Verwendung von LiPo-Packs geplant hatte aber das Gefühl, dass NiMH-Zellen wäre viel sicherer und weniger Aufwand in Bezug auf Batterie Management- für weitere Informationen finden Sie im FAQ-Bereich sein. Die beiden Akkus wurden bis zu einem Arduino ProMini (3,3 V-Version) zusammen mit einem XBee Funk verdrahtet. Die Stromversorgung des ProMini wurde auf 5V mit einem Pololu DC / DC-Wandler verstärkt. Die Elektronik wurden mit Schrumpf zum Schutz abgedeckt. Ich benutze eine Hitec X1 MF-Ladegerät , den Helm Batterien aufzuladen.
    Eine versiegelte Druckknopf-Schalter wurde zusammen mit einem Transistor hinzugefügt, um die LED-Lichter für die Augen zu machen. Die Augen wurden mit weißen SMD-LEDs konstruiert (alle kleinen LEDs funktionieren wird) mit Milchkännchen Material für die Linsen verwendet. Die Linsen haben einen Schlitz an der Oberseite, so kann der Träger zu sehen und schwarz Schaumplatte wurde verwendet, zu blockieren, die Licht auf die Innenseite des Helms.
    Schließlich die gesamte Elektronik in der Kinnpartie des Helms befestigt ist. Alles, was gerade noch dort passen, ohne in der Lage zu erkennen, wenn der Helm ist offen. Insgesamt sind wir sehr zufrieden damit, wie der Helm sich heraus. Es öffnet sich sehr schnell und wir können die Geschwindigkeit der Servos zusammen mit dem Zeitpunkt der Öffnungs- / Schließfolge sehr leicht ändern.

    So, jetzt ist die Frage: "Was, wenn mein Helm keine Spuren in der Oberseite des Helms geformt haben?"

    Wenn Sie eine haben Iron Man Helm aus einem Bausatz oder machte es sich mit dem Pepakura Verfahren können Form Titel hinzuzufügen. Ein anderer Freund von mir hatte einen Helm MkIV er als Ausstellungsstück zu animieren wollte. Ich habe die gleiche Mechanik wie Gregs MkIII Helm aber die MkIV keine Spuren in der Oberseite des Helms geformt haben, so fügte ich sie. Das erste, was ich tat, war eine kleine runde Plastikstangen und überziehen sie mit einer dünnen Schicht von Vaseline- Dies ist sehr wichtig! Die Vaseline dient als Formtrenn so können Sie die Stäbe später zu entfernen. Die Stäbe wurden an der Unterseite des Helms angeordnet, wo die Spuren waren located- ist es wichtig, die Schienen so parallel wie möglich erhalten werden, oder die Verbindungen werden zu binden, wie die Frontplatte geöffnet wird.

    Weiter vermischt ich etwas Propoxy 20 Epoxid-Kitt und baute es in den Kunststoffstäben. Sobald das Epoxidharz Kitt ausgehärtet Ich legte bis einige leichte Glasfasergewebe auf der Oberseite mit etwas Epoxidharz. Das Glasfasergewebe wird das Epoxid-Kitt zu stärken und sicherzustellen, dass es nicht von der Unterseite des Helms abzulösen. Dann nahm ich die Kunststoffstäbe und schneiden Sie die Schlitze in der Oberseite des Helms so die Kugelkulissenführungen konnte in den Nuten gleiten. Die Schlitze in der Oberseite des Helms muss schmaler als die Formrillen sein, damit der Ball Link nicht herauskommt, wie die Frontblende wieder.
    Ich Silber angelötet die Kugel Links, die auf der Oberseite der Frontplatte zu befestigen, aber es gibt eine andere, einfachere Option. Sie können kaufen, Nylon Bälle in allen verschiedenen Größen- Bohrer durch die Kugel ein Loch und befestigen es an einem Ende des "L" förmigen Stange durch Abflachung der Stange leicht (dies wird dazu beitragen, den Ball auf der Stange zu halten) und einen Tropfen Sekundenkleber auf, um es zu sichern.
    Eine Sache, die ich fand wirklich hilfreich war, meine Stangen an der Frontplatte mit Sekundenkleber zu befestigen (verwenden Sie einen Beschleuniger Sprüh- Backpulver funktioniert auch), und schieben Sie die Frontplatte wieder sicherstellen, dass es eine gleichmäßige Bewegung hat. Sobald Sie die Positionierung richtig zu verwenden Sie dann das Epoxid-Kitt, um sie zu sichern.

Schritt 5: Unterarm Handschuh Raketen

  1. Animatronic Iron Man-Anzug Mk III

    Animatronic Iron Man-Anzug Mk III

    Animatronic Iron Man-Anzug Mk III

    Animatronic Iron Man-Anzug Mk III

    Animatronic Iron Man-Anzug Mk III

    Animatronic Iron Man-Anzug Mk III

    Alle 19 Artikel anzeigen

    Außer dem Helm, eine der Eigenschaften, die wir als ein "must have" Artikel für den Anzug betrachtet war der Unterarm Rakete.

    Ähnlich wie der Helm hat der Unterarm Handschuh Raketen einige wirklich dichte Verpackung. Es gab auch das Problem, dass in dem Film, wenn der Handschuh öffnet es als visuelle Wirkung getan (wie die meisten alle Anzug Funktionen sind), so dass wir, um herauszufinden, um den visuellen Effekt in einen praktischen Effekt einzuschalten.
    Wir hatten andere Raketenfächer, die Menschen getan hatte gesehen, aber sie hatten in der Regel nur die obere Öffnung wollten wir die Seiten umklappen als auch. Das andere, was wir wollten, war für die Rakete pod zu öffnen und wieder, genau wie im Film. Wir wollten auch den Flugkörper zu verlängern outward- in für einen Pfennig, denn schon!
    Um die Öffnung der Kammer Fiberglas Fehdehandschuh wurde zum ersten Mal auseinander in die entsprechenden Abschnitte geschnitten und eine Kunststoffgrundplatte machen wurde in die Öffnung geklebt. Die Bodenplatte gibt eine schöne ebene Fläche, um die Servos montieren. Jedes der geschnittenen Seitenwände hat eine 4-40 Schraube auf der Innenseite nach vorne Punkt mit Propoxy 20. Auf diese Schraube wurde eine Einbau geklebt Schwenkverbindung mit einer Stange, die in den vorderen Bereich des Handschuh geklebt wurde. Dabei bildete sich eine einzige Schwenk multidirektionale Scharnier für die Vorderseite jedes der Seitenteile.

    Um die Seitenwände nach unten klappen zwei Untermikroservos haben ihre Arme mit einem kleinen Abschnitt des gebogenen Stahldraht, der an der Rückseite von jeder der Seitenplatten geklebt wurde angebracht. Die Servos werden an der Grundplatte mit hoher Festigkeit Klettverschluss befestigt. Da die Servoarme auf die Seite zu drehen Platten Dropdown. Ein sehr einfaches und zuverlässiges System.
    Der Flugkörper Gehäuse wurde mit dünnen Birkensperrholzplatte aufgebaut. Um das Gehäuse nach oben und hinten ein kleines Parallelogramm-Verbindung hergestellt wurde und an den Mikroservo, die das Gehäuse erhöht angebracht. Die Servo ist mit dem Spießrutengrundplatte mit hoher Festigkeit Klettverschluss befestigt. Die vorderen Gelenkteil verwendet einen 4-40 Schwenkverbindungsglied an der Sperrholz Gehäuse- ein kleines Loch in der Raketengehäuse gebohrt und der Drehgelenkstange an Ort und Stelle geklebt befestigt ist. Der hintere Link nutzt Musik Draht, der in Messingrohre, sowohl die Servo und die Sperrholzgehäuse geklebt schwenkt. Das Gesicht des Raketengehäuses wurde mit Apoxie Sculpt gebaut.

    Der Flugkörper nach vorne in dem Gehäuse durch eine Untermikroservo mit einem langen Arm bewegt. Der Stellantrieb an der Unterseite der Gondel montiert, und der Arm durch den Boden der Hülse. Ein kurzes Stück Stahldraht ist mit dem Servohebel angebracht und geht durch die Rückseite Zentrum der Rakete, um so die Servo Arm dreht sich der Flugkörper ausgefahren und zurückgezogen durch die Öffnung pod. Die Rakete ist eine kurze Länge der Holzdübel geschliffen zu gestalten.

    Die AA-Batteriehalter unterhalb der Grundplatte zusammen mit einem Netzschalter und einem Ethernet-Anschluss statt. Der Ethernet-Anschluss ist mit einer kleinen Leiterplatte mit Anschlüssen für die Servos montiert und es wurde auch Drähte, die die Handschuhe zu erreichen erweitert. Ein Ethernet-Kabel verläuft von der Arduino in der Rückseite der Anzug, den Arm nach unten und verbindet sich mit dem Handschuh dann. Dieses Kabel überträgt die Signale für die Servos sowie Signale und die Stromversorgung des RFID-Lesegerät im Handschuh.

    Das ist eine ganze Menge von Hardware in einem sehr kleinen Raum. Ob Sie es glauben oder nicht, seinen Arm passt es keine Problem die Öffnung ist viel größer, als es aussieht auf dem Foto. Der Fehdehandschuh arbeitete perfekt, direkt aus dem Tor, das war super.

Schritt 6: Schulterraketenbehälter

  1. Animatronic Iron Man-Anzug Mk III

    Animatronic Iron Man-Anzug Mk III

    Animatronic Iron Man-Anzug Mk III

    Animatronic Iron Man-Anzug Mk III

    Animatronic Iron Man-Anzug Mk III

    Animatronic Iron Man-Anzug Mk III

    Alle 19 Artikel anzeigen

    Wir wollten wirklich Öffnung Schulter Raketenbehälter. Bad.

    Wir dachten, es wäre so cool zu haben Schulterraketenbehälter öffnen und entfalten wie im Film. Das Problem war, es gab keine Möglichkeit sie jemals passen könnte da drin, und führen Sie in einer ähnlichen Mode- den Anzug einfach nicht die notwendige Innenvolumen. Es ist nur etwa ein Zoll Nutztiefe im Schulterbereich. Diese darn visuelle Effekte noch einmal ...
    Sobald ich begann, die Messungen mit Greg im Anzug war ich nicht so sicher, dass es getan werden könnte. Niemand hat je in einem Kostüm getan hatte. Ich denke, dass ich wahrscheinlich skizziert ein paar hundert Entwürfe versuchen, herauszufinden, einen Weg, um den Pod haben aufrichten und umklappen. Dies war ein wesentliches Merkmal ich wirklich, wirklich wollte. Ich wollte nicht, um eine pod, die geöffnet haben, wie einer von denen, Pop-up-Autoscheinwerfer, wo es nur eine einzige Platte, die sich hebt. Ich wusste, dass ich nicht haben durchzuführen, wie in dem Film mit der gesamten Schulterbereich bewegten, aber ich fühlte, ich könnte etwas, das wirklich cool schaute zu bekommen. Nachdem ich die Entwürfe eingegrenzt habe ich ein kostenloses Programm namens ForceEffect Bewegung zu spielen, um mit Gestänge Mechanik. Ich habe meine Design-Skizzen als Hintergrundbilder und dann würde ich meine Verbindung Mechanik auf sie zu ziehen. Das erlaubte mir, sehr schnell entdecken eine Menge Gestaltungsmöglichkeiten und animieren die Mechanik. Es ist eine tolle App, Arbeit zu verrichten wie diese.
    Ich schließlich auf einen Abschnitt des Schulter Aufspaltung in zwei Panels- einem Hub- / Dreh vorwärts und einen Hub- / Dreh rückwärts angesiedelt. Dies würde eine anständige Größe Öffnung für eine geeignete Größe Raketen pod geben. Ich wollte die Rakete pod sehr nahe in der Größe dem Film pod. Der große Trick, um was es war Arbeit macht die Kapsel ein offenes Feld, so dass die Servo könnte in it- ohne dass verbergen gab es keine Möglichkeit, es würde immer im Schulterhöhle Passform.
    Der Pod wird aus Birkensperrholz aufgebaut und schwenkt aus Messingrohr und Stahldraht hergestellt. Wie der pod Servoarm dreht das Heck der Rakete pod wird von der Servo geschoben. Die pod Servo auf einer 1/8 "dicke Aluminiumplatte, die mit dem vorderen Schulterplatte Servo angebracht montiert ist. Auf der Rückseite hat eine ähnliche Servo Aluminium-Platte angebracht ist. Die Aluminiumplatten haben Löcher in ihnen zum Anbringen der beweglichen Schulter Gewinde Platten mit kleinen Messing spitzen Klammern, die den beweglichen Schulterplatten geklebt werden. Die Löcher in den Messing spitzen Klammern sind geschlitzt, um für einen kleinen Bereich der Höhenverstellung der Schulterplatte zu ermöglichen.
    Es gab eine enorme Menge von Versuch und Irrtum Pass wie einst die Schulter Schnitte wurden aus den glasfaser Anzug geschnitten gäbe es keinen Weg mehr Hintergrund mussten wir sein Recht auf das Geld das erste Mal. Die Panel-Öffnungen wurden abgeklebt und mit Hilfe eines Dremel Werkzeug mit einer Trennscheibe geschnitten und dann wurden die Servos in den Schulterbereich mit Sperrholz Halterungen einrasten geklebt montiert. Erhalten Sie die Paneele an genau richtig fit war eine echte Herausforderung.
    Es dauerte ein wenig spielen mit dem Code, um die Bewegungen richtig hinzubekommen, wie die Rückwand muss zuerst zu öffnen, dann die Frontplatte und schließlich die pod Umklappen und dann in umgekehrter Reihenfolge sie in der Nähe zu haben.
    Während die fertigen Hülsen sind keineswegs Film genauen sie sehen wirklich cool, wenn sie zu öffnen. Ich denke, wir überrascht viele unserer Iron Man-Anzug Gebäude Freunden, wenn sie sie zum ersten Mal sah, zu arbeiten!

Schritt 7: Hip pods

  1. Animatronic Iron Man-Anzug Mk III

    Animatronic Iron Man-Anzug Mk III

    Animatronic Iron Man-Anzug Mk III

    Animatronic Iron Man-Anzug Mk III

    Animatronic Iron Man-Anzug Mk III

    Animatronic Iron Man-Anzug Mk III

    Alle 12 Artikel anzeigen

    Ursprünglich hatten wir nicht auf das Hinzufügen der Hüfte Hülsen geplant.

    Greg weiß jetzt, mich gut genug um zu wissen, dass ich dazu neigen, zuerst sagen, dass es nicht getan werden kann oder nicht wahrscheinlich ist und dann eine Viertelstunde später würde ich ihn anrufen und ihm sagen, ich dachte, es außerhalb das ist nur meine MO der Hüfte pods sind ein perfektes Beispiel dafür. Ich sah zuerst im Anzug und sagte "Auf keinen Fall." Aber natürlich ist es nervte mich, weil es so cool zu haben, sie zu bewegen ... So zuerst ich herausgefunden, wie man sie aus dem Hip Abschnitt Pop. Dann dachte ich, es wäre schön, wenn sie sich drehen kann. Dann dachte ich, gut Heck- könnte genauso gut den Hebel an der Abdeckplatte Schiebe machen und sie leuchten mit Soundeffekten!
    Um die Schoten herausspringen habe ich vier kleine Scharniere und verschweißt sie paarweise zusammen, um ein Parallelogramm-Scharnier zu machen und dann eine Mikroservo, um das Scharnier zu bewegen. Der Servogestänge aus zwei 4-40 Drehverbindungen und einer kleinen Länge 4-40 Gewindestange gemacht. Das Gestänge wird an der Parallelogrammführung Scharnier mit einem Messingwinkelabschnitt, der dem Scharnier angeschraubt ist. Das fertige Mechanismus ist sehr niedriges Profil. Wenn Sie nicht schweißen können die Scharniere zusammen könnten sie zusammengeschraubt werden, auch mit Hilfe eines überlappenden Stück Holz oder Metall und Epoxidharz oder Silber-Lot miteinander verbunden. Andere Optionen würden zu Maschine sie aus Metall sein oder 3D die Scharniere zu drucken.

    Getting die Schoten nach rechts fit war schwierig, weil die Glasfaser hip Abschnitt wurde in einem Stück geformt, so musste alles auseinander geschnitten und rekonstruiert werden. Die Frontblende des pod wurde abgeschnitten und ausgehöhlt, um eine Schale zu machen und ein Gehäuse aus ABS Rohr. Eine Trägerplatte aus Birkensperrholz geschnitten und an die ABS-Rohr mit kleinen Holzschrauben verschraubt.

    Verschiedene Ideen wurden für die pod Frontplatte Rotationssystem versucht, aber letztlich habe ich beschlossen, die Deckplatte direkt durch einen Servoantrieb wie nahm die geringste Menge an Platz. Die Drehservo auf einer Sperrholzplatte, die mit der Gelenkbaugruppe und Sperrholzgrundplatte verschraubt ist. LEDs sind in Bohrungen im ABS-Ring, um die Fackeln zu simulieren montiert.

    Eine große Servorad an der Drehservo und es treibt das pod Abdeckplatte. Um den Hebel an der Deckplatte Folie öffnen eine Untermikroservo auf eine Sperrholzplatte, die mit dem Servo Rad befestigt montiert werden. Servoarm hat einen kleinen Schlitz schneiden und es zur Schiebe Abdeckplatte Hebel mit einem kleinen Teil der Stahldraht, der an Ort und Stelle auf der Rückseite des Schiebehebels mit Epoxidharz befestigt ist. Der Hebel gleitet auf einem kleinen Scharnier aus Stahldraht und Messing tubing- das Gelenk der großen Servorad geklebt. Da die Servohebel bewegt sich das Gelenk dreht sich leicht nach außen und die Hebel gleitet auf. Diese besondere Mechanismus erforderlich, eine Menge von Versuch und Irrtum passend, um es glatt mit sehr wenig Reibung bewegen.

    Hier ist ein Video, das den ersten Test der pod Abdeckplatte Hebel Schiebe Öffnung zeigt


    Da die Klage hip Abschnitt hatte sich um die Schoten verwenden geschnitten mussten wir die Flansche auf der Rückseite hip Abschnitt zu rekonstruieren. Sintra Blatt wurde geschnitten, geformt zu gestalten und an Ort und Stelle geklebt und dann die Nähte wurden mit Apoxie Sculpt gefüllt.
    Am Ende arbeiteten die Hüfte Hülsen wirklich gut und ich bin froh, dass wir die Mühe, indem Sie sie!

Schritt 8: Zurück Klappen

  1. Animatronic Iron Man-Anzug Mk III

    Animatronic Iron Man-Anzug Mk III

    Animatronic Iron Man-Anzug Mk III

    Animatronic Iron Man-Anzug Mk III

    Animatronic Iron Man-Anzug Mk III

    Animatronic Iron Man-Anzug Mk III

    Alle 9 Artikel anzeigen

    Die Rückklappen sind recht einfach zu animieren.

    Die Lappen wurden zunächst mit Klebeband, um die Gelenke zu finden statt. Scharniere wurden mit Messingstange und Rohr ausgebildet ist, und sie an der Rückseite der Klappen geklebt wurden. Die Scharniere wurden dann auf der Rückseite des Oberkörpers montiert durch Bohren von Löchern und mit Epoxid-Kitt, um sie an Ort und Stelle zu binden. Ruderhörner wurden den Klappen befestigt und Schlitze wurden in den oberen Rücken Oberkörper-Abschnitt geschnitten, so dass die Ruderhörner und Pleuel könnte passen durch. Die Servos, die die Klappen wieder zu bewegen sind an der Innenseite der oberen Rücken Oberkörper mit hoher Festigkeit Klettverschluss befestigt.

Schritt 9: Boots

  1. Animatronic Iron Man-Anzug Mk III

    Animatronic Iron Man-Anzug Mk III

    Animatronic Iron Man-Anzug Mk III

    Wir wussten, dass wir wollten Stiefel zu leuchten und machen eine Roboter klirrenden Sound beim Gehen.

    Dachte ich der einfachste Weg, um diesen Effekt auslösen war es, ein Abstandssensor an der Unterseite des Boot hierbei der Sharp GP2D120XJ00F IR-Sensor zu verwenden. Der Sensor liest die Entfernung vom Boot auf den Boden und dann wird ein Schwellenwert in den Code so, wenn der Wert die Schwelle der Sensor teilt dem Arduino, um das Licht einzuschalten und den Sound aktivieren übersteigt gesetzt. Einfach!
    Ein Hohlraum wurde aus der Unterseite des Schuhs mit einem Dremel geschnitzt und der Sensor an Stelle montiert ist. Ein Loch wurde für die Sensorkabel sowie die Kabel für die hohe Leistung Luxeon LED gebohrt. The wires for these were bundled together and a connector was soldered on so they could be easily disconnected from the wires that ran down through the legs of the suit. Only one sensor is needed to trigger the Arduino so the sensor was mounted in the right boot since Greg begins walking with his right foot first.

Step 10: Electronics

  1. Animatronic Iron Man-Anzug Mk III

    Animatronic Iron Man-Anzug Mk III

    Animatronic Iron Man-Anzug Mk III

    Animatronic Iron Man-Anzug Mk III

    Animatronic Iron Man-Anzug Mk III

    Animatronic Iron Man-Anzug Mk III

    Alle 8 Artikel anzeigen

    The electronics system for this suit isn't really that complex once it's broken down into separate systems.

    The reason I wanted to make the left side/right side and boots separate systems was so they could be run at the same time and if one system went down the rest of the suit would still operate.
    The left side takes the RFID tag input from two fingers on the left hand and then the Arduino will operate either the helmet functions (via the XBee radio) or it will have the hip pods and back flaps run through a programmed sequence.
    The right side takes the RFID tag input from two fingers on the right hand and then a second Arduino operates either the hip pods or shoulder rockets, depending on which tag is read. If the hip pods are selected then the Wave Shield is also triggered to play a sound effect.
    The IR sensor in the right boot sends a signal to another Arduino that operates the lights for the boots and triggers the Wave Shield to play a sound effect.
    For testing purposes I glued RFID tags and a tag reader to a glove to get an idea as to how easy it would be to operate, since the tag reader can only read one tag at a time. Reading two tags at the same time gives zero output. I was worried that since the fingers were in close proximity to one another this could be a problem, but it turns out it worked just fine.

    The tag reader was then mounted to the inside of the fiberglass suit glove shell using adhesive foam tape. The back side of the board was then taped over to protect it and the lead wires. The glove shells fit over a batting glove so the wearer's hand never comes in contact with the board. The gloves have extension leads that connect to the gauntlets, which have Ethernet jacks for connecting to the Ethernet cables that run through the arms. The left gauntlet is pretty much empty while the right gauntlet has AA battery holders as well as a small connector board for the servo wires.

    The three Arduino Pro Minis are mounted in the back of the upper torso section along with batteries and power switches for each system. The power switches listed in the materials section are rated at 4 Amps, which should suffice for the current draw of the various servos. I used TIP 120 transistors in the circuits because I always seem to have them on hand- you can use any switching transistor you want as long as it can handle the LED current draw in the various circuits.
    The Wave Shield sits atop the Arduino Pro in the center and the transmitting XBee radio for the helmet is visible in the upper corner. There are also several Ethernet jacks visible- two for the arms, two for the legs and one for the Ethernet cable that runs to the hip section. Also visible is a board that has a few transistors on it- these take the signals from the Arduinos and turn on the boot lights and trigger the sound effects via the Wave Shield. The Wave Shield output is boosted by a (optional) small amplifier board . There is a small breadboard PCB in the upper corner that has connectors for the shoulder rocket servos and back flap servos. The two speakers were salvaged from an old monitor.

    The boards are secured using foam tape as it holds them securely but they can still be removed and if wires get pulled nothing will get damaged. The Ethernet cables were also secured using hot glue a bit away from the connectors in order to provide some strain relief.
    If I was to do it again I would probably create a single board down the center and have the Arduinos socketed along with a socketed transistor board using SMD transistors. I would also have the servo connectors on the center board. That would go a log way toward cleaning up the wiring.
    The hip pod section uses a small breadboard PCB with an Ethernet connector to route the signals for the servos and LEDs in the pods. There is a small transistor board that is used to turn on the pod LEDs. The wires from the LEDs are run through the back of the pods near the hinge and heatshrink tubing is used protect the wires from potential damage caused by hinge movement.

    Finally the AA batteries that provide power to the hip pod servos were mounted to the inside of the chest section near the chest light along with a switch. A power lead with a JST connector was run to the hip pod section.

    Much to my surprise, everything actually worked the first time it powered up (even though I had breadboarded the circuits for testing.) The only thing I had to do was make adjustments to timing and servo movements in the code.

Step 11: Electronics- left side schematic and code

  1. Animatronic Iron Man-Anzug Mk III

    Here's the schematic for the left side control system.

    There are a few notes on the diagram but it's pretty straightforward. When parts were purchased for the suit the ID12 tag reader was only available in a 5V version, which is powered by the Arduino. Since the servos are powered by a 6V battery pack it was easiest to just use a 9V battery for the Arduinos and 6V packs for the servos because you need to isolate the power supply for the Arduino due to the electrical noise generated by the servos.
    Now that the ID12 is available in a low voltage version it would be simpler to power everything from a 6V battery pack and use a 3.3V Arduino Pro Mini and use a 3.3V DC/DC converter to supply isolated power the Arduino. The Wave Shield however will only operate on 5V.

    In the code you will see that all four finger RFID tags are listed but only two tag IDs are recognized in the code. I just found it easier to list all of the tags I was using for the suit build and then single out the individual tag IDs for specific functions. Note that you will of course have to enter your own tag ID codes. For more info on RFID tag readers and identifying tag ID codes have a look at this great Bildr article .

    Note that you will need to change the name of the hip pod flare audio file to "SOUND1.WAV" for the Wave Shield to play it. You also need to reverse the servo rotation direction for three of the hip pod servos since they are grouped in pairs that receive an identical signal.

    Here's the code-

    #include
    #include "Servo.h" // include the servo library

    Servo podServo; // servo to move hip pods
    Servo leverServo; // servo to move hip pod levers
    Servo rotateServo; // servo to rotate hip pods
    Servo leftflapServo; // servo to move left back flap
    Servo rightflapServo; // servo to move right back flap

    NewSoftSerial mySerial = NewSoftSerial(2, 3);

    int RFIDResetPin = 13;
    int ledPin1 = 6; // control pin for left hip pod LEDs
    int ledPin2 = 5; // control pin for right hip pod LEDs
    int servoPin1 = 10; // control pin for left flap servo
    int servoPin2 = 11; // control pin for right flap servo
    int servoPin3 = 9; // control pin for pod servo
    int servoPin4 = 8; // control pin for lever servo
    int servoPin5 = 7; // control pin for rotate servo
    int soundPin = 12; // control pin for flare sound

    //Register your RFID tags here
    char tag1[13] = "440085E77452"; // you will need to change this for your own tag
    char tag2[13] = "440085FC330E";
    char tag3[13] = "440085F97840";
    char tag4[13] = "4400863914EF";

    void setup(){
    Serial.begin(9600);
    mySerial.begin(9600);

    podServo.attach(servoPin3); // attaches the servo on pin 9 to the servo object
    leverServo.attach(servoPin4); // attaches the servo on pin 8 to the servo object
    rotateServo.attach(servoPin5); // attaches the servo on pin 7 to the servo object
    leftflapServo.attach(servoPin1); // attches the servo on pin 10 to the servo object
    rightflapServo.attach(servoPin2); // attaches the servo on pin 11 to the servo object
    podServo.write(155); // rotate the pod servo to 135 degrees
    leverServo.write(145); // rotate the lever servo to 135 degrees
    rotateServo.write(165); // rotate the pod rotation servo to 170 degrees
    leftflapServo.write(170); // rotate the left flap servo to 170 degrees
    rightflapServo.write(10); // rotate the right flap servo to 10 degrees
    pinMode(ledPin1, OUTPUT); // sets the LED pin as an output
    pinMode(ledPin2, OUTPUT); // sets the LED pin as an output
    digitalWrite(ledPin1, LOW); // turn off LEDs
    digitalWrite(ledPin2, LOW); // turn off LEDs
    pinMode(soundPin, OUTPUT); // sets the sound pin as output
    digitalWrite(soundPin, LOW); // turn off sound pin

    pinMode(RFIDResetPin, OUTPUT);
    digitalWrite(RFIDResetPin, HIGH);

    }

    void loop(){

    char tagString[13];
    int index = 0;
    boolean reading = false;

    while(Serial.available()){

    int readByte = Serial.read(); //read next available byte

    if(readByte == 2) reading = true; //begining of tag
    if(readByte == 3) reading = false; //end of tag

    if(reading && readByte != 2 && readByte != 10 && readByte != 13){
    //store the tag
    tagString[index] = readByte;
    index ++;
    }
    }

    checkTag(tagString); // check if it is a match
    clearTag(tagString); // clear the char of all value
    resetReader(); // reset the RFID reader
    }

    void checkTag(char tag[]){
    ///////////////////////////////////
    //Check the read tag against known tags
    ///////////////////////////////////

    if(strlen(tag) == 0) return; // empty, no need to continue

    if(compareTag(tag, tag1)){ // if matched tag1, do this
    mySerial.print('A'); // sends tag read over XBee

    }else if(compareTag(tag, tag2)){ // if matched tag2, do this
    podServo.write(90); // rotate the pod servo to 90 degrees
    delay(500); // wait half a second
    leverServo.write(95); // rotate the lever servo to 90 degrees
    delay(1000);
    rotateServo.write(5); // rotate the pod rotation servo to 10 degrees
    delay(1500);
    leverServo.write(145);
    delay(500);
    digitalWrite(soundPin, HIGH); // turn sound on
    delay(10); // wait ten milliseconds
    digitalWrite(soundPin, LOW); // turn sound off
    digitalWrite(ledPin1, HIGH); // turn on LEDs
    digitalWrite(ledPin2, HIGH); // turn on LEDs
    delay(50); // wait 50 milliseconds
    digitalWrite(ledPin1, LOW); // turn off LEDs
    digitalWrite(ledPin2, LOW); // turn off LEDs
    delay(50);
    digitalWrite(ledPin1, HIGH); // turn on LEDs
    digitalWrite(ledPin2, HIGH); // turn on LEDs
    delay(50);
    digitalWrite(ledPin1, LOW); // turn off LEDs
    digitalWrite(ledPin2, LOW); // turn off LEDs
    delay(50);
    digitalWrite(ledPin1, HIGH); // turn on LEDs
    digitalWrite(ledPin2, HIGH); // turn on LEDs
    delay(50);
    digitalWrite(ledPin1, LOW); // turn off LEDs
    digitalWrite(ledPin2, LOW); // turn off LEDs
    delay(50);
    digitalWrite(ledPin1, HIGH); // turn on LEDs
    digitalWrite(ledPin2, HIGH); // turn on LEDs
    delay(50);
    digitalWrite(ledPin1, LOW); // turn off LEDs
    digitalWrite(ledPin2, LOW); // turn off LEDs
    delay(50);
    digitalWrite(ledPin1, HIGH); // turn off LEDs
    digitalWrite(ledPin2, HIGH); // turn off LEDs
    delay(50);
    digitalWrite(ledPin1, LOW); // turn off LEDs
    digitalWrite(ledPin2, LOW); // turn off LEDs
    delay(50);
    digitalWrite(ledPin1, HIGH); // turn on LEDs
    digitalWrite(ledPin2, HIGH); // turn on LEDs
    delay(50);
    digitalWrite(ledPin1, LOW); // turn off LEDs
    digitalWrite(ledPin2, LOW); // turn off LEDs
    delay(50);
    digitalWrite(ledPin1, HIGH); // turn on LEDs
    digitalWrite(ledPin2, HIGH); // turn on LEDs
    delay(50);
    digitalWrite(ledPin1, LOW); // turn off LEDs
    digitalWrite(ledPin2, LOW); // turn off LEDs
    delay(50);
    digitalWrite(ledPin1, HIGH); // turn on LEDs
    digitalWrite(ledPin2, HIGH); // turn on LEDs
    delay(50);
    digitalWrite(ledPin1, HIGH); // turn off LEDs
    digitalWrite(ledPin2, HIGH); // turn off LEDs
    delay(50);
    digitalWrite(ledPin1, LOW); // turn off LEDs
    digitalWrite(ledPin2, LOW); // turn off LEDs
    delay(50);
    digitalWrite(ledPin1, HIGH); // turn on LEDs
    digitalWrite(ledPin2, HIGH); // turn on LEDs
    delay(50);
    digitalWrite(ledPin1, LOW); // turn off LEDs
    digitalWrite(ledPin2, LOW); // turn off LEDs
    delay(50);
    digitalWrite(ledPin1, HIGH); // turn on LEDs
    digitalWrite(ledPin2, HIGH); // turn on LEDs
    delay(50);
    digitalWrite(ledPin1, LOW); // turn off LEDs
    digitalWrite(ledPin2, LOW); // turn off LEDs
    delay(50);
    digitalWrite(ledPin1, HIGH); // turn on LEDs
    digitalWrite(ledPin2, HIGH); // turn on LEDs
    delay(50);
    digitalWrite(ledPin1, LOW); // turn off LEDs
    digitalWrite(ledPin2, LOW);
    digitalWrite(ledPin1, HIGH); // turn on LEDs
    digitalWrite(ledPin2, HIGH); // turn on LEDs
    delay(50);
    digitalWrite(ledPin1, LOW); // turn off LEDs
    digitalWrite(ledPin2, LOW); // turn off LEDs
    delay(50);
    digitalWrite(ledPin1, HIGH); // turn on LEDs
    digitalWrite(ledPin2, HIGH); // turn on LEDs
    delay(50);
    digitalWrite(ledPin1, HIGH); // turn off LEDs
    digitalWrite(ledPin2, HIGH); // turn off LEDs
    delay(50);
    digitalWrite(ledPin1, LOW); // turn off LEDs
    digitalWrite(ledPin2, LOW); // turn off LEDs
    delay(50);
    digitalWrite(ledPin1, HIGH); // turn on LEDs
    digitalWrite(ledPin2, HIGH); // turn on LEDs
    delay(50);
    digitalWrite(ledPin1, LOW); // turn off LEDs
    digitalWrite(ledPin2, LOW); // turn off LEDs
    delay(50);
    digitalWrite(ledPin1, HIGH); // turn on LEDs
    digitalWrite(ledPin2, HIGH); // turn on LEDs
    delay(50);
    digitalWrite(ledPin1, LOW); // turn off LEDs
    digitalWrite(ledPin2, LOW); // turn off LEDs
    delay(50);
    digitalWrite(ledPin1, HIGH); // turn on LEDs
    digitalWrite(ledPin2, HIGH); // turn on LEDs
    delay(50);
    digitalWrite(ledPin1, LOW); // turn off LEDs
    digitalWrite(ledPin2, LOW);
    digitalWrite(ledPin1, HIGH); // turn on LEDs
    digitalWrite(ledPin2, HIGH); // turn on LEDs
    delay(50);
    digitalWrite(ledPin1, HIGH); // turn off LEDs
    digitalWrite(ledPin2, HIGH); // turn off LEDs
    delay(50);
    digitalWrite(ledPin1, LOW); // turn off LEDs
    digitalWrite(ledPin2, LOW); // turn off LEDs
    delay(50);
    digitalWrite(ledPin1, HIGH); // turn on LEDs
    digitalWrite(ledPin2, HIGH); // turn on LEDs
    delay(50);
    digitalWrite(ledPin1, LOW); // turn off LEDs
    digitalWrite(ledPin2, LOW); // turn off LEDs
    delay(50);
    digitalWrite(ledPin1, HIGH); // turn on LEDs
    digitalWrite(ledPin2, HIGH); // turn on LEDs
    delay(50);
    digitalWrite(ledPin1, LOW); // turn off LEDs
    digitalWrite(ledPin2, LOW); // turn off LEDs
    leverServo.write(95); // rotate the lever servo to 90 degrees
    delay(1500);
    rotateServo.write(165); // rotate the pod servo to 135 degrees
    delay(1000);
    leverServo.write(145);
    delay(500);
    podServo.write(155); // rotate the pod servo to 135 degrees
    delay(2000);
    leftflapServo.write(125); // rotate the left flap servo to 125 degrees- full up
    rightflapServo.write(55); // rotate the right flap servo to 55 degrees- full up
    delay(500);
    leftflapServo.write(170); // rotate the left flap servo to 170 degrees- full down
    rightflapServo.write(10); // rotate the right flap servo to 10 degrees- full down
    delay(500);
    leftflapServo.write(125); // left flap full up
    delay(500);
    leftflapServo.write(170); // left flap full down
    delay(500);
    rightflapServo.write(55); // right flap full up
    delay(500);
    rightflapServo.write(10); // right flap full down

    }else{
    Serial.println(tag); //read out any unknown tag
    }

    }

    void lightLED(int pin){
    ///////////////////////////////////
    //Turn on LED on pin "pin" for 250ms
    ///////////////////////////////////
    Serial.println(pin);

    digitalWrite(pin, HIGH);
    delay(250);
    digitalWrite(pin, LOW);
    }

    void resetReader(){
    ///////////////////////////////////
    //Reset the RFID reader to read again.
    ///////////////////////////////////
    digitalWrite(RFIDResetPin, LOW);
    digitalWrite(RFIDResetPin, HIGH);
    delay(150);
    }

    void clearTag(char one[]){
    ///////////////////////////////////
    //clear the char array by filling with null - ASCII 0
    //Will think same tag has been read otherwise
    ///////////////////////////////////
    for(int i = 0; i < strlen(one); i++){
    one[i] = 0;
    }
    }

    boolean compareTag(char one[], char two[]){
    ///////////////////////////////////
    //compare two value to see if same,
    //strcmp not working 100% so we do this
    ///////////////////////////////////

    if(strlen(one) == 0) return false; //empty

    for(int i = 0; i < 12; i++){
    if(one[i] != two[i]) return false;
    }

    return true; //no mismatches
    }

    Here's the code for the WaveShield, courtesy of Adafruit-

    #include
    #include
    #include
    #include "WaveUtil.h"
    #include "WaveHC.h"

    SdReader card; // This object holds the information for the card
    FatVolume vol; // This holds the information for the partition on the card
    FatReader root; // This holds the information for the filesystem on the card
    FatReader f; // This holds the information for the file we're play

    WaveHC wave; // This is the only wave (audio) object, since we will only play one at a time

    #define DEBOUNCE 100 // button debouncer

    // this handy function will return the number of bytes currently free in RAM, great for debugging!
    int freeRam(void)
    {
    extern int __bss_end;
    extern int *__brkval;
    int free_memory;
    if((int)__brkval == 0) {
    free_memory = ((int)&free_memory) - ((int)&__bss_end);
    }
    else {
    free_memory = ((int)&free_memory) - ((int)__brkval);
    }
    return free_memory;
    }

    void sdErrorCheck(void)
    {
    if (!card.errorCode()) return;
    putstring("\n\rSD I/O error: ");
    Serial.print(card.errorCode(), HEX);
    putstring(", ");
    Serial.println(card.errorData(), HEX);
    while(1);
    }

    void setup() {
    // set up serial port
    Serial.begin(9600);
    putstring_nl("WaveHC with 6 buttons");

    putstring("Free RAM: "); // This can help with debugging, running out of RAM is bad
    Serial.println(freeRam()); // if this is under 150 bytes it may spell trouble!

    // Set the output pins for the DAC control. This pins are defined in the library
    pinMode(2, OUTPUT);
    pinMode(3, OUTPUT);
    pinMode(4, OUTPUT);
    pinMode(5, OUTPUT);

    // pin13 LED
    pinMode(13, OUTPUT);

    // enable pull-up resistors on switch pins (analog inputs)
    digitalWrite(14, HIGH);
    digitalWrite(15, HIGH);
    digitalWrite(16, HIGH);
    digitalWrite(17, HIGH);
    digitalWrite(18, HIGH);
    digitalWrite(19, HIGH);

    // if (!card.init(true)) { //play with 4 MHz spi if 8MHz isn't working for you
    if (!card.init()) { //play with 8 MHz spi (default faster!)
    putstring_nl("Card init. failed!"); // Something went wrong, lets print out why
    sdErrorCheck();
    while(1); // then 'halt' - do nothing!
    }

    // enable optimize read - some cards may timeout. Disable if you're having problems
    card.partialBlockRead(true);

    // Now we will look for a FAT partition!
    uint8_t part;
    for (part = 0; part < 5; part++) { // we have up to 5 slots to look in
    if (vol.init(card, part))
    break; // we found one, lets bail
    }
    if (part == 5) { // if we ended up not finding one :(
    putstring_nl("No valid FAT partition!");
    sdErrorCheck(); // Something went wrong, lets print out why
    while(1); // then 'halt' - do nothing!
    }

    // Lets tell the user about what we found
    putstring("Using partition ");
    Serial.print(part, DEC);
    putstring(", type is FAT");
    Serial.println(vol.fatType(),DEC); // FAT16 or FAT32?

    // Try to open the root directory
    if (!root.openRoot(vol)) {
    putstring_nl("Can't open root dir!"); // Something went wrong,
    while(1); // then 'halt' - do nothing!
    }

    // Whew! We got past the tough parts.
    putstring_nl("Ready!");
    }

    Leere Schleife () {
    //putstring("."); // uncomment this to see if the loop isnt running
    switch (check_switches()) {
    case 1:
    playcomplete("SOUND1.WAV");
    break;
    case 2:
    playcomplete("SOUND2.WAV");
    break;
    case 3:
    playcomplete("SOUND3.WAV");
    break;
    case 4:
    playcomplete("SOUND4.WAV");
    break;
    case 5:
    playcomplete("SOUND5.WAV");
    break;
    case 6:
    playcomplete("SOUND6.WAV");
    }
    }

    byte check_switches()
    {
    static byte previous[6];
    static long time[6];
    byte reading;
    byte pressed;
    byte index;
    pressed = 0;

    for (byte index = 0; index < 6; ++index) {
    reading = digitalRead(14 + index);
    if (reading == LOW && previous[index] == HIGH && millis() - time[index] > DEBOUNCE)
    {
    // switch pressed
    time[index] = millis();
    pressed = index + 1;
    break;
    }
    previous[index] = reading;
    }
    // return switch number (1 - 6)
    return (pressed);
    }

    // Plays a full file from beginning to end with no pause.
    void playcomplete(char *name) {
    // call our helper to find and play this name
    playfile(name);
    while (wave.isplaying) {
    // do nothing while its playing
    }
    // now its done playing
    }

    void playfile(char *name) {
    // see if the wave object is currently doing something
    if (wave.isplaying) {// already playing something, so stop it!
    wave.stop(); // stop it
    }
    // look in the root directory and open the file
    if (!f.open(root, name)) {
    putstring("Couldn't open file "); Serial.print(name); return;
    }
    // OK read the file and turn it into a wave object
    if (!wave.create(f)) {
    putstring_nl("Not a valid WAV"); return;
    }

    // ok time to play! start playback
    wave.play();
    }

Step 12: Electronics- right side schematics and code

  1. Animatronic Iron Man-Anzug Mk III

    Here's the schematic and code for the right side.

    It's pretty similar to the left side, minus the XBee radio. The servos for the forearm missile all receive the same signal- one of the servos that opens the side cover will need to be reversed rotation. Two of the servos that open the forward and rearward shoulder rocket panel covers will also need to have their rotation reversed as they receive the same signal as the servos in the opposite shoulder.

    Here's the code-

    #include "Servo.h" // include the servo library

    Servo forearmServo; // servos to move forearm missile
    Servo rearcoverServo; // servo to move rear shoulder rocket pod cover
    Servo forwardcoverServo; // servo to move forward shoulder rocket pod cover
    Servo podServo; // servo to move shoulder rocket pod

    int RFIDResetPin = 13;
    int servoPin1 = 7; // control pin for forearm missile servos
    int servoPin2 = 8; // control pin for rear shoulder rocket pod cover servo
    int servoPin3 = 9; // control pin for forward rocket pod cover servo
    int servoPin4 = 10; // control pin for shoulder rocket pod servo

    //Register your RFID tags here
    char tag1[13] = "440085E77452";
    char tag2[13] = "440085FC330E";
    char tag3[13] = "440085F97840";
    char tag4[13] = "4400863914EF";

    void setup(){
    Serial.begin(9600);

    forearmServo.attach(servoPin1); // attaches the servo on pin 7 to the servo object
    rearcoverServo.attach(servoPin2); // attaches the servo on pin 8 to the servo object
    forwardcoverServo.attach(servoPin3); // attaches the servo on pin 9 to the servo object
    podServo.attach(servoPin4); // attaches the servo on pin 10 to the servo object
    forearmServo.write(45); // rotate the forearm servos to 45 degrees
    rearcoverServo.write(45); // rotate the rear cover servo to 45 degrees
    forwardcoverServo.write(45); // rotate the forward cover servo to 45 degrees
    podServo.write(45); // rotate the left flap servo to 45 degrees

    pinMode(RFIDResetPin, OUTPUT);
    digitalWrite(RFIDResetPin, HIGH);

    }

    void loop(){

    char tagString[13];
    int index = 0;
    boolean reading = false;

    while(Serial.available()){

    int readByte = Serial.read(); //read next available byte

    if(readByte == 2) reading = true; //begining of tag
    if(readByte == 3) reading = false; //end of tag

    if(reading && readByte != 2 && readByte != 10 && readByte != 13){
    //store the tag
    tagString[index] = readByte;
    index ++;
    }
    }

    checkTag(tagString); //Check if it is a match
    clearTag(tagString); //Clear the char of all value
    resetReader(); //reset the RFID reader
    }

    void checkTag(char tag[]){
    ///////////////////////////////////
    //Check the read tag against known tags
    ///////////////////////////////////

    if(strlen(tag) == 0) return; //empty, no need to contunue

    if(compareTag(tag, tag3)){ // if matched tag3, do this
    forearmServo.write(135);
    delay(2500);
    forearmServo.write(45);

    }else if(compareTag(tag, tag4)){ //if matched tag4, do this
    rearcoverServo.write(70); // rotate the pod servo to 90 degrees
    delay(500); // wait half a second
    forwardcoverServo.write(100); // rotate the forward cover servo to 110 degrees
    delay(500);
    podServo.write(80); // rotate the pod servo to 80 degrees
    delay(4000);
    podServo.write(45); // rotate the pod servo to 45 degrees
    delay(500);
    forwardcoverServo.write(45); // rotate the forward coverservo to 90 degrees
    delay(500);
    rearcoverServo.write(45); // rotate the pod servo to 135 degrees

    }else{
    Serial.println(tag); //read out any unknown tag
    }

    }

    void lightLED(int pin){
    ///////////////////////////////////
    //Turn on LED on pin "pin" for 250ms
    ///////////////////////////////////
    Serial.println(pin);

    digitalWrite(pin, HIGH);
    delay(250);
    digitalWrite(pin, LOW);
    }

    void resetReader(){
    ///////////////////////////////////
    //Reset the RFID reader to read again.
    ///////////////////////////////////
    digitalWrite(RFIDResetPin, LOW);
    digitalWrite(RFIDResetPin, HIGH);
    delay(150);
    }

    void clearTag(char one[]){
    ///////////////////////////////////
    //clear the char array by filling with null - ASCII 0
    //Will think same tag has been read otherwise
    ///////////////////////////////////
    for(int i = 0; i < strlen(one); i++){
    one[i] = 0;
    }
    }

    boolean compareTag(char one[], char two[]){
    ///////////////////////////////////
    //compare two value to see if same,
    //strcmp not working 100% so we do this
    ///////////////////////////////////

    if(strlen(one) == 0) return false; //empty

    for(int i = 0; i < 12; i++){
    if(one[i] != two[i]) return false;
    }

    return true; //no mismatches
    }

Step 13: Electronics- wireless helmet schematic and code

  1. Animatronic Iron Man-Anzug Mk III

    Here's the schematic and code for the wireless helmet.

    Since there's very little room in the helmet the wireless system was powered by a single 7.4V NiMH battery pack. The digital servos used in the helmet are designed to be operated on 7.4V so a 5V DC/DC converter is used to provide power for the Arduino, XBee and LEDs.

    Here's the code-

    #include "Servo.h" // include the servo library

    Servo faceplateServo;
    Servo chinServo;

    int ledPin1 = 4; // control pin for LED eyes
    int servoPin1 = 2; // control pin for face plate servo
    int servoPin2 = 3; // control pin for chin

    void setup() {

    faceplateServo.attach(servoPin1); // attaches the servo on pin 2 to the servo object
    chinServo.attach(servoPin2); // attaches the servo on pin 3 to the servo object
    faceplateServo.write(30); // rotate face plate servo to 30 degrees
    chinServo.write(95); // rotate chin servo to 95 degrees
    pinMode(ledPin1, OUTPUT); // sets the LED pin as output
    digitalWrite(ledPin1, HIGH); // turn on LED eyes

    Serial.begin(9600);
    }

    Leere Schleife () {

    // look for a capital A over the serial port and turn off LED
    if (Serial.available ()> 0) {
    if (Serial.read() == 'A') { // reads tag over XBee
    digitalWrite(ledPin1, LOW); // turn off LED eyes
    delay(500); // wait half a second
    faceplateServo.write(95); // rotate the face plate servo to 95 degrees
    chinServo.write(20); // rotate the chin servo to 20 degrees
    delay(4000); // wait 4 seconds
    chinServo.write(95); // rotate the chin servo to 95 degrees
    faceplateServo.write(30); // rotate the face plate servo to 30 degrees
    digitalWrite(ledPin1, HIGH); // turn on LED eyes

    }
    }
    }

Step 14: Electronics- schematic and code for the boots

  1. Animatronic Iron Man-Anzug Mk III
    Here's the schematic and code for the boots.

    This is a pretty simple circuit. The Sharp IR sensor inputs a value into the Arduino which triggers the Luxeon boot lights and the Wave Shield to play an audio file. You will need to change the boot sound audio file to "SOUND2.WAV" in order for the Wave Shield to play it properly.

    Here's the code-

    // these constants won't change:

    int triggerSensor = 1; // the sensor is connected to analog pin 1
    int threshold = 750; // threshold value to decide when the sensor input triggers
    int ledPin = 3; // control pin for LED
    int soundPin = 2; // control pin for sound board

    // these variables will change:
    int sensorReading = 0; // variable to store the value read from the sensor pin

    void setup() {
    Serial.begin(9600); // use the serial port
    pinMode(ledPin, OUTPUT); // sets the LED pin as an output
    pinMode(soundPin, OUTPUT); // sets the sound pin as output
    digitalWrite(ledPin, LOW); // turn off LED
    digitalWrite(soundPin, LOW); // turn the sound off

    }

    void loop() {

    // read the sensor and store it in the variable sensorReading:
    int val = analogRead(triggerSensor);

    // if the sensor reading is greater than the threshold:
    if (val >= threshold) {

    Serial.println(val);
    digitalWrite(soundPin, HIGH); // turn the sound on
    delay(10); // wait ten milliseconds
    digitalWrite(soundPin, LOW); // turn the sound off
    digitalWrite(ledPin, HIGH); // turn the LED on
    delay(2400); // wait two seconds
    digitalWrite(ledPin, LOW); // turn the LED off
    }

    }

Step 15: Chest and repulsor lights

  1. Animatronic Iron Man-Anzug Mk III

    Animatronic Iron Man-Anzug Mk III

    Animatronic Iron Man-Anzug Mk III

    Animatronic Iron Man-Anzug Mk III

    Animatronic Iron Man-Anzug Mk III

    Animatronic Iron Man-Anzug Mk III

    Alle 7 Artikel anzeigen

    What Iron Man suit would be complete without lights?

    For the chest light I created a simple PCB in EAGLE and soldered on the surface mount resistors and LEDs. The finished PCB was wired up and mounted behind the translucent chest piece. A similar lighting system could be made using standard LEDs and resistors with perfboard. With the hands we lucked out and didn't need to build the lighting system from scratch as Greg already had a repulsor light and sound system that was donated by a friend.

    You could easily add repulsor lights to this system and trigger them with additional RFID tags by modifying the code. For an idea have a look here.

Step 16: Switch operated helmet

  1. Animatronic Iron Man-Anzug Mk III

    Animatronic Iron Man-Anzug Mk III

    So what do you do if you don't want a wireless helmet?

    Another friend of mine wanted to animate his MkIV helmet (in a very specific sequence) and he just wanted a simple push button to activate it. One push to open it and one push to close. The electronics are just like the wireless helmet except this time the XBee radio is replaced with a momentary switch. He also wanted a blinking red LED in the helmet so that's in the code too. The eyes appear to be really bright in the video because the helmet hasn't been painted and the back of the eyes aren't blacked out.



    Here's the code needed-

    const int servoPin1 = 2; // face plate servo connected to digital pin 1
    const int servoPin2 = 3; // chin servo connected to digital pin 2
    const int buttonPin = 6; // activation button connected to digital pin 6
    const int ledPin1 = 4; // LED eyes connected to digital pin 4
    const int ledPin2 = 5; // red LED connected to digital pin 5

    #include <Servo.h>

    Servo faceplateServo;
    Servo chinServo;

    void setup() {
    faceplateServo.write(30); // initial position for face plate servo
    chinServo.write(65); // initial position for chin servo
    faceplateServo.attach(servoPin1);
    chinServo.attach(servoPin2);

    pinMode(buttonPin, INPUT); // LOW when pushed

    pinMode(ledPin1, OUTPUT);
    pinMode(ledPin2, OUTPUT);
    digitalWrite(ledPin1, HIGH); // turn LED eyes on
    digitalWrite(ledPin2, LOW); // turn red LED off
    }

    Leere Schleife () {
    static unsigned long lastPushedTime = 0;
    static boolean faceplateClosed = true;
    static boolean lastButtonState = HIGH;

    boolean newButtonState = digitalRead(buttonPin);

    // If the button is down and it has been a while since it was last down...
    if (newButtonState == LOW && lastButtonState == HIGH && millis() - lastPushedTime > 100) {
    lastPushedTime = millis();
    if (faceplateClosed) {
    faceplateServo.write(120); // Open faceplate
    faceplateClosed = false;
    delay(300); // wait a bit
    digitalWrite(ledPin2, HIGH); // turn on red LED
    delay(200);
    digitalWrite(ledPin2, LOW); // turn off red LED
    chinServo.write(20); // rotate the chin servo to 20 degrees
    delay(100);
    digitalWrite(ledPin1, LOW); // turn off LED eyes
    delay(100);
    digitalWrite(ledPin2, HIGH);
    delay(200);
    digitalWrite(ledPin2, LOW);
    delay(200);
    digitalWrite(ledPin2, HIGH);
    delay(200);
    digitalWrite(ledPin2, LOW);
    delay(200);
    digitalWrite(ledPin2, HIGH);
    delay(200);
    digitalWrite(ledPin2, LOW);
    delay(200);
    digitalWrite(ledPin2, HIGH);
    delay(200);
    digitalWrite(ledPin2, LOW);
    delay(200);
    digitalWrite(ledPin2, HIGH);
    delay(200);
    digitalWrite(ledPin2, LOW);

    }
    else { // faceplate is open
    chinServo.write(65); // rotate chin servo to 65 degrees
    delay(500); // wait half a second
    faceplateServo.write(30); // rotate face plate servo to 30 degrees
    delay(500);
    digitalWrite(ledPin1, HIGH); // turn on LED eyes
    delay(100);
    digitalWrite(ledPin1, LOW); // turn off LED eyes
    delay(100);
    digitalWrite(ledPin1, HIGH);
    delay(100);
    digitalWrite(ledPin1, LOW);
    delay(100);
    digitalWrite(ledPin1, HIGH);
    faceplateServo.write(30); // close flaceplate
    faceplateClosed = true;

    }
    }

    lastButtonState = newButtonState;
    }

    What if you want to use the RFID tag reader as a switch?

    You can do that too. Instead of using a push button you could also activate the helmet by wiring a RFID tag reader directly to the helmet. This code will open the helmet for a specific number of seconds and then close it. There's also a second RFID tag read in the code if you want to add another function, such as a guantlet opening or a repulsor lighting up.

    The code would look something like this-

    #include "Servo.h" // include the servo library

    Servo faceplateServo;
    Servo chinServo;

    int ledPin1 = 4; // control pin for LED eyes
    int servoPin1 = 2; // control pin for face plate servo
    int servoPin2 = 3; // control pin for chin
    int RFIDResetPin = 13;

    //Register your RFID tags here
    char tag1[13] = "440085E77452"; // this needs to match your tag ID
    char tag2[13] = "440085FC330E";

    void setup(){

    faceplateServo.attach(servoPin1); // attaches the servo on pin 2 to the servo object
    chinServo.attach(servoPin2); // attaches the servo on pin 3 to the servo object
    faceplateServo.write(30); // rotate face plate servo to 30 degrees
    chinServo.write(95); // rotate chin servo to 95 degrees
    pinMode(ledPin1, OUTPUT); // sets the LED pin as output
    digitalWrite(ledPin1, HIGH); // turn on LED eyes

    Serial.begin(9600);

    pinMode(RFIDResetPin, OUTPUT);
    digitalWrite(RFIDResetPin, HIGH);

    }

    void loop(){

    char tagString[13];
    int index = 0;
    boolean reading = false;

    while(Serial.available()){

    int readByte = Serial.read(); //read next available byte

    if(readByte == 2) reading = true; //begining of tag
    if(readByte == 3) reading = false; //end of tag

    if(reading && readByte != 2 && readByte != 10 && readByte != 13){
    //store the tag
    tagString[index] = readByte;
    index ++;
    }
    }

    checkTag(tagString); //Check if it is a match
    clearTag(tagString); //Clear the char of all value
    resetReader(); //reset the RFID reader
    }

    void checkTag(char tag[]){
    ///////////////////////////////////
    //Check the read tag against known tags
    ///////////////////////////////////

    if(strlen(tag) == 0) return; //empty, no need to contunue

    if(compareTag(tag, tag1)){ // if matched tag1, do this
    digitalWrite(ledPin1, LOW); // turn off LED eyes
    delay(500); // wait half a second
    faceplateServo.write(95); // rotate the face plate servo to 95 degrees
    chinServo.write(20); // rotate the chin servo to 20 degrees
    delay(4000); // wait 4 seconds
    chinServo.write(95); // rotate the chin servo to 95 degrees
    faceplateServo.write(30); // rotate the face plate servo to 30 degrees
    digitalWrite(ledPin1, HIGH); // turn on LED eyes

    }else if(compareTag(tag, tag2)){ //if matched tag2, do this

    // write some code here for something to happen when tag2 is read

    }else{
    Serial.println(tag); //read out any unknown tag
    }

    }

    void lightLED(int pin){
    ///////////////////////////////////
    //Turn on LED on pin "pin" for 250ms
    ///////////////////////////////////
    Serial.println(pin);

    digitalWrite(pin, HIGH);
    delay(250);
    digitalWrite(pin, LOW);
    }

    void resetReader(){
    ///////////////////////////////////
    //Reset the RFID reader to read again.
    ///////////////////////////////////
    digitalWrite(RFIDResetPin, LOW);
    digitalWrite(RFIDResetPin, HIGH);
    delay(150);
    }

    void clearTag(char one[]){
    ///////////////////////////////////
    //clear the char array by filling with null - ASCII 0
    //Will think same tag has been read otherwise
    ///////////////////////////////////
    for(int i = 0; i < strlen(one); i++){
    one[i] = 0;
    }
    }

    boolean compareTag(char one[], char two[]){
    ///////////////////////////////////
    //compare two value to see if same,
    //strcmp not working 100% so we do this
    ///////////////////////////////////

    if(strlen(one) == 0) return false; //empty

    for(int i = 0; i < 12; i++){
    if(one[i] != two[i]) return false;
    }

    return true; //no mismatches
    }

Step 17: Frequently asked questions

  1. Animatronic Iron Man-Anzug Mk III

    Animatronic Iron Man-Anzug Mk III


    Q: I want to buy Iron Man armor. Do you sell Iron Man armor?
    A: Sorry I do not produce nor do I sell Iron Man armor or helmets. My friend Greg acquired the molded fiberglass suit and helmet castings from Clinton Hoines of Tundra Designs and they were modified to accept the animatronics. The boots and gloves came from Replica Prop Forum member Zabana. Your best bet is to check out the Junkyard on The Replica Prop Forum as occasionally suits come up for sale there. For a really nice helmet kit check out Actiprops.

    Q: Can I send my Iron Man costume to you to have animatronics installed?
    A: Sorry, but I cannot take on any more Iron Man projects at this point in time.

    Q: What is the difference between analog and digital servos?
    A: Compared to analog servos, digital servos have a different type of control circuitry that allows for higher resolution (more accurate positioning), increased holding power and the ability to adjust control parameters such as direction of rotation, speed and deadband width. The downside is that digital servos can be noisier (often heard as a high pitch hum) and they consume more power than analog servos.

    Q: Why did you use RFID sensors in the gloves?
    A: I chose RFID because I basically needed a non contact switch to trigger the suit functions. The way that Iron Man gloves are constructed makes it very difficult to use a traditional push button switch. Plus with RFID you can add more tags to the glove fingers later on for more functions without adding additional control wires- something that you would have to do with a traditional switch.

    The beauty of using RFID tags is that the technology applies to lots of other costumes as well. If you had a dinosaur costume you could use the tags to trigger a roar or you could even make an interactive costume for a party where guests have tags or tags are placed around the room and your costume does different things when it senses the tags. The same thinking applies for IR distance sensors- as you get closer to another person your costume could sense the distance and perform different functions at different distances.

    Q: Why not use RC LiPo battery packs to power everything?
    A: Originally we had planned to do just that but the reality is that the shortcomings of multi cell LiPos designed for radio control outweighed the benefits. The number one problem with most all multi cell RC LiPo packs is they have no built in safety circuits or regulation- you need to have a low voltage cutoff circuit in place so the battery voltage doesn't drop below a safe level (usually between 2.8- 3.0 V per cell.) If the individual cell voltage drops below this cutoff the cells can be damaged.

    Another problem is the amount of current these multi cell packs can deliver- you need to put a fuse between the battery pack and your servos/control circuitry. I had a situation where a digital servo stalled and it pulled so much current the PCB in the servo melted its wiring and the LiPo pack puffed. I also had a low voltage cutoff connected to this and it destroyed that as well. This is not a situation you want to have when you have a helmet on your head that has LiPo batteries in it. You don't want to let the magic smoke out of your costume after you just spent several months building it.

    The third issue is LiPo packs require a special charger and you need to be fastidious about how these packs are charged. Since this costume is to be worn primarily at conventions that's a less than ideal situation. Shipping anything with LiPos is also a pain due to shipping restrictions . In the end it just made more sense to use NiMH cells in the helmet and regular AA batteries and 9V batteries everywhere else.

    Overall this build was an enormous learning experience.

    It was a difficult build, somewhat frustrating at times and a real challenge to figure out ways to get the desired effects while making it as practical as possible and as convincing as possible while still fitting all that hardware inside a suit that someone has to wear. My house and garage looked like a hurricane had gone through it and deposited Iron Man parts everywhere. Many things didn't work as originally planned ( I think I revamped the helmet twice ) and I managed to fry a servo but in the end we stuck to it and it all worked out! As soon as Greg has the final fitting done the suit will get a complete repaint and we'll get a new video of him wearing it.

    As always, if anyone has any questions just let me know- I'm always happy to help. :)
    You can also visit the DIY Animatronics forum for help with your own projects.

    Now I need to make a Whiplash costume so my friend and I can battle!