Raspberry Pi® Projects For Dummies®
Published by: John Wiley & Sons, Inc., 111 River Street, Hoboken, NJ 07030-5774, www.wiley.com
Copyright © 2015 by John Wiley & Sons, Inc., Hoboken, New Jersey
Published simultaneously in Canada
No part of this publication may be reproduced, stored in a retrieval system or transmitted in any form or by any means, electronic, mechanical, photocopying, recording, scanning or otherwise, except as permitted under Sections 107 or 108 of the 1976 United States Copyright Act, without the prior written permission of the Publisher. Requests to the Publisher for permission should be addressed to the Permissions Department, John Wiley & Sons, Inc., 111 River Street, Hoboken, NJ 07030, (201) 748-6011, fax (201) 748-6008, or online at http://www.wiley.com/go/permissions
.
Trademarks: Wiley, For Dummies, the Dummies Man logo, Dummies.com, Making Everything Easier, and related trade dress are trademarks or registered trademarks of John Wiley & Sons, Inc., and may not be used without written permission. Raspberry Pi is a registered trademark of the Raspberry Pi Foundation. All other trademarks are the property of their respective owners. John Wiley & Sons, Inc., is not associated with any product or vendor mentioned in this book.
LIMIT OF LIABILITY/DISCLAIMER OF WARRANTY: WHILE THE PUBLISHER AND AUTHOR HAVE USED THEIR BEST EFFORTS IN PREPARING THIS BOOK, THEY MAKE NO REPRESENTATIONS OR WARRANTIES WITH RESPECT TO THE ACCURACY OR COMPLETENESS OF THE CONTENTS OF THIS BOOK AND SPECIFICALLY DISCLAIM ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. NO WARRANTY MAY BE CREATED OR EXTENDED BY SALES REPRESENTATIVES OR WRITTEN SALES MATERIALS. THE ADVICE AND STRATEGIES CONTAINED HEREIN MAY NOT BE SUITABLE FOR YOUR SITUATION. YOU SHOULD CONSULT WITH A PROFESSIONAL WHERE APPROPRIATE. NEITHER THE PUBLISHER NOR THE AUTHOR SHALL BE LIABLE FOR DAMAGES ARISING HEREFROM.
For general information on our other products and services, please contact our Customer Care Department within the U.S. at 877-762-2974, outside the U.S. at 317-572-3993, or fax 317-572-4002. For technical support, please visit www.wiley.com/techsupport
.
Wiley publishes in a variety of print and electronic formats and by print-on-demand. Some material included with standard print versions of this book may not be included in e-books or in print-on-demand. If this book refers to media such as a CD or DVD that is not included in the version you purchased, you may download this material at http://booksupport.wiley.com
. For more information about Wiley products, visit www.wiley.com
.
Library of Congress Control Number: 2015942453
ISBN 978-1-118-76669-9 (pbk); ISBN 978-1-118-76672-9 (ebk); ISBN 978-1-118-76671-2 (ebk)
Raspberry Pi Projects For Dummies is designed for people who are looking for something exciting to do with the Raspberry Pi. This book contains projects to amaze and inspire you! It takes you into a world of switches, lights, motors, home automation, and computer vision. It not only covers the theory behind what you’re doing, but also gives you examples of putting that theory into practice, so you can learn to work on your own projects and not just blindly follow a list of instructions.
Sure, we could just give you a list of steps to follow. But we believe that you should try to understand what you’re doing and why you’re doing it, and that’s what this book is all about. With this book as a resource, we encourage you to put your own stamp on projects, which is why many projects in this book aren’t just cut-and-dried lists of things to do, but suggestions about how you can customize the projects and make them your own.
The projects in this book all make use of the computer language Python 2. This book shows you how to use a wide variety of input and output devices, from a simple switch to a webcam. You can explore LEDs and multicolored LEDs, learn about a keypad matrix and see how they can be integrated to become part of your code so you can make these devices do what you want. Reach out with your Raspberry Pi and become part of the cloud or build your own web server. This book shows you how.
The Raspberry Pi can interface with other electronic devices, and in this book we show you how to interact with LEGO’s latest robotic MINDSTORMS set, the EV3. You can send messages into the LEGO system or do your own thing and control the MINDSTORMS peripherals directly from the Raspberry Pi. Not only do we show you how these two systems interact, but we also show you some projects you can make using the Raspberry Pi and MINDSTORMS set together.
Linux is the staple operating system used in the Raspberry Pi world. However, there is a major alternative operating system you can run for just the price of another very small SD card, RISC OS. RISC OS is a mature, well-honed operating system, designed from the ground up to run on ARM chips, and as such, it’s fast and compact. This book shows you how you can explore the RISC OS and gives you a glimpse of another world.
A few final notes about the book: Sidebars (text in gray boxes) and Technical Stuff paragraphs are skippable. Finally, within this book, you may note that some web addresses break across two lines of text. If you’re reading this book in print and want to visit one of these web pages, simply key in the web address exactly as it’s noted in the text, pretending as though the line break doesn’t exist. If you’re reading this as an e-book, you’ve got it easy — just click the web address to be taken directly to the web page.
In writing this book, we made a few assumptions about you:
In this book, we use a handful of icons (little pictures in the margins) to draw your attention to key pieces of information. Here’s what those icons mean:
In addition to the material in the print or e-book you’re reading right now, this product also comes with some access-anywhere goodies on the web. Check out the free Cheat Sheet at www.dummies.com/cheatsheet/raspberrypiprojects
for information on connecting the Arduino and the Raspberry Pi, GPIO pin alternate functions, and powering other devices from the Raspberry Pi.
Also, at www.dummies.com/extras/raspberrypiprojects
, you can find free bonus articles on topics like contact bounce and facial recognition.
Finally, throughout the book, we mention files that you can download from the book’s companion website, www.dummies.com/go/raspberrypiprojects
.
If you’re a beginner, you can’t do better than starting at Chapter 1 and making sure you have your Raspberry Pi and your workspace set up. Even if you’re experienced, it’s worth reading the early chapters to pick up hints we’ve gathered from our extensive experience. If you’re champing at the bit to start playing with your Pi, feel free to dive into the parts of the book that interest you most!
Part I
In this part …
Chapter 1
In This Chapter
Getting a Raspberry Pi
Finding out what’s possible with your Raspberry Pi
Connecting your Raspberry Pi
Setting up your operating system
Troubleshooting any problems
You probably wouldn’t have picked up this book if you hadn’t already heard about the amazing, low-cost computer for everyone, the Raspberry Pi. Besides being inexpensive, what’s made the Raspberry Pi so appealing is that it’s pretty easy to use. You can even change it to do things its designers never dreamed of. Unlike most consumer electronics, tablets, and desktop computers, the Raspberry Pi is designed to let you investigate how it works and change how it operates by writing your own software programs.
This is all possible because the Raspberry Pi uses an inexpensive but powerful processor and a free operating system, which is based upon the popular Linux platform. In this chapter, we take a look at what you need to get going and show you how to set it up.
We also tell you where to get a Raspberry Pi and the accessories you need to run it. We explain how to set up the operating system, how to connect the hardware, and what to do if you run into any problems along the way. Before long, you’ll be able to make your Raspberry Pi say, “Hello, world!”
If you’re interested in building projects with a Raspberry Pi, you probably already have one. But if you don’t yet have your own Raspberry Pi, this is the section for you! You’ll be glad to know that there are a few places you can pick one up quickly and cheaply.
The Raspberry Pi comes in several versions: Model A is shown in Figure 1-1, and Model B is shown in Figure 1-2. There are other versions of the Raspberry Pi, though — Chapter 4 has a full rundown. The Model A and Model B use the same kind of processor, but the Model A is cheaper and uses less power; it has a single USB port and connections for your screen and audio. Model B has everything Model A has, plus an additional USB port and an Ethernet port for connecting to a network, so it costs a little more. For the projects in this book, you’ll want to get a Model B.
The Raspberry Pi Foundation (which is technically a UK charity, not a business) created the Raspberry Pi. The Raspberry Pi Foundation licenses the manufacture of the Raspberry Pi to the biggest names in electronics in the UK, RS Components (www.rs-components.com
) and Farnell, which supports Raspberry Pi under the brand name element14 (www.element14.com/community/community/raspberry-pi
). If you’re buying a Raspberry Pi for personal or home use, Farnell’s outlet is CPC (order from http://cpc.farnell.com
). In the United States, you can also buy from Newark (www.newark.com
), which is a part of Farnell, and Adafruit (www.adafruit.com
). These suppliers can provide you with everything you need to get your Raspberry Pi up and going, but you can only buy from them online.
If you simply can’t wait to get your hands on a Raspberry Pi, and you live in the UK, you can also walk in to any Maplin electronics shop, where they’re usually kept in stock. You’ll pay a bit more for the convenience of shopping in a store, but you can get personal advice from the salespeople, which can be pretty useful if you have questions. At the time of this writing, you can walk into a Radio Shack in the United States and buy a Raspberry Pi starter kit, but this may change because the company is restructuring.
You can also find the Raspberry Pi for sale on eBay. There are usually plenty of listings for just a Raspberry Pi or for bundles that include all the accessories you need in order to hook it up.
This book shows you how to get going with Raspberry Pi projects. After you’ve done some, you’ll have a pretty good idea of what’s possible. But when you want to go a bit further with your ideas, it’s good to know what you can realistically expect to achieve.
The first thing you see when you get up and running is a text-based prompt on the screen. You can do a lot of things just with text, but most people prefer to launch the familiar graphical user interface (GUI), the desktop environment you’re used to on any other computer. The operating system supports all the things you’d want to do in a desktop system, including playing games, browsing the web, word processing, using spreadsheets, editing photos, and playing audio and video.
But that’s not where the Raspberry Pi really shines. The great things you can do with the Pi come into play when you write your own programs and hook it up to electronics or other objects in the real world using the general-purpose input/output (GPIO) connector. Your Pi is well suited for this because these kinds of things don’t usually require the beefy processor in your desktop or laptop. Using your Pi for things you may not do with your usual computer is what makes it really fun — and that’s what this book is all about!
The Raspberry Pi uses a Broadcom BCM2835 central processing unit (CPU) and a VideoCore IV graphics processing unit (GPU) and shares the onboard memory between them. Either 256MB or 512MB of onboard memory is available. The CPU is an impressive piece of technology that enables fairly complex computing power at an extremely low price. The trade-off is that the Pi is not nearly as powerful as the full-fledged CPU in desktop and laptop computers — it’s a bit slower, roughly comparable to the capabilities of mainstream computers in the ’90s. You shouldn’t plan to do high-performance computing or run heavily graphics-intensive applications like gams or 3D modeling software — the Pi will run these, but they may be unusably slow.
You probably won’t be replacing your main computer with a Pi, but you can do a lot of experimentation with it that you may not try with your desktop or laptop, and you can easily connect your Raspberry Pi to sensors and motors in the real world, which we show you how to do in the projects in this book. And if you make any big mistakes that damage your Pi, it doesn’t cost a lot to get another one and start experimenting again!
The Raspberry Pi is about the size of a credit card and has all the components that you need onboard so that you can connect it to a TV or display and start using it. These connections are shown in Figure 1-3.
Going clockwise around the board from the top left, you’ll find the following connections:
You probably have some of the important accessories lying around the house already, which was exactly what its creators had in mind. You can just use old stuff that’s gathering dust — you don’t have to buy anything, which keeps the cost down. You don’t have to get all the accessories shown in Figure 1-4 to complete the projects in this book. But at a bare minimum, you’ll need a display and a keyboard to get things going. Here’s what you see in Figure 1-4:
Monitor: The Raspberry Pi’s onboard HDMI output allows you to connect a high-definition feed to just about any modern computer display. If your display has an HDMI input, all you need is a cable between the two.
If your monitor doesn’t have an HDMI input, it probably supports DVI, which has a larger, wider connector. You can buy adapters that convert from HDMI to DVI that will allow you to use your DVI monitor. You can also use a VGA monitor (the VGA input contains three rows of holes), though these aren’t officially supported. If you want to use VGA, make sure to get an adapter that is specifically meant to work with a Raspberry Pi.
If you don’t want to use a computer display and you have an old TV, you can use it as a display. Your Raspberry Pi has an RCA connection, which allows you to use a composite video signal to a TV with a composite video input. The picture won’t be as sharp as with a display, and text can be hard to read, so we recommend using a monitor if you can.
http://shop.pimoroni.com
to find them.To do anything useful with your Raspberry Pi, you need to have an operating system. The operating system provides the basic functions like the GUI, which most people know as the “desktop environment.” It also supports reading and writing files, runs general-purpose applications like your word processor and web browser, and runs the programs you write for your Raspberry Pi projects. Your Raspberry Pi uses the Linux operating system to do this.
Your operating system is stored on an SD card, not on a hard drive like most computers. When you turn on your Raspberry Pi, it reads the operating system that’s on the SD card. If your card isn’t inserted, the Raspberry Pi won’t be able to start up, so you need to get the operating system onto an SD card before you can do anything else.
Linux is a free operating system, unlike the ones used on Windows and Mac. It’s an open-source project, which means anyone can contribute to it — and thousands of people do. The Linux Foundation (www.linuxfoundation.org
) coordinates these efforts and manages the standard Linux kernel (the core code that makes it work). All you have to do is download a copy of the operating system (see the nearby sidebar) and put it on your SD card.
Your operating system is made up of a bunch of files that are run from the SD card itself. However, when you write the operating system’s files to the SD card, they’re written in a special format that Linux can read. You can’t just copy them over as you would with other kinds of files. The Linux distribution you downloaded is in a special format called a disk image. And you flash the disk image to the SD card using a special little program. The program you need depends on whether you’re using Windows, Mac, or Linux.
To create the image file in Windows, you use a special program called Image Writer for Windows. It’s free and pretty easy to use. Just follow these steps:
Insert your SD card into your computer’s SD card slot or, if you don’t have one, into your SD card reader.
Take note of which drive letter is assigned to your SD card.
Download the files at www.sourceforge.net/projects/win32diskimager/files/latest/download
.
If you want more information about Image Writer for Windows, go to www.launchpad.net/win32-image-writer
.
Double-click the file to extract it, click Extract All Files to unzip the archive into a folder, and then open the folder.
Note:
If the filename of the file you downloaded ends with .exe
, when you double-click the file, an installation wizard may run.
You should see the list of extracted files. Make sure that you aren’t looking at the zipped files.
Win32DiskImager.exe
to open it.Click the folder icon to the right of the long white box and navigate to the Linux .img
file you just unzipped; double-click to select it.
This will put the file path into the long white box for you.
From the Device menu, select the drive letter that your SD card has been assigned.
Be absolutely sure you’ve got the correct drive selected — the one that contains your SD card. Whatever drive you’ve chosen in the device menu will be completely erased!
On a Mac, you can use a simple script called RasPiWrite to do the work of flashing your image file to your SD card. First, you create a folder that RasPiWrite can use while it’s flashing your SD card. Then you use the script to create your image file. You do some of this by typing commands on the command line, using the Terminal program, which is found in your Applications/Utilities
folder.
Documents
folder, create a folder called SD Card Prep
; in the SD Card Prep
folder, create a folder called RasPiWrite
.https://github.com/exaviorn/RasPiWrite
to download the zip file of RasPiWrite.RasPiWrite
folder you created in Step 1.RasPiWrite
folder.Applications/Utilities
, and type cd and then a space.Use the Finder to locate the SD Card Prep
folder you created in Step 1; make sure you can see both the Finder window and the Terminal window, and then drag the RasPiWrite folder into the Terminal window.
This places that path name of that folder into the command line for you. (It’s easier than typing it all out.)
Press Return.
This switches you to the folder containing RasPiWrite.
Type ls and press Return.
The list command produces a list of files in the RasPiWrite
folder. You use it later to tell RasPiWrite
where to get the source files for your disk image.
Enter your system password.
You see a progress report as your script creates the disk image. If all goes well, you should see a raspberry made of text characters.
Follow the prompts to select the disk that corresponds to your SD card.
You can double-check to make sure you’ve selected the correct one by ensuring that the disk’s size (listed in the size column) corresponds to the size of your SD card. You don’t want to erase all the data on your main hard drive!
You’ll be asked if you want to download a distribution; because you already did that, type N.
The program asks you to locate the disk image file.
Scroll back up to where you used the ls
command and copy the filename of the distribution; then scroll back down and paste this filename at the prompt and press Return.
The program extracts the image file and prepares it to upload onto your SD card. It then asks you to confirm that you’re about to erase your SD card. Be sure you’ve got the right SD card.
The flash process can take a long time. You’ll see some dots on your screen as the process continues. Depending on your system, it can take 30 minutes or even up to an hour. You can use your computer for other things during this process, but if you lose power or restart, you’ll have to start all over again.
If you’re using Linux, the process of flashing an SD card for your Raspberry Pi is pretty straightforward. We assume you’re using Ubuntu, one of the most popular Linux distributions. If you’re using another distribution, the following steps will be very similar.
When you download the Raspbian Wheezy distribution, make sure you save it where you can find it, such as in the Documents
directory. Then follow these steps to flash your SD card:
Open a Terminal window.
This is located in the Applications menu under Accessories.
Type sudo fdisk –l (the last character of this command is the letter l, not the number 1).
This starts the fixed disk program, a tool you can use to manage, erase, and separate disk drives into different logical partitions. It also shows you which drives are available on your system.
Locate your SD card in the device list.
The list gives details about each of the drives on your system, including the size of each device in bytes and other details such as the number of heads, sectors, cylinders, and so on. Find the device that most closely matches the size of your SD card in bytes. For example, an 8GB SD card will be listed as about 8,068MB. Take note of the name of that disk’s directory. For example, on our system, the SD card is located in the directory: /dev/sdg
.
Use the cd
command (“change directory”) to navigate to the directory where you saved your Raspbian Wheezy distribution.
For example, if it’s in the Documents
directory, type cd Documents and press Enter.
To write the Raspbian Wheezy image to the SD card, use the dd
command.
Here’s what we would type on our system:
sudo dd if=mydistribution.img of=/dev/sdc bs=2M
You need to substitute the name of your distribution file where it says mydistribution.img
. Substitute the directory where your SD card is located where it says /dev/sdc
.
The sudo
command stands for “super user do” and tells Linux that you’re issuing the dd
command as the administrator of the system. The operating system assumes you know exactly what you’re doing, and there are no protections for making any grave mistakes. The dd
command is short for “data description,” but some people have joked that it stands for “destroy disk” or “delete data,” because if you aren’t careful, it can erase your system’s hard drive. When these two commands are combined, you can imagine the consequences of making a mistake. So, be sure you’ve typed everything precisely!
Press Enter to start flashing the image file your SD card.
It should take about two or three minutes to do this operation. You won’t see a progress update, but you may see the light next to your SD card slot flickering. When it’s finished, you’ll be advised how much data was copied and how long the operation took to complete. Pat yourself on the back. You’re ready to fire up your Raspberry Pi!
When you’ve got the essential accessories and the operating system, you can set up your hardware. This is simply a matter of connecting the right bits together. Figure 1-5 shows you how things are connected using a Raspberry Pi Model B.
Follow these steps to set up your hardware:
Locate the SD card slot on the bottom of your Raspberry Pi and insert the newly flashed SD card snugly, with the label facing down.
The card will stick out from the side of the circuit board a little bit.
Connect your computer monitor or TV to your Raspberry Pi.
If you’re using a monitor or TV with an HDMI connection, just connect the two with an HDMI cable. If your monitor has a DVI connection instead, insert the HDMI cable into an HDMI-to-DVI adapter and then plug it into your monitor. If you’re using a TV without an HDMI connection, connect a yellow RCA connector cable to the round RCA jack on the top of your Raspberry Pi and plug the other end into your TV’s composite video input.
You may need to manually select which input your monitor or TV is using. Check the manual if you aren’t sure how to do this. Also, make sure the power to your display is switched on.
Connect your USB hub into one of the two USB sockets on the right side of your Raspberry Pi.
If you’re using a Raspberry Pi Model A, there will be only one socket. Your hub should have a power adapter — plug it into an electrical socket.
Plug your keyboard and mouse into the USB hub.
If you’re using a keyboard or a mouse with an older PS/2-style connector, you’ll need a PS/2-to-USB adapter. You can also connect them directly to your Raspberry Pi’s remaining USB socket, but it’s a good idea to use the hub, which has more available power.
Connect your audio.
If you’re using an HDMI monitor with audio, the audio will go through your HDMI cable. If you’re using external speakers or a TV, your audio output is the black 3.5mm socket on the top-right edge of your Raspberry Pi. Connect your speaker cable there.
Connect to your network.
If you’re using a Model A, you can skip this step. There is no network connection available for it.
If you’re using a Model B, connect an Ethernet cable to your Ethernet socket on the right side of the board. When your operating systems starts up, it will automatically connect to your home router, as long as it supports Dynamic Host Configuration Protocol (DHCP). (Most home routers do.) If you have trouble connecting to the network, see your Internet service provider’s instructions for setting up new devices using DHCP on your home router. In rare cases, DHCP may be switched off.
Connect your micro USB power supply to your power socket on the bottom-left corner of your board.
Some power supplies have standard-size USB ports. You connect a USB–to–micro USB adapter cable from the standard USB output on these power adaptors to the micro USB input on your Raspberry Pi. There is no power switch. To cycle the power, you remove the adapter plug and put it back in, which is a little awkward. If you have an extension lead with a switch, you can connect your power adapter and use the switch on the lead to cycle to turn the power on and off more easily.
Don’t connect your Raspberry Pi to your computer’s USB port via a USB–to–micro USB adapter cable. Your computer’s USB port isn’t designed to deliver enough power for your Raspberry Pi, via the USB port.
When you power up your Raspberry Pi you should briefly see a rainbow-colored screen, which confirms that the hardware itself is working. Then the Linux operating system on your SD card will start to run and you’ll see an avalanche of text on your screen as all the various parts of the system are started. It can be pretty fun to watch. This will take a little time to complete. When it’s finished, you’ll be able to move on to setting up the system in the next section.
You’ll also see a little status light on the board next to the audio jack. The PWR light should be on. When your Raspberry Pi accesses the SD card to load the operating system, you’ll see the ACT light activated.
The FDX light indicates that you have a good Ethernet connection. The LNK light will flash whenever there is network traffic on the wire. The 100 light indicates a high-speed (100 Mbit) Ethernet connection.