Introduction |
|
1 | (4) |
|
|
1 | (1) |
|
|
2 | (1) |
|
|
3 | (1) |
|
|
3 | (1) |
|
|
4 | (1) |
Part 1 Setting Up Your Raspberry PI |
|
5 | (44) |
|
Chapter 1 Introducing the Raspberry Pi |
|
|
7 | (18) |
|
Introducing the Raspberry Pi Range |
|
|
9 | (8) |
|
|
9 | (2) |
|
|
11 | (1) |
|
|
12 | (1) |
|
|
13 | (1) |
|
|
14 | (3) |
|
Figuring Out What You Can Do with a Raspberry Pi |
|
|
17 | (1) |
|
Getting Your Hands on a Raspberry Pi |
|
|
18 | (1) |
|
Determining What Else You Need |
|
|
18 | (7) |
|
|
19 | (3) |
|
|
22 | (3) |
|
Chapter 2 Downloading the Operating System |
|
|
25 | (8) |
|
|
26 | (1) |
|
Imaging a microSD Card for Your Raspberry Pi |
|
|
27 | (2) |
|
Choosing the Right Operating System for Your Raspberry Pi |
|
|
29 | (4) |
|
Chapter 3 Connecting Your Raspberry Pi |
|
|
33 | (16) |
|
Connecting Your Raspberry Pi |
|
|
33 | (3) |
|
Setting Up Your Raspberry Pi |
|
|
36 | (1) |
|
Configuring Your Raspberry Pi in Raspberry Pi OS |
|
|
37 | (3) |
|
Changing Your Wi-Fi Settings |
|
|
40 | (1) |
|
Configuring Bluetooth Devices |
|
|
41 | (1) |
|
Connecting the Raspberry Pi Camera Module |
|
|
41 | (5) |
|
Connecting the camera on a Pi Zero |
|
|
42 | (1) |
|
Connecting the camera on other Raspberry Pi models |
|
|
43 | (1) |
|
Testing the Camera Module |
|
|
44 | (2) |
|
|
46 | (1) |
|
|
47 | (2) |
Part 2 Getting Started With Linux |
|
49 | (70) |
|
Chapter 4 Using the Desktop Environment |
|
|
51 | (28) |
|
Navigating the Raspberry Pi Desktop |
|
|
52 | (4) |
|
Using the Applications menu |
|
|
52 | (3) |
|
Running applications that are not on the menu |
|
|
55 | (1) |
|
Resizing and closing application windows |
|
|
55 | (1) |
|
|
56 | (1) |
|
|
57 | (7) |
|
|
58 | (3) |
|
Copying and moving files and folders |
|
|
61 | (1) |
|
Selecting multiple files and folders |
|
|
61 | (1) |
|
Creating new folders and blank files |
|
|
62 | (1) |
|
Deleting files and folders |
|
|
63 | (1) |
|
|
63 | (1) |
|
Exploring your Raspberry Pi |
|
|
64 | (1) |
|
Browsing the Web with Chromium |
|
|
64 | (4) |
|
Searching within web pages |
|
|
65 | (1) |
|
|
66 | (1) |
|
Adding and using bookmarks |
|
|
66 | (1) |
|
|
67 | (1) |
|
Sending and Receiving Email with Claws Mail |
|
|
68 | (1) |
|
|
68 | (3) |
|
|
71 | (1) |
|
|
72 | (1) |
|
|
72 | (1) |
|
|
72 | (3) |
|
Finding and Installing New Applications |
|
|
75 | (1) |
|
|
76 | (1) |
|
Longing Out and Shutting Down |
|
|
77 | (2) |
|
Chapter 5 Using the Linux Shell |
|
|
79 | (40) |
|
|
80 | (1) |
|
Exploring Your Linux System |
|
|
81 | (10) |
|
Listing files and directories |
|
|
81 | (1) |
|
|
81 | (1) |
|
Changing to the parent directory |
|
|
82 | (1) |
|
Understanding the directory tree |
|
|
82 | (3) |
|
Using relative and absolute paths |
|
|
85 | (3) |
|
|
88 | (1) |
|
Investigating more advanced listing options |
|
|
89 | (2) |
|
Understanding the Long Listing Format and Permissions |
|
|
91 | (3) |
|
Slowing Down the Listing and Reading Files with the Less Command |
|
|
94 | (1) |
|
Speeding Up Entering Commands |
|
|
95 | (1) |
|
Using Redirection to Create Files |
|
|
96 | (2) |
|
|
98 | (1) |
|
|
99 | (2) |
|
Using Wildcards to Select Multiple Files |
|
|
101 | (2) |
|
|
103 | (1) |
|
Copying and Renaming Files |
|
|
104 | (2) |
|
Finding Files on Your Raspberry Pi |
|
|
106 | (1) |
|
Installing and Managing Software on Your Raspberry Pi |
|
|
106 | (1) |
|
|
107 | (1) |
|
|
107 | (1) |
|
|
108 | (4) |
|
|
109 | (1) |
|
|
109 | (1) |
|
Removing software and freeing up space |
|
|
110 | (1) |
|
Finding out what's installed |
|
|
111 | (1) |
|
Managing User Accounts on Your Raspberry Pi |
|
|
112 | (2) |
|
Learning More about Linux Commands |
|
|
114 | (2) |
|
Customizing the Shell with Your Own Linux Commands |
|
|
116 | (1) |
|
Shutting Down and Rebooting Your Raspberry Pi |
|
|
117 | (2) |
Part 3 Using The Raspberry Pi For Both Work And Play |
|
119 | (36) |
|
Chapter 6 Being Productive with the Raspberry Pi |
|
|
121 | (12) |
|
Installing LibreOffice on Your Raspberry Pi |
|
|
122 | (1) |
|
Working with LibreOffice on the Raspberry Pi |
|
|
122 | (11) |
|
|
123 | (1) |
|
Writing letters in LibreOffice Writer |
|
|
123 | (2) |
|
Managing your budget in LibreOffice Calc |
|
|
125 | (3) |
|
Creating presentations in LibreOffice Impress |
|
|
128 | (2) |
|
Creating a party invitation with LibreOffice Draw |
|
|
130 | (3) |
|
Chapter 7 Editing Photos on the Raspberry Pi with GIMP |
|
|
133 | (10) |
|
|
134 | (7) |
|
Understanding the GIMP screen layout |
|
|
134 | (2) |
|
Resizing an image in GIMP |
|
|
136 | (1) |
|
|
137 | (1) |
|
Rotating and flipping your photo |
|
|
138 | (1) |
|
|
139 | (1) |
|
|
139 | (2) |
|
Converting images between different formats |
|
|
141 | (1) |
|
Finding Out More about GIMP |
|
|
141 | (2) |
|
Chapter 8 Playing Audio and Video on the Raspberry Pi |
|
|
143 | (12) |
|
Setting Up Your Media Center |
|
|
143 | (1) |
|
Navigating the Media Center |
|
|
144 | (1) |
|
|
145 | (4) |
|
|
146 | (1) |
|
|
147 | (1) |
|
|
148 | (1) |
|
|
148 | (1) |
|
|
149 | (2) |
|
|
149 | (1) |
|
|
150 | (1) |
|
|
150 | (1) |
|
|
151 | (1) |
|
|
151 | (1) |
|
Turning Off Your Media Center |
|
|
152 | (1) |
|
Playing Music in the Desktop Environment |
|
|
152 | (3) |
Part 4 Programming The Raspberry Pi |
|
155 | (136) |
|
Chapter 9 Introducing Programming with Scratch |
|
|
157 | (20) |
|
Understanding What Programming Is |
|
|
158 | (1) |
|
|
158 | (19) |
|
Understanding the Scratch screen layout |
|
|
159 | (1) |
|
|
160 | (5) |
|
|
165 | (1) |
|
Changing your sprite's appearance |
|
|
165 | (5) |
|
|
170 | (2) |
|
Using the Wait block to slow down your sprite |
|
|
172 | (1) |
|
Using extensions in Scratch |
|
|
173 | (2) |
|
|
175 | (2) |
|
Chapter 10 Programming an Arcade Game Using Scratch |
|
|
177 | (24) |
|
Starting a New Scratch Project and Deleting Sprites |
|
|
178 | (1) |
|
|
178 | (1) |
|
Adding Sprites to Your Game |
|
|
179 | (1) |
|
Drawing Sprites in Scratch |
|
|
180 | (4) |
|
|
184 | (1) |
|
Controlling When Scripts Run |
|
|
184 | (6) |
|
Using the green flag to start scripts |
|
|
185 | (1) |
|
Using the Forever Control block |
|
|
186 | (1) |
|
Enabling keyboard control of a sprite |
|
|
186 | (2) |
|
Enabling a sprite to control another sprite |
|
|
188 | (2) |
|
|
190 | (1) |
|
Detecting When a Sprite Hits Another Sprite |
|
|
191 | (1) |
|
|
192 | (2) |
|
Making Sprites Move Automatically |
|
|
194 | (1) |
|
|
195 | (3) |
|
Adding Scripts to the Stage |
|
|
198 | (1) |
|
|
198 | (1) |
|
|
198 | (1) |
|
Adapting the Game's Difficulty |
|
|
199 | (1) |
|
Taking It Further with Scratch |
|
|
199 | (2) |
|
Chapter 11 Writing Programs in Python |
|
|
201 | (32) |
|
|
202 | (4) |
|
Entering your first Python commands |
|
|
202 | (2) |
|
Using the shell to calculate sums |
|
|
204 | (2) |
|
Creating the Times Tables Program |
|
|
206 | (9) |
|
Creating and running your first Python program |
|
|
206 | (2) |
|
|
208 | (1) |
|
|
209 | (1) |
|
Printing words, variables, and numbers together |
|
|
210 | (1) |
|
Using for loops to repeat |
|
|
211 | (4) |
|
Creating the Chatbot Program |
|
|
215 | (18) |
|
|
216 | (2) |
|
Using lists to make a random chat program |
|
|
218 | (3) |
|
|
221 | (1) |
|
Using a loop to force a reply from the user |
|
|
222 | (1) |
|
|
223 | (2) |
|
Creating your own functions |
|
|
225 | (2) |
|
Creating the dictionary look-up function |
|
|
227 | (2) |
|
Creating the main conversation loop |
|
|
229 | (1) |
|
Final thoughts on Chatbot |
|
|
230 | (1) |
|
The final Chatbot program |
|
|
231 | (2) |
|
Chapter 12 Creating a Game with Python and Pygame Zero |
|
|
233 | (18) |
|
Collecting Your Sounds and Images |
|
|
234 | (1) |
|
|
235 | (1) |
|
Creating and Running Your First Program |
|
|
235 | (14) |
|
|
238 | (1) |
|
|
239 | (2) |
|
|
241 | (1) |
|
|
242 | (2) |
|
Making the clouds regenerate |
|
|
244 | (1) |
|
Enabling multiple clouds to be clicked |
|
|
245 | (1) |
|
|
246 | (1) |
|
Adjusting the game difficulty |
|
|
247 | (1) |
|
|
247 | (2) |
|
Exploring Pygame Zero Further |
|
|
249 | (2) |
|
Chapter 13 Programming Minecraft with Python |
|
|
251 | (24) |
|
|
252 | (2) |
|
|
253 | (1) |
|
Making and breaking things |
|
|
253 | (1) |
|
|
254 | (1) |
|
Using the Minecraft Module |
|
|
255 | (18) |
|
Understanding coordinates in Minecraft |
|
|
256 | (1) |
|
|
256 | (1) |
|
|
257 | (2) |
|
Stopping the player from changing the world |
|
|
259 | (1) |
|
Setting the maze parameters |
|
|
259 | (2) |
|
|
261 | (1) |
|
|
262 | (1) |
|
Understanding the maze algorithm |
|
|
263 | (1) |
|
Setting up the variables and lists |
|
|
264 | (1) |
|
|
265 | (1) |
|
|
266 | (2) |
|
|
268 | (1) |
|
|
269 | (1) |
|
|
269 | (4) |
|
|
273 | (2) |
|
Chapter 14 Making Music with Sonic Pi |
|
|
275 | (16) |
|
Understanding the Sonic Pi Screen Layout |
|
|
276 | (1) |
|
|
277 | (2) |
|
Using Note and Chord Names |
|
|
279 | (1) |
|
|
280 | (1) |
|
Composing Random Tunes Using Shuffle |
|
|
281 | (1) |
|
Changing the Random Number Seed |
|
|
282 | (1) |
|
Using List Names in Your Programs |
|
|
282 | (1) |
|
|
282 | (1) |
|
Experimenting with Live Loops |
|
|
283 | (2) |
|
|
285 | (1) |
|
|
286 | (1) |
|
Synchronizing with Your Drumbeat |
|
|
287 | (1) |
|
|
287 | (2) |
|
|
289 | (2) |
Part 5 Exploring Electronics With The Raspberry Pi |
|
291 | (134) |
|
Chapter 15 Understanding Circuits |
|
|
293 | (26) |
|
Discovering What a Circuit Is |
|
|
294 | (10) |
|
Understanding the nature of electricity |
|
|
294 | (9) |
|
Determining how a component needs to be treated |
|
|
303 | (1) |
|
Getting Familiar with the GPIO |
|
|
304 | (10) |
|
Putting the general purpose in GPIO |
|
|
306 | (1) |
|
Understanding what GPIOs do |
|
|
306 | (1) |
|
Putting an output pin to practical use |
|
|
307 | (2) |
|
|
309 | (2) |
|
Learning which end is hot: Getting to grips with a soldering iron |
|
|
311 | (2) |
|
|
313 | (1) |
|
Looking at Ready-Made Add-On Boards |
|
|
314 | (5) |
|
|
315 | (1) |
|
|
315 | (1) |
|
|
316 | (1) |
|
|
317 | (2) |
|
Chapter 16 Taking Control of Your Pi's Circuitry |
|
|
319 | (38) |
|
Accessing Raspberry Pi's GPIO Pins |
|
|
319 | (6) |
|
Soldering the GPIO pins onto Pi Zero or Pi ZeroW |
|
|
321 | (1) |
|
Getting at all the pins with one connector |
|
|
322 | (2) |
|
Connecting things together |
|
|
324 | (1) |
|
|
325 | (11) |
|
Bringing your LED to life |
|
|
326 | (1) |
|
|
326 | (2) |
|
Control the flashing speed with an input |
|
|
328 | (2) |
|
|
330 | (2) |
|
|
332 | (4) |
|
Starting Out with a Dice Display |
|
|
336 | (10) |
|
|
336 | (3) |
|
|
339 | (1) |
|
|
339 | (1) |
|
|
340 | (5) |
|
|
345 | (1) |
|
|
346 | (11) |
|
The Pedestrian Crossing hardware |
|
|
349 | (1) |
|
The Pedestrian Crossing software |
|
|
350 | (4) |
|
|
354 | (3) |
|
Chapter 17 Lots of Multicolored LEDs |
|
|
357 | (34) |
|
|
359 | (3) |
|
|
359 | (1) |
|
|
360 | (2) |
|
|
362 | (9) |
|
Bit-banging the APA102C protocol |
|
|
365 | (2) |
|
|
367 | (4) |
|
|
371 | (5) |
|
|
376 | (3) |
|
|
379 | (12) |
|
|
379 | (1) |
|
|
380 | (1) |
|
|
381 | (1) |
|
|
381 | (10) |
|
Chapter 18 Old McDonald's Farm and Other RFID Adventures |
|
|
391 | (34) |
|
|
392 | (11) |
|
A MIFARE card's structure |
|
|
395 | (3) |
|
|
398 | (1) |
|
|
399 | (4) |
|
|
403 | (1) |
|
|
403 | (9) |
|
|
408 | (4) |
|
|
412 | (15) |
|
|
412 | (3) |
|
|
415 | (10) |
Part 6 The Part Of Tens |
|
425 | (30) |
|
Chapter 19 Ten Great Software Packages for the Raspberry Pi |
|
|
427 | (12) |
|
|
428 | (1) |
|
|
429 | (1) |
|
|
429 | (2) |
|
|
431 | (1) |
|
|
432 | (1) |
|
|
433 | (1) |
|
|
433 | (1) |
|
|
434 | (1) |
|
|
435 | (2) |
|
|
437 | (2) |
|
Chapter 20 Ten Inspiring Projects for the Raspberry Pi |
|
|
439 | (8) |
|
One-Button Audiobook Player |
|
|
439 | (1) |
|
|
440 | (1) |
|
|
440 | (1) |
|
|
441 | (1) |
|
|
441 | (1) |
|
|
442 | (1) |
|
|
442 | (1) |
|
|
443 | (1) |
|
|
444 | (1) |
|
|
445 | (2) |
|
Chapter 21 Ten Great Add-Ons for the Raspberry Pi |
|
|
447 | (8) |
|
|
448 | (1) |
|
|
449 | (1) |
|
|
450 | (1) |
|
|
451 | (1) |
|
|
451 | (1) |
|
|
451 | (1) |
|
|
452 | (1) |
|
|
452 | (1) |
|
|
452 | (1) |
|
|
453 | (2) |
Appendix: Troubleshooting And Configuring The Raspberry Pi |
|
455 | (12) |
Index |
|
467 | |