• Neuer Gutscheincode unseres Partners Schutzfolien24:
    DSLR-Forum2025
    Dauerhaft 10% Rabatt auf alle Displayschutzfolien und Schutzgläser der Eigenmarken
    "Upscreen", "Screenleaf", BROTECT" und "Savvies".
    Der Code ist für alle Geräteklassen gültig.
  • Mitmachen beim DSLR-Forum Fotowettbewerb Mai 2025.
    Thema: "Zweckentfremdet"

    Jeden Monat attraktive Gewinnprämien, gesponsert von unserem Partner PixelfotoExpress.
    Alle Infos zum Juni-Wettbewerb hier!
  • 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 ...

  • Nicht erreichbare Adressen im Benutzerkonto
    Wir bekommen zurzeit eine große Anzahl an E-Mails, die das System zum Beispiel als Benachrichtigungen an Nutzer verschickt,
    als unzustellbar zurück, weil z.B. die Adressen nicht erreichbar sind oder das Postfach gar nicht existiert.
    Stellt doch bitte sicher, dass die Benachrichtigungen, die ihr vom System erwartet, auch zugestellt werden können.
    Nicht erreichbare E-Mail-Adressen sind dazu wenig hilfreich.
    Danke!
WERBUNG

DIY: Wireless-Funk-Transmitter mit dem Raspberry PI

Hi Marcus,

also bei der Kamera handelt es sich um eine 7d ( fw. 2.0 ) .
Im Moment läuft noch der x-server und ich arbeite ganz "normal" unter pi .
Da ich den Raspberry erst seit ein paar Tagen habe, wollte ich einfach mal gucken, was er so "sagt" und hab die Kamera einfach mal an den Pi gehangen und bekomme besagte Fehlermeldung.
Isusb bzw. Isusb -vv führt zu Nichts bzw. er meckert, dass er das Kommando nicht kenne .
 
Hast Du das wft.sh angepasst oder ein eigenständiges, neues geschrieben? Wenn letzteres, dann wärs toll wenn Du es auch bereitstellst. :top:

Mit Deinem Script oder mit dem von mir?

Ich habe ein eigenes Skript geschrieben. Ich werde es am Wochenende mal hochladen.

Meins kann nur FTP, da ich nichts anderes brauche. (Sonst werde ich es erweitern.)

Gruß
Ulrich
 
Hier nun beine Version:

als Verzeichnis habe ich im $HOME angelegt:

photo/tmp

tmp ist eine RAM Disk, damit sie nach dem neustarten wieder leer ist. Damit kann man notfalls immer den Raspberry neustarten.

im Verzeichnis photo wird noch das Verzeichnisse mnt (mount auf die Kamera) und das Verzeichnis target (mount auf den FTP Server) angelget. Die Verzeichnisse werden im Skript mountet und unmounted. Der FTP Server ist in der /etc/fstab definiert.

Cron ruft jede Minute ein Wrapperskript auf, dass alle 10s das eigentliche Copyskipt aufruft.

wrapper.sh:

Code:
#!/bin/bash
#
/home/pi/photo/copy.sh &
sleep 10
/home/pi/photo/copy.sh &
sleep 10
/home/pi/photo/copy.sh &
sleep 10
/home/pi/photo/copy.sh &
sleep 10
/home/pi/photo/copy.sh &
sleep 10
/home/pi/photo/copy.sh &

Hier das eigentliche Skript (copy.sh):
Code:
#!/bin/bash
#

sudo chmod 777 /home/pi/photo/tmp
RUNFILE=/home/pi/photo/tmp/copy_is_running.txt

QUELLE=/home/pi/photo/mnt
ZIEL=/home/pi/photo/target/rpi


