Author: Martin Evans, Joshua Noble and Jordan Hochenbaum
Audience: Intermediate level Arduino enthusiasts
Reviewer: Harry Fairhead
Another book on the Arduino - can this one add anything to the growing literature on the subject?
The Arduino is an easy to use microcontroller and there are lots of books that are targeted at the beginner but very few suitable for the intermediate to advanced user. The big problem for any book on Arduino is that the reader needs to be told about hardware and software, and it is difficult to know how much of an expert they are in each topic.
Part 1 is a beginner's look at the Arduino but this isn't pitched at the lowest possible level. For example, most introductions to the Arduino show you how to flash an LED, and so does this book. Why not as it's the "hello world" of this sort of programming? However, most of the introductions don't bother to explain how to calculate the current limiting resistor - this book does. As a result it is most likely to be helpful to the reader who already knows something about electronics.
By the end of chapter 2 we have flashed five LEDs, looked at the problem of using switches including the debounce problem and constructed a simple reaction timer. Chapter 3 introduces analog and works toward building a 5-tone piano. This isn't a fast pace, but is faster than most books on the Arduino manage.
Part 2 of the book starts to look around at the wider Arduino ecosystem. Chapter 4 is a good overview of the standard libraries that you can use with your projects - SD cards, Ethernet, LCD, servos, stepper motors, SPI, two wire and full serial. It also takes a quicker look at the standard shields that are available.
Each of the subsequent chapters goes into more detail on a specific topic. Chapter 5 focuses on using motors - DC, Stepper, Servo and brushless DC. Chapter 6 is about object detection using ultrasonic, infrared range finding and PIR. Chapter 7 is on LCD displays. Chapter 8 is a big one on all sorts of communication topics - Ethernet, the Arduino as a web server, connecting to Twitter, Wi-Fi, Bluetooth, SPI and data logging.
Chapter 9 is the first of two on using the Arduino with other devices. It explains how to work with the Wii Nunchuk controller and the Xbox. Chapter 10 is about working with iOS and the iPhone. It's a shame there is nothing about using the Arduino with Android - this is perhaps the book's biggest omission.
Chapter 11 is on wearables - the LillyPad wearable version of the Arduino in particular. This seems to be an area that a lot of people are working in and having a lot of fun with at the moment. Chapter 12 explains how shields work with the idea that you might like to build your own. It also looks in detail at the Adafruit motor shield. Chapter 13 is about using existing large software systems with the Arduino including writing programs in Python that interfaces via the serial port.
This is not a book for the complete beginner, or any reader needing a lot of hand-holding. However, it isn't a book that needs you to be an expert at electronics or programming. You need to be able to read a simple circuit diagram, use a breadboard and be happy that now and again you are going to smell burning, even when the soldering iron is off. It also expects you to be able to program - although none of the code is particularly difficult and it is usually easy to follow. Perhaps the best aspect of the book is the way that it gives you a good idea of the entire Arduino system including the software libraries and some of the shields. It can't be complete because there's a lot of esoteric and less well known software and hardware out there.
So, with the proviso that this is not for the complete beginner - yes go and buy a copy. It's fun and tells you many things that you won't find in other books on the Arduino.