Bilder mit der Raspberry Cam erstellen und auf PC übertragen

Anfängerfragen zum Programmieren mit PureBasic.
derschutzhund
Beiträge: 328
Registriert: 06.06.2013 20:37
Computerausstattung: Satellite A210-19Z, Samsung Netbook N130, VPAD10

Bilder mit der Raspberry Cam erstellen und auf PC übertragen

Beitrag von derschutzhund »

Hallo liebe PureBasic-Gemeinde!

Ich möchte mit einem Raspberry-Pi + CAM Fotos im Sekundentakt machen lassen die dann per WLAN auf einen PC übertragen werden um sie
da mit einem Purebasicprogramm anzuzeigen und zu analysieren.
Bei der Analyse gehts um nichts Wildes sondern eigentlich möchte ich im ersteb Schritt nur grob vergleichen ob sich das neue Bild gegenüber dem alten verändert hat.

Eigentlich wäre es ja auch möglich alles direkt auf dem Pi mittels Python durchzuführen und das Ergebnis mittels Browser per WLAN auf dem PC anzeigen zu lassen aber von
Python hab ich absolut keine Ahnung.

Noch besser wäre es natürlich ein Purebasicprog. auf dem Pi laufen zu lassen ab das geht ja (zur Zeit noch) nicht.

Deshalb sehe ich folgende Möglichkeiten als Ansatz:
1. Es werden automatisch Bilder im Sekundentakt auf dem Pi erzeugt und per WLAN (Netz) auf den PC übertragen. Dafür bräuchte ich eine Lösung.

oder

2. Der PC sendet jedes Mal einen Befehl an den Pi wenn ein Foto gemacht werden soll.

Das Ziel ist, auf dem Pi einen Accessoint zu installieren in den man sich dann mit dem PC anmelden kann um die Bilder abzurufen.
Natürlich gehts hierbei in erster Linie nicht um PureBasic sondern mehr um Linux aber vielleicht kann mir jemand hierzu auch was erzählen?

Vielleicht gibts auch noch eine ganz anderen Ansatz?

LG

Wolfgang
Satellite A210-19Z, Samsung N130, VPAD10, WinXP, Win7, PuppyLinux, PB 5.24, 5.31. 5.70
Elektronik, Mikrocontroller, CNC-Technik, 3D-Druck
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8675
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Re: Bilder mit der Raspberry Cam erstellen und auf PC übertr

Beitrag von NicTheQuick »

Wieso soll der RasPi ein AccessPoint werden? Es wäre doch viel einfacher, wenn PC und RasPi einfach im selben WLAN wären. Oder willst du das mobil benutzen?

Ansonsten würde ich nicht anfangen ein Übertragungsprotokoll zu entwickeln, sondern einfach HTTP nutzen. Mit einer Zeile kannst du mit Python das aktuelle Verzeichnis über HTTP freigeben:

Code: Alles auswählen

python3 -m http.server
Jetzt kannst du mit Purebasic auf http://raspi:8000/ gehen und dort alles runterladen, was in dem Verzeichnis ist. Erzeugst du da also sekündlich deine Bilder, kannst du sie dann einfach runterladen. Mit einem einheitlichen Zeitstempel-Format kannst du du es auch etwas übersichtlicher machen und Unterordner für Jahr, Monat, Tag, Stunden und Minuten erstellen.

Das Bild selbst kannst du ja nach Anleitung erzeugen: Raspberry Pi Camera How-To

Mit 7 Zeilen Bash-Script kannst du dann sekündlich ein Bild machen:

Code: Alles auswählen

#!/bin/bash

while true; do
	imagePath="$(date +"%Y/%m/%d/%H/%M/%S.jpg")"
	dirPath="$(dirname "$imagePath")"
	mkdir -p "$dirPath"
	raspistill -o "$imagePath"
	sleep 1