kopiere ()
{
  QFILE=$1
  ZFILE=$ZIEL/`basename $QFILE`
  
# wenn es die Datei auf den Ziel gibt
  if [ -f $ZFILE ] ; then

  QFILEBYTE=`ls -l $QFILE | awk '{print $5}'`
  ZFILEBYTE=`ls -l $ZFILE | awk '{print $5}'`    

    # Wenn die Dateigrößen von Ziel und Quelle nicht gleich sind
    if [ $ZFILEBYTE -ne $QFILEBYTE ] ; then

        QFILEBYTE2=`ls -l $QFILE | awk '{print $5}'`
    # und wenn die Quelle nicht mehr wächst
        if [ $QFILEBYTE -eq $QFILEBYTE2 ] ; then

            rm -f $ZFILE
            cp $QFILE $ZIEL
            #echo "Kopiere $QFILE nach $ZIEL wg. Filesize"
        fi
    fi   
# wenn es die Datei nicht auf dem Ziel gibt.    
  else  
     cp $QFILE $ZIEL
     #echo "Kopiere $QFILE nach $ZIEL"
  fi
}


if [ ! -f $RUNFILE ] 
    then

    echo "Start `date`" >>  /home/pi/photo/copy.txt
    echo "Running..." > $RUNFILE
    chmod 777  $RUNFILE
    
    if [ -f /home/pi/photo/target/rpi ] ; then
      sudo  rm -f /home/pi/photo/target/rpi
    fi 
    
    mount /home/pi/photo/target
    gphotofs /home/pi/photo/mnt

    

    DATEIEN=`find /home/pi/photo/mnt -name "*.[jJnN][pPeE][gGfF]"`
         
    # Für jede Datei
    for DATEI in $DATEIEN
    do
    
        kopiere $DATEI
    
    
    # done 
    done

    MyDev=`gphoto2 --auto-detect | grep usb | cut -b 36-42 | sed 's/,/\//'`
    
    if [ ! -z ${MyDev} ]
    then
       ./usbreset /dev/bus/usb/${MyDev} >>/dev/null 2>/dev/null
    fi

    
    	fusermount -u -z /home/pi/photo/mnt

    if [ "`df -h | grep /home/pi/photo/mnt`" ] 
    then 
    	fusermount -u -z /home/pi/photo/mnt
    fi
    

    	fusermount -u -z /home/pi/photo/target 

    if [ "`df -h | grep /home/pi/photo/target`" ] 
    then 
    	fusermount -u -z /home/pi/photo/target 
    fi

    echo "Stop `date`" >>  /home/pi/photo/copy.txt
    rm -f $RUNFILE
fi

Getestet habe ich es mit einer Nikon D700, D800, D200 und einer Nikon 1.

Es hat mit allen Kameras funktioniert. Es gibt für mich eigentlich keinen Grund, warum es nicht mit Kameras anderer Marken funktionieren sollte, da nichts Kameraspezifisches enthalten ist.

Ich habe nur den FTP upload eingebaut, da ich immer einen am laufen habe. Ich überlege mir noch, ob ich nur jpg's übertragen soll und wenn ja, ob ich diese vor der Übertragung noch verkleinern soll.

Aktuell lese ich mit dem Teil immer meine Bilder aus. Da ich die Kamera hier zu Hause einfach an den Raspberry anschließen kann und nach kurzer Zeit sind die Daten in meinem Netz hier verfügbar.

Grß
Ulrich
 
Zuletzt bearbeitet:
Hallo,

ich habe das Verkleinern der Bilder getestet. Das macht keinen Sinn, da das Verkleinern deutlich länger braucht, als das Kopieren der Orginale.

Gruß
Ulrich
 
ich habe das Verkleinern der Bilder getestet. Das macht keinen Sinn, da das Verkleinern deutlich länger braucht, als das Kopieren der Orginale.

Du arbeitest mit den Original JPEGs aus der Kamera oder?
Eventuell wäre es einen Versuch wert per dcraw das Vorschau-JPEG aus dem RAW zu extrahieren...das wird bereits in der Kamera erzeugt und hat zumindestens bei Canon eine deutlich kleinere Größe.
 
Haste eigentlich Recht. Die JPG's brauchen eigentlich nur wenige Sekunden. Ich glaube ich lasse es so wie es ist. Das extrahieren muß schon super schnell passieren, da es sonst nicht so viel bringt.

