Using Raspbery Pi Camera

TIME-LAPSE SETUP USING THE CAMERA MODULE

HOW TO SET UP A TIME-LAPSE WITH A RASPBERRY PI USING THE CAMERA MODULE.

STEP 0: CAMERA SETUP

FOLLOW THE CAMERA MODULE SETUP GUIDE.

STEP 1: TEST THE CAMERA

WITH THE CAMERA MODULE CONNECTED AND ENABLED, ENTER THE FOLLOWING COMMAND IN THE TERMINAL TO TAKE A PICTURE:

RASPISTILL -O CAM.JPG

YOU SHOULD SEE A PREVIEW ON SCREEN AS THE PICTURE IS TAKEN.

NOW TYPE LS AND YOU SHOULD SEE A FILE CALLED CAM.JPG. OPEN YOUR HOME FOLDER IN THE FILE BROWSER AND VIEW THE IMAGE (RIGHT CLICK AND SELECT OPEN WITH IMAGE PREVIEW). IF THERE'S A PICTURE OF WHAT YOUR CAMERA WAS POINTED AT - THEN YOUR CAMERA WORKS!

IF YOUR PICTURE WAS UPSIDE-DOWN THIS IS BECAUSE YOUR CAMERA IS POINTED UPSIDE-DOWN - THAT'S OK - SOMETIMES IT'S EASIER TO HAVE IT THAT WAY UP, AND YOU CAN FLIP THE IMAGE OVER.

IF YOU INTEND TO HAVE YOUR CAMERA POSITIONED UPSIDE-DOWN, PASS IN THE -HF AND -VF FLAGS TO HORIZONTALLY AND VERTICALLY FLIP THE IMAGE (OTHERWISE SKIP TO STEP 2):

RASPISTILL -HF -VF -O CAM2.JPG

NOW CHECK AGAIN, THERE SHOULD NOW BE A CAM2.JPG FILE. OPEN THE IMAGE AND CHECK IT'S THE RIGHT WAY UP.

STEP 2: WRITE A SCRIPT

NOW WE'LL WRITE A BASH SCRIPT WHICH WILL TAKE A PICTURE AND SAVE IT WITH THE DATE AND TIME. IT CAN BE AS SIMPLE AS THIS:

#!/BIN/BASH

DATE=$(DATE +"%Y-%M-%D_%H%M")

RASPISTILL -O /HOME/PI/CAMERA/$DATE.JPG

REMEMBER TO USE THE -VF AND -HF FLAGS IF YOUR CAMERA IS POINTED UPSIDE-DOWN.

CREATE A NEW FILE CALLED CAMERA.SH BY OPENING WITH A TEXT EDITOR, E.G. NANO CAMERA.SH, PASTE OR OTHERWISE ENTER THE LINES FROM ABOVE AND SAVE THE FILE.

NOW MAKE THIS FILE EXECUTABLE WITH THE FOLLOWING COMMAND:

CHMOD +X CAMERA.SH

RUNNING THIS SCRIPT WILL SAVE A PICTURE WITH THE TIMESTAMP AS THE FILENAME IN A FOLDER CALLED CAMERA IN YOUR HOME DIRECTORY. FIRST WE'LL CREATE THIS FOLDER:

MKDIR CAMERA

MAKE SURE YOU'RE IN THE HOME DIRECTORY WHEN YOU DO THIS. IF YOU'RE NOT, OR YOU'RE NOT SURE, JUST TYPE CD AND HIT ENTER TO RETURN TO YOUR HOME DIRECTORY.

YOU CAN USE PWD (PRESENT WORKING DIRECTORY) TO VERIFY YOUR LOCATION AND LS TO SHOW THE CONTENTS. AFTER RUNNING MKDIR YOU SHOULD SEE A NEW FOLDER THERE.

BEFORE CONTINUING, TEST THE SCRIPT WORKS AS INTENDED BY RUNNING IT FROM THE COMMAND LINE (FIRST RETURN TO THE HOME DIRECTORY WITH CD):

./CAMERA.SH

