www.mikrocontroller.net

Forum: Mikrocontroller und Elektronik Sony LANC Auswertung mit AVR


Autor: Simon Schmid (simschmid)
Datum:

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
Autor: Stefan (Gast)
Datum:

Autor: Ralf (Gast)
Datum:

...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
Autor: Rahul (Gast)
Datum:

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...
Autor: Simon Schmid (simschmid)
Datum:

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
Autor: Simon Schmid (simschmid)
Datum:

Hier eine deutsche Beschreibung des Lanc Protokolls:

http://www.boehmel.de/protocl.htm
Autor: Ralf (Gast)
Datum:

@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
Autor: Rahul (Gast)
Datum:

Autor: Ralf (Gast)
Datum:

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!
Autor: Simon Schmid (simschmid)
Datum:

Na dann, viel vergnuegen. Bitte berichte uns dann von deinen Wochenend
erlebnissen:)
Autor: Rahul (Gast)
Datum:

das interessiert mich auch...
Autor: Jörn-h. G. (joern_g)
Datum:

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
Autor: Jörn-h. G. (joern_g)
Datum:

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
Autor: Dougie (Gast)
Datum:

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
Autor: Markus Zintl (Gast)
Datum:

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 ;)
Autor: Dougie (Gast)
Datum:

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

dougie@gmx.de
Autor: Markus Zintl (Gast)
Datum:
Angehängte Dateien:

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
Autor: Dougie (Gast)
Datum:

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
Autor: Stefan (Gast)
Datum:

Hoch interessantes Projekt unter GPL-Lizenz:

LANC remote controller for stereoscopic camcorders/still cameras
http://www-e2.ijs.si/3dlancmaster/
Autor: Thorsten (Gast)
Datum:

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
Autor: L.D. (Gast)
Datum:
Angehängte Dateien:

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
Autor: L.D. (Gast)
Datum:

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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel




Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder GIF-Format hochladen.
Siehe Bildformate
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken erkennst du die Nutzungsbedingungen an.

webmaster@mikrocontroller.netImpressumNutzungsbedingungenWerbung auf Mikrocontroller.net