Raspberry Pi Timelapse Befehl funktioniert nicht.

Arjab

Lt. Junior Grade
Registriert
Feb. 2013
Beiträge
495
Ich habe einen simplen Skript geschrieben, der alle zehn Sekunden ein Foto machen soll, aber das funktioniert leider nicht. Irgendwie komme ich nicht dahinter, wie man den -tl Befehl verwendet.

Mein Script sieht bisher wie folgt aus:

Code:
#!/bin/bash

DATE=$(date +"%Y-%m-%d_%H-%M-%S")

raspistill -tl 10000 -o /home/pi/Kamera/$DATE.jpg

Wo und wie setze ich den -tl Befehl ein? Bisher gibt mir der Skript bloß ein Foto aus.
 
Kein Plan welche Parameter das raspistill nimmt aber du kannst dir einfach einen Loop schreiben.

Danach musst du dein Script mit ./script & starten und die Terminal-Session mit CTRL+d verlassen, dann läuft es im Hintergrund weiter. Alternativ kannst du auch irgendwas anderes nutzen um daraus einen Hintergrundprozess zu machen (z.b. Start-Stop Deamon oder ein systemd-Script bauen, dass den Prozess bei Quit neu startet etc. pp.)

Code:
shoot(){
    DATE=$(date +%s)
    raspistill -o /home/pi/Kamera/$DATE.jpg
}

while true; do
    shoot
    sleep 10
done
 
Zuletzt bearbeitet:
Code:
raspistill -o a%04d.jpg -t 21600000 -tl 30000
The options on the raspistill command line are worth understanding so you can tailor the command to your purposes.

The -o sets the name of the file that will be output. The %04 indicates that the image will get a four digit number incrementally assigned to this part of the file name. For example: a0001.jpg, a0002.jpg, a0003.jpg, you get the idea.

The -t sets the duration of the entire recording session in milliseconds. The command you used will run for 21600000 milliseconds or six hours.

The -tl option indicates how long to wait between each picture in milliseconds. The command you used will take a frame every 30000 milliseconds or 30 seconds.

After six hours has elapsed, the command will simply exit back to the command prompt.
Quelle: http://computers.tutsplus.com/tutor...se-photography-with-a-raspberry-pi--cms-20794

Probiers mal mit einem -t wie in dem Beispiel hier
 
Danke für eure Antworten, den Code von blablub1212 werd' ich gleich mal ausprobieren.
Den Dateinamen mit -o a%04d.jpg auszugeben habe ich auch schon versucht, das funktioniert auch, aber ich hätte eben am liebsten Datenamen mit Zeitstempel, was komischerweise in Verbindung mit -tl nicht funktioniert.
 
Ach jetzt seh ich erst dein Problem...
Du weist die Variable DATE einmal zu. Also speicherst den Zeitstempel darin. Jetzt nennst du aber jedes Bild so wie die Variable heißt. Also alle gleich. Dadurch wird das Bild immer überschrieben, da sich der Datenname nicht ändert. Du musst vor jedem Foto die Variable aktualisieren und das geht wie blablub1212 geschrieben hat am besten mit einer Schleife.

Bei blablub1212 wird der Datenname aber auch nicht aktualisiert oder übersehe ich was? (Kenn mich mit Bash-Scripts aber auch nicht aus)
Edit: Jetzt passts ;)
 
Zuletzt bearbeitet:
Sorry hab nicht nachgedacht :D die DATE variable muss natürlich auch in die shoot() Funktion. Hab das gerade kurz mit einem echo getestet und funktioniert so wie es soll. (Code wurde in meinem ersten Post ebenfalls angepasst)

Code:
shoot() {
DATE=$(date +%s)
echo $DATE
}

while $true; do
shoot
sleep 2
done;
 
Also ich hab' jetzt erstmal zwei Testläufe mit meinem ursprünglichen Skript ohne Zeitstempel versucht und komischerweise hat der Skript beide Mal nach exakt 361 Fotos aufgehört. Ich hab dem Skript großzügig 10 Stunden Laufzeit gegeben (-t 36000000) aber irgendwie hat das nicht geklappt. Irgendwelche Ideen?
 
Was passiert wenn du -t weglässt oder "-t 0" schreibst?

ich hab damit noch nie gearbeitet. Kann also auch nur raten :/

Edit:

Ok, habs selbst mal ausprobiert. Ich hab einfach direkt in der Console eingegeben (Die Console will scheinbar %d für die Nummern haben. Sollte aber kein Unterschied machen):
Code:
raspistill -o a%d.jpg -tl 10000 -t 36000000

Ich bin jetzt bei Bild 2042 und es läuft noch immer

Edit:
Ist jetzt fertig. 3601 Bilder. Also bei mir funktioniert es so wie es soll...
 
Zuletzt bearbeitet:
Zurück
Oben