Als Erstes... Danke an alle die hier bereits gepostet haben. Konnte schon einiges, mit den Inhalten, erreichen.
Nun bin ich jedoch an ein Thema gestoßen, wo ich einfach nicht weiter komme.
Meine Situation:
Ich möchte über CoDeSys die Raspberry Pi Kamera ansteuern.
D.h im Detail...
- Triggerung der Kamera
- Einstellungen der Kamera (Bildgröße, Kontrast,usw.)
- Abspeichern der Fotos auf der SD-Karte
Wie muss ich das Programm aufbauen, dass ich auf die Raspberry Pi Kamera Zugriff habe?
Die Bibliothek mit den Methoden wurde ja automatisch implementiert... weiß jedoch nicht genau wie diese einzusetzen sind.
Ein Beispiel Programm würde hier enorm weiter helfen.
Herzlichen Dank im Voraus
Cedhen
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Ne Zeitlupenaufnahme mit der PI CAM getriggert vom SPS Programm.
->das test90fps.h264' mit Filebrowser von Pi holen und als avi umbennen und "staunen"
Grüße
Edwin
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Danke nochmals für deine tolle Unterstützung.
Habe alles am laufen.
Leider stehe ich nun am nächsten Problem an...
Habe zwar schon oft mit CoDeSys gearbeitet, jedoch nie auf diese Art und Weise.
Beschreibung der zukünftigen Applikation:
Wie bereits von dir erklärt, Bilder mit Hilfe der Pi Kamera aufnehmen.
Diese Bilder sollten nun in einem ImagePool zur Verfügung stehen, um ein ausgewähltes Bild auf der WebVisu an zu zeigen.
Nach diversen Aufnahmen (Bsp. 100 Bilder) wird über eine Random Funktion auf ein Bild zugegriffen und Visualisiert. Die Bild Dateien werden über einen Zähler indexiert (Bsp. 1.jpg, 2.jpg, usw.). In CoDeSys (CoDeSys_Control_for_Raspberr_Pi/Dateien) sind diese bereits sichtbar.
Meine Fragen:
- In welchem Verzeichnis werden die Bilder im Laufzeitsystem abgelegt (Verzeichnis im Raspberry Pi)?
- Wie kriege ich diese Bilder automatisch in eine Bildersammlung?
- Wie kann ich gezielt Bilder aus der Bildersammlung öffnen und auf die Visu legen?
Ich nehme an, dass dies der richtige Weg ist. 1. Bilder aufnehmen, 2. Bilder in einen ImagePool legen, 3. Bilder aus dem ImagePool nehmen um zu verwenden. Evtl. gibt es einen schnelleren, direkteren Weg?
Ich danke dir im Voraus für deine Unterstützung
Gruss
Cedhen
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
die Bilder liegen in /root/visu/ auf dem Pi , den Pfad könntest du ändern über das /etc/CODESYSControl.cfg vielleicht aber auch besser ins RAM legen damit
nicht soviel auf die SD Karte geschrieben wird, das schaded auf kurz oder lange der SD (vor allem schreiben und den Pi ausschalten kann die SD korrupt werden lassen)
Dmust ne Visu Seite machen die z.B 1.jpg, 2.jpg... usw enthält im ImagePool in CODESYS.
Dann das caching der Bilder wie hier ( l viewtopic.php?f=18&t=4631#p14783 l )
schon beschrieben abschalten und eben über die CAM Bilder(raspistill) die Bilder direkt austauschen (überschreiben lassen).
Klar welche Bilder du anzeigst machst du schon über den ImagePool und vielleicht Frames oder eben die Bilder entsprechend unsichtbar schalten
nur das active sichbar.
Grüße
Edwin
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Wird ein Bild aufgenommen, habe ich diese Bilder in folgendem Verzeichnis
Jedoch befinden sich diese Bilder in keiner Bildersammlung.
Kann ich die aufgenommenen Bilder nicht direkt in eine Bildersammlung speichern?
Da ich so gegen 200 Bilder pro Tag machen werde, muss ich die Bilder wohl auf die SD-Karte speichern. Nehme an, dass das RAM dazu nicht ausreichend ist.
So könnte ich auf der WebVisu einfach auf das letzte Bild verweisen (variable Bild_ID im Bildfeld eingeben) und hätte so immer eine aktuelle Ansicht.
Danke für eine Antwort
Gruss
Cedhen
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
also ich habe dir mal ein Beispiel Projekt erstellt, wie es gehen könnte.
Paar Randbedingungen:
Ich speichere die Bilder nicht auf SD Karte da ich denke das dein PI das keine paar Wochen überleben würde
das zyklische schreiben auf die SD Karte, meine ich.
(Du kannst es natürlich trotzem ausprobieren - aber bitte die Lizenz sichern, damit wenn die SD Karte Schrott ist, damit du die Lizenz wieder herstellen kannst - falls du eine hast )
Also entweder RAM Disk anlegen, hast du ja gemeint reicht dir nicht (denke das ware die schönste Lösung), also alternative USB Stick mounten - bei dem ist es egal wenn der eventuell durch zu vieles schreiben Schaden nimmt, hauptsache Pi läuft weiter.
1. mit RAM Disk anlagen mit 100MB:
mit ssh auf Pi einloggen: sudo nano /etc/fstab
am Ende folgende Zeile einfügen: tmpfs /tmp tmpfs nodev,nosuid,relatime,size=100M 0 0
nun das visu Verzeichnis anlagen in der Ramdisk (das könnte man später in rc.local machen damit es nach jedem booten passiert):
**sudo mkdir /tmp/visu **
den symbolischen Link muss man nur einmal machen: sudo ln -s /tmp/visu/ visu
2. alternative USB Stick Mounten:
ssh auf Pi verbinden und folgendes machen:
so nun noch einen symbolischen Link erstellen: (der visu Ordner auf den USB stick)
sudo ln -s /media/usbstick/visu/ visu
nach dem Download des CODESYS Projektes im visu Ordner auf dem Pi die webvisu.cfg.json
ändern (also einmal webvisu runterladen... dann ändern dann oben in CODESYS nach webvisu2 umbenennen, damit diese nicht mehr beim download überschrieben wird)
dann beim 2. download in CODESYS:
auf der Webvisu
Name of Webvisu: webvisu2 ändern (siehe screenshot).
Das wars, beachten muss man noch, das man bei der Ramdisk Lösung wenn man die persistent haben will den visu Ordner ja nach jedem Start
des Pi's wieder füllen muss, also entweder wieder über CODESYS downloads oder aber eben sichern z.B nach home/pi/visu und diesen beim neustart
über rc.local wieder zurücksichert.
Herzlichen Dank für die wiederum schnelle Antwort.
Habe mich nun entschlossen, alles auf dem RAM zu lösen. Werde die Datenqualität reduzieren und dann geht das schon.
Kann ich die Grösse auch auf 200M erhöhen oder gibt das Probleme?
Habe die Anpassungen folgender Massen vorgenommen:
Leider sehe ich nicht, dass die entsprechende RAM-Disk vorhanden ist. Zumindest sehe ich keine mit 100M.
Danke im Voraus für eine Antwort
Gruss
Cedhen
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Wie in den PrintScreens zu sehen habe ich diese so aufgerufen (GNU naon 2.2.6 File: /etc/fstab)
Eingabe habe ich auch nochmals kontrolliert. Stimmt.
Reboot habe ich ebenfalls ausgeführt.
Gruss
Cedhen
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
bedauerlicherweise gibt noch einen Fehler der verhindert, das dieses "Umbiegen" funktioniert, darum wie oben beschreiben die symbolischen links erstellen.
wem das zu viel ist, kann aber gerne den "Plan B" Workaround anwenden:
man muss im root Verzeichnis auch noch das Verzeichnis wie auf dem Stick anlagen: also root/media/usbstick/visu
Verzeichnis hirachie anlegen dann funktioniert das Umbiegen des Visuverzeichnisses wie geplant.
Wie gesagt mit diesem Workaround kann man sich die sym. Links sparen.
Das nur der Vollständikeit halber.
Grüße
Edwin
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Habe nun alles am laufen.
Die RAM Variante getestet und läuft.
Die USB Variante getestet und läuft.
Muss jetzt nur noch schauen, dass die Bilder auch nach einem reboot gespeichert bleiben. Sollte ich aber hinkriegen.
Habe Anfang dieser Woche die Vollversion erhalten und das neue Image geladen und eingerichtet.
Lizenz sollte auf dem Raspberry Pi drauf sein (Siehe Bild)
Trotzdem bricht mir die EtherCat Verbindung alle zwei Stunden ab. So wie ohne die Vollversion.
Habe ich etwas falsch gemacht?
Danke für eine Antwort
Gruss
Cedhen
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
hast du die Lizenz wirklich auf dem Pi aktivert, sieht aus wie unlizensiert +
hast du nach dem lizensieren die Lizenz gesichert wie hier beschrieben?
(oder auch in der Store Produktbeschreibung)
Hallo
habe folgendes Projekt runtergeladen: CameraMultiblePicWebvisu.project. Nun habe ich folgende Frage: In Image Pool sind Picture0 bis Picture5. Wie kann ich dort noch mehr Bilder einfügen? Ich bräuchte das für ein anderes Projekt.
Herzlichen Dank
Stefan
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hallo zusammen
Als Erstes... Danke an alle die hier bereits gepostet haben. Konnte schon einiges, mit den Inhalten, erreichen.
Nun bin ich jedoch an ein Thema gestoßen, wo ich einfach nicht weiter komme.
Meine Situation:
Ich möchte über CoDeSys die Raspberry Pi Kamera ansteuern.
D.h im Detail...
- Triggerung der Kamera
- Einstellungen der Kamera (Bildgröße, Kontrast,usw.)
- Abspeichern der Fotos auf der SD-Karte
Wie muss ich das Programm aufbauen, dass ich auf die Raspberry Pi Kamera Zugriff habe?
Die Bibliothek mit den Methoden wurde ja automatisch implementiert... weiß jedoch nicht genau wie diese einzusetzen sind.
Ein Beispiel Programm würde hier enorm weiter helfen.
Herzlichen Dank im Voraus
Cedhen
Hallo,
es wird ja wenn man das Storepackage installiert folgendes Beispiel mitinstalliert:
"c:\Users\<username>\CODESYS Control for Raspberry PI\1.1.0.0\Camera.project" </username>
Aufgerufen wird also z.B mache ein Bild so:
(man kann z.B das Bild über den SPS file browser hochholen auf den CODESYS PC)
welche optionen man einstellen kann sieht man hier im Tooltipp bei der Bibliothek.
Grüße
Edwin
Super Sache!!! Danke für die schnelle Antwort
Hab es gleich getestet und es funktioniert. Nun werde ich alle nötigen Einstellungen ergänzen und nochmals versuchen.
Manchmal sieht man den Wald vor lauter Bäumen nicht.
Hi,
noch ein Beispiel für ein Video:
Ne Zeitlupenaufnahme mit der PI CAM getriggert vom SPS Programm.
->das test90fps.h264' mit Filebrowser von Pi holen und als avi umbennen und "staunen"
Grüße
Edwin
Hallo Edwin
Danke nochmals für deine tolle Unterstützung.
Habe alles am laufen.
Leider stehe ich nun am nächsten Problem an...
Habe zwar schon oft mit CoDeSys gearbeitet, jedoch nie auf diese Art und Weise.
Beschreibung der zukünftigen Applikation:
Wie bereits von dir erklärt, Bilder mit Hilfe der Pi Kamera aufnehmen.
Diese Bilder sollten nun in einem ImagePool zur Verfügung stehen, um ein ausgewähltes Bild auf der WebVisu an zu zeigen.
Nach diversen Aufnahmen (Bsp. 100 Bilder) wird über eine Random Funktion auf ein Bild zugegriffen und Visualisiert. Die Bild Dateien werden über einen Zähler indexiert (Bsp. 1.jpg, 2.jpg, usw.). In CoDeSys (CoDeSys_Control_for_Raspberr_Pi/Dateien) sind diese bereits sichtbar.
Meine Fragen:
- In welchem Verzeichnis werden die Bilder im Laufzeitsystem abgelegt (Verzeichnis im Raspberry Pi)?
- Wie kriege ich diese Bilder automatisch in eine Bildersammlung?
- Wie kann ich gezielt Bilder aus der Bildersammlung öffnen und auf die Visu legen?
Ich nehme an, dass dies der richtige Weg ist. 1. Bilder aufnehmen, 2. Bilder in einen ImagePool legen, 3. Bilder aus dem ImagePool nehmen um zu verwenden. Evtl. gibt es einen schnelleren, direkteren Weg?
Ich danke dir im Voraus für deine Unterstützung
Gruss
Cedhen
Hallo Cedhen,
die Bilder liegen in /root/visu/ auf dem Pi , den Pfad könntest du ändern über das /etc/CODESYSControl.cfg vielleicht aber auch besser ins RAM legen damit
nicht soviel auf die SD Karte geschrieben wird, das schaded auf kurz oder lange der SD (vor allem schreiben und den Pi ausschalten kann die SD korrupt werden lassen)
Dmust ne Visu Seite machen die z.B 1.jpg, 2.jpg... usw enthält im ImagePool in CODESYS.
Dann das caching der Bilder wie hier ( l viewtopic.php?f=18&t=4631#p14783 l )
schon beschrieben abschalten und eben über die CAM Bilder(raspistill) die Bilder direkt austauschen (überschreiben lassen).
Klar welche Bilder du anzeigst machst du schon über den ImagePool und vielleicht Frames oder eben die Bilder entsprechend unsichtbar schalten
nur das active sichbar.
Grüße
Edwin
Hallo Edwin
Wird ein Bild aufgenommen, habe ich diese Bilder in folgendem Verzeichnis
Jedoch befinden sich diese Bilder in keiner Bildersammlung.
Kann ich die aufgenommenen Bilder nicht direkt in eine Bildersammlung speichern?
Da ich so gegen 200 Bilder pro Tag machen werde, muss ich die Bilder wohl auf die SD-Karte speichern. Nehme an, dass das RAM dazu nicht ausreichend ist.
So könnte ich auf der WebVisu einfach auf das letzte Bild verweisen (variable Bild_ID im Bildfeld eingeben) und hätte so immer eine aktuelle Ansicht.
Danke für eine Antwort
Gruss
Cedhen
Hallo Cedhen,
also ich habe dir mal ein Beispiel Projekt erstellt, wie es gehen könnte.
Paar Randbedingungen:
Ich speichere die Bilder nicht auf SD Karte da ich denke das dein PI das keine paar Wochen überleben würde
das zyklische schreiben auf die SD Karte, meine ich.
(Du kannst es natürlich trotzem ausprobieren - aber bitte die Lizenz sichern, damit wenn die SD Karte Schrott ist, damit du die Lizenz wieder herstellen kannst - falls du eine hast )
Also entweder RAM Disk anlegen, hast du ja gemeint reicht dir nicht (denke das ware die schönste Lösung), also alternative USB Stick mounten - bei dem ist es egal wenn der eventuell durch zu vieles schreiben Schaden nimmt, hauptsache Pi läuft weiter.
1. mit RAM Disk anlagen mit 100MB:
mit ssh auf Pi einloggen:
sudo nano /etc/fstab
am Ende folgende Zeile einfügen:
tmpfs /tmp tmpfs nodev,nosuid,relatime,size=100M 0 0
dann
sudo reboot
und mit
df -h
kontrollieren ob Ramdisk vorhanden:
Filesystem Size Used Avail Use% Mounted on
rootfs 15G 2.3G 12G 17% /
/dev/root 15G 2.3G 12G 17% /
devtmpfs 183M 0 183M 0% /dev
tmpfs 38M 224K 38M 1% /run
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 75M 20K 75M 1% /run/shm
/dev/mmcblk0p1 56M 9.6M 47M 18% /boot
/dev/sda1 7.6G 24M 7.6G 1% /media/usbstick
tmpfs 100M 20M 81M 20% /tmp
nun das visu Verzeichnis anlagen in der Ramdisk (das könnte man später in rc.local machen damit es nach jedem booten passiert):
**sudo mkdir /tmp/visu **
den symbolischen Link muss man nur einmal machen:
sudo ln -s /tmp/visu/ visu
2. alternative USB Stick Mounten:
ssh auf Pi verbinden und folgendes machen:
sudo mkdir /media/usbstick
dann:
sudo blkid /dev/sda1
aufrufen
/dev/sda1: UUID="D424-5D3F" TYPE="vfat"
dann fstab editieren
sudo nano -Bw /etc/fstab
folgende Zeile ergänzen (UUID durch deine ersetzen):
UUID=3241-40CE /media/usbstick/ vfat defaults,auto,umask=000,users,rw 0
so nun noch einen symbolischen Link erstellen: (der visu Ordner auf den USB stick)
sudo ln -s /media/usbstick/visu/ visu
nach dem Download des CODESYS Projektes im visu Ordner auf dem Pi die webvisu.cfg.json
ändern (also einmal webvisu runterladen... dann ändern dann oben in CODESYS nach webvisu2 umbenennen, damit diese nicht mehr beim download überschrieben wird)
{
"UpdateRate": 200,
"PlcAddress": "0000.9ED4.C1D5",
"UseLocalHost": true,
"Application": "Application",
"StartVisu": "SendTweetVisu",
** "NumCachedImages": 0,**
"BestFit": true,
"LogLevel": "INFO",
"CommBufferSize": 50000,
"HasKeyboard": false
}
dann beim 2. download in CODESYS:
auf der Webvisu
Name of Webvisu: webvisu2 ändern (siehe screenshot).
Das wars, beachten muss man noch, das man bei der Ramdisk Lösung wenn man die persistent haben will den visu Ordner ja nach jedem Start
des Pi's wieder füllen muss, also entweder wieder über CODESYS downloads oder aber eben sichern z.B nach home/pi/visu und diesen beim neustart
über rc.local wieder zurücksichert.
Grüße
Edwin
CameraMultiblePicWebvisu.project [257.61 KiB]
Herzlichen Dank für die wiederum schnelle Antwort.
Habe mich nun entschlossen, alles auf dem RAM zu lösen. Werde die Datenqualität reduzieren und dann geht das schon.
Kann ich die Grösse auch auf 200M erhöhen oder gibt das Probleme?
Habe die Anpassungen folgender Massen vorgenommen:
Leider sehe ich nicht, dass die entsprechende RAM-Disk vorhanden ist. Zumindest sehe ich keine mit 100M.
Danke im Voraus für eine Antwort
Gruss
Cedhen
Hallo
hats du das in die fstab eingetragen + Reboot?
sudo nano /etc/fstabdas hier: tmpfs /tmp tmpfs nodev,nosuid,relatime,size=100M 0 0 **
am Ende der Datei
sudo reboot**
Grüße
Edwin
Hallo Edwin
Wie in den PrintScreens zu sehen habe ich diese so aufgerufen (GNU naon 2.2.6 File: /etc/fstab)
Eingabe habe ich auch nochmals kontrolliert. Stimmt.
Reboot habe ich ebenfalls ausgeführt.
Gruss
Cedhen
Sorry Edwin
Mein Fehler!!! Sollte mal eine Pause machen.
Die Eingabe war nicht richtig.
Hi,
es ist ja so das man den Visu Pfad normalerweise so umbiegen können müsste (in /etc/CODESYSControl.cfg):
[SysFile]
FilePath.1=/etc/, 3S.dat
PlaceholderFilePath=/media/usbstick/visu,$visu$
bedauerlicherweise gibt noch einen Fehler der verhindert, das dieses "Umbiegen" funktioniert, darum wie oben beschreiben die symbolischen links erstellen.
wem das zu viel ist, kann aber gerne den "Plan B" Workaround anwenden:
man muss im root Verzeichnis auch noch das Verzeichnis wie auf dem Stick anlagen: also
root/media/usbstick/visu
Verzeichnis hirachie anlegen dann funktioniert das Umbiegen des Visuverzeichnisses wie geplant.
Wie gesagt mit diesem Workaround kann man sich die sym. Links sparen.
Das nur der Vollständikeit halber.
Grüße
Edwin
Hallo Edwin
Habe nun alles am laufen.
Die RAM Variante getestet und läuft.
Die USB Variante getestet und läuft.
Muss jetzt nur noch schauen, dass die Bilder auch nach einem reboot gespeichert bleiben. Sollte ich aber hinkriegen.
Habe Anfang dieser Woche die Vollversion erhalten und das neue Image geladen und eingerichtet.
Lizenz sollte auf dem Raspberry Pi drauf sein (Siehe Bild)
Trotzdem bricht mir die EtherCat Verbindung alle zwei Stunden ab. So wie ohne die Vollversion.
Habe ich etwas falsch gemacht?
Danke für eine Antwort
Gruss
Cedhen
Hi,
hast du die Lizenz wirklich auf dem Pi aktivert, sieht aus wie unlizensiert +
hast du nach dem lizensieren die Lizenz gesichert wie hier beschrieben?
(oder auch in der Store Produktbeschreibung)
How to license Raspberry Pi Runtime ?
How to to backup your Pi license ?
How to to restore your Pi license in case of corrupt SD Card Image ?
Schick mir mal bitte den inhalt des backup orders an die support email adresse
Grüße
Edwin
Hallo
habe folgendes Projekt runtergeladen: CameraMultiblePicWebvisu.project. Nun habe ich folgende Frage: In Image Pool sind Picture0 bis Picture5. Wie kann ich dort noch mehr Bilder einfügen? Ich bräuchte das für ein anderes Projekt.
Herzlichen Dank
Stefan
Hi Stefan,
so...
Grüße
Edwin
Hallo Edwin
Vielen Dank für die schnelle Antwort.
Bei mir funktioniert`s leider nicht.
Hi,
die picture6.jpg muss auf deinem CODESYS PC ja irgendwo sein... ist die das?
Grüße
Edwin
Hi
ist auf jedem Fall auf dem Raspberry, dort ist es ja auch sichtbar in root/visu...aber wie geht`s weiter?
Gruß
Stefan
Hallo Edwin
Habs gefunden ...läuft.
Vielen Dank nochmal
Gruß
Stefan
Hallo cedhen, Edwin und stefanh,
hattet ihr eine automatische Nummerierung der erstellten Bilder? Wenn ja, wie habt ihr das in CoDeSys realisiert?
Vielen Dank schonmal
Ensi8050