done
Ehrlich gesagt wäre es auch viel einfach mit Python oder anderen Tools zu prüfen, ob sich was am Bild geändert hat. Es ist nämlich nicht so einfach zwischen Rauschen im Bild und einer tatsächlichen Änderungen zu unterscheiden. Aber ich habe es so verstanden, dass das deine Hauptidee ist, die du selbst umsetzen möchtest.
Bild
derschutzhund
Beiträge: 328
Registriert: 06.06.2013 20:37
Computerausstattung: Satellite A210-19Z, Samsung Netbook N130, VPAD10

Re: Bilder mit der Raspberry Cam erstellen und auf PC übertr

Beitrag von derschutzhund »

Ja genau, das soll mobil eingesetzt werden deshalb der AP.

Das Problem das ich sehe wenn die Fotos in einem Verzeichnis auf dem Pi abgelegt werden ist, dass die ja irgendwie zeitnah wieder gelöscht werden damit nicht zu viel Datenmüll ensteht.
Weiterhin müsste dann auch die Zeit zwischen Pi und PC synchronisiert werden.

Optisch geht es zunächst mal nur darum den Unterschied von Bildern dem Betrachter deutlich zu machen.
Vielleicht wäre daher auch folgendes denkbar:
Ich stelle mir mal vor, dass irgendwann eine Änderung im Bild autritt, sagen wir mal im Bild Nr11
Um die Änderung deutlich sichtbar zu machen würde im Abstand von vielleicht einer halben Sekunde Bilder anzeigen und zwar in der Reihenfolge
1 10 2 11 3 12 4 13 5 14 6 15 7 16 8 17 9 18 10 19 11 20
Da Änderungen in meinem Fall immer länger dauern als 10 Sekunden, können durch diesen Bilderwechsel die Unterschiede quasi blinken.
Das älteste Bild wird dann nach der Anzeige sofort gelöscht.

Wenn man das so aufzieht, müssen die erzeugten Bilder einfach nur hochnummeriert werden und brauchen keinen Zeitstempel.
Satellite A210-19Z, Samsung N130, VPAD10, WinXP, Win7, PuppyLinux, PB 5.24, 5.31. 5.70
Elektronik, Mikrocontroller, CNC-Technik, 3D-Druck
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8675
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Re: Bilder mit der Raspberry Cam erstellen und auf PC übertr

Beitrag von NicTheQuick »

Du kannst die Bilder auch einfach durchnummerieren. Es gibt da ja auch einen fertigen Befehl für Zeitrafferaufnahmen auf der Seite, die ich oben verlinkt habe.
Parallel kannst du dann immer wieder dieses Bash-Skript aufrufen, das nur die jüngsten 20 Dateien im aktuellen Verzeichnis behält und die anderen löscht.

Code: Alles auswählen

ls -t | tail -n+20 | xargs -I{} rm -v "{}"
Bild
derschutzhund
Beiträge: 328
Registriert: 06.06.2013 20:37
Computerausstattung: Satellite A210-19Z, Samsung Netbook N130, VPAD10

Re: Bilder mit der Raspberry Cam erstellen und auf PC übertr

Beitrag von derschutzhund »

Gibts eigentlich eine Möglichkeit vom PC aus einen Befehl auf dem Pi ausführen zu lassen, also z.B. eine bashdatei?
Satellite A210-19Z, Samsung N130, VPAD10, WinXP, Win7, PuppyLinux, PB 5.24, 5.31. 5.70
Elektronik, Mikrocontroller, CNC-Technik, 3D-Druck
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8675
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Re: Bilder mit der Raspberry Cam erstellen und auf PC übertr

Beitrag von NicTheQuick »

Natürlich. So arbeite ich eigentlich nur damit. Das geht über SSH.
Bild
derschutzhund
Beiträge: 328
Registriert: 06.06.2013 20:37
Computerausstattung: Satellite A210-19Z, Samsung Netbook N130, VPAD10

Re: Bilder mit der Raspberry Cam erstellen und auf PC übertr

Beitrag von derschutzhund »

