Wlan-Kamera-Fernsteuerung inkl. Live-Bild mit Raspberry Pi

Kamera-Hardware, Selbstbaufernbedienung und sonstige Hardware-Erweiterungen

Re: Wlan-Kamera-Fernsteuerung inkl. Live-Bild

Beitragvon c_joerg » 21.09.2016, 16:25

Hallo msl,

msl hat geschrieben:Ein Step-Down-Modul ist ungeeignet, da die Differenz zwischen Eingangs- und Ausgangsspannung zu gering ist.


Das habe ich auch festgestellt.


msl hat geschrieben:Die Diodenlösung halte ich immer noch für kritisch, aber wahrscheinlich einzige einfache Lösung.l


Ich habe mich jetzt bei meinen Zeitraffern für diese Lösung entschieden. Funktioniert bisher auch ganz gut.
Meine favorisierte Lösung ist, die 3,7V aus den Zellen der Powerbank direkt zu nutzen. Damit umgeht man dann ja jede Spanungswandlung. Das mache ich aber erst, wenn die Gewährleistung abgelaufen ist. So etwas sollte man aber nur machen, wenn man weiß was man da macht.


Bild

Grüße Jörg
c_joerg
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 456
Registriert: 14.08.2014, 06:50
Wohnort: Bremen
Kamera(s): S110 103a
S45
2 * G1X 101a, 100e
G9xII 1.00c,
SX230 101a
SX50hs 100c
EOS M3 101a
EOS M100 100a

Re: Wlan-Kamera-Fernsteuerung inkl. Live-Bild mit Raspberry

Beitragvon Werner_O » 24.09.2016, 20:35

Hallo zusammen,

msl schrieb:
Außerdem ist es zwingend notwendig, einen Access-Point auf dem Raspberry einzurichten.
Das ist nicht ganz einfach. Es gibt aber sehr viele Anleitungen im Netz

Bezüglich "Das ist nicht ganz einfach. Es gibt aber..." kann ich nur sagen:
Das wird sogar besonders kompliziert, wenn der Raspi 3 nicht nur einen Access-Point für die Kamera-Fernsteuerung bereitstellen soll, sondern zusätzlich auch als Router für den/die eingeloggten Raspi-WLAN-User eine Internetverbindung herstellen soll über bspw. eine am LAN-Port angeschlossene "Fritz!Box" oder einen anderen Internet-Router.

Mir persönlich ist das sehr wichtig, damit ich mit meinem Laptop auch dann noch auf das Internet zugreifen kann (etwa um Emails zu checken), wenn ich mich zuhause beim WLAN des Raspi 3 eingeloggt habe und dieser via Netzwerkkabel an meiner Fritz!Box angeschlossen ist.
INFO: Für den Betrieb des RPi3 "unterwegs" ist diese Routerfunktion dagegen nicht notwendig.

Jetzt klappt das inzwischen bei mir, aber dafür brauchte ich als Raspi-Neuling eine Woche und unzählige Versuche mit vielen Raspbian Neuinstallationen.
Letztendlich funktioniert hat das erst mit den Anweisungen auf dieser Website:
www.elektronik-kompendium.de/sites/raspberry-pi/2002171.htm
Dieser Anleitung sollte man dabei unbedingt peinlichst genau "Schritt für Schritt" folgen!
Ich selber habe es bspw. erst im dritten Anlauf geschafft...

Allerdings wurde ich auch mit dieser Seite erst dann erfolgreich, nachdem ich den RPi3 via Ethernetkabel mit meinem Router verbunden habe, mit dem Raspi-Browser diese Seite aufgerufen habe und die nötigen Konfig-Dateien von dort via Copy/Paste im Raspi-Terminal in die jeweiligen zu editierenden Dateien eingefügt habe!!!
Bei meinem 42'' TV, an dem ich den RPi3 eingerichtet habe, ist es oft kaum möglich, zwischen einem kleinen l (wie leise), einem großen I (wie Info), dem Sonderzeichen | oder einer 1 zu unterscheiden, von 0 und O ganz zu schweigen, und nur ein einziger gemachter (Tipp-)Fehler kann bereits zum Scheitern führen.
INFO: Ein am LAN-Port des RPi3 angeschlossener Internet-Router wird bei Raspbian automatisch erkannt und konfiguriert, sodaß ein sofortiger Internetzugriff darüber möglich sein sollte.

P.S.:
Dieses Posting habe ich übrigens über den Access-Point meines RPi3 gesendet ;-)

Nachtrag 25.09.2016:
Man sollte immer und grundsätzlich das Standard-Passwort für den Benutzer pi ändern!
Das geht leicht über "Menu/Einstellungen/Raspberry-Pi-Konfiguration" oder alternativ über die Befehlszeile "sudo raspi-config".

Liebe Grüße
Werner_O
Zuletzt geändert von Werner_O am 27.09.2016, 01:08, insgesamt 22-mal geändert.
Benutzeravatar
Werner_O
CHDK-Legende
CHDK-Legende
 
Beiträge: 1027
Registriert: 22.10.2010, 13:12
Wohnort: Köln
Kamera(s): SX20 1.02d
SX240 1.01a
S100 1.01a
S3 1.00a

