Using Raspbery Pi Camera
TIME-LAPSE SETUP USING THE CAMERA MODULE
TIME-LAPSE SETUP USING THE CAMERA MODULE
HOW TO SET UP A TIME-LAPSE WITH A RASPBERRY PI USING THE CAMERA MODULE.
HOW TO SET UP A TIME-LAPSE WITH A RASPBERRY PI USING THE CAMERA MODULE.
STEP 0: CAMERA SETUP
STEP 0: CAMERA SETUP
FOLLOW THE CAMERA MODULE SETUP GUIDE.
FOLLOW THE CAMERA MODULE SETUP GUIDE.
STEP 1: TEST THE CAMERA
STEP 1: TEST THE CAMERA
WITH THE CAMERA MODULE CONNECTED AND ENABLED, ENTER THE FOLLOWING COMMAND IN THE TERMINAL TO TAKE A PICTURE:
WITH THE CAMERA MODULE CONNECTED AND ENABLED, ENTER THE FOLLOWING COMMAND IN THE TERMINAL TO TAKE A PICTURE:
RASPISTILL -O CAM.JPG
RASPISTILL -O CAM.JPG
YOU SHOULD SEE A PREVIEW ON SCREEN AS THE PICTURE IS TAKEN.
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!
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 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):
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
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.
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
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:
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
#!/BIN/BASH
DATE=$(DATE +"%Y-%M-%D_%H%M")
DATE=$(DATE +"%Y-%M-%D_%H%M")
RASPISTILL -O /HOME/PI/CAMERA/$DATE.JPG
RASPISTILL -O /HOME/PI/CAMERA/$DATE.JPG
REMEMBER TO USE THE -VF AND -HF FLAGS IF YOUR CAMERA IS POINTED UPSIDE-DOWN.
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.
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:
NOW MAKE THIS FILE EXECUTABLE WITH THE FOLLOWING COMMAND:
CHMOD +X CAMERA.SH
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:
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
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.
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.
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):
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
./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.
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.
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
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.
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:
TO DO THIS WE'LL USE CRON. FIRST OPEN THE CRON TABLE FOR EDITING:
SUDO CRONTAB -E
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.
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:
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
# M H DOM MON DOW COMMAND
THE LAYOUT FOR A CRON ENTRY IS MADE UP OF SIX COMPONENTS:
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.
MINUTE, HOUR, DAY OF MONTH, MONTH OF YEAR, DAY OF WEEK AND THE COMMAND TO BE EXECUTED.
# * * * * * COMMAND TO EXECUTE
# * * * * * 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)
# │ │ │ │ └───── 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)
# │ │ │ └────────── MONTH (1 - 12)
# │ │ └─────────────── DAY OF MONTH (1 - 31)
# │ │ └─────────────── DAY OF MONTH (1 - 31)
# │ └──────────────────── HOUR (0 - 23)
# │ └──────────────────── HOUR (0 - 23)
# └───────────────────────── MIN (0 - 59)
# └───────────────────────── MIN (0 - 59)
TO SCHEDULE FOR THE CAMERA.SH SCRIPT TO BE EXECUTED EVERY MINUTE, ADD THE FOLLOWING LINE:
TO SCHEDULE FOR THE CAMERA.SH SCRIPT TO BE EXECUTED EVERY MINUTE, ADD THE FOLLOWING LINE:
* * * * * /HOME/PI/CAMERA.SH 2>&1
* * * * * /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.
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:
YOU SHOULD SEE THE FOLLOWING MESSAGE:
CRONTAB: INSTALLING NEW CRONTAB
CRONTAB: INSTALLING NEW CRONTAB
NOW RETURN TO THE CAMERA DIRECTORY TO SEE THE PHOTOS START TO APPEAR:
NOW RETURN TO THE CAMERA DIRECTORY TO SEE THE PHOTOS START TO APPEAR:
CD ~/CAMERA/
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.
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).
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
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.
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.
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 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!
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
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 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:
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
SSH
YOU CAN GAIN REMOTE ACCESS TO THE COMMAND LINE USING SSH USE LS AND WATCH LS TO VERIFY THE PICTURES ARE BEING CAPTURED.
YOU CAN GAIN REMOTE ACCESS TO THE COMMAND LINE USING SSH USE LS AND WATCH LS TO VERIFY THE PICTURES ARE BEING CAPTURED.
SCP
SCP
USE SCP (SECURE COPY) TO COPY FILES OVER SSH.
USE SCP (SECURE COPY) TO COPY FILES OVER SSH.
RSYNC
RSYNC
USE RSYNC TO SYNCRONISE A FOLDER ON THE PI WITH A FOLDER ON YOUR COMPUTER.
USE RSYNC TO SYNCRONISE A FOLDER ON THE PI WITH A FOLDER ON YOUR COMPUTER.
FTP
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.
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
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.
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
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.
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.
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:
NAVIGATE TO THE FOLDER CONTAINING ALL YOUR IMAGES AND LIST THE FILE NAMES IN TO A TEXT FILE. FOR EXAMPLE:
LS *.JPG > STILLS.TXT
LS *.JPG > STILLS.TXT
ON RASPBERRY PI OR OTHER LINUX COMPUTER
ON RASPBERRY PI OR OTHER LINUX COMPUTER
INSTALL THE PACKAGE MENCODER:
INSTALL THE PACKAGE MENCODER:
SUDO APT-GET INSTALL MENCODER
SUDO APT-GET INSTALL MENCODER
NOW RUN THE FOLLOWING COMMAND:
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
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
THIS WILL SAVE A VIDEO CALLED TIMELAPSE.AVI
LICENCE
LICENCE
UNLESS OTHERWISE SPECIFIED, EVERYTHING IN THIS REPOSITORY IS COVERED BY THE FOLLOWING LICENCE:
UNLESS OTHERWISE SPECIFIED, EVERYTHING IN THIS REPOSITORY IS COVERED BY THE FOLLOWING LICENCE: