WERBUNG

automatischer Makro-Schlitten

exxy

Themenersteller
Hallo Alle miteinander,

ich möchte an dieser Stelle ein Frickelobjekt von mir vorstellen und hätte an all Die, die Interesse haben einige Fragen und würde mich über Anregungen sehr freuen..
Ich bin dabei mir einen automated Stack-Rail zu bauen. Also nen Fokusschlitten mit motorischem Antrieb (Steppmotor) und über einen AVR-Controler (ARDUINO) gesteuert.
Die Software habe ich mir schon zu einer recht gut funktionierenden zurecht gebastelt. Die Antriebs-Steuerung läuft. Es können alle notwendigen Positionen eingegeben, angefahren, gespeichert oder errechnet werden. Als da wären: Home-Pos., Start- und End-Pos., Fokus-Pos. 1 und 2, zur Ermittlung des Fokus-Ebenen-Abstandes (von mir FocusDeep genannt).
Aus der Verrechnung ((EndPos – StartPos)/FocusDeep ) +1, ergibt sich die Anzahl der benötigten Stack´s (FotoZahl). Verzögerungen für die benötigte Belichtungszeit , mit od. ohne Rauschunterdrückung, sowie die Nutzung der Spiegelvorauslösung, können eingegeben werden.
Der Probeschlitten aus einem alten Scanner-Antrieb läuft tadellos!
Die home-run Funktion, also die Kalibrierung des Schlittens auf Nullposition, wird mittels einer Gabellichtschranke abgefragt und funzt! Durch eine einprogrammierte Gesamtlänge des Fahrweges bleibt der Schlitten innerhalb seiner Grenzen und lässt die Mechanik unbeschädigt. Die Auflösung des Schlittens soll 0,01mm betragen. Der Schrittmotor hat ne Schrittweite von1,8°, das bedeutet 200Stepps/Umdrehung. Bei einer Spindelsteigung(Trapezgewinde) von 2mm ergibt sich ne Auflösung von 0,01mm/Stepp.
Soweit so gut.
Jetzt geht’s daran die Software mit nem ordentlichem Menue bestmöglich nutzbar zu gestalten. Und da stellen sich so einige Fragen: zB reichen die verwendeten Parameter aus um brauchbare Fotos zu bekommen?
Was ich mir bis jetzt dazu überlegt habe, sieht folgendermaßen aus:

1. Der Schlitten kalibriert seine Nullposition
2. Menue:
Cam-Settings: Belichtungszeit, Auslösung 1x od. 2x (Spiegel-Vor-Ausl.)

StartPos: FocusPos1 und 2: EndPos: Einstellung per Hand und Speicherung. Jederzeit änderbar.
Berechnung FocusDeep und Fotoanzahl.

FocusDeep: und Fotozahl: auch im Nachhinein manuell änderbar.

AutoRun: starten

Kalibrierung: starten

3. Der automatische Lauf: zurück auf StartPos--Foto--wieter um FocusDeep—Foto--……bis zur EndPos und fertig.


Gruß exxy
 
Liest sich gut.

Ich nehme an, Deine Parameter wie "Rauschunterdrückung an" beeinflussen nur die Zeit des Stillstandes an der jeweiligen Position? Oder steuerst Du dmait auch die jeweiligen Funktionen in der Kamera?

Einen formalen Änderungsvorschlag zur Nomenklatur möchte ich anbringen: Nenne das "increment", "step size" oder "Focus Depth", nicht "Focus Deep".
 
Ich nehme an, Deine Parameter wie "Rauschunterdrückung an" beeinflussen nur die Zeit des Stillstandes an der jeweiligen Position? Oder steuerst Du dmait auch die jeweiligen Funktionen in der Kamera?

Richtig! Rauschunterdückung verlängert lediglich die Verzögerung im Stillstand.
Die Kamera-Funktionen zu beeinflussen.........wüsste nicht wie ich das bewerkstelligen könnte......
Ich hatte allerdings nach einer Möglichkeit gesucht das 'busy'-Signal meiner CANON abzufragen. Leider ohne Erfolg.
 
Etwas plump könnte das mit einer Fotodiode gehen, die man per Tesa oder Mini-Schwanenhals vor die busy-LED packt.

Wirkt auf den ersten Blick übertrieben, finde ich, Andererseits, wenn man ein paar hundert Bilder stackt, kann das in der Summe schon eine gute Zeitersparnis geben und ggf auch das Risiko reduzieren, dass sich im Verlauf der Aktion das Licht zu sehr ändert. Falls man eben frühmorgens oder abends unterwegs ist.
 
Also, der erste Test mit einer Foto-Diode war erfolgreich!
Danke für Deinen Tip Dilettant!

