Timelapse med Raspberry Pi

Permalänk
Medlem

Timelapse med Raspberry Pi

Detta är inte en guide, utan snarare en enkel beskrivning av mitt timelapse-projekt.

Tänkte dela med mig av mitt timelapse-projekt där jag använder Rpi och Pi Camera.
Programmet jag utgick från, är skrivit av Dave Jones.
http://www.raspberrypi.org/learning/python-picamera-setup/

Förutom pi camera, är där en diod koppla till GPIO 24, samt en brytare till GPIO 8.
Dioden aktiveras EFTER att bild tagits, i 0,1 sek.
Brytaren används för att köra kommandot "sudo shutdown -h now".

Märk att jag använder "GPIO.setmode(GPIO.BOARD)" i programmet, och inte "GPIO.setmode(GPIO.BCM)".
http://raspberrypi.stackexchange.com/questions/12966/what-is-...

Programmet ser ut så här.

import time import picamera import RPi.GPIO as GPIO import os VIDEO_DAYS = 5 FRAMES_PER_HOUR = 60 FRAMES = FRAMES_PER_HOUR * 24 * VIDEO_DAYS GPIO.setmode(GPIO.BOARD) GPIO.setup(24, GPIO.IN, pull_up_down=GPIO.PUD_UP) GPIO.add_event_detect(24, GPIO.BOTH) def capture_frame(frame): with picamera.PiCamera() as cam: cam.resolution = (1920, 1080) time.sleep(2) date_string = time.strftime("%m-%d-%H:%M:%S") cam.capture('/home/pi/google_drive/image-' + date_string + '.jpg',quality=95) def poweroff(self): os.system("sudo shutdown -h now") for frame in range(FRAMES): start = time.time() capture_frame(frame) GPIO.setup(18, GPIO.OUT) GPIO.output(18,True) time.sleep(0.1) GPIO.output(18,False) GPIO.add_event_callback(24, poweroff) time.sleep( int(60 * 60 / FRAMES_PER_HOUR) - (time.time() - start) )

Som OS kör jag raspbian.
Det första jag gjorde efter installation av raspbian, var att ändra till autologin.
http://www.opentechguides.com/how-to/article/raspberry-pi/5/r...

För att starta python-programmet använder jag crontab.
Editera crontab

sudo crontab -e

Längst ner i filen la jag till.

@reboot python /home/pi/timelapsetest.py &

& är för att köra i bakgrunden.

Då pi:en ska stå i norra Sverige, och jag bor i Norge behöver jag ladda upp bilderna till en molntjänst.
Google drive blev mitt val.
Installation av grive:
http://raspberrywebserver.com/serveradmin/back-up-your-pi-to-...

För att köra grive, använder jag ett kort python-program.
Edit 1: La till ett kommando för att tömma papperskorgen i mappen google_drive. Annars blir den lokala disken full, trots att man tar bort filer från sitt google drive konto.

import os os.system("cd /home/pi/google_drive; ./grive; rm /home/pi/google_drive/.trash -r")

I crontab la jag till följande för att köra programmet en gång per timme.

30 * * * * python /home/pi/google.py &

För tillfället testar jag om man kan använda en GP USB Powerbank, som UPS.
https://www.komplett.se/gp-portable-powerbank/827736
Edit: Det går inte att använda GP USB Powerbank som UPS. När spänningen slås på igen till laddare, så bryts spänningen ut från powerbanken i några millisekunder.

Jag kan inte så mycket om programmering, så alla förslag till förbättringar är välkomna.

Edit 23.02.2015: La till rad 18, och ändrade i rad 19 (cam.capture) för att få datum samt tid i filnamn. La även till funktion för ändring av kvalitet på .jpg-fil.

/ Josef

Visa signatur

AMD Phenom II X6 1100T @ 4,1 Ghz: Asus Sabertooth 990FX R2.0: 32Gb ram@1800 Mhz: MSI Radeon RX 6750 XT MECH 2X OC: Samsung 970 EVO plus 500 Gb: Windows 11

Permalänk
Medlem
Skrivet av Josef:

Detta är inte en guide, utan snarare en enkel beskrivning av mitt timelapse-projekt.

Tänkte dela med mig av mitt timelapse-projekt där jag använder Rpi och Pi Camera.
Programmet jag utgick från, är skrivit av Dave Jones.
http://www.raspberrypi.org/learning/python-picamera-setup/

Förutom pi camera, är där en diod koppla till GPIO 24, samt en brytare till GPIO 8.
Dioden aktiveras EFTER att bild tagits, i 0,1 sek.
Brytaren används för att köra kommandot "sudo shutdown -h now".

