Raspberry Pi Projects
By Andrew Robinson and Mike Cook
()
About this ebook
Learn to build software and hardware projects featuring the Raspberry Pi!
Congratulations on becoming a proud owner of a Raspberry Pi! Following primers on getting your Pi up and running and programming with Python, the authors walk you through 16 fun projects of increasing sophistication that let you develop your Raspberry Pi skills. Among other things you will:
- Write simple programs, including a tic-tac-toe game
- Re-create vintage games similar to Pong and Pac-Man
- Construct a networked alarm system with door sensors and webcams
- Build Pi-controlled gadgets including a slot car racetrack and a door lock
- Create a reaction timer and an electronic harmonograph
- Construct a Facebook-enabled Etch A Sketch-type gadget and a Twittering toy
Raspberry Pi Projects is an excellent way to dig deeper into the capabilities of the Pi and to have great fun while doing it.
Read more from Andrew Robinson
Einstein on the Run: How Britain Saved the World's Greatest Scientist Rating: 3 out of 5 stars3/5The Riemann Notebook Rating: 0 out of 5 stars0 ratingsRaspberry Pi Hardware Projects 1 Rating: 0 out of 5 stars0 ratingsWikiLeaks: From Popular Culture to Political Economy Rating: 0 out of 5 stars0 ratingsRaspberry Pi Hardware Projects 2 Rating: 0 out of 5 stars0 ratingsThe Boy Who Lived Rating: 0 out of 5 stars0 ratings
Related to Raspberry Pi Projects
Related ebooks
Raspberry Pi Zero Cookbook Rating: 0 out of 5 stars0 ratingsExploring Arduino: Tools and Techniques for Engineering Wizardry Rating: 4 out of 5 stars4/5BBC micro:bit Recipes: Learn Programming with Microsoft MakeCode Blocks Rating: 0 out of 5 stars0 ratingsRaspberry Pi IoT Projects: Prototyping Experiments for Makers Rating: 0 out of 5 stars0 ratingsThe Geeky Kids Guide! To Building Your Own Gaming PC Rating: 3 out of 5 stars3/5Raspberry Pi: Amazing Projects from Scratch Rating: 0 out of 5 stars0 ratingsRaspberry Pi :The Ultimate Step by Step Raspberry Pi User Guide (The Updated Version ) Rating: 4 out of 5 stars4/5Raspberry Pi User Guide Rating: 4 out of 5 stars4/5Raspberry Pi Essentials Rating: 0 out of 5 stars0 ratingsRaspberry Pi Cookbook for Python Programmers Rating: 0 out of 5 stars0 ratingsElectronics Projects with the ESP8266 and ESP32: Building Web Pages, Applications, and WiFi Enabled Devices Rating: 1 out of 5 stars1/5The Official Raspberry Pi Projects Book Volume 5: 200 Pages of Ideas Rating: 0 out of 5 stars0 ratingsMastering Windows 11 a Comprehensive Guide Rating: 0 out of 5 stars0 ratingsRaspberry Pi LED Blueprints Rating: 0 out of 5 stars0 ratingsRaspberry Pi Insider Guide Rating: 0 out of 5 stars0 ratingsRaspberry Pi :Raspberry Pi Guide On Python & Projects Programming In Easy Steps Rating: 3 out of 5 stars3/5Raspberry Pi Projects for Kids - Second Edition Rating: 4 out of 5 stars4/5AutoHotkey Tricks You Ought To Do With Windows Rating: 5 out of 5 stars5/5Raspberry Pi: Raspberry Pi programming for beginners, including Raspberry Pi projects, tips, tricks, and more! Rating: 0 out of 5 stars0 ratingsRaspberry Pi: The complete guide to raspberry pi, including raspberry pi projects, tips, troubleshooting, and more! Rating: 0 out of 5 stars0 ratingsThe Strange Case of Dr. Jekyll and Mr. Hyde (Illustrated) Rating: 4 out of 5 stars4/5Raspberry Pi: Beginner's Guide - Learn Raspberry Pi in Easy Steps Rating: 2 out of 5 stars2/5The Official Raspberry Pi Handbook 2024: Astounding projects with Raspberry Pi computers Rating: 0 out of 5 stars0 ratingsRaspberry Pi Gaming - Second Edition Rating: 0 out of 5 stars0 ratingsArduino Software Internals: A Complete Guide to How Your Arduino Language and Hardware Work Together Rating: 0 out of 5 stars0 ratingsBuilding a Plex Server with Raspberry Pi Rating: 0 out of 5 stars0 ratingsMicroPython A Complete Guide - 2019 Edition Rating: 0 out of 5 stars0 ratingsBuilding a Gaming Computer Rating: 5 out of 5 stars5/5
Hardware For You
CompTIA A+ Complete Review Guide: Core 1 Exam 220-1101 and Core 2 Exam 220-1102 Rating: 5 out of 5 stars5/5Creative Selection: Inside Apple's Design Process During the Golden Age of Steve Jobs Rating: 5 out of 5 stars5/5Programming Arduino: Getting Started with Sketches Rating: 4 out of 5 stars4/5Amazon Web Services (AWS) Interview Questions and Answers Rating: 5 out of 5 stars5/5Chip War: The Fight for the World's Most Critical Technology Rating: 4 out of 5 stars4/5CompTIA A+ Complete Review Guide: Exam Core 1 220-1001 and Exam Core 2 220-1002 Rating: 5 out of 5 stars5/5Build Your Own PC Do-It-Yourself For Dummies Rating: 4 out of 5 stars4/5Dancing with Qubits: How quantum computing works and how it can change the world Rating: 5 out of 5 stars5/5Raspberry Pi Electronics Projects for the Evil Genius Rating: 3 out of 5 stars3/5Linux All-In-One For Dummies Rating: 2 out of 5 stars2/5Debugging: The 9 Indispensable Rules for Finding Even the Most Elusive Software and Hardware Problems Rating: 4 out of 5 stars4/5Macs For Dummies Rating: 5 out of 5 stars5/5Macs All-in-One For Dummies Rating: 0 out of 5 stars0 ratingsUpgrading and Fixing Computers Do-it-Yourself For Dummies Rating: 4 out of 5 stars4/5Raspberry Pi Cookbook for Python Programmers Rating: 0 out of 5 stars0 ratingsApple Watch Series 4: Your Ultimate Guide to Using the Apple Watch Like A Pro Rating: 5 out of 5 stars5/5Apple Watch For Dummies Rating: 0 out of 5 stars0 ratingsHelp! iOS 17 - iPhone: How to Use iOS17 Rating: 0 out of 5 stars0 ratingsmacOS Sonoma For Dummies Rating: 0 out of 5 stars0 ratingsAfter Steve: How Apple Became a Trillion-Dollar Company and Lost Its Soul Rating: 4 out of 5 stars4/5Windows 11 For Seniors For Dummies Rating: 0 out of 5 stars0 ratingsThe Ridiculously Simple Guide To iPad Air (2020 Model): Getting the Most Out of the Latest Generation of iPad Air Rating: 0 out of 5 stars0 ratingsExploring Apple iPad: iPadOS 15 Edition: The Illustrated, Practical Guide to Using your iPad Rating: 0 out of 5 stars0 ratingsLinux All-in-One For Dummies Rating: 3 out of 5 stars3/5Raspberry Pi for Secret Agents - Second Edition Rating: 3 out of 5 stars3/5CompTIA A+ Complete Practice Tests: Core 1 Exam 220-1101 and Core 2 Exam 220-1102 Rating: 0 out of 5 stars0 ratingsCompTIA A+ Complete Study Guide: Core 1 Exam 220-1101 and Core 2 Exam 220-1102 Rating: 0 out of 5 stars0 ratings3D Printing For Dummies Rating: 4 out of 5 stars4/5
Reviews for Raspberry Pi Projects
0 ratings0 reviews
Book preview
Raspberry Pi Projects - Andrew Robinson
Introduction
When we’re young, making things is second nature – painting a picture, inventing a game, telling a story, building a rocket from a washing-up liquid bottle that we’re convinced will fly all the way to the moon. Childhood is all about adventure, discovery – the quest for something new.
Although these joys don’t fade with age, it can become harder to find space and time for play and discovery as real life
takes over. But yet, some of the greatest inventions and discoveries of history were the result of curious people not being afraid to have a go
, often tinkering away in their own homes or garden sheds rather than high-tech well-funded engineering companies.
What’s this got to do with a book on things to do with a Raspberry Pi?
Well, after reading and having a go at some of the projects in this book you might discover the pleasure of making something with a computer can bring. Computing offers a fantastic world of new and untapped opportunities for adventure and creativity. It touches so many areas of our lives (game consoles, set top boxes and smartphones are all computers) that you can combine it with almost any other passion or hobby.
You’ll see why a sprinkling of computing is beneficial for everyone, and that a moment of personal creativity on the kitchen table can have a much bigger impact. You’ll also discover the story behind a particular credit-card sized computer.
A History of Making
World-changing inventions can come from unconventional places.
Orville and Wilbur Wright were two ordinary brothers from Ohio who owned a bicycle shop. Fascinated with the workings of these simple machines, they became convinced that they could build a flying machine. And they did. In 1903, they launched the world’s first aeroplane. Nearly a century later, as HIV/AIDS swept through Africa, Trevor Baylis, an ex-stuntman, became convinced he could help. He sat in his suburban garden shed and invented an inexpensive and durable wind-up radio for use across Africa to spread simple health messages and undoubtedly prevented many, many deaths. Steve Jobs and Steve Wozniak, the founders of Apple, both learned about electronics and computers from experimenting in their bedrooms and family garages. These are just three examples that show the worldwide impact on millions tinkering at home can have.
Many inventors can clearly imagine what they want to make, but might not know how to build it. But, spurred on by the joy of creativity, they teach themselves the skills needed to build what they could imagine. Wozniak and Jobs developed their skills this way, taking apart existing appliances, figuring out how they work and putting them back together. Sometimes the appliances would be enhanced by tinkering, and sometimes they’d no longer work at all! But they weren’t put off; sometimes it was just about discovering how something worked, or the journey to overcome technical adversity, rather than producing a polished product.
Consumer Computing
It is ironic that the birth of Apple computers was a result of poking around in the innards of appliances. Nowadays, computers are sold as sleek, refined aluminium caskets of magic, sealing in opportunities to experiment and discover how they actually work. In a continual quest to add value to their products, manufacturers lure customers with the promise of easy-to-use products and an effortless user experience with your every need taken care of.
Unfortunately it’s not been a smooth journey. Rarely do modern computer systems do exactly what users want. How often are we left frustrated by a computer system failing, consoled by the manufacturer’s line that that will be fixed in the next update
or you need to buy the next version if you want it to do that
? For the technologically fearless, these statements are more like rallying cries, an excuse to tinker until the computer does what they really want. But these days, there are few people brave or skilled enough to roll their sleeves up and get inside.
Why Everyone Should Learn About Computing
Computers really are everywhere, pervading every aspect of our lives. As well as the laptop, desktop and smartphone, just think about the computers behind life support systems and medical records in our hospitals, in banking and shopping keeping the economy going, in manufacturing and our food-supply chain. They are key for our communications, powering digital TV and radio and mobile phone networks, as well as the Internet. With computers so integral to the functioning of our media, commerce and government, it seems odd that so many of us are ignorant of how they work.
Given how widespread the reliance on computers is, think how much we could all benefit from a little bit more understanding. Business leaders and politicians could make more informed decisions on projects involving computers, and the man-on-the-street would be less likely to fall prey to online scams or be duped by overimpressive advertising claims about products. They’d have the skills to make computers work for them to improve their lives.
I see similarities between computing and cooking. Cooking has recipes, which is about following steps. It is about making meals, consisting of sets of dishes. To make an apple pie, you need to break down the task into manageable elements (making the pastry, coring the apples, baking for just the right amount of time), all of which add to a complete (and hopefully tasty) apple pie. This is an example of abstraction, and is key to mastering computing. The problem-solving and logical-thinking techniques, such as managing abstraction, that are developed in computing are valuable to other aspects of life.
We teach our children how to cook, not because we want to train them to become professional chefs, but because we view it as an essential life skill. Without it, we condemn our children to a lifetime of preheating ready meals, often unfulfilling and expensive. For many people, learning the basic skills is the start of a lifelong love of cooking. They see it as an outlet for their creativity, perhaps starting with a recipe and adapting it to make it their own. It’s a social occupation, a chance to show achievements and discuss techniques, challenges and adventures around a lively dinner table.
I’d argue that learning to use computers has parallels with learning to cook. Everyone needs the basic skills. Some may use those skills to go on to become professional programmers, but I’d hope that for most people it is an opportunity for creativity, as well as a survival skill in today’s modern environment.
However, given the need for more people to learn more about how computers work and the reliance on them, it’s also ironic that getting into computing has become more difficult with modern computers. That is, until a certain credit-card–sized computer came along. . . .
Enter the Raspberry Pi
For most people, beginning to experiment on a £1000 laptop, putting precious data at risk is a daunting prospect. I’d think twice before putting all my digital photos, my music collection and my online banking at risk! Games consoles and some phones actively prevent people from creating their own games and apps, presumably to protect revenue by forcing consumer to buy manufacturer’s products.
With the desire to share the fun of computing and the need for more people to know how computers worked, Eben Upton created a small, cheap computer on his kitchen table. With the help of Dr. Rob Mullins, Professor Alan Mycroft and Jack Lang from Cambridge University; Pete Lomas, an expert in hardware; and David Braben, the Raspberry Pi Foundation was born, a charity that set out to promote the study of computer science and related topics, especially at the school level, and to put the fun back into learning computing.
The Raspberry Pi Foundation aimed to open up the world of computing by creating a hardware device that was pocket-money affordable, so it was accessible to everyone, and there’d be no need to worry about experimenting with it. It was unboxed to make it easy to tinker with.
In 2011, after five years’ intense kitchen-table engineering, the first prototype Raspberry Pi computers were produced. After a feature about the Raspberry Pi on technology journalist Rory Cellan-Jones’s blog went viral the Foundation wondered if they were at the early stages of something bigger than they were expecting.
After some clever engineering to allow the Raspberry Pi to be built cheaply enough to be sold for $25, an initial batch of 10,000 went on sale on 29th February 2012 at 6 a.m. A few minutes later, they had sold out. Eighteen months later, 1.75 million had been sold worldwide.
About This Book
During the development of the Raspberry Pi I’d been working on public engagement projects at the University of Manchester to encourage more people into computing.
I’d been following the Raspberry Pi from an early stage, and thought it had great potential. Like thousands of other engineers, I was also very excited by the technology crammed in this tiny PCB of components. I was also aware that for most people less familiar with computers, the same PCB wouldn’t be particularly exciting, and perhaps a scary mass of wires, components and metal. Like the Foundation, I wanted to share the wonder and joy computing could bring.
The big advantage of the Raspberry Pi was that it could be put it in places you couldn’t put a PC. I wanted the Raspberry Pi to be relevant to what people are interested in. To make it easy to connect to the Raspberry Pi, I came up with the PiFace Digital interface, developed at home on the kitchen table in my free evenings and weekends. I’m still amazed when I see people all over the world posting videos online showing what they’re doing with the Raspberry Pi and PiFace. I’ve seen children building robots, door-entry systems for the elderly, games and industrial applications in banks and railway stations.
How to Use This Book
This book aims to answer the question You’ve got a Raspberry Pi – now what?
and is packed full of fun Raspberry Pi projects to inspire you.
This book is divided into three parts. There is some progression, but after you’ve got your Raspberry Pi up and running it should be fairly easy to dip into any of the other chapters. You can just follow the step-by-step instructions to get results quickly, but don’t be afraid to experiment and make them your own. That’s where the real fun lies! Background information is provided that will help you learn the skills you will need if you want to extend the projects.
At the end of each chapter, there are ideas and suggestions for extensions, but you will probably have your own too. We want to see what you create, so share your work with social media such as Facebook, Twitter and YouTube and tag them with RaspberryPiProjects.
Some code listings are available to download from the companion website at www.wiley.com/go/raspberrypiprojects if you get really stuck, but part of learning to program is about typing code in, so not all the code is provided!
Much of the background information is relevant to the classroom, and the book can be used to supplement teaching the new U.K. computing qualifications. If you’re a teacher, look out for supporting information that can help students learn through Raspberry Pi projects.
Part I: Getting Started with the Raspberry Pi
This part will take you through plugging together your Raspberry Pi and installing the software, plus introduces you to Python:
Chapter 1, Getting Your Raspberry Pi Up and Running
, covers your first basic steps in getting your Raspberry Pi running.
Chapter 2, Introductory Software Project: The Insult Generator
, gets you started programming in Python.
Part II: Software Projects
This contains some fun software projects:
Chapter 3, Tic-Tac-Toe
, has you programming a game of tic-tac-toe, particularly covering lists and artificial intelligence.
Chapter 4, Here’s the News
, shows you how to program your own teleprompter.
Chapter 5, Ping
, covers how to program your own computer Ping-Pong game, describe movement to a computer, detect collisions and handle the physics of reflection.
Chapter 6, Pie Man
, shows you how to program your own version of Pac-Man using animated sprites, layers and transparent pixels.
Chapter 7, Minecraft Maze Maker
, uses a Python program to build a maze in Minecraft.
Part III: Hardware Projects
This contains some exciting and challenging hardware projects:
Chapter 8, Colour Snap
, is an introductory hardware project that implements the game of Snap using different coloured lights and shows you how to safely power LEDs and use surface mount components.
Chapter 9, Test Your Reactions
, gets you wiring up simple computer-controlled circuits.
Chapter 10, The Twittering Toy
, shows you how to make your code talk to Twitter and gets you hacking household items.
Chapter 11, Disco Lights
, shows you how to control LED strips and make them dance in time to music.
Chapter 12, Door Lock
, covers how to build a computer-controlled door lock controlled by RFID tags and explains computer authentication.
Chapter 13, Home Automation
, shows you how to create home-automation projects to make your home environment more intelligent, implementing door switches, motion sensors, a webcam and e-mail alerts.
Chapter 14, Computer-Controlled Slot Car Racing
, gets you wiring up a slot car game and using it to keep score in a two-player multiple choice quiz.
Chapter 15, Facebook-Enabled Roto-Sketch
, shows you how to use rotary controls to draw elaborate designs and automatically post them to Flickr and on to Facebook.
Chapter 16, The Pendulum Pi, a Harmonograph
, shows you how to create a harmonograph for producing intricate patterns using an Arduino to help the Pi with real-time data gathering.
Chapter 17, The Techno–Bird Box, a Wildlife Monitor
, covers how to build a techno–bird box
that will monitor the bird activity in your garden.
The Future
Computers are set to be an ever-bigger part of our lives and touch more areas. Systems will be more complex with more connectivity. In the future your washing machine and other appliances in your home will likely talk to your smartphone. And we’ll all need more computing skills to master them. New ways of using computers will mean that there will be new areas for adventure and opportunities to change people’s lives and solve problems in the world.
One word of warning before you begin your adventure: After you start you might never stop! Electronics and coding can be addictive; who knows what you might go on to make with the skills you learn from this book.
Building and making is incredibly rewarding and satisfying. We want to get more people of the world to become producers of technology rather than consumers. The projects in this book are starting points – but then the real rewards come from making the project your own and seeing your own ideas become reality.
Welcome to the world of digital making. Are you ready to invent the future?
Part I
Getting Started with the Raspberry Pi
Chapter 1 Getting Your Raspberry Pi Up and Running
Chapter 2 Introductory Software Project: The Insult Generator
Chapter 1
Getting Your Raspberry Pi Up and Running
by Dr. Andrew Robinson
In This Chapter
What the operating system is for
How to put the operating system on an SD card for the Raspberry Pi
How to connect up your Raspberry Pi
A bit about the boot process
Basic troubleshooting if your Raspberry Pi doesn’t start
This chapter is a beginner’s guide to your first steps with the Raspberry Pi. It goes from getting it out of the box to getting something on the screen. Even if you already have your Raspberry Pi up and running, it’s worth a quick skim as you’ll discover how a 21-year-old student changed the world and a bit about how the operating system for your Raspberry Pi works. After this chapter, you’ll get into the real fun of creating projects!
The Operating System
The Raspberry Pi primarily uses Linux for its operating system (OS) rather than Microsoft Windows or OS X (for Apple). An operating system is a program that makes it easier for the end user to use the underlying hardware. For example, although the processor (the chip at the centre of the Raspberry Pi that does the work) can do only one thing at a time, the operating system gives the impression the computer is doing lots of things by rapidly switching between different tasks. Furthermore, the operating system controls the hardware and hides the complexity that allows the Raspberry Pi to talk to networks or SD cards.
Linux
Part of the success of the Raspberry Pi is thanks to the enthusiastic community that is behind it. Linux is a testament to what can be achieved with the support of volunteers around the world. In 1991, Linus Torvalds began work on an operating system as a hobby while he was a 21-year-old student at the University of Helsinki. A year later, his hobby operating system for desktop PCs (80386) was available online under the name Linux. Crucially, the code for the operating system was available as well. This allowed volunteers around the world to contribute; to check and correct bugs; to submit additional features; and to adapt and reuse other’s work for their own projects. If you master the projects in this book and learn more about computing, then who knows – one of your hobby projects could be as successful as Linus Torvalds’s is.
The popularity of Linux grew, and in addition to its use as a desktop operating system, it is now used for the majority of web servers, in Android devices and in the majority of the world’s supercomputers. Most importantly for us, it is used on the Raspberry Pi.
Linux Distributions
Because Linux code is publically available, different organisations have made slight changes to it and distributed it. This has led to different distributions (versions), including Red Hat, Fedora, Debian, Arch, Ubuntu and openSUSE. Some companies sell their distributions and provide paid-for support, whereas others are completely free. Raspbian is based on the Debian distribution with some customisations for the Raspberry Pi and is what is used in this book.
The most popular operating system for the Raspberry Pi is Linux. The widescale use of Linux (just think how many Raspberry Pis there are, not to mention Android phones, web servers, and so on) shows how much an idea can grow. After you start tinkering with the Raspberry Pi, one of your ideas might grow to be as big (or bigger) than Torvalds’s or those of the founders of the Raspberry Pi, and you too will make a real impact on the world. So let’s get started!
Getting the OS on an SD Card
The Raspberry Pi doesn’t know how to coordinate its hardware without an OS. When it is powered up, it looks on the SD card to start loading the OS. As such, you’re going to need an SD card with an OS on it.
You can either buy an SD card that already has an OS on it, or you can copy an OS to your own SD card with a PC. A premade card is simplest, but more expensive. Creating your own isn’t too difficult, but it is slightly more involved than just copying a file.
Premade Cards
Premade cards are bundled in kits or available to purchase from element14, RS or other online stores. A 4GB card should be big enough for getting started and cost less than £10.
Filesystems
Computer storage like SD cards, USB memory sticks and hard disks essentially contain millions of separate compartments that store small amounts of data in large grids. The individual compartments, called blocks, are addressed by a coordinate system – you can think of them as a piece of squared paper the size of a sports field. The sports field is partitioned into areas of blocks that are handled by the operating system to provide filesystems. It is the OS’s job to manage how data is written to this massive storage area, so that when a user refers to a file by name, all the tiny blocks of data are fetched and combined in the correct order. There are different ways in which the blocks are formatted, with different features. As such, an identical file will be stored differently on the underlying grid by different filesystems.
Typically, Microsoft Windows uses FAT or NTFS, OS X uses HFS Plus and Linux uses ext. Most blank SD cards are formatted as FAT by default. Because the Raspberry Pi runs Linux, it uses the ext filesystem, which must be set up and populated with files.
Images
When talking about downloading the OS for the Raspberry Pi, you may hear it called an image, which may be slightly confusing. It is an image of the underlying storage. (Imagine an aerial photo of the entire sports field of storage blocks, even the blank ones, rather than separate files! If you were to print this photo at the same size on another sports field, you’d have an exact copy of all the files stored on the original one.)
It is possible to store an image as a single file in another filesystem, but this arrangement is not suitable for a running Raspberry Pi. As such, a Raspberry Pi will not work if you just copy an image onto a FAT-formatted card. Instead, you must tell your OS that you want to transfer it at the block level, so that every block on your card matches those of the person who made the image. That way, Linux interprets these underlying blocks on the disk to provide a filesystem that is identical to the person who made the image.
In summary, filesystem images provide an easy way of cloning an entire filesystem such that all the files, their permissions, attributes, dates, and so on are identical.
Creating Your Own SD Card
There are two ways to create your own SD card for the Raspberry Pi, using NOOBS or by transferring an image yourself.
Using NOOBS
New Out Of Box Software (NOOBS) was created for the Raspberry Pi to automate transferring SD card images. NOOBS boots your Raspberry Pi from a FAT-formatted card and then repartitions and clones the filesystem for you. Using NOOBS should be as simple as formatting a card on your desktop PC and unzipping NOOBs downloaded from www.raspberrypi.org/downloads. Some operating systems do not format cards properly, so it is sometimes necessary to download a program to format the card. Although NOOBS can be simple, it doesn’t always work, and it can be slower. Anyway, it’s more satisfying to use the do-it-yourself approach.
Transferring an Image Yourself
You need an SD card larger than 2GB to fit the OS on it. A 4GB card is ideal.
Visit www.raspberrypi.org/downloads and follow the links to download the latest version of Raspbian. You are looking for a filename containing the word raspbian and a date, and that ends in .zip. Make a note of the letters and numbers that are shown as SHA-1 checksum. Because of the speed of development, new versions are released frequently, so the exact name will differ from the one that’s used in the following instructions. The location you download the file to may also be slightly different, so you should use your location accordingly when completing the instructions.
The download page has links to other distributions and other operating systems that you can try later, but for now it’s best to stick with Raspbian because it is reliable, has a good selection of software for beginners and is consistent with the examples in this book.
Checksums
A checksum is an easy way to check whether data has been corrupted. A checksum is a mathematical sum that is performed by the supplier of the data. When you receive the data, you perform the same sum and, in most cases, if the answer is the same, you can be almost certain that the data is the same, without comparing it bit by bit. Checksums are used extensively in computing – in network communications, when processing credit cards and even in barcodes. Although they are not infallible, they make it much easier to be fairly confident data is correct.
The instructions for creating an SD card are different depending on which OS you’re using. Refer to the appropriate section for Windows, Linux and OS X.
Creating an SD Card with Windows
It is hard to check checksums in Windows, so the following instructions assume that the downloaded image file is correct. After the download is complete, follow these steps to uncompress it and transfer the data to the SD card:
1. Unzip the downloaded file 2013-07-26-wheezy-raspbian.zip.
2. Insert an SD card and make a note of the corresponding drive letter (for example, E:). Make sure that the card does not contain any data you want to save because it will be completely overwritten.
3. Go to https://launchpad.net/win32-image-writer and download the binary version of Win32DiskImager from the Downloads section on the right side of the web page. Unzip the program.
4. Start Win32DiskImager.exe as Administrator. Depending on how your system is set up, this may require you to double-click the program name, or require you to hold down the Shift key, right-click the program icon and select Run As.
5. In the Win32DiskImager window, select 2013-07-26-wheezy-raspbian.img.
6. In the Device drop-down on the right, select the drive letter you noted in step 2 (see Figure 1.1).
Figure 1-1: The Win32DiskImager window.
7. Click Write and wait for the imaging process to complete. (This step could take about 15–30 minutes, so be patient.)
8. Exit Win32DiskImager and eject the SD card that should now contain your OS.
Creating an SD Card with Linux
With Linux, it’s easiest to create the SD card image from the command line, as detailed in the following steps.
Linux Permissions and sudo
Linux restricts some actions that might cause damage to other users. As such, some commands will not work unless you have the appropriate privileges. On some distributions, you need to switch to being the user root (the administrator account) before running the command requiring more privileged access. Other distributions will allow selected users to prefix the command with sudo. The following instructions assume that your user account has been set up to use sudo. If not, type su in the terminal first to become root.
1. Start a terminal and use the cd command to change to the directory containing the file you downloaded (for example, cd Downloads).
2. Unzip the downloaded file by typing unzip followed by the downloaded filename (for example, unzip 2013-07-26-wheezy-raspbian.zip).
3. List the image files in the current directory by typing ls *.img and make sure that the extracted image file is listed.
4. Calculate the checksum to ensure that the downloaded file is not corrupt or hasn’t been tampered with. To do this, type the following:
sha1sum 2013-07-26-wheezy-raspbian.zip
Make sure that the result matches with the SHA-1 checksum given on the http://raspberrypi.org/download page. Although it is unlikely that they will differ, if they do, try downloading and unzipping again.
5. Insert an SD card. Make sure there’s no data on it that you want to save, because it will be completely overwritten.
6. Type dmesg and find the device name that Linux uses to refer to the newly inserted card. It will usually be named sdd, sde, sdf or something similar. Alternatively, it may be in the form mmcblk0. Use this name wherever you see sdX in the following steps.
7. If Linux has automounted the card, you need to unmount it first by typing sudo umount /dev/sdX.
8. Double-check that you have the correct device by typing sudo fdisk -l /dev/sdX. Check that the size displayed matches the size of the card that you inserted.
9. When you are absolutely sure you are referring to the correct card, type the following (replacing sdX with the name you found in step 6) to copy the image across to the card. (This step could take about 15–30 minutes, so be patient.)
dd if=2013-07-26-wheezy-raspbian.img of=/dev/sdX
10. Type sudo sync before removing the card to ensure all the data is written to the card and is not still being buffered.
Creating an SD Card with OS X
With OS X, it’s easiest to create the SD card image from the command line.
Although the Macintosh normally uses drag and drop for many operations, there is a way to get under the hood
to perform unusual operations. Your gateway to doing this is an application called Terminal. This is usually found in the Utilities folder, within the Applications folder. A quick way to find it is to hold down the key and press the spacebar. This will open the Spotlight search window. Type terminal and then press Enter to open the Terminal application.
To create an SD card, follow these steps:
1. Start a terminal.
2. Use the cd command to change to the directory containing the file you downloaded. A quick way to do this is to type cd followed by a space and then drag the folder containing the file into the Terminal window. This will automatically fill in the rest of the command with the pathname of that folder. Then press Enter to perform the command.
3. Unzip the downloaded file by typing unzip followed by the downloaded filename (for example, unzip 2013-07-26-wheezy-raspbian.zip).
You won’t see a progress bar during this process, so you might think the computer has frozen – but don’t worry. It could take a minute or two before all of the files are unzipped.
4. List the image files in the current directory by typing ls *.img and make sure that the extracted image file is listed.
5. To make sure everything is fine, you can calculate the checksum for the file; however, you can omit this step if you want. Calculating the checksum ensures that the downloaded file is not corrupt. To do this, type the following:
shasum
2013-07-26-wheezy-raspbian.zip
Make sure that the result matches with the SHA-1 checksum on the http://raspberrypi.org/download page. It is unlikely that they will differ, but if they do, try downloading and unzipping again.
6. Type diskutillist to display a list of disks.
7. Insert an SD card. Make sure that it doesn’t contain any data that you want to save because it will be completely overwritten.
8. Run diskutil list again and note the identifier of the new disk that appears (for example, /dev/disk1). Ignore the entries that end with s followed by a number. Use the disk identifier wherever diskX appears in the following steps.
9. Type sudo diskutil unmountdisk /dev/diskX.
10. Type sudo dd bs=1m if=2013-07-26-wheezy-raspbian.img of=/dev/diskX. (This step could take about 15–60 minutes, so be patient.)
11. Type sudo diskutil eject /dev/diskX before removing the card.
Connecting Your Raspberry Pi
Now that you have your OS for your Raspberry Pi, it’s time to plug it together.
Remove the Raspberry Pi from the box and, to make it easier to follow these instructions, position it the same way around as shown in Figure 1.2 (so the words Raspberry Pi appear the correct way up).
Plug the USB keyboard into one of the USB sockets, as shown in Figure 1.3.
Figure 1-2: The Raspberry Pi, the size of a credit card and a miniature marvel of engineering.
Figure 1-3: Inserting the USB keyboard.
Older PS/2 keyboards will not work. You’ll have to buy (or borrow) a USB keyboard, but they’re not expensive.
Plug the mouse in next to the keyboard, as shown in Figure 1.4.
Figure 1-4: Inserting the USB mouse.
Connecting a Display
The Raspberry Pi can be connected by HDMI or composite video directly. With the use of an adapter you can connect it by DVI or VGA. You should use HDMI or DVI whenever possible because they give a better picture.
Look at the sockets on your display to determine how to connect your Raspberry Pi.
Connecting via HDMI
If your display has an HDMI input, as shown in Figure 1.5, then connect your Pi with an HDMI-HDMI cable. This is the only type of video connection that can also be used to carry audio from the Pi to your display. The HDMI socket on the Pi is at the bottom as shown in Figure 1.5.
Figure 1-5: HDMI connection on the Raspberry Pi.
Connecting via DVI
If your display has a DVI input as shown in Figure 1.6, you will need an adapter. HDMI and DVI have very similar electrical signals, so adapters are passive – that is, they don’t contain any electronics, just two sockets with wires in between. You can buy cables with an HDMI and DVI connector or adapters as shown in Figure 1.6 for less than £5.
Connecting via VGA
DVI and HDMI both work with digital signals and are only found on newer monitors. Older monitors with VGA use analogue signals and as such need some sort of electronic circuit to convert between them. You can buy adapters that convert between HDMI and VGA for about £20 online. The Pi-View device shown in Figure 1.7 is designed specifically for the Raspberry Pi and is available through element14.
Figure 1-6: HDMI-DVI adapter.
Figure 1-7: HDMI-VGA adapter, Pi-View.
Analogue and Digital
Inside most computers you will find digital signals – that is, signals where it only matters if they are on or off. Usually there is a difference of a few volts between a signal being on or off. Data is sent by a code of ons and offs, typically referred to as 1s and 0s. A small change in voltage due to radio or magnetic interference is usually not large enough to change the meaning.
Analogue signals tend to only be used in modern computers where they have to connect with something physical such as a monitor or speakers. An analogue signal typically represents data as a continuous range of voltages. As such, a small change in voltage means a different value will be read. This means the data can be changed by electrical interference.
VGA monitors represent different colours with different voltages. Consequently, any interference will affect what is shown on the screen, and the image is degraded! Small amounts of interference will have no effect on digital data for HDMI. However, if the interference is strong enough, then all data will be corrupted and no image will be transmitted.
Connecting via Composite
If your display only has a connector for composite video, you need a phono-to-phono cable that plugs in to the yellow connector on the top of the Raspberry Pi as shown in Figure 1.8. Be aware that composite is an old technology and may produce a poor quality display.
Connecting to a Network
The Raspberry Pi has an Ethernet socket that allows your Pi to connect to the Internet or your home network. You can download new software and updates, or browse the web. You could even run your own web server!
Figure 1-8: Phono connector for composite video.
If you will be using a network, connect a network cable on the right side as shown in Figure 1.9. Although the Raspberry Pi uses the network to set its clock and to download updates and new programs, it will work without a network connection.
Booting the Operating System
You will need an SD card with the OS already installed on it. You can either buy one pre-installed or follow the instructions earlier in this chapter to make your own.
Insert the SD card in the slot on the underside of the Raspberry Pi, on the left, as shown in Figure 1.10. Take care to keep the card parallel with the Raspberry Pi when you slide it in or out so as not to break the edge of the retaining slots (shown in Figure 1.11).
Figure 1-9: Network connection.
Figure 1-10: Insert the SD card carefully.
Figure 1-11: Take care not to snap off the plastic that keeps the SD card from falling out.
Powering Up!
Before connecting power, get into the habit of checking that there is nothing conductive in contact that could cause a short circuit with your Raspberry Pi. A quick check that there’s nothing metallic nearby could save you from damaging your Pi!
Plug in the power supply to the bottom left of the Raspberry Pi as shown in Figure 1.12. On the top-right corner, you should see a green light (labelled PWR) come on and another one (labelled ACT) flash.
The Raspberry Pi needs a power supply