Author: Michael McRoberts
Publisher: Apress, 2013
Aimed at: Arduino beginners
Reviewer: Harry Fairhead
A beginners guide to the Arduino - but what sort of beginners? Beginning programmers? Beginning hardware experts? Beginning electronics experts? All three?
This revised, but mostly unmodified, second edition makes this book better than it was previously, but unfortunately it still has the same few important faults that might just put you off buying a copy.
The book starts off with a basic guide to the Arduino, how to buy one and how to install the software. By the end of Chapter 1 you have everything set up and have run a demo script but you haven't created a program of your own.
This has to wait till Chapter 2 where Project 1 is an LED flasher. You get a list of parts - a breadboard, LED, resistor and some wires. From here you are told how to wire up the LED and what code to type in. You only get an explanation of what you are doing after the project has been completed. Both the program and the hardware are taken apart line by line and component by component. How you react to the explanations in this first project probably determines how you get on with the rest of the book.
The program is taken apart line by line but there is no attempt to lay foundations - words like function are used without much introduction. If you read the text you will find that variable and functions are explained in general terms but it would be better to have a clearly marked out section saying what you need to know before trying to understand the program. The idea of the processing loop is introduced by saying that it runs continuously - fine if you have an idea of what a loop is but if not you might be puzzled. Again the idea is explained but you might miss it if you don't read every word.
The hardware is explained in detail, but as with the software you might struggle if you really have no idea how electricity works. We are told what an Ohm is and how to work out the current limiting resistor for the LED using a formula. Then we have an explanation of resistor color coding. As long as you do know something of how electricity and perhaps electronics works you will be fine. It is better that the book attempts an explanation however rather than just giving the component values as so many other books do.
From this point the book continues in the same general way with project after project - at least three per chapter and 50 in total. Chapters 2 and 3 are all about using LEDs in different ways including traffic lights, chase effects and so on. Again we have the problem that some sophisticated ideas are introduced along the way. For example, the idea of an array is introduced as part of the chase effect in a few lines. There is also a small problem with the way programs are broken down into functions without much explanation of exactly why - it might be going to far to consider modular structured programming but a few words in its direction would have helped. .
Chapter 4 moves on to making sounds, then Chapter 5 deals with motors, 6 binary counters, 7 LED displays, 8 LCD displays and so on. You can tell that the level is ramping up fairly quickly - but to be honest I can't see an alternative way of doing the job.
Chapter 9 is where it gets really interesting with a look at how to use servos. Suddenly you can make things move accurately. Chapter 10 extends this to stepper motors. This uses both a stepper motor IC controller and a motor shield. By the end of the chapter we have built a line following robot.
Subsequent chapters extend the range of sensors and transducers you use to more exotic items. Chapter 11 is on pressure sensors, 12 is on touch sensors, 13 temperature sensors and 14 ultrasonic rangefinders.
Chapter 15 changes the subject to look at how to read and write an SD card - for me this chapter was worth the cost of the book. Next we have making an RFID reader using an ID-12 RFID reader IC and finally communicating over Ethernet using an Ethernet shield.
If you opt for the ebook version the layout diagrams are in color which makes them easier to follow. In the print book the illustrations are in black and white and this makes it much more difficult to see the wiring pattern as all of the wires are shades of grey. The biggest problem however is the fact that there are no schematic diagrams for the projects. There are occasional schematics for "theoretical" circuits but when you actually have to wire things together for real all you get is an illustration of how the wires go on a breadboard. This is fine for simple circuits but as things get more complicated it gets harder to see the sense:
The example above is one of the more complex so don't be too put off. However, a schematic would make it much easier to check the wiring and it also conveys the general idea of the circuit so much better. The final argument for schematics is that in the real world you are going to have to learn how to use one so better start early and get the benefit.
The code is also available on line and again this would help a beginner. However I don't think that the book is for the complete beginner - it is just too ambitious. If you have mentor to hand who can help you out if you get stuck then it would be fine. As long as you have a basic grasp of electronics and programming then this is a very good book. As a resource book of Arduino projects it's great.
Highly recommended as long as you are prepared to put some work in to make up for anything you don't understand - but I hope that they get round to adding schematic diagrams for the third edition.