INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Motorantrieb für Follow Focus
04.12.2014, 13:06
Beitrag #1
Motorantrieb für Follow Focus
Servus Allemiteinand
Ein bisschen kennt man mich ja schon aus diesem Thema, jetzt will ich mal mein Projekt vorstellen.
In letzter Zeit wird vermehrt auf DSLRs Viedeo gedreht, erstens weil die DSLRs billiger in der Erstanschaffung sind und zweitens auf Grund der Eigenschaften der Optiken den sogenannten Filmlook haben.
Ein Filmlook ist ja nichts anderes als mit möglichst offener Blende eine Szene zu drehen so daß der Schauspieler möglichst wegen der Unschärfe vom Hintergrund abgehoben ist.
Jetzt arbeiten viele dieser DSLR Filmer mit einem Rig um die Kamera beim Filmen auf der Schulter zu tragen. Ich habe mir also eine mechanische Lösung überlegt um dem Bediener die Möglichkeit zu geben den Focus während der Aufnahme zu verändern.

Hier mal ein Büdl:

[Bild: attachment.php?aid=706]

Das funktioniert ganz gut hat aber seine Schwächen, weil halt auf Grund des geringen Einstellwinkels der übertragenden Stange die Position des Griffes festgesetzt wird.

So jetzt habe ich mir also ein Set (Mit Stepper und Servomotor) von Arduino gekauft, musste aber bald feststellen, daß dieses Set eigentlich nur zum Rumspielen eignet.

Also nochmals ins Börsel gegriffen und diesen Motor samt der Treiberkarte gekauft.

Das Teil läuft schon mal und ich bin fürs Erste mal zufrieden. Hier noch der Schaltplan:

[Bild: attachment.php?aid=707]


[Bild: attachment.php?aid=708]

Jetzt würde ich gerne den Schrittmotor mittels Poti oder Encoder ansteuern, leider ist meine Anleitung etwas mangelhaft und ich bräuchte halt ein Schaltbild wie ich den Schrittmotor entweder per Poti oder Encoder plus Code zu Laufen bringen könnte (samt Motortreiberkarte).
Unter ansteuern meine ich daß die Drehbewegung des Potis den Weg des Schrittmotors definiert.

Wenn wer von euch solch Schaltplan hat und ihn hier posten könnte, da wäre mir schon geholfen.

Gruß
Walter


Angehängte Datei(en) Thumbnail(s)
           
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
04.12.2014, 14:42
Beitrag #2
RE: Motorantrieb für Follow Focus
Hi,
Du hast den Motor ja schon am Laufen, da brauchst Du also nur noch den Teil mit dem Poti bzw. Encoder.
Beides schließt Du im Wesentlichen unabhängig vom Motor(treiber) an den Arduino an. Die Integration geht dann über Software.

Der Poti sollte mindestens ein paar kOhm haben, sowas wie 10kOhm ist nicht schlecht. Das Ding schließt Du als Spannungsteiler an, d.h. den mittleren Pin an einen Analog-Eingang, die äußeren an +5V und GND. Möglicherweise gibt's andere Bauformen, also besser nachmessen. Der Widerstand zwischen den beiden Pins, die Du an +5V und GND anschließt sollte unabhängig von der Stellung sein und dem Nennwert des Potis (also besagte 10KOhm) entsprechen.
Du solltest dann mittels analogRead() die Stellung des Potis auslesen können.

Bei einem Encoder geht's (glaube ich) so: Es gibt auch drei Pins. Einer davon kommt an Masse. Die anderen beiden an zwei Digitalpins, die jeweils mit INPUT_PULLUP als Input definiert sind. (Siehe auch hier: http://www.hobbytronics.co.uk/arduino-tu...ry-encoder) Oft sieht man auch Pullup-Widerstände drangelötet, aber das ist unnötig, wenn man INPUT_PULLUP verwendet.
Die beiden Digitalpins werden "gleichzeitig" abgefragt (also so kurz wie möglich nacheinander). Wenn man auf dem einen Pin eine Flanke detektiert, dann weiß man, dass das Ding ein bisschen gedreht wurde. Der andere Pin ist dann sozusagen die Richtung.

