• Herzlich willkommen im "neuen" DSLR-Forum!

    Wir hoffen, dass Euch das neue Design und die neuen Features gefallen und Ihr Euch schnell zurechtfindet.
    Wir werden wohl alle etwas Zeit brauchen, um uns in die neue Umgebung einzuleben. Auch für uns ist das alles neu.

    Euer DSLR-Forum-Team

  • In eigener Sache!

    Liebe Mitglieder, liebe Besucher und Gäste
    ich weiß, es ist ein leidiges Thema, aber ich muss es ansprechen: Werbung, Werbeblocker und Finanzierung des Forums.
    Bitte hier weiterlesen ...

  • DSLR-Forum Fotowettbewerb neu erfunden!
    Nach wochenlanger intensiver Arbeit an der Erneuerung des Formates unseres internen Fotowettbewerbes ist es Frosty als Moderator
    und au lait als Programmierer gelungen, unseren Wettbewerb auf ein völlig neues Level zu heben!
    Lest hier alle Infos zum DSLR-Forum Fotowettbewerb 2.0
    Einen voll funktionsfähigen Demowettbewerb kannst du dir hier ansehen.
  • Neuer Partner: AkkuShop.de
    Akkus, Ladegeräte und mehr (nicht nur) für Digitalkameras und Drohnen
  • Neuer Gutscheincode unseres Partners Schutzfolien24:
    DSLR-Forum2024
    Dauerhaft 10% Rabatt auf alle Displayschutzfolien der Eigenmarken "Upscreen", "Brotec", "Savvies".
    Der Code ist für alle Geräteklassen gültig.
  • Stimmt ab über die Sieger des DSLR-Forum Fotowettbewerbs April 2024.
    Thema: "Sprichwörtlich"

    Nur noch bis zum 30.04.2024 23:59!
    Jeder darf abstimmen!
    Zur Abstimmung und Bewertung hier lang
WERBUNG

EOS Follow-Focus mit extras über USB (Arduino-Based)

Weiß jemand zufällig warum meine 550d beim aktivieren des Liveview kein Bild anzeigt. Erst wenn ich an der Kamera auf Liveview schalte sehe ich auch das Bild auf dem Display.

Liegt es an einer Kameraeinstellung oder am PTP via Arduino?

Hat jemand vielleicht auch schonmal das EOS.GetProperty ausprobiert von der Lib um Werte wie Exposure von der Kamera auszulesen?
 
Bei meiner 1100D ist das genauso.
Ich Denke mal, dass die Kamera meint an USB Hängt ein PC der die Live View anzeigt.
Wäre zumindestens Logisch.
 
Hat jemand das ganze schon mit der neuen Arduino IDE 1.0 zum laufen gebracht?

vor 5 minuten :)

Kann auch noch nichtsagen ob es funktioniert, aber es kommen keine Fehler mehr beim Übersetzen:



Workaround (pfade anpassen !):

datei anlegen: /opt/arduino/hardware/arduino/cores/arduino/WProgram.h
mit diesem Inhalt:
Code:
#include <Arduino.h>
#define BYTE 1




Richtig machen:
die Dateien suchen in der noch die Zeile:
Code:
#include <WProgram.h>
enthalten ist und gegen folgende tauschen:
Code:
#include <Arduino.h>

dazu noch in der Datei: /opt/arduino/libraries/USB_Host_Shield2/message.cpp
eine Zeile ändern:
Code:
Serial.print(c,BYTE);
in
Code:
Serial.print(c,1);

Fettisch :D
 
