Recipes to Begin, Expand, and Enhance Your Projects
About the Author
Michael Margolis is a technologist in the field of real time computing with expertise in developing and delivering hardware and software for interacting with the environment. He has more than 30 years of experience at senior levels with Sony, Microsoft, and Lucent/Bell Labs. He has written libraries and core software that are part of the official Arduino 1.0 distribution.
This book presents the broad landscape of what's possible with Arduino. It is one of the few Arduino books available that have been updated for Arduino 1.0. Content is organized as "recipes", and you can combine them to do all kinds of things. Knowing what is possible should help to stimulate your imagination. The book does not go deep into any one subject, choosing instead to give you enough to get started, and pointers on where to go for deeper information.
Two kinds of skills are required (or developed) to build projects that use Arduino. One is working with electronics - gathering components, assembling them, and connecting them to the Arduino. The other is simple programming in C. If you have these skills but no experience with Arduino and want a quick start, this book will really help.
Someone with little or no experience in these areas may be able to figure it out from Chapter 1 in particular, and reading the rest carefully. Absolute beginners may find it easier to start with an absolute beginners book. If you buy this book and find it is too deep, keep it, you can always get a simpler book, then come back when you're ready.
The book is not a complete introduction to programming or electronics. The author chose to go broad to introduce his audience to a wide range of possibilities, rather than go very deep on any of them, but there is enough info to make it work, and references to go deeper.
This is the first time I have ever considered returning a book to Amazon. I purchased this book based on the great reviews and a brief glance through the online preview pages. However, once I received the book I realized that it is not at all what I am looking for.
If you are new to programming, this book may be great. If you already know how to program but want to learn about the Arduino, this is NOT the book for you.
For example, chapters 1-3 discuss basic such as for loops (section 2.14) and the sqrt() function (section 3.8). This book works hard to avoid "advanced" subjects such as pointers and printf. Even in "Chapter 17: Advanced Coding and Memory Handling", there is barely any mention of heap and stack (SRAM) versus static (flash) memory. Sure, Ch.17 mentions the keyword PROGMEM but for any further details, the reader is referred to [...]. I don't need a general discussion of memory management, I bought this book hoping for information on the specific features and quirks of Arduino.
Want to learn about Arduino sleep modes? "18.10: Reducing Battery Drain" might seem like a good recipe. Don't bother though, all it does is reprint the most basic example of using the freely available Narcoleptic library from code.google.com. There is no mention of various Arduino sleep levels, how they may affect your code and what they do to the internal timers.
Let's pick a more basic example, how about a real-time clock? There is absolutely no discussion of the hardware side of a real-time clock. On the software side, there are a couple simple examples on using the standard C time library. It's a bit misleading to see "#include <Time.h>" in recipe 12.4 (note the <> brackets). Yes, <time.h> is a standard C library.Read more ›
This is truly a beginners book. It is very well done. The book does not attempt to teach programming or electronics, but gives enough information to actually accomplish the small projects presented. I do have a background in electronics and programming but I followed the steps in the beginning of the book, including downloading and installing the software. Within 15 to 30 minutes we were downloading software to the Arduino and had it working. I also got my 13 year old daughter to make some simple "C" programming changes and download them to the Arduino. This, with no prior background in programming.
The book contains many chapters on interfacing various sensors and devices with Arduino. I scanned them all and each one just gave me more and more ideas on things I wanted to tinker with.
I don't like the icons used in the book for Tips/Warnings - why invent something new. I think the standard yellow caution would be better.
This is a great book and Arduino is an outstanding product for beginners to continue an interest or develop a new interest in electronics/programming.
Was this review helpful to you?
This Comprehensive Sourcebook represents a novel and much needed addition to the Arduino literature. Up until now many tutorials have been introduced which allow a hobbyist new to physical computing, to duplicate a range of experiments that will gradually increase his/her knowledge of the Arduino hardware, software library and IDE and show examples of interfacing to a variety of devices. This revolutionary sourcebook is most useful for the hobbyist who has gone beyond reproducing other people's experiments and now needs a easy-to-consult guide to any hardware, software, interfacing or communication problem s/he is likely to encounter in designing his own practical application (or advanced experiment with the Arduino. Fully-fleshed out explanations of the IDE and Software Library, constructing your own routines and libraries, device i/o with Digital, Analog and A/C line Connected Devices, as well as almost any type of Communication (Bluetooth, Zigbee, Ethernet or HTTP protocols). The detailed table of contents, clear illustrations and extensive index of this reference make finding the piece of Arduino lore you seek a pleasure.
This is the book for an Arduino, or other Physical Computing hobbyist who has gone beyond following other people's instruction and who now seeks a useful and comprehensive reference that will serve for years to come in a variety of Intermediate and Advanced Projects.
--Ira Laefsky IT & HCI Researcher and Consultant Formerly on the Senior Staff of Arthur D. Little, Inc. and Digital Equipment Corporation A Participant in the Philly Hackerspace--Hive 76