YOU SHOULD SEE THE PREVIEW AGAIN AS THE PICTURE IS TAKEN. NOW USE LS CAMERA TO LOOK INSIDE THE CAMERA FOLDER TO SEE THE PICTURE YOU JUST CAPTURED ON DISK.

OPEN THE FILE BROWSER AND PREVIEW THE IMAGE TO SEE THE PICTURE ITSELF. IF YOU'RE HAPPY THIS WORKED AS INTENDED, AND THE DATE AND TIME WERE GIVEN IN THE FILENAME, CONTINUE TO AUTOMATION.

STEP 3: SCHEDULE TAKING PICTURES

NOW YOU HAVE A BASH SCRIPT WHICH TAKES PICTURES AND TIMESTAMPS THEM, YOU CAN SCHEDULE THE SCRIPT TO BE RUN AT AN INTERVAL, SAY EVERY MINUTE.

TO DO THIS WE'LL USE CRON. FIRST OPEN THE CRON TABLE FOR EDITING:

SUDO CRONTAB -E

IF YOU'VE NOT RUN CRONTAB BEFORE YOU'LL BE PROMPTED TO SELECT AN EDITOR - IF YOU DON'T KNOW THE DIFFERENCE, CHOOSE NANO BY HITTING ENTER.

NOW YOU'LL SEE THE CRON FILE, SCROLL TO THE BOTTOM WHERE YOU'LL SEE A LINE WITH THE FOLLOWING COLUMN HEADERS:

# M H DOM MON DOW COMMAND

THE LAYOUT FOR A CRON ENTRY IS MADE UP OF SIX COMPONENTS:

MINUTE, HOUR, DAY OF MONTH, MONTH OF YEAR, DAY OF WEEK AND THE COMMAND TO BE EXECUTED.

# * * * * * COMMAND TO EXECUTE

# ┬ ┬ ┬ ┬ ┬

# │ │ │ │ │

# │ │ │ │ │

# │ │ │ │ └───── DAY OF WEEK (0 - 7) (0 TO 6 ARE SUNDAY TO SATURDAY, OR USE NAMES; 7 IS SUNDAY, THE SAME AS 0)

# │ │ │ └────────── MONTH (1 - 12)

# │ │ └─────────────── DAY OF MONTH (1 - 31)

# │ └──────────────────── HOUR (0 - 23)

# └───────────────────────── MIN (0 - 59)

TO SCHEDULE FOR THE CAMERA.SH SCRIPT TO BE EXECUTED EVERY MINUTE, ADD THE FOLLOWING LINE:

* * * * * /HOME/PI/CAMERA.SH 2>&1

NOW SAVE AND EXIT. IF YOU'RE USING NANO AS YOUR EDITOR, THAT'S CTRL + O TO SAVE AND CTRL + X TO EXIT.

YOU SHOULD SEE THE FOLLOWING MESSAGE:

CRONTAB: INSTALLING NEW CRONTAB

NOW RETURN TO THE CAMERA DIRECTORY TO SEE THE PHOTOS START TO APPEAR:

CD ~/CAMERA/

AND USE LS TO SEE THE CONTENTS OF THE FOLDER. ENTER DATE TO SEE HOW CLOSE YOU ARE TO THE MINUTE (00 SECONDS) AS A NEW PICTURE SHOULD BE CAPTURED AT THIS PRECISE TIME.

USE WATCH LS TO SEE CHANGES TO THE CONTENTS OF THE FOLDER. WATCH RUNS THE COMMAND RUNS EVERY 2 SECONDS (BY DEFAULT).

STEP 4: PATIENCE

IF YOU SEE PICTURES LANDING IN THE CAMERA FOLDER EVERY MINUTE, AND YOU'RE HAPPY WITH THE ORIENTATION OF THE PICTURES, NOW POSITION THE CAMERA WHEREVER YOU WANT IT TO POINT AT.

PERHAPS USE A CAMERA MOUNT OR SIMPLY TAPE THE PI TO A WALL OR OBJECT AND POSITION THE CAMERA WITH TAPE. MAKE SURE THE CAMERA POSITION IS STATIC AND WILL REMAIN IN PLACE OVER TIME.

