Iron man motorised faceplate electronics tutorial!!!

TIP29A resistors he uses? I find the 5050 smd get super hot with direct 3.7V..?


Yeah, I went with 5050 SMDs, mostly because that was on the threshhold of what I can solder by hand. The resistors are smaller, but they're much easier to manipulate since they're not polarized. As for the current draw, you'r right, the .06 milliamps is totally excessive if you try to drive them directly, but It's not so bad if you do it with a transistor. And I just happen to have a couple TIP29As lying around. Also, these 5050 smds are stupid bright, so they won't be driven to full power for very long. Instead I'm just going to use a PWM signal with a really low duty cycle, and a reservoir capacitor to make the battery current more manageable.

sorry, that's .06 amps

60 milliamps :
 
I Painted my helmet this weekend and added my new eyes thanks to Dracks for his help i would also like to give a massive thankyou to Xl97 and Memebr and guiding me in the right direction im now running the whole system on two 4000mA/h 3.7V li-ion batteries and ive added a voltage regulator and a Transistor so the servo ,leds and switch are now working straight from the power supply and not threw the arduino and because im only using two batteries the helmet is much lighter , Heres a quick video enjoy ..... :)

https://www.youtube.com/watch?v=KXIdQyzAd1M
 
A+ :)

I Painted my helmet this weekend and added my new eyes thanks to Dracks for his help i would also like to give a massive thankyou to Xl97 and Memebr and guiding me in the right direction im now running the whole system on two 4000mA/h 3.7V li-ion batteries and ive added a voltage regulator and a Transistor so the servo ,leds and switch are now working straight from the power supply and not threw the arduino and because im only using two batteries the helmet is much lighter , Heres a quick video enjoy ..... :)

https://www.youtube.com/watch?v=KXIdQyzAd1M
 
I Painted my helmet this weekend and added my new eyes thanks to Dracks for his help i would also like to give a massive thankyou to Xl97 and Memebr and guiding me in the right direction im now running the whole system on two 4000mA/h 3.7V li-ion batteries and ive added a voltage regulator and a Transistor so the servo ,leds and switch are now working straight from the power supply and not threw the arduino and because im only using two batteries the helmet is much lighter , Heres a quick video enjoy ..... :)

https://www.youtube.com/watch?v=KXIdQyzAd1M

Awesome!! Great job!
Man why cant i get my damn eyes to work propely!!! :(
 
I Painted my helmet this weekend and added my new eyes thanks to Dracks for his help i would also like to give a massive thankyou to Xl97 and Memebr and guiding me in the right direction im now running the whole system on two 4000mA/h 3.7V li-ion batteries and ive added a voltage regulator and a Transistor so the servo ,leds and switch are now working straight from the power supply and not threw the arduino and because im only using two batteries the helmet is much lighter , Heres a quick video enjoy ..... :)

https://www.youtube.com/watch?v=KXIdQyzAd1M

I want to be like you when i grow up
 
That's just amazing truly gifted :)


I Painted my helmet this weekend and added my new eyes thanks to Dracks for his help i would also like to give a massive thankyou to Xl97 and Memebr and guiding me in the right direction im now running the whole system on two 4000mA/h 3.7V li-ion batteries and ive added a voltage regulator and a Transistor so the servo ,leds and switch are now working straight from the power supply and not threw the arduino and because im only using two batteries the helmet is much lighter , Heres a quick video enjoy ..... :)

https://www.youtube.com/watch?v=KXIdQyzAd1M
 
yes!! finally got it going! driver is what im missing, thanks.
my setup seems to be out of control. the servos just suddenly rotates it self without me pushing the button.
by the way im missing an LED. does that affect the setup?
 
1.) make sure you give ENOUGH and NOT more voltage to your servos
2.) connect grounds from Arduino to grounds on battery/servos
3.) re-read this thread.. ALL PAGES..

:)
 
JayCVenlo

My mistake, that was removed from other thing i was doing, the fritzing soft become a lil crazy....

ALL THE GROUNDS ARE THE SAME, they like to be together, so put em all together, otherwise your project will not work properly due signal noise and potential differential issues.

here it is the right image... do this and you will be alright:

sorcery_zpsa749900a.jpg


you can notice that in the image, the Load GND, the Arduino GND and the Battery-pack GND are all connected together

**remember: this transistor in the schematics is a Emitter - Base - Collector type. so, check the data-sheet of the components you are using.
 