Derzeit würde ich am liebsten das Skript als erstes im "Autostart" von Linux zum ersten mal starten, bevor es dann im Cron alle 10s läuft. Starte ich es nur über Cron, dann kommen die ersten Bilder so nach 70s. Könnte ich es schon mal gleich nach dem starten laufen lassen, kämen die ersten Bilder nach 35s.

Allerdings habe ich mit der "Autostart" Funktionalität unter Linux so meine Probleme. Der Prozess wird immer wieder nach wenigen Sekunden gestopt. Ich kenne mich da auch nicht wirklich so aus. Vielleicht kann mir da jemand helfen.

Gruß
Ulrich
 
Das extrahieren muß schon super schnell passieren, da es sonst nicht so viel bringt.
Tut es! Hab es zwar noch nicht auf dem RPi probiert, aber sonst ist die benötigte Zeit nicht mal wirklich messbar:
Code:
chris@phobos ~/_bilder/Fotos/2013-02-25 % time dcraw -e _MG_5042.JPG
dcraw -e _MG_5042.JPG  0,00s user 0,00s system 6% cpu 0,065 total
Heraus kommt da bei einer 50D eine 2MB JPEG Datei bzw. bei meiner 450D sogar nur 600-700kb ca., was schon deutlich kleiner ist als die sonstigen JPEGs...aber das dürfte auch je nach Kamera verschieden sein...
 
Zuletzt bearbeitet:
Vergangenen Samstag kam das ganze Konstrukt im Fotostudio zum Einsatz, Bewährungsprobe quasi ;)

Vorneweg, es lief alles ohne Probleme und das über einen Zeitraum von 4h :cool: .

Winkel und PI war vorab schon an der Cam montiert, musste also nur noch eingeschaltet werden. Habe direkt danach das Macbook aufgebaut und dann auch schon das Adhoc WLAN zum PI aufbauen können.
Hatte zunächst auf den Autostart verzichtet und das wft per ssh gestartet, dies hatte jedoch Zuhause bereits mehrfach problemlos geklappt.

Über die gesamte Session hinweg hielt die Kapazität des Akku's dicke, der Ladezustand war am Ende noch auf 2/3 gestanden. Abstand zum Macbook waren etwa 5-7 Meter, Bilder etwas mehr als 170 Stück. Als weiteren Verbraucher (und zur Statusanzeige) hatte ich das RGB-LED Modul dran.

Übertragen habe ich nur die JPEG's. Auch wenn das Array immer größer wird und dadurch der Übertragungszeitpunkt bei zunehmender Bildmenge immer später kommt, hat es ausgereicht um das aktuelle Foto zeitnah aufs Macbook zu bringen. Soll heissen, wenn ich rüber gelaufen bin, war es da :top:

Insgesamt war/bin ich sehr zufrieden damit, auch was das Handling betrifft.

@Julian:
:eek: Der Winkel ist schon ziemlich overkill, schaut aber echt geil aus. Da ich den BG ja schon hier rumliegen habe und keinen Winkel an der Cam haben möchte kommt das aber für mich nicht Frage.
Bin aber sehr gespannt wie Du es realisierst :D
Thema GPIO Taster würde ich gerne per PN/Mail diskutieren, wäre ja auch eher ein Thema fürn PI-Forum.

@baer_u
Danke für den Test mit dem Verkleinern der JPEGs. Das hatte ich nämlich als mögliche Erweiterung in Betracht gezogen und kann ich somit gleich mal wieder kippen :D
Dein Script sieht übrigens auch interessant aus, werde ich bei Gelegenheit mal probieren. Danke fürs posten :top:

@tennisfreak
Das er den Befehl nicht kennt wundert mich etwas, hast Du Raspbian im Einsatz oder eine andere Distribution? Was sagt denn "uname -a" ?
 
Ich würde gerne das ganze noch für Video erweitern um erstmal Fokus per Raspberry Pi am liebsten über Taster machen zu können
Finde allerdings nicht, wie ich das mit gphoto2 mache.

Kennt jemand die Befehle oder die richtige app?

Die Kür wäre dann noch Live View Streaming aufs iPad.

Hat jemand hierzu schon was gemacht oder gefunden? Kenne nur die Arudino Skripte und Implementierung
 
