aovery2's Iron Man Mark 42 2103 Halloween Costume Contest Entry

cwho

New Member
The costume began as a casual conversation in August between my son and I about making an Iron Man mask that opened and closed. I was eager for him to learn to program and Arduino seemed like a good place to start. It kind of snowballed (that is what nerds are best at) from there. Features that made it into the costume included servo helmet, light up eyes, dimmed repulsors, sound effects and of course the arc reactor. The main features that did NOT make it were Heads Up Display and voice control. Voice control may come later…. In the post we is Andrew (son) and I (Dad).

We soon found the RPF and this costume stands on the backs of giants. We exited the build maze of the costume by running into dead ends, taking long roads and shortcuts. First, we looked at a folded version of the iron man armor thinking we could 3d print the parts. Also wanting the helmet to move up and down we discovered an arduino (link needed) Then later, discovered The rpf and more specifically Jackieisrockin and 7sinzz . 7sinzz provided the initial code which was improved with help from multiple arduino forums. (thank you Dancin_fool). But we still did not find the biceps or shoulders. Finally, we got a breakthrough thanks to helagak

We don’t have a lot of experience costumes, certainly nothing beyond halloween. I have done several of those, starting with cardboard robots, Lego, and Minecraft Steve. I do have the benefit of being a professional model maker with a good shop and some fun tools. One of the great things for Pepakura is a laser cutter. Also 3d printing machines including the ZCorp process and a new Form1 resin printer. The Form1 did the helmet arms and the arc reactor.

We created some code that I think has value to others trying to do this. We came back to the RPF on Sunday to post the code and give back to the community. That was when we found the costume contest. Sorry for the snap entry.

In general the Pepakura was the most problematic using thin foam. Having used ¾” foam on the Legoman legs in years past and then realizing that kids cant bend ¾ inch foam and therefor can’t run (less running = less candy) we went with a variety of 2mm, 3mm and 5mm foamies foam. It worked well as a material but as others have found, hiding the glue and coatings are a problem. Plastidip spray works very well for a soft coating and was a great RPF tip. I never thought that we would get a super shiny coating though so that made things easier.

Enjoy….
 
here is a night shot
night shot.jpg
and a day shot
day shot.jpg
 
Last edited:
Here is the genius code my dad partly designed

#include <LED.h>
#include <Servo.h>
#include <SPI.h>
#include <SdFat.h>
#include <SdFatUtil.h>
#include <SFEMP3Shield.h>

SdFat sd;
SFEMP3Shield MP3player;
Servo visorservo; // create servo object to control a servo
const int Helmetswitch = A1; // the pin that the pushbutton is attached to
const int Repulsorswitch = A2; // the pin that the pushbutton is attached to
const int LRepulsorswitch = A3; // the pin that the pushbutton is attached to
const int Eyes = 4; // the pin that the Eyes is attached to

int vopen = 100;// visor open servo angle
int vclosed = 8; //visor closed servo angle
int buttonState = 0; // current state of the visor button
int lastButtonState = 0; // previous state of the visro button
int repontime = 500; // remember current led state
int repdim = 254; // how bright the LED is remember 255 is off
int handup = 500; //delay after putton push to get hand up
int fadeuptime = 1000; // how many points to fade the LED by
int pos = 10; // variable to store the servo positions
boolean firstloop = true;

LED Repulsor = LED(3);
LED LRepulsor = LED(5);

void setup()

{
//start the shield
sd.begin(SD_SEL, SPI_HALF_SPEED);
MP3player.begin();
visorservo.attach(10); // attaches the servo on pin 9 to the servo object

pinMode(Helmetswitch, INPUT); // initialize the button pin as a input
pinMode(Repulsorswitch, INPUT); // initialize the button pin as a input
pinMode(LRepulsorswitch, INPUT); // initialize the button pin as a input
pinMode(Eyes, OUTPUT); // initialize the button pin as a output
// play Jarvis
MP3player.playTrack(3);
}

void loop()
{
// set the brightness of repulsors:
//analogWrite(Repulsor, brightness);
Repulsor.setValue(repdim);
LRepulsor.setValue(repdim);
{
static unsigned long lastPushedTime = 0;
static boolean visorClosed = true;
static boolean lastButtonState = HIGH;

boolean newButtonState = digitalRead(Helmetswitch);

// If the button is down and it has been a while since it was last down...
if (newButtonState == LOW && lastButtonState == HIGH && millis() - lastPushedTime > 500) {
lastPushedTime = millis();
if (visorClosed) {
visorservo.write(vopen); // Open visor
visorClosed = false;
digitalWrite(Eyes, LOW); // Turn on light
}
else { // Viso is open
visorservo.write(vclosed); // Close visor
if (firstloop == true){
MP3player.playTrack(5);
firstloop = false;}
visorClosed = true;
digitalWrite(Eyes, HIGH); // Turn off light
}
}

lastButtonState = newButtonState;
}
{
//Repulsor code
static unsigned long lastPushedTime1 = 0;
static boolean repulsoroff = true;
static boolean lastButtonState1 = HIGH;

boolean newButtonState1 = digitalRead(Repulsorswitch);

// If the button is down and it has been a while since it was last down...
if (newButtonState1 == LOW && lastButtonState1 == HIGH && millis() - lastPushedTime1 > 500) {
lastPushedTime1 = millis();
delay (handup); //delay to get right hand up
MP3player.playTrack(2); //play track 1 - remake
Repulsor.fadeOut(fadeuptime); //fade on

delay (repontime); //stay on

Repulsor.fadeIn(500); //fade off
Repulsor.setValue(repdim); //set back to dim

}

lastButtonState1 = newButtonState1;
}
{
//LRepulsor code
static unsigned long lastPushedTime2 = 0;
static boolean lrepulsoroff = true;
static boolean lastButtonState2 = HIGH;

boolean newButtonState2 = digitalRead(LRepulsorswitch);

// If the button is down and it has been a while since it was last down...
if (newButtonState2 == LOW && lastButtonState2 == HIGH && millis() - lastPushedTime2 > 500) {
lastPushedTime2 = millis();
delay (handup); //delay to get hand up
MP3player.playTrack(2); //play track 1 - remake

LRepulsor.fadeOut(fadeuptime); //fade on
delay (repontime); //stay on
LRepulsor.fadeIn(500); //Fade off
LRepulsor.setValue(repdim); //set back to dim

}

lastButtonState2 = newButtonState2;
}
}
the pepakura is at Jackieisrockins page. I recommend gataron because his parts are big, hard to loose, easier to put together, and also very easy to cut.
 
