Tutorials

Einige nützliche Hilfen und Code-Schnipsel, die ich immer wieder benötige und deshalb hier für alle sammle.

Zurück zur Übersicht

Raspberry Pi: Einen DSLR Wedding/Photobooth erstellen

#Tutorials#Raspberry

Für meine Hochzeit habe ich mit einem Raspberry Pi, einem Tablet und unserer Spiegelreflex-Kamera einen Photobooth gebaut.

Mitlerweile ist das Projekt gewachsen, sodass es nun auch für diverse Platformen funktioniert. Unterstützt wird:

Was wird benötigt?

  • Raspberry Pi/Unix/macOS/Windows PC mit
    • Webserver (
      • PHP
      • PHP GD für QR-Code/Thumb Generierung
    • Gphoto2
    • ggf WLAN Dongle (siehe Wlan Router)
  • Ein Tablet (Egal ob iPad, Android oder Windows Tablet, hauptsache mit Wlan)
  • Wlan Router (falls der Raspberry kein Wlan hat, damit das Tablet und der Rapsberry kommunizieren können)
  • Eine Digitale Spiegelreflexkamera mit USB Anschluss (bitte prüft vorher, ob eure Kamera von Gphoto2 s.o. unterstützt wird. Hier die Liste: http://gphoto.org/proj/libgphoto2/support.php) oder eine USB Kamera für euer Gerät. Am besten dann eine pi-Camera
  • Etwas Know How in HTML/PHP/CSS

Wie ist das Photobooth aufgebaut?

Wie funktioniert das Ganze? Wie agieren die Komponenten miteinander?

Raspberry Pi/Windows PC/Linux System/macOS Gerät

Auf diesem Gerät läuft ein Webserver, der den Code ausführt und die "Web-Applikation" ausführt.

Wlan Router

Der Wlan Router ist an den Raspberry angeschlossen und erstellt ein lokales Wlan. Ich habe meins damals Photobooth genannt und es öffentlich gemacht. Dadurch konnte man sich mit Smartphone in das Wlan einloggen und via QR-Code die Bilder herunterladen.

Tablet

Das Tablet ist via Wlan mit dem Router, bzw dann mit dem Raspberry verbunden. Über einen Webbrowser in Fullscreen Ansicht kann man auf den Raspberry kommen. (Dafür braucht ihr die IP des Raspberries, https://www.raspberrypi.org/documentation/remote-access/ip-address.md). Dadurch wird die von mir geschriebene App (Webseite) ausgeführt, die auf dem Raspberry Webserver läuft. 

Spiegelreflexkamera/Pi-Camera

Die Kamera ist via USB an den Raspberry angeschlossen und empfängt das Auslöse-Signal und schickt dann das gemacht Bild an den Raspberry zurück.

Der Ablauf

Auf dem Touchscreen-Tablet wird der "Foto Machen"-Button geklickt. Danach zählt ein Countdown runter, damit man sich fertig machen kann. Sobald der Countdown bei 0 ist, schickt der Raspberry das Signal an die Kamera, dass ein Bild gemacht werden soll. Die Kamera macht direkt ein Bild und schickt es an den Raspberry zurück. Dieser legt das Bild in den "Images" Ordner ab, erstellt ein Vorschau-Bild für die Galerie, fügt das Bild der Galerie hinzu und schickt das Bild dann über Wlan zurück an das Tablet, auf dem das Bild dann angezeigt wird. Der Ganze Ablauf dauert je nach Bildgröße, Raspberry Pi Model und Wifi Verbindung 3-10 Sekunden. Ich hatte meine Kamera auf 3MP eingestellt und einen Raspberry Pi 2 und es hat so 4-5 Sekunden gedauert.

Bilder des Photobooth

Fragen? Anregungen?

Schreibt einfach Kommentare hier, oder macht Issues bei Github auf, falls ihr noch etwas braucht ;)

Die kompletten Anleitungen findet ihr auch im Github-Projekt:

https://github.com/andreknieriem/photobooth/wiki

 

Mir einen Kaffee spendieren? Einfach auf folgenden Button klicken!

Wem das Projekt gefällt und mir gerne mal einen Kaffee ausgeben nöchte, kann dies einfach mit dem Paypal Button tun.


Kommentare

  • Chris
    Hallo,
    ich bin leider am verzweifeln, da ich mich zu wenig auskenne und nicht wirklich einen Ansatz finden.
    Ich folge der anleitung und bekomme bei
    "yarn build"
    diese Fehlermeldung
    Couldn't find a package.json file in "/var/www/html"

    Kann mir jemand helfen, was ich falsch mache, würde mich riesig freuen!?

    Gruß
    Chris
    Antworten
    • Andre Rinas
      Hi Chris. Hast du das Paket von Github komplett geladen? Dort ist nämlich eine package.json auf unterster Ebene. Oder hast du in var/www/html noch einen Unterordner namens photobooth? Wenn ja dann musst du dort yarn build ausführen.
      Antworten
  • Chris
    Hey,
    erstmal danke für das Projekt. Ich will mir für meine alte Canon 1100D eine Photobox bauen. Ich habe auf einem mini PC "Raspbian Buster with desktop" installiert und bin der anleitung gefolgt. Wenn ich nun localhos - Photobooth aufrufe, bekomme ich zwar die Seite von der Photobooth, allerdingt komplett ohne Grafiken und nur mit ein wenig text. Weißer Hintergrund und darauf "Photobooth
    Webinterface by André Rinas
    Fork me on GitHub
    None
    Antique
    Aqua
    ...
    ...
    ...

    Hat jemand eine Idee, was ich falsch gemacht habe bzw. was ich vergessen habe.
    Freu mich über jede Anregung.
    Gruß
    Chris
    Antworten
  • Chris
    Hallo,
    vielen Dank für dieses geniale Programm und den guten Support hier auf der Seite.
    Eigentlich läuft alles super. Nur habe ich ein Problem: Das von mir geänderte Hintergrundbild wird mir im Chrome-Browser unter Windows ohne Probleme angezeigt. Jedoch fehlt es auf Applegeräten (iPhone/iPad). Dort wird lediglich die Hintergrundfarbe angezeigt (die Bedienung ist nicht beeinflusst). Auf einem älteren iPad wird sogar ausschließlich die Hintergrundfarbe beim Öffnen des Webservers angezeigt. Die Oberfläche lässt sich dort also gar nicht bedienen. Hat da jemand einen Rat für mich?

    Vlt hab ich ja irgendetwas übersehen.
    Aktuell läuft es auf einem Pi 4 B mit Raspberry Pi OS inkl. GUI.
    Bin für jeden Tipp dankbar.
    Chris
    Antworten
    • Andi
      Hey Chris!
      Gib den Pfad zum Hintergrundbild voll und nicht relativ an., Also z.B. url(/resources/img/bg_bluegray.jpg)

      Beste Grüße

      Andi
      Antworten
      • thomas
        Hallo,
        ich habe das selbe Problem mit einem iPad 3.
        Ich hab jetzt den vollen Pfad angegeben (url(/resources/img/bg.jpg)) und das Hintergundbild passt jetzt auch, allerdings sehe ich nur das Hintergundbild und keine Schaltflächen.

        Gibt es da eine Lösung?

        Beste Grüße
        Thomas
        Antworten
        • Andi
          Hey Thomas,
          Du könntest meinen Fork versuchen, schau doch gerne in der Telegram Photobooth Gruppe vorbei: t.me/PhotoboothGroup

          Viele Grüße

          Andi
          Antworten
  • Sebastian
    Hi,
    tolle Anleitung, habe auch alles gut hinbekommen. Vielleicht hat jemand eine Idee zu meinem Problem. Ich habe in meine Fotobox eine LED Strahler mit eingebaut welcher vor dem auslösen angehen soll und danach wieder ausgehen soll um die Umgebung schön auszuleuchten. Der Strahler ist mit einer modifizierten Steckdose verbunden welche ich über GPIO steuere. In meinem Script funktioniert das ganze gut, das Licht geht an das Foto wird erstellt und das Licht geht aus.
    Folgendes habe ich in der Software probiert leider ohne Erfolg. Als Befehl habe ich den Pfad zu meinem Script hinterlegt. Ein Foto wird gemacht aber es kommt die Fehlermeldung GPHOTO returned with an error code. Die Relais schalten gar nicht erst. Die Berechtigung sitzen auf www-data. In den Ordner Images / tmp / thumbs werden auch keine Bilder abgelegt.
    Innerhalb vom Script wird folgendes abgearbeitet, es ist sehr rudimentär.
    python relais_an.py
    gphoto2 --capture-image-and-download --filename=%s
    python relais_aus.py

    Eine weitere Idee war innerhalb von der takePic.php das bash script aufzurufen welches mit das Licht an und aus schaltet, aber leider funktioniert das auch nicht.
    Könnt Ihr helfen?
    Danke im Voraus.
    Sebastian
    Antworten
    • Manu
      Ich habe das selbe Problem aus also fast.

      Ich habe alle installiert wie beschrieben und programmiert.
      Aber sobald ich auf auslösen klicke zählt er den Countdown und dann Bild schwarz und das war’s. In der Galerie zeigt er mir auch nur schwarze Bilder an.
      Ist eine Nikon P500 Camera

      Kann mir jemand sagen an was das liegt ?

      Liebe Grüße

      Manu
      Antworten
      • Andi
        Hey Manu!
        Wie schaut's aus, wenn du per Hand im Terminal aufnimmst?
        gphoto2 --capture-image-and-download --filename="/home/pi/Desktop/test.jpg"
        (Pfad ggf anpassen)
        ?

        Viele Grüße

        Andi
        Antworten
    • Andi
      Hey Sebastian,

      Ich vermute hier passt etwas an den Berechtigungen nicht. Problembehandlung über die Kommentare ist recht unkomfortabel, meld dich am besten Mal über GitHub und poste dabei deine beiden Python Scripte.

      Beste Grüße

      Andi
      Antworten
  • Lukas
    Hallo,

    vielen Dank für Photobooth!

    Alles funktioniert super! Fast alles... ein kleines Problem hab ich: Meine Kamera Alpha 6000 geht nach einiger Zeit in einen Ruhemodus. Komplett deaktivieren kann ich das nicht.
    Wenn man dann ein Foto aufnimmt, hängt es bei "Cheeeeeseeee". Erst wenn ich manuell den Auslöser an der Kamera drücke wird das Bild aufgenommen und übertragen.
    Ist das Problem bekannt? Kann man was dagegen tun?

    Ist es ebenfalls möglich den Text, der unter dem QR-Code gezeigt wird, zu ändern?

    Besten Dank vorab!!
    Viele Grüße,
    Lukas
    Antworten
    • Andi
      Hey Lukas,

      Bezüglich deiner Alpha schaust du am besten bei gphoto, da es kein Problem mit der Photobooth Software an sich ist: github.com/gphoto/gphoto2/issues

      Bezüglich QR: ist möglich? Was willst du genau ändern? Du kannst den kompletten Text in /resources/lang/de.json ändern.
      Je nach Photobooth Version lässt sich sie WiFi SSID aber auch im Adminpanel eingeben, falls es nur darum geht.

      Beste Grüße

      Andi
      Antworten
  • Daniel Raab
    Hallo,

    zuerst einmal vielen Dank für die Implementierung dieser tollen Software zur Steuerung meiner Fotobox. Soweit funktioniert auch alles einwandfrei, jedoch habe ich folgendes Phänomen entdeckt:
    Ich nutze als Tablet ein Lenovo YogaTab (Android 6, somit nicht mehr das neuste) und mir ist aufgefallen das beim Drücken der Buttons diese manchmal hängen bzw. erst durch ein festeres Drücken betätigt werden. Dies ist im Prinzip nicht weiter schlimm, jedoch sprachen mich schon einige im Freundeskreis darauf an dass es doch etwas nervig ist.

    Hat einer hier ein ähnliches Problem und weiß zufällig Abhilfe?

    Viele Grüße

    Daniel
    Antworten
  • Tobias Behn
    Hallo,

    noch eine kleine Frage. Gibt es schon Fortschritte bei der DLSR Preview?

    Viele Grüße,
    Tobias
    Antworten
    • Andi
      Hey Tobi,

      Es gibt tatsächlich kleine Fortschritte, schau gerne Mal auf github vorbei: github.com/andi34/photobooth/pull/131

      Beste Grüße

      Andi
      Antworten
  • Tobias Behn
    Hallo,
    erstmal vielen Dank für dieses tolle Projekt!
    Ich habe ein Problem mit der Bildverarbeitung des Programms. Ich habe den Eindruck, das während der Verarbeitung sich die Qualität verschlechtert und die Bilder vor allem dunkler werden. Kann ich das irgendwie abstellen?
    Zunächst habe ich versucht Bilder mit der Raspberry Pi HQ Camera mit 6mm Weitwinkel aufzunehmen, leider wurden die Bilder nicht besonders toll. Ich habe jetzt auf eine Nikon D300 mit autofokus gewechselt und die Bilder werden auch durch bessere Beleuchtung deutlich besser, allerdings bleibt das Problem bestehen.

    Viele Grüße,
    Tobias
    Antworten
    • Andi
      Hey Tobias,

      du musst über github über die "master" branch installieren und im Adminpanel die Jpeg Qualität auf -1 setzen, ansonsten schau Mal im data/tmp, dort liegen die Original Aufnahmen.

      Beste Grüße

      Andi
      Antworten
  • Alex
    Hallo,
    meine Canon EOS600D löst nicht über die Photobooth Oberfläche aus. Wenn ich mich allerdings direkt per ssh auf den Raspi einwähle und dort "gphoto2 --capture-image-and-download" eingebe, funktioniert alles. Der selbe Befehl ist auch in der Photobooth Oberfläche eingetragen. Was kann ich da tun? Weiß nicht mehr weiter. Kann ich mir irgendwo den kompletten Code der Fotobooth Software angucken?
    Viele Grüße
    Alex
    Antworten
    • Andi
      Hey Alex!
      Setz nochmal die Berechtigungen, am gphoto-Befehl brauchst du normalerweise nix ändern im Adminpanel, wichtig ist dort auch den Dateinamen und -pfad mitzugeben (.--filename=%s).

      Der Quellcode ist auf GitHub, einfach dem Link unter "Fragen? Anregungen?" folgen .

      Berechtigungen nochmal setzen, danach einmal neustarten:
      sudo chown -R www-data:www-data /var/www/
      sudo gpasswd -a www-data plugdev
      sudo chmod -x /usr/lib/gvfs/gvfs-gphoto2-volume-monitor
      reboot

      Ansonsten noch weitere Fehlerquellen:
      Kamera hat WLAN?
      Gphoto mag es teilweise nicht, wenn das WLAN an der Kamera eingeschaltet ist.

      Speicherkarte eingelegt?
      Gphoto kann teilweise nicht auslösen, wenn keine Speicherkarte eingelegt ist.

      Probleme mit dem Autofokus? Ggf. Testweise den Autofokus ausschalten.

      Anderes Aufnahmeprogramm der Kamera getestet? Ggf. wird die Aufnahme nicht in allen Modi unterstützt?

      Beste Grüße

      Andi
      Antworten
  • Florian
    Moin, gibt es auch die Möglichkeit das die Bilder direkt auf usb gespeichert werden statt auf der sd karte ?

    Gruß
    Florian
    Antworten
    • Andi
      Hey Florian,

      Eine Implementierung ist gerade WIP, welche die Daten auf einen USB Stick kopiert, fehlt noch der Eintrag fürs Admin Panel. Denke in den nächsten 2 Wochen wird es fertig sein.
      github.com/andi34/photobooth/pull/115

      Beste Grüße

      Andi
      Antworten
  • Florian
    Hallo, könnt ihr mir den standert admin nehme vill sagen. Hab den leider vergessen und komme da nicht mehr rein.

    Gruß Florian
    Antworten
    • Andi
      Standard Name fürs Login?
      Photo

      Steht in der config/config.inc.php ;)

      Viele Grüße

      Andi
      Antworten
  • Tom
    Hallo! Gibt es die Möglichkeit mit einer Hardware Taste auf die index.php zu wechseln, wenn man sich gerade auf der chromakeying.php befindet? Oder mit einer Timeout funktion?
    Ich suche schon einige zeit nach einer Lösung leider sind meine Programmierkenntnisse aber sehr beschränkt :D. MfG Tom
    Antworten
  • Peter
    Schade. ich immer noch auf der 2.1.0 udates oder Neuinstallation läuft nicht Verbindungsaufbau zu raw.githubusercontent.com (raw.githubusercontent.com)|151.101.112.133|:443 … fehlgeschlagen: Das Netzwerk ist nicht erreichbar. kann mir jemand helfen bitte? ich bezahle auch dafür
    Antworten
    • Andi
      Hey Peter,
      schau doch gerne auf Telegram in der Photobooth Gruppe vorbei und wir schauen nach einer Lösung auch ganz ohne Bezahlung: t.me/PhotoboothGroup

      Beste Grüße

      Andi
      Antworten
  • Peter
    Hallo Andi.
    Ich bin erstmal begeistert von deinem Projekt.
    Es passt super zum 18en Geburtstag von meinem Sohn.
    Meine Fragen: Kann man sich vorher im Bildschirm sehen bevor der Button gedrückt wird?
    Und kann man einen externen Taster an den Raspberry anschließen um dierekt von weiter weg den Auslöser zu betätigen?
    Lieben Gruß
    Peter.
    Wenn ich fertig bin bekommst du eine ganze Kanne Kaffee ;-)
    Antworten
    • Andre Rinas
      Hi Peter,
      zu deinen Fragen. Ja es geht beides. Der Fork von Andi ist etwas weiter als mein Hauptprojekt, weil ich in letzter Zeit nicht die Zeit finde, an dem Projekt weiterzuarbeiten.
      Deine Fragen werden aber im Wiki auf Github beantwortet:
      https://github.com/andi34/photobooth/wiki

      Viel Spaß damit!
      Antworten
      • Peter
        Also bei mir klappt das alles hinten und vorne nicht...
        Wie ich gesehen habe, habe ich die Version 2,1,0 installiert.
        Es gibt aber schon die 2.9.0.
        Leider habe ich keinen blassen Schimmer wie ich die installieren / updaten kann...

        Kannst Du mir unter die Arme greifen?

        LG
        Peter
        Antworten
        • Peter
          Leider sind die updare server nicht erreichbar
          Antworten
  • Patrick
    Servus,

    Mega tolles Photobooth bin begeistert hab nur ein Problem ich nutzte zum anzeigen ein ipad da ist der hintergrund nicht ein Foto sondern orange obwohl ich das umgestellt hätte im adminpanel auf ein bild und stattdessen nimmt er am ipad nur die primary color her! Kann man das iwie ändern?
    Antworten
    • Andi
      Hey Patrick!
      Versuch Mal den Pfad voll anzugeben und nicht relativ:
      url(/resources/img/bg_bluegray.jpg)

      Beste Grüße

      Andi
      Antworten
  • Alex
    Erstmal danke für Deine großartige Arbeit!
    Nutze einen Raspi mit 7Zoll Display...daher würde ich gerne den Countdowntimer/Cheesee vergrößern bzw. evtl. auch diesen Effekt beim Herunterzählen ausschalten. Leider habe ich noch nicht den richtigen Punkt in der style.css gefunden was ich da ändern muss. Hat hier evtl. jemand die Lösung für mich? Dankeschön