Last edited by a moderator:
@JayCVenlo

My mistake, that was removed from other thing i was doing, the fritzing soft become a lil crazy....

ALL THE GROUNDS ARE THE SAME, they like to be together, so put em all together, otherwise your project will not work properly due signal noise and potential differential issues.

here it is the right image... do this and you will be alright:

http://i3.photobucket.com/albums/y87/oozi/sorcery_zpsa749900a.jpg

you can notice that in the image, the Load GND, the Arduino GND and the Battery-pack GND are all connected together

**remember: this transistor in the schematics is a Emitter - Base - Collector type. so, check the data-sheet of the components you are using.

Okay.

I did everything you guys said. 100% Positive i wired everything correct like in all the scematics. These are the test facts:

1. When connected like in the scematic above - 5.07V goes into the LEDS (measured on the positive wire) - Lights are very dim. so i measured the power on the negative wire coming from the LEDs... only 2.44V Thats only half.
2. When Positive wire from LEDs go the the 5V rail and the negative wire to the ground rail. The light are as bright as they should be BUT!!! the voltregulator get hot. (this i did just for testing)

What to do now... im lost!:(
 
Last edited by a moderator:
Besides the electronics, did you make the helmet yourself or is there anywhere where just the helmet can be picked up? I'm pretty clued up with the electronics side and would love to have a stab at something like this but getting hold of the actual helmet would be the sticking point.
Good job with it all by the way it looks really impressive! Can't help but think back to the scene in the court room on Iron 2 where Tony is discussing how far away certain companies are in terms of producing the suits haha I'd say your pretty close :)

Cheers
James
 
JayCVenlo, as i said many many times before, you need to find a transistor base resistor the suits your project, try to reduce this resistor to half of its value, 1.2Kohms
 
Last edited by a moderator:
now ive got my helmet done im looking at trying to make it wireless i pick up a cheap one of these ----> 433MHz Wireless Transmitter and Receiver Modules Arduino RaspberryPi New UK | eBay how easy would it be to add it so i can move the switch to the arm or something. Would i have to change the code in anyway? Ive tried just swapping it out for the switch and adding the switch to the transmitter with its own power supply the helmet trys to open but closes again straight away so somethings not quite right but im a bit lost , Can someone help?

This is the code im using

#include <Servo.h>
//servo 1
Servo myservo;
Servo myservo1;
int val; // variable for reading the pin status
int val2; // variable for reading the delayed/debounced status
int buttonState;
int pos = 0;
int pos1 = 210;
int servostatus = 0;
int switchPin =2; // Switch connected to digital pin 2
int ledPin = 5;
int ledPin2 = 18;
void setup() // run once, when the sketch starts
{
//servo 1

myservo.attach(9);
myservo1.attach(10);
pinMode(switchPin, INPUT);
pinMode(ledPin, OUTPUT);
buttonState = digitalRead(switchPin);
myservo.write(1);
myservo1.write(160);
pinMode(ledPin2, OUTPUT);
}

void loop() // run over and over again

//servo 1
{
val = digitalRead(switchPin); // read input value and store it in val
delay(10); // 10 milliseconds is a good amount of time
val2 = digitalRead(switchPin); // read the input again to check for bounces
if (val == val2) { // make sure we got 2 consistant readings!
if (val != buttonState) { // the button state has changed!
if (val == LOW) { // check if the button is pressed
if (servostatus == 0) { // is the light off?
servostatus = 1; // turn light on!

myservo.write(0);
myservo1.write(190);
delay(1000);
digitalWrite(ledPin, HIGH);
delay(50);
digitalWrite(ledPin, LOW);
delay(00);
digitalWrite(ledPin, HIGH);
delay(50);
digitalWrite(ledPin, LOW);
delay(00);


// fading
for(int fadeValue = 0 ; fadeValue <= 255; fadeValue +=5) {
// sets the value (range from 0 to 255):
analogWrite(ledPin, fadeValue);
delay(30);


}

}
else {
servostatus = 0; // turn light off!


digitalWrite(ledPin, LOW);
delay(15);
digitalWrite(ledPin2, LOW);
myservo.write(210);
myservo1.write(0);






}
}
}
buttonState = val; // save the new state in our variable
}
}
 
Demolition

It is the same setup i use, just swap the button for the receiver circuit, and feed it with the same battery pack of the project, with the GND shared with the other components.

also if you are not using the second ledpin (18)

