Three questions for Michael Shiloh, co-author with Massimo Banzi of the new edition of Getting Started with Arduino, available at O’Reilly, Adafruit, and Amazon.
What new additions will readers find in this third edition of Getting Started with Arduino?
Michael Shiloh: The third edition of Getting Started with Arduino adds two new chapters. The first, “The Automatic Garden Irrigation System,” is an ambitious project that illustrates a more complex circuit and program. This chapter also talks about project design, testing, and construction and makes use of schematic diagrams, which were (and still are) described in “Reading Schematic Diagrams.”
This new chapter almost doubles the length of the book and really goes into a great deal of detail on how to design, plan, and construct a complex project. It includes component selection, how to approach a large programming project, and how (and why) to graduate from the invaluable but unreliable solderless breadboard to the more robust prototyping shield.
The second new chapter, “The Arduino Leonardo,” introduces the Leonardo. The Leonardo is a different sort of Arduino, because the USB controller is implemented in software, and not in a separate chip as had been the case. This allows the USB behavior of the board to be modified. This chapter also tries to demonstrate why the ability to emulate a keyboard or a mouse is such a profoundly different way of interfacing to a computer.
Apart from these new chapters, other updates have taken place: The third edition is written for version 1.0.5 of the IDE. In anticipation of the imminent release of version 1.5, differences between 1.0.5 and 1.5 have been noted. The “Troubleshooting” chapter has also been reorganized and expanded.
What are the challenges in documenting the updates to this fast-paced microcontroller?
MS: I don’t think the fast-paced world of microcontrollers has a tremendous impact on a beginner’s book like this. The whole brilliance of Arduino is putting something that, up until its invention, was restricted to hardware and software engineers, into the hands of designers, artists, and anyone interested in experimenting with physical computing. The challenges are in continuously improving the development environment and the documentation so that more beginners can feel comfortable getting started.
A related challenge is in resisting the urge to add all the latest capabilities of the new microcontrollers to Arduino. We are constantly reminded that our goal is to make microcontrollers approachable for beginners, and not to build the most flexible development system for the most powerful devices.
Do you have any tips or tricks to share?
MS: 1. Start small. Don’t try to solve the whole problem all at once: pick the part that most intrigues (or interests or frightens) you and figure that out as an isolated exercise. Then move on to the next, and so on.
2. Learn how to troubleshoot your programs and circuits. Study the troubleshooting section of this book and any other source you can find to help you develop your skills.
3. Buy a decent soldering iron and half a dozen prototyping shields. Graduate from the solderless breadboard as soon as you can. Prototype on the solderless breadboard, but any project that leaves the workbench should be soldered.
4. Don’t have any ideas? I love Tom Igoe’s suggestion: Build a game of Pong. Make it classic using Processing and a pair of potentiometers, or get creative, for example with light sensors, brain wave detectors, or Kinect as the input devices (but see tip #1, above).
5. Pay it forward! You have benefited tremendously from the Open Source philosophy of sharing information. Write up what you’ve done, what problems you ran into, and how you solved them. Don’t worry if it’s been done before — you will have a unique perspective that might be the one thing that will help a frustrated beginner succeed instead of giving up. Share on a platform of your choice e.g. WordPress, Instructables, or Make:Projects, and make them easy to find by posting pictures, videos, and links on Facebook, Twitter, Youtube, etc.