Author: Tero & Kimmo Karvinen
Publisher: O'Reilly, 2011
Aimed at: Newcomers to technology
Pros: Motivational, includes clever projects
Cons: Not enough explanation, requires expenditure on components
Reviewed by: Harry Fairhead
This is an impressive full color book and it is good to look at even if you never build any of the six projects it describes. Although Arduino figures heavily in the title, it is important to know that this is just one of the technologies covered - it is, however, used in five of the six projects. The book is really about building embedded systems and the book is better summed up by the small yellow flash in the top right hand corner:
"Build robots and other electronic devices"
It is about acquiring a collection of skills that are useful in building such systems. As is the way with constructional books these days, there isn't much about electronics - resistors and relays is about as far as this goes. This doesn't mean that the projects aren't sophisticated, however. If anything you might decide that they are too sophisticated and perhaps too expensive. For example in the first project an ultrasonic module costing $50 is used - not a crazy price but this is the first project. Later a total of three are used to create a handwave sensor. Using such pricey modules isn't a big problem and it's the only way that the book can create anything very sophisticated - just as long as you know.
Chapters One and Two are an introduction to embedded hardware in general and the Arduino in particular. If you are the sort of person who likes organising your space you will love the section on buying and using tools. The getting started with Arduino section covers installation on Windows 7, Ubuntu and the Mac. It is a reasonable introduction but very slight - you might well need to consult something a bit deeper on programming and using the Arduino before moving on.
The book really gets started at Chapter 3 with a project to build a "Stalker Guard". This uses an ultrasonic sensor and a vibration motor to alert you if anyone comes too close. It is certainly not a "hello world" project and even the idea of putting together a distance sensor and vibration motor is novel and might convince you that you can build not just useful things but things that you can't just go and buy in a tech shop. It is one of the problems of motivating beginners to build things that usually most of the early simple examples are either silly or pale copies of what you can buy commercially. The instructions on how to build the device are very clear and you shouldn't have any trouble following or getting the thing to work - partly because even though it is sophisticated all of that sophistication is in the ultrasonic module. One small complaint - the copyright line in many of the tiny programs is silly. Do the authors really think that there is any merit in copyrighting somethings so simple?
The second project is an Insect Robot - basically take two servos and construct a walking robot using them to power wire legs. Simple yes but a good way to learn how to work with off-the-shelf servos. There is some simple construction work involved but most of the work is in building a program that will make it walk forward, backward and turn corners. After the basic robot we add an ultrasonic sensor to create a program that makes it avoid obstacles. Now the programs are getting a little on the long side but the explanations of how they work are still reasonable if you are prepared to read them through.
The third project is "Interactive Painting" although I think that something got lost in translation (the author are Finnish and the book has been translated) because the project controls a slide show with hand gestures. Could it be interactive "panning"? This is really clever stuff and well into the Kinect world of interactive body input. In this project you learn how to read resistor color codes. It doesn't however explain how to work out the resistor to use with an LED. The other odd part of the project is that the code is provided as Python and Processing. I can't see why this is a good idea Beginners are usually struggling to learn how to do things in one language and why Python? I like Python but there are lots of other languages more like the Arduino's dialect of C - Processing for example! These small problems aside the reset of the article takes you though a very complex build with some long programs to figure out. It is a sophisticated project however and using three ultrasonic sensors to workout which way a hand is being waved in front of the TV screen it a great idea.
Project Four is an outlier from the rest of the book. It shows you how to create an Android program. I can see that this in the same general area of interest but the skill set needed to do it is just so different I don't think that including it in the same book as the Arduino is a sensible choice. However, it does mean that a later project can make use of an Android as a controller. The project - a "boxing clock" - also isn't in the same league as far as being motivational. The reader could quite rightly conclude that it is a lot of work for little return. The point is that programming mobile phones is something that only becomes rewarding after you have spent a lot of time learning to do things that aren't very useful on their own. Still if you want a big project as an introduction to phone programming here it is.
Project Five brings us back to hardware and systems. The idea is to buy a cheap home automation kit complete with handheld remote and then hack the remote so that an Arduino can do the controlling. This introduces the idea of a relay to replace the button contacts. The only part that seems odd is the way that the Arduino is then connected to a PC for the ultimate control. It would be more sensible to use a relay driver directly connected to the PC or if an Arudino is used then why not allow it to be a slave controller using a downloaded table of events. This seems to be only part of a project - which would be a good thing if there were lots of suggestions for how to improve it, but there aren't.
The final project is a big one - a soccer robot. This uses modified servos to provide continuous rotation motors to drive the robot. Communications are provided by another high cost module - a Bluetooth module. A lot of the project description is taken up with describing how to create a Bluetooth link . Next we take apart a broken hard disk. What for? At first I thought the stepper motor might be the valuable resource being recovered but no - the metal from the case is use to create a frame for the robot. This I really don't understand - surely there are other sources of metal boxes? The final section is on extending control to an Android cell phone. This is a big project and if you follow it then chances are you are going to develop the robot well beyond what is presented.
This is a motivational book that might get you to build things mostly using off the shelf modules rather than from scratch. It is very light on deep explanations - I was for example shocked to find on page 189 a box that explained that the black boxes on the PCB being modified were "microchips". This is technology as black magic, but if it encourages people to pickup a hammer, drill and soldering iron it must be good - right? The reader who gets hooked can always go and read the details that change magic into science and technology at a later date.
Not a perfect book, but I would find it very hard not to recommend it.