Das mit dem Poti sieht erstmal einfacher aus, ist aber wahrscheinlich nicht so eine gute Idee. Du müsstest nämlich Dir merken, wo der Motor gerade ist und dann die Differenz zur Sollstellung nachfahren. Außerdem rauscht der A/D-Wandler normalerweise, was dazu führen würde, dass der Motor immer mal wieder ein bisschen vor- und zurückruckelt.
Ich würde es mit dem Encoder machen und einfach bei jedem Klick des Encoders einen Step am Motor auslösen. Ich denke, es geht kaum einfacher.

Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
04.12.2014, 21:29
Beitrag #3
RE: Motorantrieb für Follow Focus
Hallo Thorsten
Vielen herzlichen Dank für deine rasche Antwort. Leider komme ich erst jetzt dazu darauf zu reagieren.
Danke für die einfache Erklärung und du hast sicherlich recht wenn du dem Encoder den Vorzug gibst.
Im Web habe ich ja ein paar Videos diesbezüglich angeschaut und das wäre sozusagen mein Favorit:





Der Code dazu habe ich auch gefunden, macht aber glaube ich für mich keinen Sinn, weil ich wieder einen anderen Encoder habe.

Code:
#include <Encoder.h>

int pinE2 = 2;
int pinE3 = 3;

Encoder myEnc(pinE2, pinE3);

int pinDir = 11;
int pinStep = 12;

void setup()
{
pinMode(pinDir, OUTPUT);
pinMode(pinStep, OUTPUT);
}
void loop()
{
//den Wert einlesen
int encoderWert = myEnc.read();
//grösser 0
if(encoderWert > 0)
{
   //Motor drehen, Grösse der Schritte und Tempofrei wählbar
   drehen(-100,150);
}
//kleiner 0
else if(encoderWert < 0)
{
   //Motor drehen, Grösse der Schritte und Tempofrei wählbar
   drehen(100,150);
}
   delay(5);
   //Wert des Encoders wieder auf 0 stellen
   myEnc.write(0);
   delay(5);

}
//Drehfunktion für Schrittmotor
void drehen(int schritte, int tempo)
{

  
   if(schritte > 0)
   digitalWrite(pinDir,HIGH);
   else
   digitalWrite(pinDir,LOW);
  
   schritte = abs(schritte);
  
   for(int i=0; i < schritte; i++)
   {
     digitalWrite(pinStep, HIGH);
     delay(tempo);
     digitalWrite(pinStep, LOW);
     delay(tempo);
   }
}

Morgen werde ich mir nochmals das ganze zur Brust nehmen und schauen was ich zusammen bringe.

Gruß
Walter
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
05.12.2014, 10:46
Beitrag #4
RE: Motorantrieb für Follow Focus
Servus

Also ich habe heute extra beim Conrad diesen Encoder gekauft und auch gleich zu Hause angeschlossen.
Das Datenblatt dazu

So schaut das jetzt am Steckbrett aus:

[Bild: attachment.php?aid=709]

Die Ausgänge gehen auf Digital 2 u. 3 die Mitte auf GND.

Jetzt würde ich gerne dem Teil ein bisschen Leben einhauchen, allerdings fehlt mir der passende Code dafür.

Der letzte Code ohne Encoder wo halt der Motor ein Programm abfährt war dieser hier:

Zitat:int Distance = 0; // Record the number of steps we've taken

void setup() {
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
}

void loop() {
digitalWrite(9, HIGH);
delayMicroseconds(200);
digitalWrite(9, LOW);
delayMicroseconds(200);
Distance = Distance + 1; // record this step

// Check to see if we are at the end of our move
if (Distance == 3600)
{
// We are! Reverse direction (invert DIR signal)
if (digitalRead(8) == LOW)
{
digitalWrite(8, HIGH);
}
else
{
digitalWrite(8, LOW);
}
// Reset our distance back to zero since we're
// starting a new move
Distance = 0;
// Now pause for half a second
delay(5000);
}
}

