Go Down

Topic: Iron man - gemotoriseerde helm (Read 1 time) previous topic - next topic

JayCVenlo

Ik zal me eerst even voorstellen, mijn naam jimmy, 29 jaar uit Venlo (Li).
De reden dat ik me aan heb gemeld heb op dit Forum is omdat ik met een projectje bezig ben en een Noob ben op het gebied van programmeren en elektronica, maar het erg interessant vindt allemaal en wil me project graag tot een goed einde brengen. Daarbij is Arduino een van de componenten die ik ga gebruiken.

Korte omschrijving:
Ik ben bezig met het maken van een gemotoriseerd Iron Man helm uit de gelijknamige film.
Het modeleren van de helm zit er voor het grootste deel op, maar kom nu op de mechanica en electronica punt aan.
Ik heb me al met vele dingen ingelezen en al een en ander in huis gehaald om aan de slag te kunnen.
De rood gemarkeerde teksten zijn voor mij nog raadsels en zoek ik dringen hulp voor.

Opzet:
De helm heeft een losse gezichtsplaat die open en dicht gaat met een druk op de knop. daarbij zitten er in de lenzen leds verwerkt die zullen gloeien wanneer de helm dichtgaat.
Een voorbeeld filmpje van iemand anders die ongeveer dezelfde setup heeft: http://youtu.be/4oEpHHu5Z18

De onderdelen die ik in huis heb en waarmee ik wil gaan werken: Het mechanisme zelf met beugels enzo kom ik wel uit.

Voor het mechanisme van de gezichtsplaat
1. Arduino Nano V3 met usb
2. 2x Servos Towerpro MG90S (analog)
3. Servo tester voor 3 servos.

Nog nodig
1. Voeding (4xAA? Accupack voor AC? BEC stecker)om alles draaiende te krijgen. Maar ik weet niet goed welke opzet juist is en welke voltage ik nodig heb. 5(4,8)V of 6V
a.  Voeding -> Arduino -> Servos
b. Voeding -> Ardiono & voeding -> Servos
2. Kabels,  breadboard, drukschakelaar?


Wie kan en wilt mij met dit projectje helpen? Misschien regio Venlo
Alvast bedankt.




Jantje

Jimmy
Welkom op het nederlandse deel van het Arduino forum.
Je kan je servo's niet laten draaien op de Arduino pins. Je moet de voeding direct van de batter? nemen en de pwm sturing van de arduino pin.
Servo's zijn gemaakt om op batterijen te werken dus die kunnen heel wat hebben.
Wat ik je aanraad is om een proefopstelling te maken met een breadboard. Begin met 1 servo dan een 2de ... . Zorg dat alles werkt zoals je wilt voor je het gaat inbouwen.
Ik zie in het filmpje dat de maker 2 servo's heeft gebruikt voor de helm open te laten gaan. technisch gezien is het makkelijker als het met 1 lukt. Dit omdat de 2 servo's min of meer synchroon moeten draaien. Ook zal je problemen krijgen als 1 servo stuk is.
Voor de leds: vergeet de voorschakel weerstanden niet.
Veel plezier.
Jantje

Do not PM me a question unless you are prepared to pay for consultancy.
Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -

JayCVenlo

Best Jan,

Alvast bedankt voor je eerst terugkoppeling. Ik ben inmiddels een stapje verder, maar ben op een probleem gestuit.

Ik heb nu met een breadboard de setup ongeveer gemaakt zoals die moet worden. Inclusief led die opgloeid.
Momenteel doe ik de stroomvoorziening via de usb. Maar een batterijpack gaat ook wel werken.

Via het RPF forum heb ik een kant en klare code gebruik die voor het succes heeft gezorgd.
Echter heb ik last van servo Jitter. Bij de open stand begint 1 van de servos te trillen en geluid te maken. wanneer die dicht gaat is het weg. Deze servo maakt ook een iets groter daaicirkel terwijl de beginstand exact gelijk is. Ik heb een aangepaste code ook al geprobeerd, maar toen was het probleem dat bij 'open' de ene servo trillde bij bereiken van vast punt en bij 'dicht' begon de andere.

Hoe kan dit? en beter nog hoe kan ik dit verhelpen.
Zit dit in de code? verstoord signaal? Of komt het dat de servos een te grote hoek maken?

Ik heb sowieso niet de gradenhoek nodig die ze nu maken.. (180) hoe pas ik dit aan?

Hierbij de code die ik gebruikt heb:

Quote
#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 = 180;
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(0);
myservo1.write(175);
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(180);
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(180);
myservo1.write(0);






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

Jantje

Misschien heb je jitter omdat je de power van de USB neemt. Veel projecten falen wegens "slechte of middelmatige voeding".
USB kan maar 0,5 ampere leveren. De meeste servo's vragen meer.
Met vriendelijke groet
Jantje
Do not PM me a question unless you are prepared to pay for consultancy.
Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -

JayCVenlo

Beste Jan,

dit antwoord heb ik inderdaad al gehoord.
Maar hoe kan ik dit het beste doen?
Want ik heb een voeding nodig voor het ardiono board, de led strip en de servos. 3 vind ik een beetje teveel
Of is alleen een externe voeding voor de arduino en de ledstrips voldoende?

gr


Jantje

Je moet geen 3 voedingen (batterijen) hebben.
Normaal neem ik een dikke batterij en een schakelende regellaar die naar 5 volt gaat waar ik dan naar de servo's en een USB kabel ga die ik dan in de arduino steek.
Door de helmopzet is een dikke batterij misschien geen optie. Ikzelf heb geen ervaring met arduino rechtstreeks van batterijen te draaien.
Je doet er ook goed aan om voor ontkoppeling te zorgen: lees http://www.thebox.myzen.co.uk/Tutorial/De-coupling.html
Met vriendelijke groet
Jantje
Do not PM me a question unless you are prepared to pay for consultancy.
Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -

Go Up