Märk att jag använder "GPIO.setmode(GPIO.BOARD)" i programmet, och inte "GPIO.setmode(GPIO.BCM)".
http://raspberrypi.stackexchange.com/questions/12966/what-is-...

Programmet ser ut så här.

import time import picamera import RPi.GPIO as GPIO import os VIDEO_DAYS = 5 FRAMES_PER_HOUR = 60 FRAMES = FRAMES_PER_HOUR * 24 * VIDEO_DAYS GPIO.setmode(GPIO.BOARD) GPIO.setup(24, GPIO.IN, pull_up_down=GPIO.PUD_UP) GPIO.add_event_detect(24, GPIO.BOTH) def capture_frame(frame): with picamera.PiCamera() as cam: cam.resolution = (1920, 1080) time.sleep(2) date_string = time.strftime("%m-%d-%H:%M:%S") cam.capture('/home/pi/google_drive/image-' + date_string + '.jpg',quality=95) def poweroff(self): os.system("sudo shutdown -h now") for frame in range(FRAMES): start = time.time() capture_frame(frame) GPIO.setup(18, GPIO.OUT) GPIO.output(18,True) time.sleep(0.1) GPIO.output(18,False) GPIO.add_event_callback(24, poweroff) time.sleep( int(60 * 60 / FRAMES_PER_HOUR) - (time.time() - start) )

Som OS kör jag raspbian.
Det första jag gjorde efter installation av raspbian, var att ändra till autologin.
http://www.opentechguides.com/how-to/article/raspberry-pi/5/r...

För att starta python-programmet använder jag crontab.
Editera crontab

sudo crontab -e

Längst ner i filen la jag till.

@reboot python /home/pi/timelapsetest.py &

& är för att köra i bakgrunden.

Då pi:en ska stå i norra Sverige, och jag bor i Norge behöver jag ladda upp bilderna till en molntjänst.
Google drive blev mitt val.
Installation av grive:
http://raspberrywebserver.com/serveradmin/back-up-your-pi-to-...

För att köra grive, använder jag ett kort python-program.
Edit 1: La till ett kommando för att tömma papperskorgen i mappen google_drive. Annars blir den lokala disken full, trots att man tar bort filer från sitt google drive konto.

import os os.system("cd /home/pi/google_drive; ./grive; rm /home/pi/google_drive/.trash -r")

I crontab la jag till följande för att köra programmet en gång per timme.

30 * * * * python /home/pi/google.py &

För tillfället testar jag om man kan använda en GP USB Powerbank, som UPS.
https://www.komplett.se/gp-portable-powerbank/827736
Edit: Det går inte att använda GP USB Powerbank som UPS. När spänningen slås på igen till laddare, så bryts spänningen ut från powerbanken i några millisekunder.

Jag kan inte så mycket om programmering, så alla förslag till förbättringar är välkomna.

Edit 23.02.2015: La till rad 18, och ändrade i rad 19 (cam.capture) för att få datum samt tid i filnamn. La även till funktion för ändring av kvalitet på .jpg-fil.

Dold text

/ Josef

Vill bara påminna om svenska lagen för övervakning så du inte åker på en polisanmälan så enligt svensk lag får du inte rikta den nånstans (inte ens himlen) mot allmän plats sålänge du inte är vid kameran. Är det förresten python-skriptet du har problem med?

Visa signatur

Citera om du vill ha svar, hjälpte jag dig, gilla svaret!
Felkod40

Permalänk
Medlem
Skrivet av freddyfresh:

Vill bara påminna om svenska lagen för övervakning så du inte åker på en polisanmälan så enligt svensk lag får du inte rikta den nånstans (inte ens himlen) mot allmän plats sålänge du inte är vid kameran. Är det förresten python-skriptet du har problem med?

Ja, den svenska lagen för övervakning är i en klass för sig själv. Läste om allt bråk det blivit med drönare. Här i Norge kan jag flyga helt lagligt med min drönare, men vore det i Sverige hade det blivit problem.
Kameran kommer att stå på privat mark. Ingen risk för att där passerar någon där. Över 5 mil till närmsta samhälle.
Skriptet fungerar, men det är kanske inte den bästa lösningen för timelapse. Alla förslag till förbättringar eller andra lösningar är välkomna.

Visa signatur

AMD Phenom II X6 1100T @ 4,1 Ghz: Asus Sabertooth 990FX R2.0: 32Gb ram@1800 Mhz: MSI Radeon RX 6750 XT MECH 2X OC: Samsung 970 EVO plus 500 Gb: Windows 11

Permalänk
Medlem
Skrivet av Josef:

Ja, den svenska lagen för övervakning är i en klass för sig själv. Läste om allt bråk det blivit med drönare. Här i Norge kan jag flyga helt lagligt med min drönare, men vore det i Sverige hade det blivit problem.
Kameran kommer att stå på privat mark. Ingen risk för att där passerar någon där. Över 5 mil till närmsta samhälle.
Skriptet fungerar, men det är kanske inte den bästa lösningen för timelapse. Alla förslag till förbättringar eller andra lösningar är välkomna.

Då låter det ändå som ett väldigt kul projekt jag skulle velat testa och experimentera lite själv.
Har två raspberries just nu som bara ligger och nån gammal kamera så ska se om jag kan slänga ihop något.

Visa signatur

Citera om du vill ha svar, hjälpte jag dig, gilla svaret!
Felkod40

Permalänk
Medlem

Hadde kameran med på jobb i två dagar, och satte samman bilderna till en testfilm. Helt ok resultat.
https://m.youtube.com/watch?v=CL4QPJA3zVM

Visa signatur

AMD Phenom II X6 1100T @ 4,1 Ghz: Asus Sabertooth 990FX R2.0: 32Gb ram@1800 Mhz: MSI Radeon RX 6750 XT MECH 2X OC: Samsung 970 EVO plus 500 Gb: Windows 11

Permalänk
Medlem

Riktigt coolt

Permalänk
Medlem
Skrivet av Josef:

Hadde kameran med på jobb i två dagar, och satte samman bilderna till en testfilm. Helt ok resultat.
https://m.youtube.com/watch?v=CL4QPJA3zVM

Snyggt resultat, såg faktiskt riktigt bra ut. Är detta med RPI-Kamera?
Fungerade skriptet för att lägga det på din Gdrive?

Visa signatur

Citera om du vill ha svar, hjälpte jag dig, gilla svaret!
Felkod40

Permalänk
Medlem
Skrivet av freddyfresh:

Snyggt resultat, såg faktiskt riktigt bra ut. Är detta med RPI-Kamera?
Fungerade skriptet för att lägga det på din Gdrive?

Ja, det är med RPi-kamera. Bilderna är tagna genom en ruta, som inte var helt ren. Sen tror jag att man kan få bättre resultat om linsen på kameran sitter helt tätt mot rutan. Här var det 1-2 mm. Kvaliteten på jpeg-filerna var på 85. Man kan utan problem sätta upp kvaliteten till 100.
Grive fungerar bra på RPi. Följde bara guiden som jag länkat till. Filerna laddas upp en gång i timmen. Det styrs via crontab.

Skickades från m.sweclockers.com

Visa signatur

AMD Phenom II X6 1100T @ 4,1 Ghz: Asus Sabertooth 990FX R2.0: 32Gb ram@1800 Mhz: MSI Radeon RX 6750 XT MECH 2X OC: Samsung 970 EVO plus 500 Gb: Windows 11

Permalänk
Medlem
Skrivet av Josef:

Ja, det är med RPi-kamera. Bilderna är tagna genom en ruta, som inte var helt ren. Sen tror jag att man kan få bättre resultat om linsen på kameran sitter helt tätt mot rutan. Här var det 1-2 mm. Kvaliteten på jpeg-filerna var på 85. Man kan utan problem sätta upp kvaliteten till 100.
Grive fungerar bra på RPi. Följde bara guiden som jag länkat till. Filerna laddas upp en gång i timmen. Det styrs via crontab.

Skickades från m.sweclockers.com

Fortfarande imponerande, blev en snygg timelapse. Förvånad över kvalitén på den kameran, trodde den var mer av en halvsunkig webbkamera.

Visa signatur

Citera om du vill ha svar, hjälpte jag dig, gilla svaret!
Felkod40

Permalänk
Medlem
Skrivet av Josef:

Hadde kameran med på jobb i två dagar, och satte samman bilderna till en testfilm. Helt ok resultat.
https://m.youtube.com/watch?v=CL4QPJA3zVM

Det där var riktigt häftigt
Snyggt jobbat

Putte_br

Visa signatur

Dator 1 [] AMD FX-8350 5.06Ghz [] CROSSHAIR V FORMULA-Z [] Ram : Corsair 8GB (2x4096MB) CL9 1866Mhz []CF Radeon HD7870 [] PSU : XFX Core Edition 850W 80+ Bronze [] Kylning : Beg vattenkylning med cpu Ek-Supremacy Elite AMD .::. 5GHz klubben 2014.::. - .::. OC 1GHz+ Cinebench Klubben 2014 .::.-.::. 4GHz+ Klubben 2014 .::..::. 3DMark FireStrike Klubben .::.