First, a word about Arduino and why you should care. An Arduino is what is called a "prototyping micro-controller" aka "really fun electronic gizmo toy."
Micro-controllers are everywhere. When you "turn on" a machine in your house, chances are there was already a micro-controller sitting there, running on a minute bit of juice from a built in battery, waiting for you to push a button. Then, you turned a dial or selected an option on your dishwasher, or changed the setting on your thermostat, or picked some alternative mode on your coffee pot, or shifted into a different gear using a "gear shift" in your fly-by-wire Prius, or you opened up the birthday card and cats meowed out "Happy Birthday."
All of those events involved a micro-controller, which consists of thee parts. There is a brain inside it, there is a set of sensors or actuators (a thing that detects that the greeting card has been opened, and an actuator that is the thing that makes the meowing sound by playing an WAV or MP3 file), and some software. The software gets in there by hooking an in production version of the micro-controller, likely once in its life, to a regular computer via a COM port (the same kind of interface used by your mouse, or a USB connection, etc.), and stuffing the software in there.
The Arduino Uno is a micro-controller that is very generalized, very large (a bit larger than a credit card), has a well behaved power supply, lots of connectors for either sensor or actuators, and a pretty fancy brain for a micro-controller, with lots of room for code written in a very powerful and fairly easy to use language similar to objective C. You can hook the Arduino up to most computers, using freely available software to communicate with it and compile your code. For the most part, you don't have to actually write code, it is provided by the developers of projects you are poaching, but if you want, you can go to town with it.
There are hundreds and hundreds of sensors and actuators, from thermostats to motors, gyroscopes to myriad things that light up, available for the Arduino, and in fact, anything that runs on low voltage can be hooked one way or another to it (if you know what you are doing). High voltage uses (like shifting a car or opening or closing a garage door) are done, of course, by using relays that are switches operated by a micro-controller but that pass any voltage level you want, if you get the right one.
The Arduino and its associated equipment can thus be used to replicate, design, and experiment with pretty much any thing a micro-controller can do. After "prototyping" it is trivial, for an expert, to rebuild the circuit using a less capable but perfectly adequate bunch of parts, and solder instead of just sticking things together (called "breadboarding") and so on. But no one really does that with Arduino. With Arduino you may leave the final product at it is (like the robot we built a few weeks ago) or, as in the case of the projects in an introductory book on how to use and have fun with an Arduino, you may just take the thing you built apart and build another thing.
So, this new book, The Arduino Inventor's Guide: Learn Electronics by Making 10 Awesome Projects, is sitting on my workbench ready to go to work.
The book gives detailed, understandable, and learning-oriented instructions for a home stoplight (helpful with toddlers in the house), a reaction time garme, a balance beam game, a diminutive greenhouse, an small piano, and a handful of other projects.
The coolest project might be a living breathing Logo turtle. Logo is a computer programming environment developed years ago to serve several functions including helping kids get interesting in coding. Logo is actually one of the oldest computer languages still in use (dates to the late 60s) and it is a general programming language, but it is mainly adapted to running the Logo turtle. The turtle is a curser that is moved around on the screen, and instructed here and there to drop a specific pen (it can have several different pens) so as it moves along it draws.
This project, from The Arduino Inventor's Guide: Learn Electronics by Making 10 Awesome Projects, is a physical turtle that draws on your rug! Or, hopefully, a big piece of drawing paper you put down for it.
I mentioned above that this book is unique. Here's how. I've looked at a Lot of Audrino project books, and there are no introductory books that provide detailed information on how to make interesting project enclosures and cases. The projects in this book rely heavily on the stuff you built the electronic into. The project enclosures are generally made of simple corrugated cardboard that you can get from an old box, or, if you want, from a craft store (for more interesting colors, better quality materials, less cat hair, etc.)
You can build all the projects in this book with parts you have acquired in the usual manner, but the book suggests you get the Sparkfun Inventor's Kit for Arduino, which is about 75 bucks. Note: This book is produced by No Starch Press and Spark Fun, so of course they suggest the Sparkfun Inventor's Kit for Arduino as a way of getting all the parts. But, by the time you add up an Uno or equivalent micro controller for 19 bucks, LCD display for nine bucks, fancy breadboard holder for 9 bucks , a shift register for 8 bucks, and miscellaneous other parts, you might be over $75 anyway. Or maybe not. You'll have to check around.
There is plenty of preliminary information to get a total novice started, and each project is rich in detail and very fully and expertly, clearly and helpfully, described.
This is an absolutely excellent choice, perhaps my favorite at the moment (and totally up to date) Arduino starter book.
It is formally correct that arduino uses a "language similar to objective C".
It is, however, more correct to say that it uses C++, since that is the language actually used by the arduino ide.
This is so bizarre. I work in a company that helps innovators develop new products and my brother's actually a coder. So I was pretty blown away to read this article - and if I'm right, which is by no means certain - it means that our everyday products are using a computer language.
This has given me so many ideas. Thanks for a really interesting article.