Die Kür wäre dann noch Live View Streaming aufs iPad.

Hat jemand hierzu schon was gemacht oder gefunden? Kenne nur die Arudino Skripte und Implementierung

Ich bin gerade an sowas dran, bin noch nicht weit, aber Viewfinder-Streaming im Browser/ans Tablet läuft schonmal ganz brauchbar. Jetzt wo ich mit vorerst mit den Uni-Klausuren durch bin, werd ich wohl etwas dran weiter schreiben können. Sobald was brauchbares dabei rauskommt, werde ich hier wohl auch einen Thread aufmachen...in diesen Thread passt das wohl nicht so richtig rein...
 
@Marcus :

Also im Moment läft Raspbian "wheezy" auf dem Pi . Bei uname -a gibt er folgendes aus :

pi@raspberrypi ~ $ uname -a
Linux raspberrypi 3.6.11+ #371 PREEMPT Thu Feb 7 16:31:35 GMT 2013 armv6l GNU/Linux

Es müsste doch eigentlich das richtige System sein oder habe ich mich da etwa vertan ?
 
Gute Idee, werde ich gleich mal machen .:)

Hab es eben mal probiert, allerdings sind die usbutils schon auf dem neuesten Stand ..
 
Zuletzt bearbeitet:
So, in den letzten Tagen bin ich ein bisschen vorangekommen. Mein Fehler bei lsusb -vv war, dass ich ( warum auch immer ) statt einem L ein i gelesen habe :o ! Sorry dafür aber ich hab noch nicht so viel mit linux gearbeitet .
Also bei lsusb -vv listet er meine 7d auf ; also wird sie auch erkannt.

Jetzt habe ich mal angefangen die Schritte aus der Readme durchzugehen und habe schon gphoto2 und gphotofs installiert. Wenn ich nun allerdings den User pi zur Gruppe fuse hinzufügen will, meckert er über ein unerwartetes Wort newline . Der Befehl müsse doch eigentlich " usermod -a -Gfuse <pi> " heißen oder ?

Schon mal im Voraus vielen Dank für die gesamten Bemühungen hier !:top:

Achso, hier mal die Ausgabe für lsusb -vv für meine Kamera :

Code:
Bus 001 Device 006: ID 04a9:319a Canon, Inc. EOS 7D
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x04a9 Canon, Inc.
  idProduct          0x319a EOS 7D
  bcdDevice            0.02
  iManufacturer           1 Canon Inc.
  iProduct                2 Canon Digital Camera
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           39
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xc0
      Self Powered
    MaxPower                2mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           3
      bInterfaceClass         6 Imaging
      bInterfaceSubClass      1 Still Image Capture
      bInterfaceProtocol      1 Picture Transfer Protocol (PIMA 15470)
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0008  1x 8 bytes
        bInterval              10
Device Qualifier (for other device speed):
  bLength                10
  bDescriptorType         6
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  bNumConfigurations      1
Device Status:     0x0001
  Self Powered
pi@raspberrypi ~ $ usermod -a -Gfuse <PI>
-bash: Syntaxfehler beim unerwarteten Wort `newline'
 
@gleri : Klasse , dass war mein Problem. :top:

Ich bin gerade dabei, die WFT-Anwendung zu installieren und frage mich gerade, wo die Datei wft.conf liegt, denn man soll laut Readme die Datei "wft.conf.ex" nach "wft.conf" kopieren und die jeweiligen Parameter anpassen.
Problem ist, dass es "wft.conf" bei mir nicht gibt . Habe ich da vielleicht irgendwas übersehen ?
 
Hi Tennisfreak,

die wft.conf.ex ist eine Konfigurationsvorlage, einfach via Befehl "cp wft.conf.ex wft.conf" im gleichen Verzeichnis umkopieren.

Falls Du Dir mal die Config zerhagelst, hättest Du so noch eine nutzbare Vorlage.
Ausserdem wird immer eine passende zum Script mit geliefert, falls Du also mal ne neuere wft-Version ín dieses Verzeichnis installierst, kannst Du Dir Deine bestehende Config erstmal nicht überschreiben.
 
WERBUNG
Zurück
Oben Unten