
P A R T I V
H A R D W A R E H A C K I N G
246
After the final backtick is
.jpg
. This completes the filename, telling the shell script to save
the image file in the international date format with the extension of a JPEG file. If you cap-
ture an image at exactly two in the afternoon on 17
th
January 2015, for example, the file-
name would be
20150117140000.jpg
. Because it takes longer than a second for the
camera to take a picture, and there will be a delay later in the shell script, this guarantees that
each picture has a unique filename and nothing will be overwritten.
Using the international date format has an added bonus: if you sort the list alphabetically or
numerically, your pictures will be sorted from oldest to newest. If you’d prefer a different
filename format, however, simply change the order in the command.
WARNING
The
date
command pulls time information from the system clock. When connected to a
network, the Raspberry Pi uses the
Network Time Protocol (NTP)
to find the current time, but
the Model A cannot do this unless you connect a USB network adapter. In this case, the date
in the filename will be wrong unless you manually set a date before running the script.
With the filename set, it’s time to tell the script to run
raspistill
. You can use any options
you like here, so long as you remember to set the output filename. To capture a Full HD still,
enter the following line:
raspistill -w 1920 -h 1080 -t 0 -o $filename
The
$
symbol before
filename
tells the shell that you’re addressing the
filename
variable
set in the previous line. It’s important to include this symbol, as without it the script will write
a single file called
filename
, which will be overwritten every time a new image is captured.
It’s always a good idea to get feedback from your scripts, so you know when they’re running.
An easy way to do this is to have the script print status messages to the terminal or console,
using the
echo
command. Enter the next line as follows:
echo Image captured
Next, add a delay to the script by using the
sleep
command. This requires a value in sec-
onds, rather than the milliseconds expected by
raspistill
and
raspivid
. To take a pic-
ture every 30 seconds, enter the following line:
sleep 30
Finally, close the loop by entering the last line of the script (see Figure 15-9):
done
Summary of Contents for A
Page 1: ......
Page 2: ......
Page 3: ...Raspberry Pi User Guide 2nd Edition...
Page 4: ......
Page 5: ...Raspberry Pi User Guide 2nd Edition Eben Upton and Gareth Halfacree...
Page 10: ......
Page 26: ...R A S P B E R R Y P I U S E R G U I D E S E C O N D E D I T I O N 10...
Page 28: ......
Page 29: ...Chapter 1 Meet the Raspberry Pi...
Page 37: ...Chapter 2 Getting Started with the Raspberry Pi...
Page 56: ......
Page 57: ...Chapter 3 Linux System Administration...
Page 79: ...Chapter 4 Troubleshooting...
Page 89: ...Chapter 5 Network Configuration...
Page 109: ...Chapter 6 The Raspberry Pi Software Configuration Tool...
Page 122: ......
Page 123: ...Chapter 7 Advanced Raspberry Pi Configuration...
Page 140: ......
Page 141: ...Chapter 8 The Pi as a Home Theatre PC...
Page 151: ...Chapter 9 The Pi as a Productivity Machine...
Page 160: ......
Page 161: ...Chapter 10 The Pi as a Web Server...
Page 172: ......
Page 173: ...Chapter 11 An Introduction to Scratch...
Page 189: ...Chapter 12 An Introduction to Python...
Page 216: ......
Page 218: ......
Page 219: ...Chapter 13 Learning to Hack Hardware...
Page 234: ......
Page 235: ...Chapter 14 The GPIO Port...
Page 249: ...Chapter 15 The Raspberry Pi Camera Module...
Page 265: ...Chapter 16 Add on Boards...
Page 280: ......
Page 281: ...Appendix A Python Recipes...
Page 287: ...Appendix B Raspberry Pi Camera Module Quick Reference...
Page 293: ...Appendix C HDMI Display Modes...