Re: Wlan-Kamera-Fernsteuerung inkl. Live-Bild mit Raspberry

Beitragvon Werner_O » 25.09.2016, 14:53

Hallo zusammen,

hier weitere Ergebnisse von mir.

1) Fernsteuerung

Das von msl dafür empfohlene XRDP (siehe dieses Posting) hat sich bei mir tatsächlich sehr gut bewährt. Die Installation von XRDP auf dem RPi3 war leicht und problemlos, und das anschliessend am Notebook gestartete "C:\Windows\System32\mstsc.exe" machte auch keinerlei Zicken nach Eingabe der richtigen Adresse (bei mir "192.168.1.1"), des Benutzernamens ("pi") und des (hoffentlich geänderten) Passwortes für den Benutzer pi (Standard = "raspberry").

2) Einrichten einer Desktopverknüpfung für CHDKPTP am Raspberry Pi 3

Das war leider schwerer als erwartet, weil ich dazu im www keine Quellen mit einer fertigen Lösung gefunden habe.
Ausgegangen bin ich dabei von dieser Website, aber anschließend liess sich "chdkptp_gui.sh" auf diese Weise nicht starten :-(

Nach längerem Suchen und Ausprobieren habe ich jetzt dazu aber eine Lösung gefunden :-)))
Da die Desktopverknüpfung ja im Grunde soetwas wie eine "Batchdatei" ist, muss in Zeile "Exec=..." das Programm "chdkptp_gui.sh" (wie im Terminal) zwingend über den Befehl "sh chdkptp_gui.sh" gestartet werden - einfach nur "Exec=/home/pi/CHDKPTP/chdkptp_gui.sh" funktioniert nicht.
Über eine weitere Zeile "Path=/home/pi/CHDKPTP/" kann man aber zusätzlich den Ordner vorgeben, wo der Befehl "sh chdkptp_gui.sh" ausgeführt werden soll - dann funktioniert es!

Hier nun eine Kurz-Anleitung dazu von mir:
a) Über den Dateimanager im Ordner "/home/pi/Desktop" eine neue (und zunächst leere) Datei namens "CHDKPTP.desktop" erstellen. Sehr wichtig ist dabei die Dateiendung *Name*.desktop.
b) Diese Datei dann nach Rechtsklick mit dem TextEditor öffnen und dort folgende Zeilen eingeben oder reinkopieren:
Code: Alles auswählen
[Desktop Entry]
Name=CHDKPTP
Comment=Powershot Fernbedienung
Icon=/usr/share/pixmaps/qjackctl.xpm
Exec=sh chdkptp_gui.sh
Type=Application
Encoding=UTF-8
Terminal=false
Categories=None
Path=/home/pi/CHDKPTP/


Dabei beachten, dass nach der letzten Zeile noch ein Zeilenumbruch (Enter) eingefügt werden sollte, und die Datei dann anschliessend speichern. Die Angabe in Zeile "Path=..." muss natürlich auf das Verzeichnis hinweisen, wohin man CHDKPTP tatsächlich installiert hat.

Danach erscheint auf dem RPi3-Desktop eine neues "Stecker-Icon" für CHDKPTP, womit das Programm CHDKPTP auch aus einer Remote-Sitzung heraus gestartet werden kann.
Für das verwendete Desktop-Icon kann man sich auch andere Bilder aussuchen im Verzeichnis "usr/share/pixmaps", solange die im Format Name.xpm vorliegen. Dazu muss die Zeile "Icon=..." entsprechend angepasst werden.

Im Anhang habe ich noch ein Bild eingefügt, welches die erfolgreiche Fernbedienung meiner SX240 via RPi3, WLAN und XRDP an meinem Notebook dokumentiert.

@msl

Was ist an "Apache" so schlimm, dass ich es nicht verwenden soll?
Und warum soll ich (rein textbasiert) Dateitransfers via SSH und Putty machen?
Mir wären dazu eigentlich lieber Freigaben, die grafisch orientiert sind und so der RPi3 bspw. bei meinem heiss geliebten "Total Commander" im Netzwerk auftauchen.

Liebe Grüße
Werner_O
Dateianhänge
Funktionierende Fernbedienung.jpg
Meine SX240 - ferngesteuert über mein Notebook via RPi3
Zuletzt geändert von Werner_O am 26.09.2016, 23:47, insgesamt 15-mal geändert.
Benutzeravatar
Werner_O
CHDK-Legende
CHDK-Legende
 
Beiträge: 1027
Registriert: 22.10.2010, 13:12
Wohnort: Köln
Kamera(s): SX20 1.02d
SX240 1.01a
S100 1.01a
S3 1.00a

Re: Wlan-Kamera-Fernsteuerung inkl. Live-Bild mit Raspberry

Beitragvon Werner_O » 25.09.2016, 20:37

@msl

leider funktioniert die neuere "chdkptp_gui.sh" v723 an meiner SX240 (auch mit dem neuestem CHDK 1.5 v4695) nicht einwandfrei und führt bei den Befehlen "Half-Shoot" und "Shoot" reproduzierbar zu Abstürzen der Kamera.
Befehle wie Zoom-In/Out oder das Umschalten REC/PLAY funktionieren dagegen.