Ist aber wahrscheinlich für die jetzige Anwendung mit Encoder unbrauchbar - oder ?

Vielleicht hat ja einer von euch eine ähnliche Aufgabenstellung gehabt und hätte einen Code dazu den man als Basis nehmen kann.

Vielen Dank schon mal für eure Mitarbeit ! [Bild: dankeschoen.gif]


Gruß
Walter


Angehängte Datei(en) Thumbnail(s)
   
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
05.12.2014, 13:58
Beitrag #5
RE: Motorantrieb für Follow Focus
Hi,
ich gebe Dir kein Coding, aber vielleicht eine Anleitung, wie Du weitermachen kannst. Dein bisheriger Sketch hat sehr wohl Elemente, die man weiterverwenden kann.

Definiere am besten erstmal in Deinem bisherigen Sketch eine Funktion doStep(int direction) oder so. Diese Funktion soll den Motor einen Schritt vorwärts oder rückwärts bewegen, je nach "direction". Dann schreibst Du den Sketch so um, dass er die neue Funktion auch aufruft.

Wenn das funktioniert, dann schreibst Du Dir einen neuen (!) Sketch, der irgendwas mit dem Encoder macht. Es gibt dazu irgendwo ein Beispiel, es dürfte reichen, wenn Du das mal zum Laufen bringst.

Möglicherweise fügt sich dann schon alles zusammen...
Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
05.12.2014, 14:24
Beitrag #6
RE: Motorantrieb für Follow Focus
Servus Thorsten

Ich kann dich verstehen wenn du mir keinen Code geben willst, aber ich habe eigentlich dieses Projekt angefangen, weil ich der Meinung war, daß sich diese Aufgabenstellung sehr leicht durch vorhandene Codes meistern lässt.

Ich bin ein Mann der Mechanik und kann mit programmieren nichts anfangen. Ich versteh schon, daß hier keiner meine Arbeit machen möchte, anderseits möchte ich aber auch nicht mehr eine Programmiersprache erlernen um einen Motor nach links oder rechts laufen zu lassen.

So werde ich halt die Sache aufgeben, weil mir das ganze eh schon schwer genug fällt.

Ich danke jedenfalls für die Mitarbeit.

Grüße
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
05.12.2014, 14:31
Beitrag #7
RE: Motorantrieb für Follow Focus
Hi,
ich kann Dir kein funktionierendes Coding geben. Ich haber weder einen Stepper noch einen Encoder...
Ich habe mir aber nochmal das Coding angeschaut, das Du gestern gepostet hast. Warum bist Du der Meinung, dass das nicht funktioniert? Ich denke, dass es im Wesentlichen schon gehen müsste.
Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
05.12.2014, 21:23
Beitrag #8
RE: Motorantrieb für Follow Focus
Servus Thorsten
Tut mir leid wegen des Postings heute Nachmittag, aber ich habe die letzten 2 Wochen eine regelrechte Schnitzeljagt hinter mir Confused

Ich habe den gestrigen Code nochmals draufgespielt und noch einen Versuch gemacht.

Der Motor bewegt sich; allerdings recht langsam so in etwa jede Sekunde einen Schritt und arbeitet die vorgegebene Weite des Encoders ebenso langsam ab.
Auch reagiert er auf den Richtungswechsel, langsam aber er reagiert !
Also es tut sich zumindest etwas, Blush

Allerdings ändert sich auch durch ändern der Werte bei diesem Parameter
Zitat: //Motor drehen, Grösse der Schritte und Tempofrei wählbar
drehen(-100,150);
}
//kleiner 0
else if(encoderWert < 0)
{
//Motor drehen, Grösse der Schritte und Tempofrei wählbar
drehen(100,150);
}
so überhaupt nichts.

Hast du eine Idee wie man das noch ändern könnte ?

Vielen Dank jedenfalls für deine Hilfe !

Gruß
Walter
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste