Forum: Mikrocontroller und Digitale Elektronik Sony LANC Auswertung mit AVR


von Simon S. (simschmid)


Lesenswert?

Hallo ich suche ja seit längerem nach der Möglichkeit, eine Sony Kamera
per AVR zu steuern. Leider bisher ohne grossen Erfolg (Was die
Recherche betrifft).

Nun habe ich aber ein Projekt zur Auswertung des LANC Singnals mittels
PIC gefunden. Da ich in Assembler noch totaler Newbie bin, wollte ich
fragen, ob mir jemand den Code erklären, resp. auf den AVR zb. 2313
übersetzen kann.

Mit dem Code ist es möglich für eine Sony Kamera ein Tally (Rotlicht
bei Record) zu bauen. Das will ich doch unbedingt mal ausprobieren.

Die Anleitung: http://www.exit-exit.de/electron/cameye.html
Das ASM File:  http://www.exit-exit.de/electron/cameye.asm

von Stefan (Gast)


Lesenswert?


von Ralf (Gast)


Lesenswert?

...ich hab jetzt auch schon einige Zeit damit zugebracht, hier eine
bereits vorhandene Lösung zu finden.
Bislang ohne Erfolg.

Was ich genau suche, wäre eine einigermassen gut dokumentierte
Assembler-Vorlage.

Problemstellung ist, das ich mit meiner Sony DSC-F828 gerne
Präzisionsaufnahmen bewegter Objekte machen möchte.
Also mit Lichtschranke und einstellbarer Auslöseverzögerung.

Ungelöst ist für mich lediglich der LANC-Teil. Wäre toll, wenn ma da
auf irgendwas zurück greifen könnte, und nicht von vorne anfangen
müsste.

VG
Ralf

von Rahul (Gast)


Lesenswert?

vor diversen Jahren (als HI-8 noch State-of-the-art war;~1990er) gab es
dazu auch mal einen Artikel in der ct'...
@Ralf: Wo ist denn das Problem? Lanc ist eine 1-Wire-Schnittstelle mit
9600baud...

von Simon S. (simschmid)


Lesenswert?

Hallo Rahul

Tja, da ist es schon. Mit AVR programmieren bin ich da eben noch nicht
so weit. Hab bis jetzt eben nur per RS-232 gesteuert. Und weiss nicht
wie das mit 1-Wire funktoiniert, resp. was das geanu bedeutet. Das
Protokoll haetten wir ja oben in meinen Beitrag.

DAnke fuer deine Hilfe Simon

von Simon S. (simschmid)


Lesenswert?

Hier eine deutsche Beschreibung des Lanc Protokolls:

http://www.boehmel.de/protocl.htm

von Ralf (Gast)


Lesenswert?

@Rahul

Tjy, das problem ist, das ich ncht sicher bin wie ich anfangen soll.
Wie bekomme ich die 8 Byte Kommandos Bitsynchron?

Nehme ich einen Timer und programmier ein stares Zeitgerüst oder werte
ich die Flanken der Signale aus und nehme Interrupts?

Hmm... ich bin leider noch etwas am Anfang. Tut mir leid wenn ich blöd
frage, aber ich hab erst vor 4 Wochen mit nem ATMEGA8 und Assembler
angefangen. Dokumentierter asm quelltext ist für mich einfach die
ideale Basis um was zu lernen.

VG
Ralf

von Rahul (Gast)


Lesenswert?


von Ralf (Gast)


Lesenswert?

Saugeil!

Das ist doch quasi genau das, was ich gesucht habe. Jetzt muss ich nur
noch entscheiden, mit welchem Quarz ich den Atmel betreiben möchte, und
Timer/Counter/Prescaler/Interrupt entsprechend anpassen.

Ich seh schon: das kommende Wochenende ist gerettet! :-)

Hab vielen Dank Rahul!

von Simon S. (simschmid)


Lesenswert?

Na dann, viel vergnuegen. Bitte berichte uns dann von deinen Wochenend
erlebnissen:)

von Rahul (Gast)


Lesenswert?

das interessiert mich auch...

von Jörn-H. G. (joern_g)


Lesenswert?

Hi Ralf,

ich muß dich enttäuschen - das wird nichts.
LANC nimmt nur alle 20ms (bei NTSC 16,6ms) Befehle entgegen - das wird
durch die Kamera vorgegeben (getaktet).
Deine Auslösung wäre also bis zu 20ms ungenau.
Rechne mal aus, wieviel da ein Tropfen z.B. fällt.

Zudem ist der Weg bei sowas sowieso ein anderer:
Blend auf und dann den Blitz fernsteuern, das ist sehr viel schneller
und exakter!

Du kannst dir zumindest für dieses Ziel die Arbeit sparen - das
Ergebnis wird dich nicht gerade begeistern.

Wenn du langsamere Dinge erwischen möchtest, kannst du es ja mal
ausprobieren.

Aber wie gesagt, zwischen den einzelnen LANC-Befehlspaketen kannst du
keine Auslösung erwirken - das geht nur, wenn die Kamera dich quasi um
einen Befehl "bittet".

Bei allen anderen Kameras, die nur über einen Kontakt auslösen (Canon
20D, 350D, Nikon, usw) geht es auch per Auslöser, denn hier gibt es
nicht so ein "komisches" Protokoll.

jörn

von Jörn-H. G. (joern_g)


Lesenswert?

Ach ja, Pferde, Elefanten, Löwen usw. sind natürlich kein Problem
(solange du sie nicht von einem Dach wirfst und sie unbedingt
unmittelbar vor dem Aufprall 1cm über dem Boden ablichten willst.

Mit "Blende auf" meinte ich natürlich folgendes:
lange Belichtungszeit wählen, ausreichend vorher auslösen (also lange
genu, bevor der Gegenstand im Bild auftauchen kann) und dann die
Belichtung (im dunklen Zimmer) mittels kurzem Blitz machen.

Damit es nicht noch komplizierter wird, als (wegen der Sony Kamera
ohnehin schon) würde ich an deiner Stelle einen Standardblitz nehmen,
der einfach zu triggern ist (und keinen "intelligenten" von Sony).

jörn

von Dougie (Gast)


Lesenswert?

Hi Jörn,

DAS ist ja mal ein wirklich extrem guter Einwand... hmmmm...

Da wäre ich wahrscheinlich erst mal eine ganze Weile in die falsche
Richtung gelaufen.
Ich hab mich inzwischen mal mit meinem Scope zwischen meine Sony und
die Fernbedienung am Stativ geklemmt.
Folgende Werte konnte ich so in etwa erkennen:

Länge eines Pakets (8 Bit) so etwa 9ms
Pause zwischen den Paketen so etwa 7,8 ms

Leider kenne ich die Signalform nicht, wie die Bits übertragen werden,
aber generell sollte es doch möglich sein, dies mit nem ATMEGA8
nachzubilden, oder?

Das mit der 20ms Ungenauigkeit ist natürlich ein Punkt.... Schade...
wär ja auch zu einfach gewesen. Aber etwas experimentieren würde ich
dennoch gerne. Eine Fernauslösung mit ein paar Metern Kabel wäre ja
auch erst mal ganz nett zum "spielen".
Du scheinst dich schon ne Weile mit LAN-C beschäftigt zu haben,
könntest du mir das Bit-Timing für eine 1 und eine 0 mal mitteilen?

Vielleicht hast du ja sogar schon ein Assembler Code Schnipsel, was ich
studieren kann?

Jedenfalls schon mal vielen Dank für den Tipp!!

VG
Ralf

von Markus Zintl (Gast)


Lesenswert?

ich hab es über den USART gemacht ... Framesync und bitsync über timer
und ext. Interrupt (Startbiterkennung über den IRQ)

leider ist das ganze in nen grösseres projekt hineingewurschtelt und
deshalb net vorzeigbar ;)

von Dougie (Gast)


Lesenswert?

...ich würde mich auch über Mail freuen und niemandem was sagen :-)

dougie@gmx.de

von Markus Zintl (Gast)


Angehängte Dateien:

Lesenswert?

ich hab mal die entscheidenden teile extrahiert (versucht) ... is net
gut programmiert aber funzt (aber vielleicht von hinten durch die brust
ins auge geschossen)

ATMEGA 128 mit 16 MHz

von Dougie (Gast)


Lesenswert?

Super Markus, vielen Dank dafür! .... jetzt muss ich mich nur noch in C
einarbeten ;-) Und dabei hab ich die letzten Monate doch so fleissig
Assembler gelernt...

VG

Ralf

von Stefan (Gast)


Lesenswert?

Hoch interessantes Projekt unter GPL-Lizenz:

LANC remote controller for stereoscopic camcorders/still cameras
http://www-e2.ijs.si/3dlancmaster/

von Thorsten (Gast)


Lesenswert?

Hallo an alle,

ich möchte auch eine Auswertung des LANC-Protokolls durchführen um 
anzuzeigen ob die Kamera aufnimmt (ggf. Aufnahme verstarten). Hat jemand 
von Euch eine Lösung in Assembler da ich leider kein C kann und auch 
noch ATMega-Anfänger bin.

Gruß,
Thorsten

von L.D. (Gast)


Angehängte Dateien:

Lesenswert?

Tag Forum

Ich habe eine Auswertung Sony/LANC mit C/Attiny84 hinbekommen. Nachdem 
für den Fragesteller das Thema sicherlich nicht mehr aktuell ist, würde 
ich aber interessierten meinen funktionierenden, nicht formatierten und 
nicht kommentierten Code zur Verfügung stellen. Das Programm befindet 
sich noch im Experimentierstadium, und zwar aus folgendem Grund:

LANC braucht 3 Leitungen: Grnd,Vcc (bei mir 5,5V)  und Signal

Mein Camcorder geht vom Stdb-Modus nach einiger Zeit in den Ruhezustand. 
In diesem ist das Lanc-Protokoll ausgesetzt, die Anschlüsse werden aber 
noch überwacht. In diesem Zustand führt das Signalkabel etwa 1,8+V gegen 
Grnd und Vcc, gemessen mit Multimeter. Die Kamera lässt sich wieder 
aufwecken, indem das Signalkabel einige Zeit auf Grnd gehalten wird.

Da ich die Anwendung beim Gleitschirmfliegen benutzen möchte, wird die 
Handhabung mit EINEM Taster und Rückmeldungs-LEDs auskommen müssen.

Wie kann ich mit EINEM Taster im Ruhezustand ohne Versorgungsspannung 
das Signal auf GRND legen, während der Taster ansonsten mit 
Versorgungsspannung bei Betätigung das Signal in Ruhe lässt.

Relais? Transistoren Verarmungstypen?DOCH einen 2. Taster? 3. Hand? 
Tandemfliegen?

Kann mir jemand Helfen?

Gruß von Lutz

von L.D. (Gast)


Lesenswert?

Morgen Forum

Hier die Lösung, Controller wird im Ruhezustand über Signalkabel 
versorgt:
http://webs.uolsinectis.com.ar/nancy/pic/zoom_de.html

Gruß von Lutz

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.