Author: Matt Richardson and Shawn Wallace
Publisher: Maker Media
Audience: DIY enthusiasts who want to "Hack hardware with software"
Reviewer: Harry Fairhead
The Raspberry Pi is popular and there are lots of books introducing it. Is this one in the Make series a suitable choice?
Getting started with Raspberry Pi is quite a small book with 176 pages in a smallish format. As it is titled "Getting started" you wouldn't expect it to be aimed at the advanced user but it isn't suitable for the complete beginner either. Some parts of it are basic enough to help a complete beginner but when it comes to programming you need to know at least a little before you start reading.
There are two big problems for any book on the Pi. The first is that the Pi is just another general purpose computer and hence what you need to know about using Linux or Python is the same as for any other computer. The second is trying to do better than the huge amount of information that is available on the web. About the only way a book can do better is to offer authority and organization.
The first chapter is a basic introduction to the Pi. The book was in time to cover the model B+ but not the A+. It also covers briefly the compute module. The fact that the A+ isn't covered isn't a big problem. It gen goes on to describe the basics of flashing an SD card with your chosen distribution and booting up the Pi for the first time. The descriptions are minimal and you would do better looking at the detailed instructions on the website. For example the huge topic or running the Pi headless - i.e. without keyboard, mouse or monitor is discussed in three short paragraphs. At best many of the topics mentioned in this chapter are only good for making you aware that these things exist. o
Chapter 2 is about using Linux from the command line and a bit about the desktop. The information here is very much at the get you started level. There is nothing at all in the first two chapters about the fairly important topic of getting the Pi onto WiFi. Given how cheap a WiFI dongle is it is a very popular way of getting a Pi online.
Chapter 3 is new in this edition and deals with the different operating systems you can use with the Pi. This amounts to a basic list of what is available and short sentence or two on the why and what. You would still need a lot more information before you could make use of any of them.
From here the book returns to the plan of the first edition with Chapter 4 being an introduction to Python. Full marks for using Python 3 right from the start although it says that the programs work with Python 2 - which is only true if you note that print("hello") in Python 3 becomes print "hello" in Python 2. The introduction is far too short and you have no hope of following anything beyond the very basics unless you already program in another language. From here we move on to Pygame which is motivating as a way of creating games but if you are a beginner you are simply not going to cope.
If you do want to program in Python - and if you have come this far and bought a Pi you do want to program in Python then you need to buy a book with a few hundred pages that teaches you Python. The Pi's version of Python is very little different from Python on any machine until you come to using some of the hardware oriented modules.
The next chapter introduces Scratch on the Pi. Again this is no different from Scratch on any other computer and if you are serious about learning the language or teaching it to some one else get a book on the topic.
The remaining chapters of the book are mostly about using the Pi in hardware projects and is is one area where it is different from other machines. The only problem is that the very first chapter you mean is about using the Pi with the Arduino - this is not exactly a mainline topic. If you know enough to own an Arduino and program it you most likely don't need a chapter that tells you how to hook it up to a Pi. This is not a good place to start the exploration of the Pi as a hardware tool.
The next chapter introduces what is the best place to start - flashing an LED and reading a switch. The problem is that the diagrams show the old model B 40 pin connector - true the new connector is the same for the first 40 pins but if you are a beginner it could be confusing. There are also no schematic diagrams simply free hand drawings of the connections from the Pi's connector to a solderless prototyping board. The flashing LED doesn't have a current limiting resistor and really there isn't any discussion of how electronics works. A pull up resistor is needed on the switch but again no real explanation of what is going on. What is more surprising is that all of the programming is done using the bash shell and echo commands. Why bother introducing Python only to ignore it in an application that it is ideal for? One thing is certain - the reader will have to graduate to Python hardware control sooner or later and bash is just a distraction in the learning process.
Now we come to a slightly terrifying part - controlling a mains lamp. This starts off with the briefest mention that you need a Powerswitch Tail II relay to control the higher voltage. This is indeed true, but if you just look at the drawing without reading too carefully you might think that the Pi was just being wired to a standard in-line light switch i.e. a Powerswitch. What makes this worse is that there are no big warnings about mains voltages being dangerous - and in fact deadly. If anyone does make the mistake of not realizing that the Powerswitch Tail II isn't the same as a plain old vanilla power switch then the result would certainly be a dead Pi and possibly a dead (or shocked and injured) reader.
Chapter 9 moves on to use Python to control the GPIO and this raises the question of if you are going to do this why not do it sooner. First we run through blinking and LED (no current limiting resistor again) and reading a button. A small sound generator with three switches finishes the chapter. In the next chapter we move on to AtoD and DtoA conversion - a fairly advanced topic. First we look at pulse width modulation as a way of doing crude DtoA. For AtoD an Adafruit module is used. Again no schematic and the hand drawn diagrams are not easy to follow.
The next chapter looks at using the camera and while this starts out simple it quickly ramps up to face recognition. Using SimpleCV in Python isn't difficult but to go anywhere much with it requires that you are fairly good with Python. The final project is a Photobooth which uses a fairly long program.
The final chapter is about using the Internet - downloading files and generally making web gets. Then it moves on to show how to use the Pi as a webserver, but rather than showing and using the builtin web-server in Python it uses the Flask web framework. I have nothing against Flask, but it is overkill for most small hardware projects.
Overall this book is a collection of random topics at different levels of difficulty. It won't teach you to program but it might make you want to learn how. It certainly won't teach you electronics and there is a tiny probability it will get you killed before you decide you want to learn how.
No beginner's book on electronics should include a project that works with mains voltages, unless it teaches them a lot about how things work and even then puts big warning notices all over the page.