use this code:

Code:
#include <Servo.h>
//servo 1
Servo myservo;
Servo myservo1;
int val; // variable for reading the pin status
int val2; // variable for reading the delayed/debounced status
int buttonState;
int pos = 0;
int pos1 = 210;
int servostatus = 0;
int switchPin =2; // Switch connected to digital pin 2
int ledPin = 5;
void setup() // run once, when the sketch starts
{
//servo 1

myservo.attach(9);
myservo1.attach(10);
pinMode(switchPin, INPUT);
pinMode(ledPin, OUTPUT);
buttonState = digitalRead(switchPin);
myservo.write(1);
myservo1.write(160);
}

void loop() // run over and over again

//servo 1
{
val = digitalRead(switchPin); // read input value and store it in val
delay(10); // 10 milliseconds is a good amount of time
val2 = digitalRead(switchPin); // read the input again to check for bounces
if (val == val2) { // make sure we got 2 consistant readings!
if (val != buttonState) { // the button state has changed!
if (val == LOW) { // check if the button is pressed
if (servostatus == 0) { // is the light off?
servostatus = 1; // turn light on!

myservo.write(0);
myservo1.write(190);
delay(1000);
digitalWrite(ledPin, HIGH);
delay(50);
digitalWrite(ledPin, LOW);
delay(00);
digitalWrite(ledPin, HIGH);
delay(50);
digitalWrite(ledPin, LOW);
delay(00);


// fading
for(int fadeValue = 0 ; fadeValue <= 255; fadeValue +=5) {
// sets the value (range from 0 to 255):
analogWrite(ledPin, fadeValue);
delay(30);


}

}
else {
servostatus = 0; // turn light off!


digitalWrite(ledPin, LOW);
delay(15);
myservo.write(210);
myservo1.write(0);






}
}
}
buttonState = val; // save the new state in our variable
}
}

I did not changed any value of your variables, i just removed what was not in use on the code. also , by the values your servos are set, you might experience some servo noises, or servos flickering.

most servos cant make 190º or 210º
 
Last edited by a moderator:
@Demolition

It is the same setup i use, just swap the button for the receiver circuit, and feed it with the same battery pack of the project, with the GND shared with the other components.

also if you are not using the second ledpin (18)

use this code:

Code:
#include <Servo.h>
//servo 1
Servo myservo;
Servo myservo1;
int val; // variable for reading the pin status
int val2; // variable for reading the delayed/debounced status
int buttonState;
int pos = 0;
int pos1 = 210;
int servostatus = 0;
int switchPin =2; // Switch connected to digital pin 2
int ledPin = 5;
void setup() // run once, when the sketch starts
{
//servo 1

myservo.attach(9);
myservo1.attach(10);
pinMode(switchPin, INPUT);
pinMode(ledPin, OUTPUT);
buttonState = digitalRead(switchPin);
myservo.write(1);
myservo1.write(160);
}

void loop() // run over and over again

//servo 1
{
val = digitalRead(switchPin); // read input value and store it in val
delay(10); // 10 milliseconds is a good amount of time
val2 = digitalRead(switchPin); // read the input again to check for bounces
if (val == val2) { // make sure we got 2 consistant readings!
if (val != buttonState) { // the button state has changed!
if (val == LOW) { // check if the button is pressed
if (servostatus == 0) { // is the light off?
servostatus = 1; // turn light on!

myservo.write(0);
myservo1.write(190);
delay(1000);
digitalWrite(ledPin, HIGH);
delay(50);
digitalWrite(ledPin, LOW);
delay(00);
digitalWrite(ledPin, HIGH);
delay(50);
digitalWrite(ledPin, LOW);
delay(00);


// fading
for(int fadeValue = 0 ; fadeValue <= 255; fadeValue +=5) {
// sets the value (range from 0 to 255):
analogWrite(ledPin, fadeValue);
delay(30);


}

}
else {
servostatus = 0; // turn light off!


digitalWrite(ledPin, LOW);
delay(15);
myservo.write(210);
myservo1.write(0);






}
}
}
buttonState = val; // save the new state in our variable
}
}

I did not changed any value of your variables, i just removed what was not in use on the code. also , by the values your servos are set, you might experience some servo noises, or servos flickering.

most servos cant make 190º or 210º

thanks for that yeah i do get servo noise what do i change to stop it
 
Last edited by a moderator:
This thread is more than 4 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