Zuletzt bearbeitet:
Hi Olli,
mit den Einstellungen des ISO wäre ich vorsichtig. Nachdem bei mir endlich alles lief habe ich das Beispiel Programm von yanis ausprobiert und aus versehen eine falsche ISO Zahl eingegeben. Jetzt bekomme ich immer "Err 70" angezeigt. Batterien für 24 h enfernt aber kein Erfolg. Die Kamera kann ich jetzt einschicken. :-((

tuts die Kamera (welche ist es) wieder? was musstest du dafür tun?

mittlerweile laufen bei mir endlich die PTP 2 Beispiele nach kleinen Änderungen . Die 7D tuts damit gut, die 40D macht teilweise Fehlermeldungen tuts aber irgendwie doch...

EOSCamController ist aber für meinen Iteaduino zu groß: 31104 bytes (of a 30720 byte maximum)
Ich habe dieses USB-Shield
 
Frage: Hat schon jemand einen 11pol. miniUSB-Stecker oder Adapterkabel gefunden, das man zum Umbau benutzen kann? Um die MiniUSB-Buchse zum gleichzeitigen Steuern und Anschluss eines externen (Sucher)-Monitors zu benutzen, benögt man einen 11pol. miniUSB.

Walter.
Gibts hierzu was aktuelles ?
 
Sehr interessantes Projekt, Odippel!

Besten Dank hierfür!!!

ich spiele mich mit dem Gedanken, eine USB Steuerung für Canon EOS auf einem AT90USB1287 zu realisieren. hat jemand vielleicht Erfahrung hiermit?

Zurzeit bin ich noch in der "Visions"-Phase - ein fertiges Design hab ich noch nicht.

Danke,
Thomas
 
Hallo zusammen!
sehr genial das Projekt! :)
ich wollte das auch mal nachbauen, allerdings habe ich noch ein paar Probleme damit:
Ich benutze folgende Hardware:
1x Arduino Mega 2560
1x USB Host Shield (Sparkfun)
1x Drehencoder: http://www.lipoly.de/index.php?main_page=product_info&products_id=213723

Als Entwicklungsumgebung benutze ich Arduino r1.0 auf einem Mac OS X Lion Betriebssystem.

Vorgegangen bin ich nach folgendem Tutorial:
http://sourceforge.net/p/diy-usb-focus/wiki/Home/

nach dem ich alles installiert habe, schliesse ich also meine EOS 7D an das USB Host-Shield an (USB-Host Shield ist auch eingeschaltet), Arduino bekommt zusätzlich Strom über ein 9V Block, drehe am Encoder -> nichts passiert. Dann habe ich in den Serial Monitor geschaut, und erhalte dort:

Start
OSC did not start.
Camera disconnected.

Kamera ist jedoch mit dem USB Shield verbunden, welches auch AN ist!?

Ich habe dann einfach mal das USB-Host-Shield gewechselt und dieses hier ausprobiert:
USB Host Shield for Arduino DFRobot DRF0138 http://www.lipoly.de/index.php?main_page=product_info&products_id=200132
Und siehe da: Es funktioniert alles auf anhieb!

Jetzt frage ich mich natürlich woran das liegt, dass es mit dem selben shield welches auch im Tut verwendet wird, nicht funktioniert!?
ich musste die Stecker ja selbst anlöten, dachte dann, die Pins sind vielleicht nicht richtig verlötet, und hab alles nochmal nachgelötete, aber ohne Erfolg,
obwohl das ist ein nagelneues USB-Shield.

GIbts irgendeinen Weg, wie ich rausfinde, ob das Shield wirklich defekt ist?

ich wäre für jede Hilfe dankbar.
Das Projekt ist wirklich ein Super Idee (vielen Dank odippel!)

VG,
David
 
Zuletzt bearbeitet:
Sodele ... ich hab die Teil nun auch mal bestellt und werde nächste Woche berichten. Wenn das mit der elektrischen Ansteuerung des Objetivs so klappt, werde ich mich noch an eine mechanische Variante über einen STeppermotor oder Modellbauservo (für rein mchanische Objektive) geben. Für das Andurino board gibts ja entsprechend ein Shield, wo man PWM einfach mit nutzen kann. Damit mit der Hase für den Servo schon geschält. Wäre ja sehr praktisch, wenn man das verbinden könnte. Mal gucken.
 
Mhh, keiner mehr an dem Projekt dran ?

Denke mal, es liegt an der mageren Doku. Sich da reindenken ist mal nicht "mal eben" gemacht.

Ich hab das Teil mal zusammengestrickt mit einem UNO und Sparkfun USB-hostshield. Der Programmcode auf der projektseite läuft schonmal gar nicht, der läßt sich nicht kompilieren. einer der letzten codes hier auf den seiten geht dann zum upload und auch die schritte von den drehreglern werden in der console angezeigt. leider habe ich bei der 60D auch das problem, daß ich kein "camera connected" hinbekomme, warum auch immer.

Nun wirds natürlich schwierig den fehler zu finden, wenn man neu auf dem gebiet ist.

Das Schlimmste ist am Anfang, den Wildwuchs an libs zu verstehen, und wie man sie richtig einbindet. V1 und V2 für PTP und irgendwie findet man dann noch ne cameracontrol und ne canonoes-lib die *.h dateien haben, die es in anderen libs schon gibt ... *grumpf*
 
Zuletzt bearbeitet:
Ich habe dann einfach mal das USB-Host-Shield gewechselt und dieses hier ausprobiert:
USB Host Shield for Arduino DFRobot DRF0138 http://www.lipoly.de/index.php?main_page=product_info&products_id=200132
Und siehe da: Es funktioniert alles auf anhieb!

Jetzt frage ich mich natürlich woran das liegt, dass es mit dem selben shield welches auch im Tut verwendet wird, nicht funktioniert!?
Wenn ich den Post hier richtig lese, dann ist das Sparcfun-USB-Shiels mit der V2.0 USB Lib gar nicht kompatibel!

http://www.circuitsathome.com/mcu/hid-support-for-usb-host-shield-library-2-0-released
 
Zuletzt bearbeitet:
Sodele ... so langsam wird ein Schuh draus.

Das Ganze läuft nun soweit. Zumindest kann ich Zeit, Blende und ISO einstellen.
Dasmit dem Fokus habe ich mir anders vorgestellt, aber der Codetstaus ist ja noch aus Versuchszeiten.

Die Schreibfehler beim Verstellen von Blende kamen bei mir von falschen/ungültigen HEX-werten in die Cam. Ich habe das mal bereinigt und nur "sinnvolle" Werte genommen:

Code:
ISO160-2500 --> uint8_t iso_values[6] = {0, 0x4D, 0x55, 0x5D, 0x65, 0x6D};

f1.2 bis f16 -> uint8_t aperture_values[23] = {0x0d, 0x10, 0x13, 0x15, 0x18, 0x1b, 0x1d, 0x20, 0x23, 0x25, 0x28, 0x2b, 0x2d, 0x30, 0x33, 0x35, 0x38, 0x3b, 0x3d, 0x40, 0x43, 0x45, 0x48};

Die Sache mit dem analogen Eingang hab ich noch nicht verstanden, das muß ich mir nochmal zu Gemüte führen.

Wenn dann alles soweit steht, tipper ich mal eine Schritt-für-Schritt Anleitung.
 
Zuletzt bearbeitet:
Hi Stoecky2

klasse dass hier mal wieder etwas Leben in das Projekt kommt!
Danke erstmal für deinen Hinweis.
Eine neue Schritt für Schritt Anleitung auf aktuellem Stand fände ich da auch super, damit neue Leute mit Interesse am Nachbau einen guten Einstieg erhalten und man wieder etwas ins Gespräch kommen kann.
Ich fände zb gut mal ein bisschen "Licht" in den "Programmaufbau" zu bringen. Also auch in der "USB-Kommunikation" und die "Kamerasprache". Da bin ich nämlich ein bisschen "verloren", obwohl ich Spass am programmieren habe, das aber nur so mal neben bei als in der Freizeit mache, ist es für mich da etwas schwer, den Durchblick zu erhalten.
Gerne unterstütze ich dich dabei auch, wo ich kann, wenn ich kann! ;)