Die Busy-LED am meiner CANON lässt sich eindeutig abfragen.
Wenn diese aufleuchtet bzw. aufflackert ist die Cam zwar schon seit ca. 1sec. wieder fotobereit, aber ich denke das dies ein sicheres Kriterium darstellt un den Schlitten in den nächsten Step zu schicken.
 
Falsch gedacht!!!!
Bei einer einzelnen Aufnahme funktionier das mit der Busy-Led prima.
Aber wenn´s dann in eine schnellere Fotofolge über geht, brennt die Led fast dauernd. Was dann zu Auslassungen führt, wenn das Lichtlein als Kriterium für den nächsten Step genutzt wird. Evtl. ist das auf meine doch schon betagte 20D zurückzuführen. Die braucht halt Zeit um Daten auf die CF zu schreiben.
Schade!
Also muß doch eine Zeit abhängige Steuerung her.
 
Hm?

Eventuell kannst Du das Problem folgendermaßen lösen:

Benutze eine zweite Photodiode und bringe die am Okular an und werte die über den Arduino aus.

Der Arduino löst die Kamera aus, der Spiegel klappt nach oben und im Sucher wirds dunkel. Nachdem fertig belichtet wurde klappt der Spiegel wieder runter und im Sucher wirds hell, das sieht die Photodiode und der Arduion schickt die Kamera zum nächsten Punkt, wartet aber bis die CF-LED erloschen ist und löst dann erneut aus. Wegen der SVA musst eben dementsprechende "Leerschritte" bedenken.
 
Zuletzt bearbeitet:
Sorry,
aber das Problem ist doch nicht, so schnell wie möglich die Aufnahmen zu machen, sondern die Aufnahmen in unverwackelter Qualität zu machen.
Nur dann können sie zu einem guten, durchgehend scharfen Bild zusammengerechnet werden.
Das heißt, ich muss der Konstruktion Zeit geben, dass die durch die Bewegung erzeugten Schwingungen wieder abklingen.
Wenn ich hier mit Gewalt die schnellste Aufnahmeserie machen will, wird das nix.
Einfach mal 10fache oder besser 20fache Vergrößerung ausprobieren, dann sieht man jede Vibration.
Dann verstehst Du, was ich meine.
Der besseren Qualität wegen kommt es nicht auf die Bereitschaftszeit bis zur nächsten Aufnahme an.

Setz einfach eine Verzögerung von 2 Sekunden, dann sind alle Schwingungen abgeklungen und die Aufnahme wird unverwackelt scharf.

Die Gedanken mit Busy-LED führen Dich in die falsche Richtung. Die Ruhe ist wichtiger als die Geschwindigkeit.

Übrigens: wenn Du die Programmierung für Dich mal abgeschlossen hast, wäre ich am Programmcode interessiert.
Das geht sicher auch einigen Mitlesern so.
Bin also gespannt auf die Weiterentwicklung.

Meine Lösung habe ich in diesem Thread gepostet:
https://www.dslr-forum.de/showthread.php?t=1219323

Vielleicht kann eine Teil meines kranken Codes als Anregung dienen?



Gruß
Der Bastler
 
Sorry,
aber das Problem ist doch nicht, so schnell wie möglich die Aufnahmen zu machen, sondern die Aufnahmen in unverwackelter Qualität zu machen.
............
Wenn ich hier mit Gewalt die schnellste Aufnahmeserie machen will, wird das nix.
.............
Die Gedanken mit Busy-LED führen Dich in die falsche Richtung. Die Ruhe ist wichtiger als die Geschwindigkeit.

Da kann ich nur zustimmen!!!!

Die Abfrage der Busy-Led sollte, nach meiner Überlegung, auch nur ein sicheres Kriterium darstellen, um den nächsten Step einzuleiten. Also abfragen ob die Cam wieder bereit ist.

Wenn die Kiste zu meiner Zufriedenheit läuft, bin ich gerne bereit den Programm-code und alles andere Wissenswert zur öffentlichen Verfügung bereit zu stellen!
 
aber das Problem ist doch nicht, so schnell wie möglich die Aufnahmen zu machen, sondern die Aufnahmen in unverwackelter Qualität zu machen. [/url]

Doch, genau, es geht darum, zu ermitteln, wie früh der nächste Schritt (!) möglich (!) ist.

Denn Du willst die Kamera nicht zu früh wieder bewegen, aber auch keine Zeit unnötig verschenken. Begründung siehe weiter oben im Thread.



Setz einfach eine Verzögerung von 2 Sekunden, dann sind alle Schwingungen abgeklungen und die Aufnahme wird unverwackelt scharf.

Wie kommst Du auf die Allgemeingültigkeit Deines Wertes? Was, wenn seine Belichtungszeit schon 2 Sekunden oder länger ist? Was, wenn seine Konstruktion viel schwingungsärmer oder -freudiger ist? Ich selbst hatte schon eine Konstruktion, die ich ca 1 Minute ausschwingen lassen musste, nach der Spiegelauslösung auch noch über 10 Sekunden.

