PTP und Mikrocontroller?

CHDK-Skripte, CHDK-Entwicklung, PC-Zusatzprogramme, Informationen für Tüftler

PTP und Mikrocontroller?

Beitragvon mr.burns » 23.02.2014, 20:47

Hallo,

bin seit heute neu hier im Forum und möchte zunächstmal alle ganz nett Grüßen!
Ich bin Programmierer und Elektronik-Bastler. Habe bereits seit Längerem eine Stereokamera mit zwei (alten) Ixus 860 IS im Einsatz.
Seinerzeit habe ich das SDM (Stereo-Ableger des CHDK) umprogrammiert um beide Cams per Kameraauslöser synchron auszulösen.
Die Kameras habe ich damals hart verdrahtet, also Auslöser, Zoom etc. in beiden Kameras mit Kabel verbunden.
Zusätzlich wie gesagt das SDM umprogrammiert damit es auf den Auslöser der Kamera reagiert und nicht auf den externen USB Schalter.
Das klappt bis heute prima, sogar mit den in die Kameras eingebautem Blitz.
Nun möchte ich mich an ein neues Projekt wagen und habe einwenig über PTP gehört, was aber noch recht neu für mich ist, hoffe ihr könnt mir helfen.
Ich möchte wieder ein Stereogespann aufbauen, diesmal aus zwei Powershot S110.
Würde gerne die Kameras fernsteuern und zwar über einen Mikrocontroller (Atmega32 o.ä.).
Meine Frage nun, wenn ich am Mikrocontroller einen USB-Port habe kann ich dann die S110 über PTP fernsteuern, Daten senden und empfangen?
also auf Mikrocontrollerseite mit putm und getm arbeiten und auf S110-Seite mit write_usb_msg und read_usb_msg?

Die Alternative zu PTP wäre USB Remote. Da würde ich Pulse mit bestimmten längen zur Kamera schicken, die in CHDK auswerten und dann bestimmte Aktionen in der Kamera auslösen. Wäre für mich einfacher umzusetzen, da ich kein USB Support am Mikrocontroller bräuchte.

Wenn mit PTP dasselbe erreichbar wäre würde ich PTP bevorzugen, da ich leichter Daten sende und empfangen könnte.
Damit ich trotzdem in den Synchron-Auslöse-Modus (ganz wichtig für Stereobilder, die immer 100% synchron sein müssen, gerade bei bewegten Bildinhalten) über USB komme würde ich umschalten zwischen USB-Remote und PTP, das soll wohl gehen - weiß einer wie?

Danke für jede Art von Hilfe...
mr.burns
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 10
Registriert: 23.02.2014, 20:23
Kamera(s): IXUS 860 IS, Powershot S110 103.a

Re: PTP und Mikrocontroller?

Beitragvon msl » 23.02.2014, 22:45

Hallo und herzlich willkommen hier im Forum.

Dein Anliegen habe ich schon in den diversen Foren verfolgt. Wie du schon selbst festgestellt hast, gibt es neben der Fernsteuerung via USB-Remote mittlerweile auch die Möglichkeit, per PTP Kameras zu steuern.

Aus meiner Sicht ist die synchrone Auslösung mit einer USB-Fernbedienung die einfachere und bewährte Lösung. Bei der PTP-Variante müssen einige Dinge grundsätzlich geklärt werden.

Die CHDK-PTP-Funktionen wurden bisher vorrangig für die Kommunikation mit einem PC(Windows, Linux; OSX) geschrieben. Es wird auf der USB-Host-Seite ein gesonderter USB-Treiber benötigt (LibUSB). Außerdem ist eine speziell angepasste Klient-Software notwendig.

Um dir ein Bild von der Leistungsfähigkeit der CHDK-PTP-Funktionen zu machen, empfehle ich dir, chdkptp auf dem PC einzurichten. Der Klient ist in Lua geschrieben. Das hat den Vorteil, dass die meisten Bestandteile ohne Kompilierung veränderbar sind. Er enthält u.a. ein einfaches Multikamera-Modul. Neben dem GUI gibt es ein sehr leistungsstarkes CLI.

https://www.assembla.com/spaces/chdkptp/wiki
viewtopic.php?f=7&t=2699

Für eine PTP-Mikrocontroller-Lösung wäre also eine USB-Host-Anschluss Grundvoraussetzung. Außerdem müsste eine Klient-Software geschrieben werden. Als fertige Lösung würde sich Raspberry Pi anbieten, da es für dieses Board chdkptp gibt. Das geht dann natürlich über eine einfache Mikrocontroller-Lösung weit hinaus.

Ich würde an deiner Stelle erstmal die bestehenden Sync-Methoden ausloten. Wie gut ist die Synchronität mit der Usb-Fernbedienung? Muss Precision-Sync im CHDK-Quellcode für die S110 aktiviert werden? Kannst du etwas mit der chdkptp-Multikamerafunktion anfangen?

