FotoBox Projekt für den Raspberry Pi [C++/Qt/wiringPi/gphoto2]

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • FotoBox Projekt für den Raspberry Pi [C++/Qt/wiringPi/gphoto2]? Schau mal ob du hier fündig wirst!

  • Hi thebino,

    vielen Dank für die Rückmeldung :) Falls du ein Bug entdeckst dann bitte gleich melden.

    Im Moment komme ich leider nicht zum Entwicklen. Privat ist einfach noch zu viel los. Ich habe ein paar Kleinigkeiten umsetzen können aber die großen Brocken sind immer noch offen.

    Ich hoffe die Lage entspannt sich demnächst und ich kann hier das nächste Feature verkünden :)

    Viele Grüße, Thomas

  • Hallo tomikais,

    vielen Dank für deine Mühe hier, ich war auf der Suche nach genau den Features die du mit eingebaut hast.

    Ich wollte das ganze auf einem alten Pi2 Model B 512MB installieren, allerdings lässt sich die Anwendung nicht starten nachdem ich die manuellen Schritte zur Installation von libgphoto2 durchgeführt habe. Deshalb erst einmal die Frage: Wird der alte RaspberryPi überhaupt unterstützt oder kämpfe ich hier auf verlorenem Posten?

    Danke im Voraus!

  • Hallo Thomas,

    Ich habe die Fotobox jetzt auf meinem Pi3B laufen, ich verwende die Picamera in der version 2.1 und sehe kein Vorschaubild.

    was muss ich ändern?

    Grüße

    Thomas

  • Hallo Thomas,

    habe mir vorgenommen bis zu meiner Hochzeit im nächsten Herbst eine Fotobox zu bauen und bin in dem Zusammenhang über dein Projekt gestolpert.

    Bin echt begeistert - genau was ich gesucht habe!

    Aktuell habe ich zwar noch keine kompatible Kamera und kann die eigentliche Funktion nicht testen. Allerdings habe ich mir zum experimentieren

    schon mal einen Taster mit LED besorgt, der soweit auch funktioniert. Hierzu ein kleiner Verbesserungsvorschlag:

    Nach dem Auslösen des Buzzers, ist dieser ja für die Dauer des Countdowns und die Anzeige des Bildes (?) gesperrt. Wäre es möglich einen festen oder variablen GPIO-Pin für diese Dauer (Timeout-Wert?) auf "LOW" und ansonsten auf "HIGH" zu setzen. Dann könnte ich die LED des Tasters an diesen Pin anschließen und der Button würde wieder leuchten, wenn die Box für das nächste Foto bereit ist.

    Viele Grüße!

    Martin

  • Hallo Thomas,

    bin zufällig auf der Suche über dein Projekt gestolpert. Ganau das was ich gesucht habe!

    Konnte alles auf einem Raspi 3 den ich noch herumliegen hatte installieren. Verwende die Version 2.10-alpha.

    Funktioniert soweit auch alles bis auf den Buzzer, den krieg ich nicht zum laufen. Ist denn noch der Pin 18 aktiv?

    Muss ich evtl. noch was installieren?

    Wird noch weiterentwickelt?

    Liebe Grüße Uwe

  • Moin uweSi,

    schön das freut mich aber sehr, dass es dir gefällt und das du es benutzt! Ich ehrlich gestehen, dass das Projekt aktuell etwas eingeschlafen ist... große neue Features schiebe ich vor mir her aber Kleinigkeiten habe ich immer wieder im Source Code über die Zeit gefixt. Jedoch aber nicht mehr eine neue Version der FotoBox veröffentlicht. Evtl. werde ich demnächst mal wieder eine neue Version fertig machen. :)

    Die bisherigen Versionen der FotoBox benutzen das Framework wiringPi für die Abfrage der GPIOs (Buzzer). Das Framework wird aber aktuell nicht mehr weiterentwickelt und verschwindet aus dem Raspberry Pi Betriebssystem. Den Code habe ich schon geändert das er die alternative benutzt aber wie erwähnt, noch nicht offiziell eine Version veröffentlicht.

    Was meinst du mir "Version 2.10-alpha"? Die letzte Version der FotoBox ist v1.3.5 https://gitlab.com/tomikais/fotobox/-/tags

    Liebe Grüße, Thomas

  • Hallo Thomas,

    ich bin über deinen Code gestolpert - und ein neues Projekt von mir ist geboren... :) !

    Ich bin fasziniert.. Mir gefällt das was ich sehe und wenn ich daran denke, dass alle aus meinem Freundeskreis gerade 30 werden ist das perfekt!

    Ich hab mir deinen Code runtergeladen. Ich programmiere viel in C++ (auch von der Arbeit her) aber bin sehr gewöhnt an eine IDE, die einem viel abnimmt. Ich hab meinen alten RPI 3 wieder ausgegraben und das neue Raspbian Bullseye draufgespielt, deinen Code gezogen und einen ersten Blick darauf gehabt. Git - kein Problem, allerdings bin ich neu was Qt und docker angeht. Ich hab soweit alles auf meinen Rpi installiert, aber ich habe Probleme deinen Code zu kompilieren - liegt vielleicht an meiner Unerfahrenheit mit Qt und docker....
    Ich kann ein docker image erstellen und einen Container starten mit deinen Files (brauch ich dieses überhaupt?)
    Ich kann das Projekt fotobox.pro in QT Creator laden - aber nicht kompilieren. Ich bekomme den Fehler "undefined reference".. genau da wo zum ersten mal die "preferences" class aufgerufen wird.. normal bedeutet das, dass ich einen Link-Fehler habe.. aber ich sehe, dass in der Projekt Datei alles verlinkt ist.. Was mache ich hier falsch? Muss ich das CmakeListsFile irgendwo einfügen?
    Eine kleine Beschreibung wie ich deinen Code kompilieren kann wäre für mich sehr hilfreich, dann kann ich starten, deinen Quellcode durchzusehen :)

    Ich hab auch versucht dein Programm einfach zu entpacken und "einfach" zu starten. Da tut sich bei mir aber nichts - wo soll ich denn Doppelklicken? Ich sehe keine executable....

    Ich freue mich!
    Liebe Grüße und Danke,
    Lilly

    Einmal editiert, zuletzt von lillyrapha (29. Januar 2023 um 00:20)

  • Hi lillyrapha,

    das freut mich aber! Da werden hoffentlich bei den ganzen Geburtstage viele schöne Schnappschüsse entstehen. So, jetzt schauen wir erst einmal, dass das auch was wird ;)

    Du kannst ganz einfach das development branch binary für deinen Raspberry Pi 3 mit Bullseye OS in dem GitLab CI Bereich herunterladen.

    FotoBox GitLab CI -> Download Artifacts -> RasPiOS32:Bullseye:archive / RasPiOS64:Bullseye:archive

    Die gepackte Dateien entpacken und über ein Terminal Fenster die Applikation wie folgt starten: ./FotoBox.

    Den Docker Container brauchst du zum Starten der Anwendung nicht. Ich nutze den Container lediglich als Cross-Compiler, um das Binary auf einem nicht ARM Host für das Target (Raspberry Pi) zu erzeugen.

    Was du auch machen kannst ist auf deinem Computer (Linux, macOS, Windows) mit Docker das Binary selbst bauen. Dazu schaust du am besten mal in die .gitlab-ci.yml Datei. Ohne es gerade getestet zu haben, sollte folgendes zumindest unter Linux funktionieren:

    Code
    docker run --rm --privileged multiarch/qemu-user-static:register --reset
    docker build --tag bullseye32:latest --file other/DockerfileBullseye32bit .
    docker run --volume $(pwd):/build/artifact bullseye32:latest

    Danach solltest du eine ZIP Datei mit der 32bit Bullseye Binary für deinen Raspberry PI haben.

    Was du natürlich auch machen kannst, ist die IDE "Qt Creator" auf deinem Raspberry PI zu installieren. Folge dazu in der README in dem Bereich "development". Dann kannst du entweder die .pro oder .cmake Datei mit dem Qt Creator öffnen und auf dem Raspberry PI das binary selbst bauen. Falls dann immer noch Fehler beim kompilieren auftreten, dann gib mir bitte bescheid damit ich mir das anschauen kann! Du darfst natürlich auch gerne das Projekt Forken und ein merge request mit dem fix senden ?.

    Ohne IDE solltest du das Projekt wie folgt über das Terminal auf dem PI bauen können:

    Code
    # Bauen mit CMAKE 
    cmake -G "Unix Makefiles" .
    cmake --build .
    # ODER bauen mit QMAKE
    qmake
    make -j$(nproc)

    Die Zeilen findest du auch in GitLab CI Datei sowie in der Docker Datei.

    Melde dich bitte falls du noch Probleme hast!

    Viele Grüße und gutes gelingen

    Thomas

    2 Mal editiert, zuletzt von tomikais (29. Januar 2023 um 13:40)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!