Das nur zur Info,
liebe Grüße
Werner_O
Benutzeravatar
Werner_O
CHDK-Legende
CHDK-Legende
 
Beiträge: 1027
Registriert: 22.10.2010, 13:12
Wohnort: Köln
Kamera(s): SX20 1.02d
SX240 1.01a
S100 1.01a
S3 1.00a

Re: Wlan-Kamera-Fernsteuerung inkl. Live-Bild mit Raspberry

Beitragvon msl » 25.09.2016, 21:40

Hallo Werner_O,

schön, dass es letztendlich mit dem Einrichten geklappt hat. Die bewältigten Probleme kommen mir bekannt vor. Ähnliches ist mir auch widerfahren.

Zur Serverinstallation:

Der RPi ist kein Hochleistungsrechner. Deshalb sollte man überlegen, was man mit dem RPi alles machen möchte. Samba (Datei- und Druckdienst-Server) und Apache (Webserver) sind Schwergewichte. Sie sollten nur genutzt werden, wenn sie hauptsächlich und oft zum Einsatz kommen sollen.

Sollen nur ab und zu mal ein paar Dateien hin- und hergeschoben werden, reicht aus meiner Sicht WinSCP. Hier wird mit Hilfe des SSH-Protokolls eine Verbindung aufgebaut. Es braucht also nichts weiter eingerichtet werden. WinSCP kann man als Portable-App benutzen. Die grafische Benutzeroberfläche erinnert an einen Datei-Browser in der Art des Total-Commanders oder eines FTP-Klienten.

Zu vermeintlichen Problemen mit chdkptp:

Ich habe diese Abstürze auch gehabt. Sie treten aber nur mit dem RPi auf. Unter Windows läuft chdkptp störungsfrei. Ursache für die Probleme mit dem RPi ist eine Kollision mit dem vorinstallierten gphoto2 und mit dem daraus resultierenden Umgang, wenn eine Kamera am USB-Port angeschlossen wird. Die Linux-Fachleute haben da sicherlich auch Lösungen parat , Stichwort udev-Regeln.

Folgender Workaround führt bei mir zur störungsfreien Benutzung von chdkptp:
  • chdkptp starten
  • Kamera anschließen und einschließen. (Der Kamerabildschirm bleibt im Gegensatz zu Windows+chdkptp schwarz!)
  • Evt. Anfragen durch das RPi-Betriebssystem, wie die Kamera eingebunden werden soll wegklicken.
  • chdkptp durch "Connect" mit der Kamera verbinden.
  • "rec" klicken. Kamera schaltet in den Aufnahmemodus und Bildschirm wird aktiviert.
  • "play" klicken. Nun ist der Bildschirm auch im Wiedergabemodus aktiv. Außerdem können nun auch die Funktionstasten verwendet werden. Das geht bei Start nämlich nicht!
  • Erst jetzt für Aufnahmen wieder via "rec" in den Aufnahmemodus wechseln.

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: Wlan-Kamera-Fernsteuerung inkl. Live-Bild mit Raspberry

Beitragvon Werner_O » 26.09.2016, 23:25

Hallo msl,

Dein Workaround funktioniert auch bei mir und vermeidet Abstürze meiner SX240 bei Halfshoot und Shoot - Danke für die Info!
Zu den genannten Problemen mit "gphoto2" kann ich leider nichts sagen - das ist noch außerhalb meines Erfahrungs-Horizontes.
Es liegt an erfahrenen Linux-Usern, dazu hoffentlich eine Lösung zu finden.

Von der Funktion Halfshoot erwarte ich bei aktiviertem AF aber einen grünen Rahmen (wenn erfolgreich) bzw. einen gelben Rahmen (wenn nicht erfolgreich) im AF-Fokusfeld um zu wissen, ob der AF erfolgreich war.
Das passiert aber nicht - weder am CAM-Display noch am Remote-Display. Es kommt nach Halfshoot immer nur der neutrale weisse Rahmen.
Erwarte ich jetzt zuviel, oder mache ich einen Denkfehler, oder... ?

Liebe Grüße
Werner_O
Benutzeravatar
Werner_O
CHDK-Legende
CHDK-Legende
 
Beiträge: 1027
Registriert: 22.10.2010, 13:12
Wohnort: Köln
Kamera(s): SX20 1.02d
SX240 1.01a
S100 1.01a
S3 1.00a

Re: Wlan-Kamera-Fernsteuerung inkl. Live-Bild mit Raspberry

Beitragvon msl » 27.09.2016, 21:22

Hallo Werner_O,

ich vermute mal, dass der Test "Half Shoot" unter schlechten Lichtverhältnissen und evt. mit aktiviertem Blitz erfolgte. Dann ist es möglich, dass das Fokussieren nicht möglich war, was mit dem Ausbleiben des farbigen Rahmen quittiert wird. Die Kamera kann dann nicht einmal ein nicht erfolgreiches Fokussieren (orange/roter Rahmen) signalisieren