Also dann, ich freue mich hier auch neue Beiträge

VG, David
 
Eine neue Schritt für Schritt Anleitung auf aktuellem Stand fände ich da auch super, damit neue Leute mit Interesse am Nachbau einen guten Einstieg erhalten und man wieder etwas ins Gespräch kommen kann.

Selbiges würde ich mir auch wünschen.
Ich überlege schon lange mir solch einen Follow Focus nachzubauen allerdings gibt es nur sehr wenige Beispielvideos. Kann mir jemand sagen ob man damit sauber fokussieren kann (nicht so abgehakt wie es auf dem ersten Video der Fall ist sondern sauber und gleichmäßig - wie mit einem richtigen Follow Focus eben)?

Gruß
Tom
 
Hi,

Kann mir jemand sagen ob man damit sauber fokussieren kann (nicht so abgehakt wie es auf dem ersten Video der Fall ist sondern sauber und gleichmäßig - wie mit einem richtigen Follow Focus eben)?

Sauber ja, aber dann nicht mehr schnell.
Der Focus hat 3 Stufen, langsam (aber genau), mittel und schnell (aber ungenau wie auf dem Video).

Wenn man einen Encoder zum einstellen nutzt, dreht man sich auf der feinen Stufe fast tot.
Daher hab ich mir ein Poti genommen, das bei wenig Ausschlag den Focus langsam dreht
und bei mehr halt entsprechend schneller.
Mit etwas übung kann man so recht schnell und genau focusieren.

Das Poti habe ich aus einem Pistolen-Sender einer Modellfernsteuerung, so passt es optimal an ein Rig dran ohne die Hand vom Rig nehmen zu müssen.

Eine neue Schritt für Schritt Anleitung auf aktuellem Stand fände ich da auch super

Für eine neue 'Schritt für Schritt' anleitung habe ich im Moment keine Zeit,
leider hat sich ein wenig seit Arduino 1.0 und den PTP-Libs 2.0 geändert.
Aber es läuft auch damit, muss sich nur mal einer die mühe machen und es Dokumentieren.

Das mit dem Auslösen über USB geht irgendwie, allerdings hab ich es noch nicht getestet, bzw versucht ein zu bauen, aber was per PC möglich ist (bis auf das Streamen) sollte auch mit dem Arduino funktionieren.

