Although the book does not claim to be a primer on microcontrollers, physical computing, embedded devices, communication protocols, or embedded software development, I found that it does a terrific job of providing the background necessary to build the projects and understand how they work. The author provides some references for further background in these areas, but I never found myself at a point where I needed to pursue those other sources, even though I have virtually no experience in electronics or embedded computing.
The preface and the first chapter of the book get the reader familiarized with the software and tools used throughout the book. The technology used in the book's projects are mostly implemented using a microcontroller hardware platform called "Arduino". Arduino is an open-sourced hardware design available from multiple vendors that is built around AtMel's ATmega microcontroller. The Arduino toolchain includes an IDE for developing Arduino programs in a language based on the Processing language and downloading them to the hardware. Programs running on a PC or Mac that interact with Arduino(s) are mostly implemented in Processing. I was surprised by how accessible the technology is. Working with the hardware components feels very software-like - independent modules that communicate with others using simple, well defined protocols - even for what seems like pretty complex functionality like Bluetooth or WiFi. Once you have a basic understanding of communicating with one type module, you are on your way to knowing how to deal with many others. The software side of things is also very nicely evolved - no assembler or proprietary C libraries required.
The latter portions of the book is project-oriented. The projects make use of a variety of hardware sensors such as proximity sensors, force sensors, flex and sensors. In addition, the projects demonstrate the use of communication modules that enable communications between multiple devices using wired and wireless protocols such as Ethernet, Bluetooth, ZigBee, and others. Some of the projects are more fun and whimisical than useful (such as the stuffed monkey pong controller and the cat bed monitoring system), but all of the projects illustrate some useful aspect of physical computing that could easily be applied for other purposes.
This is the first book I have read on this topic, but it has provided me with more than enough to get started building interesting and useful networked physical computing projects with microcontrollers, sensors, and communication modules. I think this book would help many people with sufficient interest and moderate technical skills get into working with this stuff too. In fact, Processing is intended to be used for creative and artistic projects more than a general purpose programming language. There are many examples of artists and other creative types who have used the tools described in the book to make interactive installations and objects. Afte reading this book, I am looking forward to ordering a few Arduinos, some sensors and getting started on some projects. This is a terrific book and I highly recommend it to anyone who has an interest in this area.
Blogged with Flock