Unter optimaleren Bedingungen sollte die Anzeige eines farbigen Fokusrahmen funktionieren.

Außerdem ist noch zu beachten, dass die Bildrate bei Live-Bild-Übertragung relativ gering ist. Dann kann schon mal der Moment des Farbwechsels evt. nicht erfasst werden. Die Situation lässt sich evt. verbessern, indem man die Vorgabe für die Bildrate erhöht (Target FPS). Eine zu hohe Einstellung der Vorgabe kann aber zu Verlusten einzelner Bilder führen. Siehe dazu den Wert unter "Dropped".

Prinzipiell sendet der Button "shoot half" eine kleines Skript zur Ausführung an die Kamera.
Syntax: [ Download ] [ Verstecken ]
Benutze Lua Syntax Highlighting
local timeout=%d
local rec,vid = get_mode()
if rec and not vid then
    press("shoot_half")
    local n = 0
    repeat
        sleep(10)
        n = n + 10
    until get_shooting() == true or n > timeout
    release("shoot_half")
else
    press("shoot_half")
    sleep(1000)
    release("shoot_half")
end
Erstellt in 0.006 Sekunden, mit GeSHi 1.0.8.9
timeout wird mit 3000 ms bestimmt. Nachzulesen ist das Ganze im chdkptp-Unterordner Lua in gui.lua ab Zeile 386.

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: Wlan-Kamera-Fernsteuerung inkl. Live-Bild mit Raspberry

Beitragvon Werner_O » 28.09.2016, 21:00

Hallo msl,

ich habe mir die gui.lua sowohl der Raspi- als auch der Windows-Version angeschaut und finde dort dazu folgende vorangestellte Zielvorgabe:

Code: Alles auswählen
-- TODO we should have a way to press shoot half and have it stay down,
-- so we can do normal shooting proccess

Wenn ich das richtig interpretiere, soll Shoot-Half ja eigentlich nach bspw. hoffentlich erfolgreichem AF weiterhin gedrückt bleiben, damit ein nachfolgendes Shoot sofort ein Auslösung ohne Neufokussierung machen kann.
Im verwendeten Code wird ein Halfshoot dagegen anscheinend schnell wieder "released", sodass bei Shoot dann ein "Shoot-Full" erfolgt mit erneuter AF-Messung. Und das ist ja m.E. eigentlich nicht Sinn der Sache.

Bei meinen eigenen USB-Fernsteuerungs-Skripten, welche die Funktionen Shoot-Half und Shoot ebenfalls anbieten (bspw. die Lua-Skripte CanoRemo bzw. CanoRemF - siehe hier) ist das anders gelöst: Ein Shoot-Half bleibt solange aktiv, bis entweder ein Shoot erfolgt ist oder aber die Taste Shoot-Half erneut gedrückt wird.

Mein Vorschlag wäre, die jeweiligen Dateien gui.lua auf das gleiche Verhalten umzuprogrammieren.
Mir ist dabei klar, dass so eine Änderung nicht trivial ist.

******************************************************************************

Ansonsten habe ich noch einen weiteren Verbesserungvorschlag für CHDKPTP, und der betrifft die Zoomtasten In/Out.

Meine SX240 zoomt so schnell, dass ich mit diesen Zoomfunktionen keine Chance habe, auch nur annähernd den gewünschten Zoomschritt sprich Bildausschnitt einstellen zu können. Bei meiner älteren SX20 fällt dieser Effekt dagegen deutlich weniger krass aus.

Sinnvoll erscheinen mir darum zusätzliche Bedienfelder in CHDKPTP für das Zoomen mit unterschiedlichen Schrittweiten.
Wenn ich jetzt mal träumen darf, gäbe es zukünftig für In/Out jeweils gleich 3 Zoombuttons: Einzel-Schritt, kleiner Schritt und größerer Schritt. So käme man beim Zoomen auch an das gewünschte Ziel.

Ein großes Problem sind dabei die sehr unterschiedlichen Zoomzeiten der diversen Powershots von alt bis aktuell.
Da statische Zoomzeiten sowie auch simples "click zoom-in/zoom-out" (siehe Zeilen 343-362) je nach CAM zu völlig anderen Ergebnissen führen, würde ich darum vorschlagen, stattdessen bei zukünftigen Versionen von gui.lua relative Zoomschritte einzuführen, indem die Zoomeinstellung schrittweise (und wie vorher gesagt in gleich drei alternativen Stufen) über bspw. die Abfrage "get_zoom" gesteuert wird.
Auf diese Weise könnte man m.E. dem Ziel näher kommen, dass das Zoomen mit CHDKPTP auf einer Vielzahl von Powershot-Cams zu zumindest ähnlichen Ergebnissen führt.

******************************************************************************

Ob meine gemachten Verbesserungvorschläge so umsetzbar sind weiss ich natürlich nicht.
Hoffentlich geben sie aber Denkanstösse, um das jetzt schon so geile CHDKPTP zukünftig noch besser machen zu können :-)

Liebe Grüße
Werner_O
Benutzeravatar
Werner_O
CHDK-Legende
CHDK-Legende
 
Beiträge: 1027
Registriert: 22.10.2010, 13:12
Wohnort: Köln
Kamera(s): SX20 1.02d
SX240 1.01a
S100 1.01a
S3 1.00a

Re: Wlan-Kamera-Fernsteuerung inkl. Live-Bild mit Raspberry

Beitragvon msl » 28.09.2016, 22:36

Hallo Werner_O,

im Augenblick sind die Funktionstasten der chdkptp-GUI wie sie sind. Für den Erfinder/Programmierer von chdkptp ist die grafische Benutzeroberfläche eher ein notwendiges Übel, um die Live-Bild-Funktion zu realisieren. Er legt sehr viel Wert auf die zweite Variante von chdkptp, der interaktiven Kommandozeileneingabe (CLI). Die nicht unbedingt optimale Realisierung von shoot_half/shoot ist erkannt. Deshalb ist es ja im Code mit einem "ToDo" kommentiert.

Mal etwas Grundsätzliches zur Philosophie von chdkptp. chdkptp funktioniert unabhängig vom verwendeten Betriebsystem einheitlich. Lediglich die Schnittstellen sind in der Binärdatei auf das jeweilige Betriebssystem angepasst. Diese enthält auch den Lua-Interpreter. Der Lua-Teil ist immer identisch. Es muss also nichts an das verwendete Betriebssystem angepasst werden. Dabei ist der größte Gewinn, dass Änderungen sofort angewendet werden können. Individuelle Anpassung sind jederzeit möglich, beispielsweise geänderte Zoom-Funktionen.

Lua wird genau wie bei den Kameraskripten angewendet. Zusätzlich gibt es Funktionen für die grafische Benutzeroberfläche, erkennbar an iup.xxx, und für das Dateimanagement, erkennbar an lfs.xxx.

Für Experimente mit der GUI habe ich den Reiter "User" eingeführt und mit ein paar Funktionen bestückt. Diese zeigen, wie GUI-Elemente mit CLI-Befehlen belegt werden. Die im chdkptp-Paket enthaltene Datei USAGE.TXT beinhaltet die Referenz zu den CLI-Befehlen.

Wenn es interessante Lösungen gibt, immer her damit.

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: Wlan-Kamera-Fernsteuerung inkl. Live-Bild mit Raspberry

Beitragvon Werner_O » 05.10.2016, 23:29

Hallo msl,

Er legt sehr viel Wert auf die zweite Variante von chdkptp, der interaktiven Kommandozeileneingabe (CLI).
Für Experimente mit der GUI habe ich den Reiter "User" eingeführt und mit ein paar Funktionen bestückt.

Auch beim besten Willen kann ich mit diesen Infos bisher rein gar nichts anfangen :-(
Ich habe leider nie professionell auch nur eine einzige Programmiersprache erlernt. Meine Kenntnisse zur Programmierung etwa des wissenschaftlichen Taschenrechners HP48 sind rein autodidaktisch erworben durch Studium von dessen beiden umfangreichen Handbüchern. Und meine (leider immer noch recht bescheidenen) Lua-Kenntnisse verdanke ich im wesentlichen Dir persönlich - dazu nochmals Danke!

Darum habe ich momentan nur die Datei "gui.lua" genauer unter die Lupe genommen in der Hoffnung, daß Änderungen daran etwas verbessern können. Das Primärziel war dabei ein dauerhafter Halfshoot.

Bei der "gui.lua" fallen mir aber zunächst einige Ungereimtheiten auf, was deren Tasten-Verhalten im Vergleich zu den originalen Tasten an einer Cam bewirken. Das betrifft die Modi "Wiedergabe aktiv" und "laufende Videoaufnahme aktiv".
1) Bei laufender Videoaufnahme macht ein "HalfShoot" m.W. gar nichts. Ein "Shoot" kann dagegen bei einigen Cams (etwa meine SX20) zu einem gemachten Bild führen, wobei die Videoaufnahme anschließend weiterläuft - bei anderen Cams (etwa meine SX240) führt ein "Shoot" dagegen dann zu einem Abbruch der Videoaufnahme.
2) Bei "Wiedergabe aktiv" bringt das bisher gemachte "Press/Release HalfShoot" nach Klicken auf "HalfShoot" m.W. gar nichts.
Eine Cam schaltet dann ja normalerweise (wie auch bei "Shoot") eigentlich nur in den Aufnahmemodus um, und sonst passiert nichts.

In meinen weiter unten angehängten neuen Dateiversionen der "gui.lua" habe ich das so modifiziert, wie es m.W. dem Verhalten der Tasten an einer Cam entspricht.

ZUM EIGENTLICHEN PROBLEM HALFSHOOT:

Eigentlich hatte ich gedacht, daß die "gui.lua" Lua-Befehle ausführt, wobei die dann erreichten Cam-Zustände erhalten bleiben.
Die bisherige "gui.lua" verwirft aber bisher per se einen erfolgreichen Halfshoot kurz darauf wieder durch "Release Halfshoot", was ich für unlogisch hielt.

Da man die "gui.lua" im Prinzip als kleines Rädchen der übergeordneten "state machine chdkptp" begreifen muss, sollte man sie auch entsprechend programmieren. Nach dem Motto "gesagt - getan" habe ich das auch versucht unter der Umgehung von globalen Variablen.