Gruß,
Olli

PS: wer mir verspricht ne Anleitung dazu zu schreiben, dem kann ich auch per Mail helfen sein Prototyp auf zu bauen. Nur halt nicht jedem einzeln, ein wenig eigenleistung sollte schon dabei sein. Ist alles kein Hexenwerk und die Arduino-Platform nimmt ein ja schon die meiste Arbeit ab.
 
Ich hab nun mal eine "beta" am laufen:

- Fokuseinstellung per drehencoder
- isoeinstellung per drehencoder (80, 160, 320, 640, 1250, 2500, auto)
- blendeneinstellung per drehencoder (f1.2-f16 in 1/3 schritten)
- REC-knopf
- 5x magnifier per schalter (zickt noch rum).

Geplant ist:
- schrittweite des fokus abhängig vom magnifier.
- ISO und blende über drehschalter (widerstandskaskade) um fixe stellungen zu erreichen.
- one.touch graukartenkalibrierung(weissabgleich)

das wären so die basis, die man zum filmen braucht. ich werde mich im april mal hinsetzen und eine doku schreiben (hardware und software inkl coding und entwicklungsumgebung).

zum preis: ein arduino kostet je nach typ zwischen 20 und 30€, ein USB-schield nochmal das gleiche. dazu ein gehäuse, taster, schalter, drehencoder ... ich würde mal sagen inkl versandkosten bleibt man in summe locker unter 100€.
 
Tolles Projekt :)

Vielleicht interessant für dich: Das ML-Projekt (Magic Lantern) betreibt ja einiges an reverse-engineering und dabei sind sie IMHO auf zusätzliche Focus-Steuerungs-Befehle gestossen. Es scheint demnach möglich zu sein, nicht nur in den genannten drei Geschwindigkeiten, sondern auch in allen Zwischenstufen zu arbeiten. (Siehe ML Discussion-List)

Grüsse!
 
So langsam taste ich mich ran, die halbe Anleitung steht auch schon.

Aber kommen wir mal zu einem interessanten Thema: Den Encodern.

Die Bounce-lib ist ja prima, sie entprellt die mechanischen encoder. 12 Stepspro runde sind nicht gerade viel, wenn man genau fukussieren will, bzw man dreht sich einen wolf dabei. entprellt man softwareseitig, kann man nicht schnell drehen, logisch. nun habe ich mal ein wenig im netz gesucht und bin über einen "Bourns EM14A0A-B24-L064S" gestolpert. Das teil ist volldigital(optisch) und hat 64 steps/360°. Hat da jemand Erfahrung mit? Dann könnte man sich die bouncelib sparen und schneller drehen ;)

ISO und Blende bin ich gerade dabei, "manuell" über einen drehschalter in den arduino zu legen: ISO als 6 stufendrehschalter mit widerstandskaskade über einen analogen eingang , die blende genauso, nur über einen 12stufenschalter. Bei ISO würde sich 80-2500 ergeben, bei der blende von 1.4 bis f9.5 (beispielsweise). Mit dem Encoder für ISO und blende bin ich nicht gut klargekommen, da man sich mal schnell in bereiche dreht, die je nach cam und optik nicht unterstützt werden und dann "gefühlt" verwirrung stifen. da gefallen mit "harte" einstellungen besser.

Zum Nachbasteln mal hier der Testcode für einen Drehschalter mit 4 Stellungen. Einfach drei Widerstände von z.B. 5kOhm in Reihe schalten, dann zwischen GND und +5V bringen und mit dem Drehschalter GND, R1, R2, R3, 5V abgreifen und den Mittensnschluß auf einen analogen Eingang (A0) führen.

Der "round" dient zum ausgleich von widerstands und temperatur oder spannungsschwankungen, das ergebnis sollte im serialmonitor die zahl 1-4 (für die schalterstellung) sein.

PHP:
int sensorPin = A0;    // eingang
int sensorValue = 0;  // sensorwert
int switchpos = 4;    // Anzahl der drehschalterpositionen
int sp = 0;          // schalterstellung -> ergebnis
int spold = 0;
double jump = 1023/(switchpos-1); // schwellwerte errechnen

void setup() {
  Serial.begin(115200); // ausgabe vorbereiten
}

void loop() {
  // read the value from the sensor:
  sensorValue = analogRead(sensorPin);    
  // calc switchpos
  sp = round(sensorValue / jump ) +1;
  // output
  if (sp != spold) {
      Serial.println(sp);
      spold = sp;
  }
  // wait 100ms
  delay(100);          
}
 
WERBUNG
Zurück
Oben Unten