Here is the entire electronics kit.
The core is a an Arduino uno. We moved quickly from a prototype board to the screw shield because the breadboards kind of drive me crazy with all the loopy wires. The suit is driven by a 11.2 Lipo pack that I have used for a lot of other projects. It could probably work with anything from 9v to 13 v. The repulsors are driven by LuxDrive pucks which I have used before and work well for the 2 watt Luxeon LED's. The eyes are premade strips from SuperBrightLED's. They are made for cars or motorcycles. The original helmet serve came with the intro to Arduino kit. It lasted until someone hit the visor and stripped the gears. Luckily I had a bigger servo but that required adding the upper red step down power supply to go from 11 to 5.5V. This also helped reduce the load on the 5v arduino power which had been overheating a bit. The arc reactor was designed to run at 11 v with 9 LEDs in 3 x3 parallel series config. The MP3 board was last but it was planned as a last minute add on from the beginning otherwise we would have had to re do all of the arduino pin assignments. The white cube is a small amp that would be better built into the screwshield... The important thing about the code is that the LUXdrives are a bit backward. They are OFF at 255 and ON at 0 so if you are doing something "normal" then you would need to flip these in code. Also the repulsors are on dim all the time.
electronics.jpg

- - - Updated - - -

Here is the proof photo
proof.jpg
 

Attachments

  • proof.jpg
    proof.jpg
    2 MB · Views: 154
This is my favorite electronics tool. If anyone is looking for something to ask for for Christmas that is extravagant but will last a lifetime, I recommend a connector crimping tool. It allows you to crimp on pin and socket connectors which are really great and make things easy to take apart and much less frustrating.
favoriatetool.jpg

The helmet and left glove both had 5 pin connectors, the arc reactor and right glove 2

- - - Updated - - -

OK, do we need to move the gallery photo?
 
One good idea we had was for putting everything on. We basically glued the main Pep sub-assemblies to sweats. The battery went into a pocket and the electronics into an extra chest pocket. The back is glued to the top and then the chest velcro's to the back.
sweatshirt.jpg
 
Here is a video
It shows the control mechanism. Andrew and I went around and around about how to do this. We tried touch sensors on the wrist but the signal was too noisy and unreliable. In the end we went with small tactile switches in the fingers. One to open and close the helmet and one each for the repulsors. It is pretty undetectable and he had his classmates believing that it was voice control for a long time.
 
Last edited by a moderator:
The arc reactor was fun to make. I found some good initial files and the modified them for 3d printing, ( which is pretty much my day job). The Formlabs form 1 is a great machine and I would recommend it over an ABS rep-rap type printer as it is smoother and quite fast. It also can print in sort of clear resin.
Here are some unpainted parts as well as an early print that shows some a distortion because I made the back too thin. Finally an assembled arc with the LED's in from the side.
unpainted arc.jpgIMAG1613.jpgIMAG1615.jpg
 
Also shout out to therealtonystark who helped us get started with the helmet mechanism.
IMAG1617.jpgIMAG1618.jpg

- - - Updated - - -

IF anyone wants the non mp3 code we will post that too. I found a couple of comment errors above also
 
Here is a video
It shows the control mechanism. Andrew and I went around and around about how to do this. We tried touch sensors on the wrist but the signal was too noisy and unreliable. In the end we went with small tactile switches in the fingers. One to open and close the helmet and one each for the repulsors. It is pretty undetectable and he had his classmates believing that it was voice control for a long time.
IronMan Mark 42 Costume with Arduino control and Sound effects - YouTube
huh the fun days. It was hilarious when my friends said up and i opened it. When they kept saying open and close for a long time i said override and No buttons were pressed
 
This thread is more than 10 years old.

Your message may be considered spam for the following reasons:

  1. This thread hasn't been active in some time. A new post in this thread might not contribute constructively to this discussion after so long.
If you wish to reply despite these issues, check the box below before replying.
Be aware that malicious compliance may result in more severe penalties.
Back
Top