Bei meinem versuchten Ansatz wird ein Halfshoot versucht und, wenn erfolgreich, danach nicht released.
Ein nachfolgendes erneutes Halfshoot oder ein Shoot sollte dann durch Auswerten des Lua-Befehls get_shooting() sozusagen "intelligent" die nun passende Aktion ausführen mit unterschiedlichen Auslöseverfahren oder bspw. nur einem Release von Halfshoot.
Folgende "intelligente" Programmzeilen für Halfshoot und Shoot habe ich dabei verwendet:

HALFSHOOT:
Code: Alles auswählen
   iup.hbox{
      -- TODO we should have a way to press shoot half and have it stay down,
      -- so we can do normal shooting proccess
      iup.button{
         title='shoot half',
         size='45x15',
         action=function(self)
            gui.execquick(string.format([[
local timeout=%d
local rec,vid = get_mode()
if rec and not vid then
   if get_shooting() == false then
      press("shoot_half")
      local n = 0
      repeat
         sleep(10)
         n = n + 10
      until get_shooting() == true or n > timeout
      if get_shooting() == false then
         release("shoot_half")
      end
   else
      release("shoot_half")
   end
elseif not rec and not vid then
   set_record(1)
   sleep(1000)
end

SHOOT:
Code: Alles auswählen
   iup.button{
      title='shoot',
      size='94x15',
      action=function(self)
         -- video seems to need a small delay after half press to reliably start recording
         -- Additional note from Werner_O: as I know, video recording cannot be startet via Halfshoot/Shoot
         gui.execquick([[
local rec,vid = get_mode()
if rec and not vid then
   if get_shooting() == false then
      shoot()
   else
      press("shoot_full_only")
      sleep(100)
      release("shoot_full_only")
      release("shoot_half")
   end
elseif not rec and not vid then
   set_record(1)
   sleep(1000)
else
   shoot()
end


Leider funktioniert dieser Ansatz aber nicht, weil anscheinend die übergeordnete "state machine chdkptp" irgendwo den gemachten Befehl press("shoot_half") wieder released. Ein Shoot führt dann immer nur zu einem Shoot-Full mit neuer Messung.
M.E. ist darum die "state machine chdkptp" noch fehlerhaft und muß überarbeitet werden, damit gemachte Unterfunktionen in der "gui.lua" (in diesem Fall ein aktiviertes "ShootHalf") nicht an anderer Stelle wieder verworfen werden.

Meine beiden geänderten "gui.lua" (für Windows und den Raspberry) habe ich angehängt, und die funktionieren auch.
Immerhin wird mir von denen nun auch ein erfolgreiches Halfshoot mit grünem Rahmen angezeigt (auch am Laptop via mstsc.exe vom RPi3), auch wenn dieser Halfshoot wie gesagt schnell wieder ungewollt released wird.

Soviel zunächst von mir,
liebe Grüße
Werner_O
Dateianhänge
GUI.LUA von WO.zip
Gui.lua für Windows und Raspberry
(11.23 KiB) 508-mal heruntergeladen
Benutzeravatar
Werner_O
CHDK-Legende
CHDK-Legende
 
Beiträge: 1027
Registriert: 22.10.2010, 13:12
Wohnort: Köln
Kamera(s): SX20 1.02d
SX240 1.01a
S100 1.01a
S3 1.00a

Re: Wlan-Kamera-Fernsteuerung inkl. Live-Bild mit Raspberry

Beitragvon Werner_O » 06.10.2016, 21:45

Nachtrag zum Halfshoot-Problem

Ich habe mir die Funktion zu Halfshoot in "gui.lua" in Notepad++ mal reduziert anzeigen anlassen und die bei "action=function(self)" via "gui.execquick..." ausgeführten Befehle mal ausgeblendet. Herausgekommen ist dabei mein angehängter Screenshot, welcher nur noch die Struktur dieser Funktion anzeigt und (in diesem Beispiel) die Zeilen 394 bis 414 ausblendet.

Da mir so die grundlegende Struktur klar geworden ist, habe ich mir anschließend die ausgeblendeten Zeilen wieder anzeigen lassen.
Dabei ist mir aufgefallen, daß vor dem "end" in Zeile 415 für "action=function(self)" in der vorherigen Zeile folgendes steht:
Code: Alles auswählen
414: ]],prefs.gui_shoot_half_timeout))


So wirklich verstehen kann ich diese Zeile leider nicht.
Sie deutet aber darauf hin, daß der Halfshoot-Fehler möglicherweise an dieser verweisenden Stelle zu suchen ist.

Liebe Grüße
Werner_O
Dateianhänge
gui.lua_struktur_halfshoot_button.gif
gui.lua_struktur_halfshoot_button
gui.lua_struktur_halfshoot_button.gif (7.8 KiB) 16826-mal betrachtet
Benutzeravatar
Werner_O
CHDK-Legende
CHDK-Legende
 
Beiträge: 1027
Registriert: 22.10.2010, 13:12
Wohnort: Köln
Kamera(s): SX20 1.02d
SX240 1.01a
S100 1.01a
S3 1.00a

Re: Wlan-Kamera-Fernsteuerung inkl. Live-Bild mit Raspberry

Beitragvon Werner_O » 08.10.2016, 16:01

Hallo zusammen,

zur Zeile "414"
Code: Alles auswählen
]],prefs.gui_shoot_half_timeout))

habe ich am Ende der Datei gui.lua folgenden Eintrag gefunden:
Code: Alles auswählen
prefs._add('gui_shoot_half_timeout','number','max time to wait for shoot_half, in ms',3000)
return gui

Diese Zeile scheint eine max. Zeit für einen erfolgreichen Halfshoot (3 sec) vorzugeben.

Wirklich weitergebracht hat mich diese Erkenntnis aber leider nicht.
Selbst wenn ich die Unterfunktion zu Halfshoot so umschreibe, daß "gui_shoot_half_timeout" gar nicht mehr verwendet wird und auch die lokale Variable "timeout" den festen Wert 3000 (ms) zugewiesen bekommt, siehe
Code: Alles auswählen
      iup.button{
         title='shoot half',
         size='45x15',
         action=function(self)
            gui.execquick([[
local timeout=3000
local rec,vid = get_mode()
if rec and not vid then
   if get_shooting() == false then
      press("shoot_half")
      local n = 0
      repeat
         sleep(10)
         n = n + 10
      until get_shooting() == true or n > timeout
      if get_shooting() == false then
         release("shoot_half")
      end
   else
      release("shoot_half")
   end
elseif not rec and not vid then
   set_record(1)
   sleep(1000)
end
]])
         end,
      },
      iup.fill{
      },

und
Code: Alles auswählen
   iup.button{
      title='shoot',
      size='94x15',
      action=function(self)
         -- video seems to need a small delay after half press to reliably start recording
         gui.execquick([[
local rec,vid = get_mode()
if rec and not vid then
   if get_shooting() == false then
      shoot()
   else
      press("shoot_full_only")
      sleep(100)
      release("shoot_full_only")
      release("shoot_half")
   end
elseif not rec and not vid then
   set_record(1)
   sleep(1000)
else
   shoot()
end
]])
      end,
   },


führt das immer noch dazu, daß ein erfolgreiches Halfshoot kurz darauf wieder aufgehoben wird.
An welcher Stelle das bei chdkptp passiert weiß ich aber leider nicht.

Nachdem ich inzwischen alles in meinem Rahmen mögliche ausprobiert habe bin ich nun mit meinem Latein leider am Ende :-(

Liebe Grüße
Werner_O
Benutzeravatar
Werner_O
CHDK-Legende
CHDK-Legende
 
Beiträge: 1027
Registriert: 22.10.2010, 13:12
Wohnort: Köln
Kamera(s): SX20 1.02d
SX240 1.01a
S100 1.01a
S3 1.00a

Re: Wlan-Kamera-Fernsteuerung inkl. Live-Bild mit Raspberry

Beitragvon Werner_O » 14.10.2016, 18:24

Hallo zusammen,

laut c't 22/2016 Seite 40 bietet das Ende September veröffentlichte neue Rasbian-Release einige Veränderungen, von denen ich nur die folgenden zwei hier kurz vorstellen möchte, weil sie auch dieses Projekt betreffen könnten:

1) Der bisherige Standard-Desktop "LXDE" wurde durch "Pixel" ersetzt. Er soll performanter sein und sich besser auf kleinen Displays bedienen lassen. Dabei wurden auch etliche Icons zum Desktop und zu Programmen ausgetauscht uam.

2) Die Anwendungen enthalten nun ein auf den Raspberry Pi portiertes RealVNC sowie einen standardmäßig installierten VNC-Client.

<<
Wichtiger Nachtrag 15.10.2016:

Ein gestern gemachtes Update meines RPi3 auf die neuere Rasbian-Version via "sudo apt-get updates" und "sudo apt-get upgrade" hat bei mir leider zu einem riesigem Fiasko geführt:
1) Der WLAN-Accesspoint funktionierte nicht mehr
2) Die kabelgebundenen USB Maus und Tastatur funktionierten danach nicht mehr bei Ausgabe via HDMI
3) Meine eingerichteten Bluetooth Maus und Tastatur liefen ebenfalls nicht mehr bei Ausgabe via HDMI
Von einem solchen Update kann ich darum vorläufig nur dringendst abraten!