YOU CAN SHUT DOWN THE PI, REMOVE IT FROM THE MONITOR AND ETHERNET AND SIMPLY HAVE IT RUNNING ON POWER (WHEN YOU PLUG IT IN, IT WILL BOOT AS NORMAL AND CRON WILL RUN AS EXPECTED) IN THE POSITION YOU REQUIRE.

YOU CAN EVEN USE A BATTERY PACK IF YOU HAVE ONE THAT LASTS LONG ENOUGH FOR YOUR REQUIREMENTS. THIS IS ESPECIALLY HANDY IF YOU NEED TO POSITION THE POWER OUT OF REACH OF A POWER SOCKET, SUCH AS ON A ROOF OR IN A TREE!

COPYING PICTURES REMOTELY

IF YOU HAVE NETWORK CONNECTION WITH THE PI (WIRED OR WIRELESS) OR YOUR MONITOR IS STILL ATTACHED, YOU CAN CHECK THE PROGRESS OF THE PHOTOS.

IF YOUR MONITOR IS ATTACHED, YOU CAN USE LS, WATCH LS AND EVEN THE FILE BROWSER TO SEE PHOTOS AS THEY ARE CAPTURED, OTHERWISE YOU CAN REMOTELY ACCESS YOUR PI FROM ANOTHER COMPUTER TO COPY THE FILES TO YOUR COMPUTER. HERE ARE SOME OPTIONS, WHICH YOU CAN READ ABOUT IN OUR DOCUMENTATION:

SSH

YOU CAN GAIN REMOTE ACCESS TO THE COMMAND LINE USING SSH USE LS AND WATCH LS TO VERIFY THE PICTURES ARE BEING CAPTURED.

SCP

USE SCP (SECURE COPY) TO COPY FILES OVER SSH.

RSYNC

USE RSYNC TO SYNCRONISE A FOLDER ON THE PI WITH A FOLDER ON YOUR COMPUTER.

FTP

SET UP AN FTP SERVER ON THE PI AND USE AN FTP CLIENT ON ANOTHER COMPUTER TO ACCESS THE PI'S FILESYSTEM REMOTELY, AND COPY FILES OVER.

SD CARD

IF YOU'RE USING LINUX ON ANOTHER COMPUTER YOU CAN TRANSFER THE FILES DIRECTLY FROM THE SD CARD, AS IT CAN MOUNT THE FILESYSTEM PARTITION.

STEP 5: TURN STILLS IN TO A VIDEO

NOW YOU'LL NEED TO STITCH THE PHOTOS TOGETHER IN TO A VIDEO TO ACHIEVE THE TIME-LAPSE EFFECT.

YOU CAN DO THIS ON THE PI USING MENCODER BUT THE PROCESSING WILL BE SLOW. YOU MAY PREFER TO TRANSFER THE IMAGE FILES TO YOUR DESKTOP COMPUTER OR LAPTOP AND PROCESSING THE VIDEO THERE.

NAVIGATE TO THE FOLDER CONTAINING ALL YOUR IMAGES AND LIST THE FILE NAMES IN TO A TEXT FILE. FOR EXAMPLE:

LS *.JPG > STILLS.TXT

ON RASPBERRY PI OR OTHER LINUX COMPUTER

INSTALL THE PACKAGE MENCODER:

SUDO APT-GET INSTALL MENCODER

NOW RUN THE FOLLOWING COMMAND:

MENCODER -NOSOUND -OVC LAVC -LAVCOPTS VCODEC=MPEG4:ASPECT=16/9:VBITRATE=8000000 -VF SCALE=1920:1080 -O TIMELAPSE.AVI -MF TYPE=JPEG:FPS=24 MF://@STILLS.TXT

THIS WILL SAVE A VIDEO CALLED TIMELAPSE.AVI

LICENCE

UNLESS OTHERWISE SPECIFIED, EVERYTHING IN THIS REPOSITORY IS COVERED BY THE FOLLOWING LICENCE: