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
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