Momentan mache ich darum eine Neuinstallation mit dem neuen NOOBS v2.0.0 auf einer neuen Speicherkarte.
Über meine Erfahrungen dabei werde ich hier anschließend berichten.
>>

Das nur zu Info,
liebe Grüße
Werner_O
Benutzeravatar
Werner_O
CHDK-Legende
CHDK-Legende
 
Beiträge: 1027
Registriert: 22.10.2010, 13:12
Wohnort: Köln
Kamera(s): SX20 1.02d
SX240 1.01a
S100 1.01a
S3 1.00a

Re: Wlan-Kamera-Fernsteuerung inkl. Live-Bild mit Raspberry

Beitragvon Werner_O » 15.10.2016, 17:22

Hallo zusammen,

hier meine versprochenen Ergebnisse zur Neuinstallation von Rasbian via dem neuen NOOBS v2.0.0.
Mein RPi3 war dabei via Ethernetkabel mit meiner Fritzbox verbunden und hatte somit Internetzugriff.

1) Was hat dabei funktioniert:

Nach den Anleitungen von der Website https://www.elektronik-kompendium.de/sites/raspberry-pi/2002171.htm war schnell ein Access-Point für den RPi3 eingerichtet. Wie vorher schon einmal gesagt, habe ich dabei die Befehlszeilen dieser Website via Copy/Paste im Raspi-Terminal eingefügt. Das vermeidet lästige Tippfehler mit nicht absehbaren Konsequenzen.

