Skip to main content

Learning Python with Raspberry Pi

Learning Python with Raspberry Pi

Alex Bradbury, Ben Everard

ISBN: 978-1-118-71705-9

Mar 2014

286 pages

In Stock

$29.99

Description

The must-have companion guide to the Raspberry Pi User Guide!

Raspberry Pi chose Python as its teaching language of choice to encourage a new generation of programmers to learn how to program. This approachable book serves as an ideal resource for anyone wanting to use Raspberry Pi to learn to program and helps you get started with the Python programming language. Aimed at first-time developers with no prior programming language assumed, this beginner book gets you up and running.

  • Covers variables, loops, and functions
  • Addresses 3D graphics programming
  • Walks you through programming Minecraft
  • Zeroes in on Python for scripting

Learning Python with Raspberry Pi proves itself to be a fantastic introduction to coding.

Related Resources

Instructor

Request an Evaluation Copy for this title

Introduction 1

What Is Programming? 1

Why the Raspberry Pi? 2

How Does this Book Work? 2

CHAPTER 1 Getting Up and Running 5

Setting Up Your Raspberry Pi 5

Solving Problems 6

A Quick Tour of Raspbian 7

Using LXDE (Lightweight X11 Desktop Environment) 7

Using the Terminal 8

Changing Configurations with Raspi-Config 10

Installing Software 10

Python 3 11

The Python Interpreter 11

Running Python Programs 11

Summary 12

CHAPTER 2 A Really Quick Introduction to Python 13

Drawing Picture with Turtles 13

Using Loops 16

Conditionals: if, elif, and else 18

Using Functions and Methods to Structure Code 20

A Python Game of Cat and Mouse 21

Understanding Variables 24

Defining Functions 24

Looping Through the Game 25

Summary 26

CHAPTER 3 Python Basics 27

Variables, Values, and Types 27

Values Have Types 28

Storing Numbers 29

Keeping Text in Strings 30

Boolean: True or False 31

Converting Between Data Types 32

Test Your Knowledge 32

Exercise 1 33

Storing Values in Structures 33

Non-Sequential Values in Dictionaries and Sets 37

Test Your Knowledge 38

Controlling the Way the Program Flows 38

Moving Through Data with for Loops 39

Going Deeper with Nested Loops 40

Branching Execution with if Statements 41

Catching Exceptions 42

Exercise 2 43

Making Code Reusable with Functions 43

Optional Parameters 46

Bringing Everything Together 46

Exercise 3 48

Building Objects with Classes 49

Getting Extra Features from Modules 54

Summary 55

Solutions to Exercises 56

Exercise 1 56

Exercise 2 56

Exercise 3 56

CHAPTER 4 Graphical Programming 57

Graphical User Interface (GUI) Programming 58

Adding Controls 60

Test Your Knowledge 62

Exercise 1 62

Creating a Web Browser 62

Adding Window Menus 71

Test Your Knowledge 73

Exercise 2 73

Summary 74

Solutions to Exercises 74

Exercise 1 74

Exercise 2 76

CHAPTER 5 Creating Games 77

Building a Game 79

Initialising PyGame 82

Creating a World 86

Detecting Collisions 88

Moving Left and Right 90

Reaching the Goal 92

Making a Challenge 93

Making It Your Own 97

Adding Sound 98

Adding Scenery 99

Adding the Finishing Touches 101

Taking the Game to the Next Level 102

Realistic Game Physics 103

Summary 108

CHAPTER 6 Creating Graphics with OpenGL 109

Getting Modules 110

Creating a Spinning Cube 110

Vectors and Matrices 112

Bringing It All Together 116

Let There Be Light 120

Calculating the Distance of the Point from the Light Source 120

Calculating Reflecting Angles 121

Making the Screen Dance 126

Building the 3D Model 128

Calculating the Sound Level 129

Taking Things Further 135

Adding Some Texture 136

Summary 136

CHAPTER 7 Networked Python 139

Understanding Hosts, Ports, and Sockets 139

Locating Computers with IP Addresses 140

Building a Chat Server 141

Tweeting to the World 144

Weather Forecasts with JSON 147

Testing Your Knowledge 149

Exercise 1 149

Getting On the Web 149

Making Your Website Dynamic 151

Using Templates 153

Sending Data Back with Forms 153

Exercise 2 155

Keeping Things Secure 155

Summary 159

Solutions to Exercises 160

Exercise 1 160

Exercise 2 161

CHAPTER 8 Minecraft 163

Exploring Minecraft 164

Controlling Your Minecraft World 164

Creating Minecraft Worlds in Python 165

Building Worlds 166

Drawing Pictures 166

Taking Things Further 169

Making the Game Snake 169

Moving the Snake 173

Growing the Snake 173

Adding the Apples 174

Taking Things Further 175

Summary 175

CHAPTER 9 Multimedia 177

Using PyAudio to Get Sound into Your Computer 177

Recording the Sound 179

Speaking to Your Pi 180

Asking the Program Questions 181

Putting It All Together 182

Taking Things Further 184

Making Movies 184

Using USB Webcams 185

Adding Computer Vision Features with OpenCV 187

Taking Things Further 190

Using the Raspberry Pi Camera Module 190

Creating Live Streams 193

Taking Things Further 196

Summary 196

CHAPTER 10 Scripting 197

Getting Started with the Linux Command Line 197

Using the Subprocess Module 200

Command-Line Flags 202

Regular Expressions 203

Testing Your Knowledge 206

Scripting with Networking 207

Bringing It All Together 209

Working with Files in Python 216

Summary 217

CHAPTER 11 Interfacing with Hardware 219

Setting Up Your Hardware Options 219

Female to Male Jumper Wires 219

Pi Cobbler 220

Solderless Breadboard 221

Stripboards and Prototyping Boards 221

PCB Manufacturing 222

Getting the Best Tools 222

Wire Cutters/Strippers 222

Multimeters 222

Soldering Irons 222

Hardware Needed for this Chapter 223

The First Circuit 224

Protecting Your Pi 228

Power Limits 229

Getting Input 229

Expanding the GPIO Options with I2C, SPI, and Serial 231

The SPI Communications Protocol 231

The I2C Communications Protocol 235

The Serial Communications Protocol 236

Taking the Example Further 236

Arduino 236

PiFace 237

Gertboard 237

Wireless Inventor’s Kit 238

Trying Some Popular Projects 238

Robots 238

Home Automation 239

Burglar Alarms 239

Digital Art 239

Summary 239

CHAPTER 12 Testing and Debugging 241

Investigating Bugs by Printing Out the Values 241

Finding Bugs by Testing 245

Checking Bits of Code with Unit Tests 245

Getting More Assertive 250

Using Test Suites for Regression Testing 252

Testing the Whole Package 253

Making Sure Your Software’s Usable 254

How Much Should You Test? 254

Summary 255

Index 257

Python Chapter Files Download