Noch ein Wort zu Lua. Du wirst, wenn du dich intensiv auf CHDK einlässt, nicht an Lua vorbeikommen. Wenn du mit C/C++ arbeitest, wirst du auch mit Lua keine Probleme haben.

Gruß msl
Benutzeravatar
msl
Super-Mod
Super-Mod
 
Beiträge: 4567
Bilder: 271
Registriert: 22.02.2008, 11:47
Wohnort: Leipzig
Kamera(s): A720 1.00c
SX220 1.01a

Re: PTP und Mikrocontroller?

Beitragvon mr.burns » 24.02.2014, 08:35

Hallo msl,

oh ha - ich werde also verfolgt? ;-)

Danke erstmal für Deine Antwort. Aus jetziger Sicht, denke ich, dass es für meine Belange völlig ausreicht, ohne PTP zu arbeiten.
PTP würde für meine Zwecke auf Seiten des Mikrokontrollers zu viel Overhead bedeuten.
Ich denke ich werde mich mal mit dem Pulsen des USB-Ports beschäftigen, um gewisse Daten/Befehle an die Kamera mit CHDK senden zu können.
Wird 'ne spannende Sache werden, hoffe ich finde genügend Zeit neben meinem 'normalen' Job...

In ein paar Tagen bekomme ich meine Röhrenmonitor damit werde ich erstmal die Sync-Versuche mit meinem S110 Stereopaar machen.
Wenn ich Ergebnisse und/oder Fragen habe werde ich mich wieder melden.
Vielleicht ist ja jemand hier interessiert an so einer Lösung.

Habe noch 'ne generelle Frage, es gibt ja CHDK und CHDK-DE.
Welche lade ich mir denn nun für meine Zwecke auf meine beiden S110?


Gruß,

Mr. Burns
mr.burns
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 10
Registriert: 23.02.2014, 20:23
Kamera(s): IXUS 860 IS, Powershot S110 103.a

Re: PTP und Mikrocontroller?

Beitragvon msl » 24.02.2014, 11:45

Hallo,

CHDK und CHDK-DE unterscheiden sich mittlerweile nur noch bei der Menüsprache und dem Logo. Technisch gesehen spielt es also keine Rolle, welche Version du verwendest. Es ist mehr eine Frage der Kommunikation. Beide Versionen entstammen dem gleichen Quellcode-Repositorium.

Gruß msl
Benutzeravatar
msl
Super-Mod
Super-Mod
 
Beiträge: 4567
Bilder: 271
Registriert: 22.02.2008, 11:47
Wohnort: Leipzig
Kamera(s): A720 1.00c
SX220 1.01a

Re: PTP und Mikrocontroller?

Beitragvon mr.burns » 28.02.2014, 16:30

Hallo msl,
Technisch gesehen spielt es also keine Rolle, welche Version du verwendest.

Habe mir gerade mal den Source Code für CHDK-DE angesehen.
Dort finde ich im Verzeichnis platform kein Unterverzeichnis für die S100 auch nicht für die S110.
Im Original CHDK sind die aber vorhanden. Werde also vorerst mit der englischen Originalversion von CHDK arbeiten.

Noch eine Frage, für die S110 ist auf der Seite

http://chdk.wikia.com/wiki/S110

nur eine Adresse für eine LED angegeben.
Heißt das, dass man die anderen LEDs (wie z.B. AF-LED) mit CHDK nicht ansteuern kann?
Oder hat die Adressen noch keiner ausgelesen? Kann man da helfen?

Danke...
mr.burns
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 10
Registriert: 23.02.2014, 20:23
Kamera(s): IXUS 860 IS, Powershot S110 103.a

Re: PTP und Mikrocontroller?

Beitragvon msl » 28.02.2014, 17:00

Hallo,

ich weiß nicht, welchen Quellcode du dir angeschaut hast, aber unter dem von CHDK und CHDK-DE gemeinsam genutzten Quellcode ist die S110 zu finden: https://www.assembla.com/code/chdk/subv ... tform/s110

Die Ressourcen von CHDK und CHDK-DE wurden vor knapp 2 Jahren zusammengeführt.

Es lassen sich alle LEDs ansteuern. Dazu wird eine Kamerafunktion verwendet (LEDdrive()). Das lässt sich einfach per Skript testen (set_led(<number>, 1|0)). Die auf den Wiki-Seiten angegebene LED-Adresse dient Debug-Funktionen bei der Portierung von CHDK als optische Kontrolle.

Gruß msl
Benutzeravatar
msl
Super-Mod
Super-Mod
 
Beiträge: 4567
Bilder: 271
Registriert: 22.02.2008, 11:47
Wohnort: Leipzig
Kamera(s): A720 1.00c
SX220 1.01a


Zurück zu Code-Ecke

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 13 Gäste