Eine Verbindungsaufnahme von meinem Laptop per WLAN via "WinSCP Portable" lief anschließend problemlos.
Die nötigen Dateien für CHDKPTP konnte ich so leicht auf den RPi3 übertragen.

2) Was hat dabei nicht funktioniert:

Das besonders wichtige Programm "C:\Windows\System32\mstsc.exe" für die Fernsteuerung der Canon-CAM funktioniert nun aber nicht mehr!
Selbstverständlich hatte ich vorher an meinem RPi3 das Paket "XRDP" installiert, siehe
https://www.elektronik-kompendium.de/sites/raspberry-pi/2109031.htm
Trotzdem findet die "mstsc.exe" keine Verbindung und bricht mit einer Fehlermeldung ab (siehe angehängtes Bild).
Warum die "mstsc.exe" jetzt aber an der nicht verfügbaren Adresse "127.0.0.1" sucht anstelle der bei der Eingabe vorgegebenen richtigen Adresse 192.168.1.1 bleibt mir dabei leider völlig schleierhaft.

LAST NOT LEAST:

1) Es gibt nun auch einen neuen Webbrowser namens "Chromium". Wie es der Name schon vermuten lässt, kommt der natürlich von der "Datenkrake Google". Darüber bin ich selber ehrlich gesagt alles andere als erfreut, weil ich schon seit langem Google gar nicht mehr verwende und zum Suchen lieber andere Suchseiten verwende.
Der bisherige Firefox-ähnliche Internet-Browser scheint dabei leider komplett entfernt worden zu sein - m.E. sehr schade für Leute wie mich, die das Daten-Imperium Google eigentlich völlig umgehen möchten.
Cool wäre dagegen ein angepasstes Firefox für Rasbian. Ob das jemals kommt ist aber leider nicht abzusehen.

2) Bzgl. "Büro" wird weiterhin auf "LibreOffice" gesetzt. Bei der neuen Rasbianversion wird das anscheinend umfangreich aktualisiert.

Liebe Grüße
Werner_O
Dateianhänge
Fernsteuerung.gif
Fehlermeldung von mstsc.exe
Fernsteuerung.gif (15.95 KiB) 16708-mal betrachtet
Benutzeravatar
Werner_O
CHDK-Legende
CHDK-Legende
 
Beiträge: 1027
Registriert: 22.10.2010, 13:12
Wohnort: Köln
Kamera(s): SX20 1.02d
SX240 1.01a
S100 1.01a
S3 1.00a

Re: Wlan-Kamera-Fernsteuerung inkl. Live-Bild mit Raspberry

Beitragvon Werner_O » 16.10.2016, 13:58

Nachtrag zu meinem letzten Posting:

Leider bekomme ich mit dem neueren Rasbian auch die chdkptp_gui.sh v723 nicht mehr ans laufen :-(

Vorher hatte ich natürlich (siehe dieses Posting) das im Ordner /home/pi/CHDKPTP geöffnete Terminal aufgerufen und dort die nötigen CHDK-Dateien ausführbar gemacht:
Code: Alles auswählen
sudo chmod +x chdkptp.sh
sudo chmod +x chdkptp_gui.sh

Nach dem Befehl "sh chdkptp_gui.sh" kommt jetzt aber nur noch die Fehlermeldung:
Code: Alles auswählen
chdkptp_gui.sh: 10: chdkptp_gui.sh: ./chdkptp_gui: Permission denied

Anscheinend fehlt nun eine Zugriffsberechtigung. Das "10:" bei der Fehlermeldung könnte dabei darauf hindeuten, daß die Zeile 10 der chdkptp_gui.sh für den Fehler verantwortlich sein könnte:
Code: Alles auswählen
"$CHDKPTP_DIR/$CHDKPTP_EXE" "$@"

Stutzig macht mich dabei auch der Abschnitt "./chdkptp_gui:" in der genannten Fehlermeldung...

Jetzt ist guter Rat teuer - ich weiß jedenfalls nicht mehr weiter.

Liebe Grüße
Werner_O
Benutzeravatar
Werner_O
CHDK-Legende
CHDK-Legende
 
Beiträge: 1027
Registriert: 22.10.2010, 13:12
Wohnort: Köln
Kamera(s): SX20 1.02d
SX240 1.01a
S100 1.01a
S3 1.00a

VorherigeNächste

Zurück zu Technik-Ecke

Wer ist online?

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

cron