Bin gerade dabei mit dem Pi zu experimentieren.
Habe ein Image das hier: 2018-12-19-raspbian-jessie_TFT35_800x600_HDMI.zip auf die SD-Karte geflasht.
Das ist das Image für die Nutzung des aufgesteckten TFT-Displays.
Das brauche ich für die fertige Anwendung nicht mehr, dachte aber, dass es vielleicht ganz praktisch sein könnte wenn man auf dem Pi für die Zeit der Entwicklung ein kleines Display hat.
Mein Problem ist im Augenblick, dass ich weder eine Verbindung zum WLAN-Router aufbauen noch einen AP einrichten kann.
Im ersten Schritt, für die Entwicklungszeit, würde es vermutlich reichen wenn sich der Pi am WLAN-Netz anmeldet.
Sollte ich eine anderes Image verwenden oder wie geht man da vor um ein WLAN zu aktivieren?

Edit: Ich versuchs jetzt mal mit NOOBS

LG

Wolfgang
Satellite A210-19Z, Samsung N130, VPAD10, WinXP, Win7, PuppyLinux, PB 5.24, 5.31. 5.70
Elektronik, Mikrocontroller, CNC-Technik, 3D-Druck
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8675
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Re: Bilder mit der Raspberry Cam erstellen und auf PC übertr

Beitrag von NicTheQuick »

Nutze lieber ein aktuelles Betriebsystem und keins von 2018 und schließe einen normalen Bildschirm über HDMI an. Ich hab noch nie mit einem solchen TFT gearbeitet. Wie du am Ende WLAN oder LAN eingestellt kriegst, hängt vom Betriebssystem ab, aber da solltest du ja alle Informationen online finden. Ich müsste da auch googlen.
Bild
derschutzhund
Beiträge: 328
Registriert: 06.06.2013 20:37
Computerausstattung: Satellite A210-19Z, Samsung Netbook N130, VPAD10

Re: Bilder mit der Raspberry Cam erstellen und auf PC übertr

Beitrag von derschutzhund »

Hi Nic!

Habe heute mal wieder etwas Zeit mich mit der Bilderstellung und Übertragung mit einem Raspberry, gesteuert von einem Notebook per Purebasic zu beschäftigen.
- Eine Verbindung mit Putty funktioniert.
- mit "raspistill -o image.jpg" kann ich ein Foto in maximaler Auflösung erstellen -> Datei image.jpg wird erzeugt
- mit "python3 -m http.server" kann ich das Verzeichnis mit IP:8000 im Browser das Verzeichnis anzeigen lassen und die Datei auf den PC übertragen und ansehen

Das ist jetzt ja erst mal alles von Hand.
Zunächst fällt mir auf, dass die Bilderstellung ca. 4 Sekunden dauert, was deutlich zu lange ist. Es sollte doch möglich sein, jede Sekunde ein Foto zu erzeugen oder?

Damit ich den Raspberry komplett mit Purebasic fernsteuern kann möchte ich gerne Befehle zum Pi schicken können und Bilddateien vom Pi auf den Notebook senden können.
Wie geht das den aus PB mit SSH?

LG

Wolfgang
Satellite A210-19Z, Samsung N130, VPAD10, WinXP, Win7, PuppyLinux, PB 5.24, 5.31. 5.70
Elektronik, Mikrocontroller, CNC-Technik, 3D-Druck
derschutzhund
Beiträge: 328
Registriert: 06.06.2013 20:37
Computerausstattung: Satellite A210-19Z, Samsung Netbook N130, VPAD10

Re: Bilder mit der Raspberry Cam erstellen und auf PC übertr

Beitrag von derschutzhund »

Mal ne ganz andere Sache, könnte man diese Kamera mit PB ansteuern bzw. Fotos per USB direkt von der Kamera importieren und analysieren
https://www.amazon.de/ELP-Webcam-Manuel ... r=8-9&th=1

Wenn das gehen würde wäre es vermutlich einfacher als den Umweg über den Pi zu machen!

LG

Wolfgang
Satellite A210-19Z, Samsung N130, VPAD10, WinXP, Win7, PuppyLinux, PB 5.24, 5.31. 5.70
Elektronik, Mikrocontroller, CNC-Technik, 3D-Druck
Antworten