Die Gedanken mit Busy-LED führen Dich in die falsche Richtung. Die Ruhe ist wichtiger als die Geschwindigkeit.

Beides ist wichtig. Sind aber zwei völlig unterschiedliche Paar Schuhe.
Der nächste Bewegungsschritt kann beginnen, sobald der Verschluss wieder zu ist (könne mittels schubbsers Idee ermittelt werden, sofern kein LV aktiviert ist).
Die nächste Spiegelvorauslösung kann beginnen, sobald die vorige Aufnahme komplett abgeschlossen ist (Hinweis: Busy-LED wieder aus).
Die nächste Aufnahme kann beginnen, wenn die Mindestwartezeit nach der SVA UND die Mindestwartezeit nach der Bewegung zur nächsten Position abgelaufen ist.

Ist letztendlich nur eine Frage der Prozessqualität, die man erreichen möchte. exxy will hat halt hohe Ansprüche -- ich hätte die auch.
 
Wie wäre es mit einem Kabel von der Syncronbuchse oder alternativ vom Blitzschuh mit der Einstellung den Blitz auf den 2. Vorhang und dann dieses Signal mit dem Arduino auszuwerten.
 
Also nochmal,
die Busy-LED abzufragen fand ich ne gute Idee und die Abfrage ansich hab ich auch hinbekonnen.
!!ABER!! die Sache ist nutzlos! Wie schon gesagt, für einzelne Aufnahmen, klappts. Nur wenn Folgen entsehen, natürlich abhängig von der Geschwindigkeit der jeweiligen Bilderfolge, dann ist das Busylämpchen als genaues Kriterium nicht mehr zu gebrauchen!
Letztendlich muss man sich wohl auf eine Zeit-Ablauf-Steuerung stürzen.
 
Wie wäre es mit einem Kabel von der Syncronbuchse oder alternativ vom Blitzschuh mit der Einstellung den Blitz auf den 2. Vorhang und dann dieses Signal mit dem Arduino auszuwerten.

Also wann die Cam auslöst, das weiss ich auch so. Und der Arduino erst recht.
Und genau das würde ich von der Blitzbuchse nochmals erfahren, nicht mehr!:cool:

Zeit-Steuerung.......................
 
Hallo,
ich wollte niemandem zu nahe treten!
Da ich praktisch das selbe Projekt umgesetzt habe, vom Arduino-gesteuerten Schrittmotor bis zum mit Lineartechnik kugelgelagert geführten Schlitten, dachte ich, dass der von mir gemachte Erfahrungswert nützlich ist.
Deshalb habe ich die 2 Sekunden in den Raum gestellt. Die haben sich bei mir einfach für jeden Einsatz bewährt.
Natürlich könnte es auch abhängig von der Belichtungszeit zu lang sein.
Aber auch ein Blitz braucht Ladezeit. Zumindest nach der 100sten Auslösung im Batteriebetrieb ..
Bei meinem Script laufen folgende Zeiten:

1) bei Spiegelvorauslösung:
SVA- 4 Sekunden warten -Auslösen- 2 Sekunden warten-nächster Schritt

2) ohne Spiegelvorauslösung:
Auslösen- 2 Sekunden warten-nächster Schritt

Ich habe auch schon schellere Durchläufe getestet, aber das hat sich nicht bewährt und ich habe deshalb "sichere" Zeiten genommen.
Allerdings sind die so lang, dass die Bereitschaftszeit der Kamera keine Rolle mehr spielt. Der nächste Schritt kann deshalb nicht zu früh werden.
Allerdings muss ich einräumen, dass ich sicher damit Zeit verschenke.

Aber mal ehrlich: ein 100-Bilder-Stack ohne SVA hat dann gute 10 Minuten.
Wie lange dauert das Zusammenbauen, nachbearbeiten usw. ??
Und wie lang ist das Gesicht, wenn man feststellt, dass die erwartete Qualität doch nicht erreicht wird?

Vielleicht bin ich in diesem Punkt etwas unbelehrbar, aber ich habe meine Erfahrungen dazu gemacht und bleibe bei meinem (sicheren) Ergebnis.


Gruß
Frank
 
Wie wäre es mit einem Kabel von der Syncronbuchse oder alternativ vom Blitzschuh mit der Einstellung den Blitz auf den 2. Vorhang und dann dieses Signal mit dem Arduino auszuwerten.

Zumindest einige der neueren Canons (wahrscheinlich alle) machen den 2. Vorhang nur noch bei ~ 1/25 oder langsamer. Auch, wenn anderes einstellbar ist und auch so angezeigt wird -- macht man die praktische Probe, merkt man das sofort.

Ansonsten wäre das natürlich eine gute Idee.


