Author: Massimo Banzi
Publisher: Make Books, 2011
Aimed at: Newcomers to electronics
Pros: Introduces an open source hardware platform
Cons: Not enough space devoted to practical detail
Reviewed by: Harry Fairhead
This is the second edition of an introduction to the Arduino by one of its co-founders. As the first chapter explains it is aimed at artists and designers who know nothing of technology. This makes the task of explaining how to use the Arduino doubly difficult because you have to assume that the reader doesn't know anything about electricity or programming. The new edition has been updated for the Arduino 1 but apart from this there are few changes from the first version.
Arduino is an open source hardware platform that can be used to implement all sorts of interesting projects. You can buy ready made units, buy and build a kit or design and make your own PCB. No matter how you acquire the hardware you can use the free-to-download development system to program the result.
As an open source project there are lots of websites explaining how it all works but the quality is, inevitably very variable. This book is by one of the co-founders of the project and as such you might think that it would be authoritative and essential – unfortunately it is neither. It really is a very basic introduction to using the Arduino in a sort of "native" way - i.e. without much understanding of the basic theory. There are some attempts to give the reader an idea of what is going on, for example using the familiar water in a pipe analogy for electricity, but they don't go far enough to be really useful.
The first part of this very slim book is perhaps wasted on explaining the philosophy of make and patch electronics. If you have never encountered these ideas then they might be inspiring. This is the real problem with the book for anyone who knows anything about electronics - to much inspiration and not enough hard facts.
When the book does get started with practical things it explains how to get the Arduino setup on your computer - a PC or a Mac. The first project is the standard "blink an LED" which is the "hello world" project for any hardware system. In this case the hard facts of life are glossed over in favour of getting things working - no current limiting resistor for example just a warning not to keep the LED on for too long. The code is introduced line by line, with a detailed explanation. Next we have a digression into how to think about electricity using a water flow model and then a more complex example using a switch to control the LED via the Arduino. After the first example program the code is simply presented as a listing and there are a few comments on any new feature that is incorporated so if you don't like reading code the presentation isn't going to please you.
At the end of chapter 4 you have sort of graduated to getting on with more advanced Arduino things in chapter 5. You get to see a few more sensors and then work on a PWM LED driver so that you can dim it. Next we have an LDR to control the brightness automatically and the chapter closes with a quick look at driving bigger loads via a MOSFET. Not enough background theory is provided to make sure that you don't end up destroying a few components on the way.
The final chapter is a big project that if probably too big for the beginner to follow in detail but it does serve to bring things together. The book closes with some welcome appendixes on components and the Arduino board. These are about the most technical part of the book.
This is a fair attempt to get non-technical people into the world of the Arduino and electronics and programming in general. The big problem is that it does it by assuming that they can get by with a "not really understanding" approach. This is like doing electronics and programming using a "jazz" approach that we can just see what works. Of course in the real world we have to write done the notes to create a symphony but you could probably get away with a few lines of melody by just playing the instrument.
The point is that while you can get a little way with a freestyle approach to electronics and programming sooner or later you are going to run out of road and you are going to have to learn things in a more analytic and scientific way. If the book was longer then it might start to get somewhere even using its "free thinking" approach to technology. At its current length, it fails to really explain the thinking behind creating a program - why not trace out the follow of control for example - and it fails to explain anything much about electronics - what is the pulldown resistor needed for on page 41? At the end of the book you are still going to be mystified about electronics.
If you are looking for a superficial introduction to the world of hardware and programming then you might find this book suitable, as long as you are prepared to find out about things that aren't explained. Even though I quite liked the presentation, overall the book is more concerned with being trendy than technical and this last comment should give you a clear idea who it is right for.