Nur wenn Folgen entsehen, natürlich abhängig von der Geschwindigkeit der jeweiligen Bilderfolge, dann ist das Busylämpchen als genaues Kriterium nicht mehr zu gebrauchen!

Eine solche Folge könnte durch diese Programmierung nicht entstehen, oder? Ich meine, das von Dir beschriebene Verhalten kommt doch daher, dass Du per Serienaufnahme oder schneller Auslösefolge von hand den Puffer voll schreibst, der sich dann quasi-kontinuierlich auf die CF-Karte entlädt.
Würdest Du aber programmiert nach jedem Auslösen auf das Erlöschen der busy-LED warten, könnte die ja nicht mehr dauerhaft leuchten.


Und genau das würde ich von der Blitzbuchse nochmals erfahren, nicht mehr!:cool:

Neee, er meinte ja, den Blitz auf den 2. Vorhang eingestellt, dann würde das Signal ganz kurz vor dem Schließen des Verschlusses kommen, also etwa 1/200 Sekunde vor dem definitiven Ende der Aufnahme.
 
Und wie lang ist das Gesicht, wenn man feststellt, dass die erwartete Qualität doch nicht erreicht wird?


Klar, das ist so ziemlich das Wichtigste! Diese Wartezeit, von der Du sprichst, sollte ja auch keinesfalls unterschritten werden. :top:

Allerdings, siehe oben, fänd ich es sicherer, Deine Wartezeit auf zB 2s+Belichtungszeit zu setzen; dann wärst Du auch bei weniger Licht auf der sicheren Seite.
 
Also wann die Cam auslöst, das weiss ich auch so. Und der Arduino erst recht.
Und genau das würde ich von der Blitzbuchse nochmals erfahren, nicht mehr!

Wenn Du dabei sitzt und die Aufnahme überwacht, dann bekommst DU das vielleicht mit, aber der Arduino weiß das nicht 100%ig, der SCHÄTZT das nur anhand der Busy-LED, die aber teilweise ein "Eigenleben" hat/haben und durchaus auch lampeln wenn die Kamera irgendwas anderes macht. Gehe hier auch davon aus, dass Du evtl. mal eine andere Kamera einsetzt wo sich die LED anders verhält.

...
die Busy-LED abzufragen fand ich ne gute Idee und die Abfrage ansich hab ich auch hinbekonnen....
...für einzelne Aufnahmen, klappts. Nur wenn Folgen entsehen, natürlich abhängig von der Geschwindigkeit der jeweiligen Bilderfolge, dann ist das Busylämpchen als genaues Kriterium nicht mehr zu gebrauchen!

Alleine das Busy-Lamperl als Signal für die Kamerabereitschaft auszuwerten ist wirklich nicht sinnvoll.

Diese LED leuchtet in vielen Situationen zwischendurch mal. zB. wenn die Kamera "aufwacht"....... Ich würde die LED so auswerten wie ihr Name es schon sagt ;) Wenn die Kamera beschäftigt ist, dann soll Deine Steuerung die Kamera NICHT ansteuern.

Lies doch noch einmal meine Bemerkung auf der vorangegangenen Seite. Irgendwie bist Du da nicht drauf eingegangen (überlesen?)

Die Idee mit der Auswertung des Blitzschuhs dürfte eigentlich perfekt funktionieren.
Der Mittenkontakt bzw. der zusätzliche Blitzanschluss (PC-Buchse) werden NUR gegen Masse gezogen wenn ein Bild gemacht wird. Und nur dann! Bedeutet, wenn der Arduino diesen Impuls nicht "gesehen" hat, dann soll er eben noch einmal die Kamera auslösen, OHNE dass davor gefahren wird. So werden keine Bilder übersprungen.

Theoretisch kannst dann auf die Auswertung der Busy-LED komplett verzichten.
 
Ich muss, glaube ich, mal ein großes 'SORRY' in die Runde schicken!!!!

Denn ich habe wohl einen kleinen Programmier-Fehler begangen!
Ich hatte zur Auswertung der 'busy-LED' den Analogeingang A5 des Arduino benutzt. Die LCD-Anzeige, die ich angeschlossen habe, wird über den I²C-Bus angesteuert! Die dafür benötigten Daten-Leitungen liegen auf A4 und A5. Somit hatte ich den A5-Pin wohl versehentlich doppelt belegt und dadurch natürlich keine einwand-'freien' Signale bekommen! Vermutlich hat die Bus-Schnittstelle irgendwann die Warteschleife freigegeben ohne das ich das mitbekommen habe. War zwar durch ne LED überwacht....aber da sieht man ja die schnellen Signale nicht unbedingt.

Sorry!

Ich werde das heute nochmals testen und berichten!
Bis dann.
 
WERBUNG
Zurück
Oben Unten