Book Review: Arduino: a Quick-Start Guide
Muad writes "Maik Schmidt is our guide in the Pragmatic Bookshelf's venture into the world of electronics. This is a compact work, like all others in the series, it goes straight to applicable examples and makes you get your hands dirty with real work. The Arduino platform has been described in many ways, but the best I have heard so far insightfully labels it 'The 555 of the future,' referring to the ubiquitous timer chip so many simple electronic projects make use of. If you haven't been hiding under a rock for the past few years, you have doubtlessly seen the plethora of material on the subject that's out there: even O'Reilly, which usually does not ship multiple titles on a single subject, has a variety of them. Most of these works are rather similar, the ones I prefer are Massimo Banzi's Getting Started with Arduino (O'Reilly, 2008), by one of the original developers of the platform, and the strongly related Getting started with Processing by Casey Reas and Ben Fry. These are brief books in the 100-page range, not exhaustive works, but covering the core philosophy and basic operation of the tools is sometimes the best way to jump into a new subject. Read below the rest of Federico's review
Arduino: A Quick-Start Guide
author
Maik Schmidt
pages
Pragmatic Bookshelf
publisher
263
rating
Federico Lucifredi
reviewer
9781934356661
ISBN
With this Quick-Start Guide you'll be creating your first gadgets within a few minutes
summary
8/10
There is a lot of material on the subject, even the current issue of Make magazine has a very good roundup (and not for the first time, if I may add). So, how does Maik's work stand out in the fray? Right after a brief introduction to ease you into the Arduino environment, the book turns to interesting projects, more sophisticated than the usual fare (read: not the usual LED-blinking using pulse-width modulation that every tutorial out there walks you through). Examples of this include connecting with a Wii Nunchuk, motion sensing, networking, infrared remote control interfaces, and more. These projects are the high-note of the book, and span almost two-thirds of its length — and are significantly better than most other project material currently in print.
This is a hands-on book, theory is kept to a minimum, as you don't really need previous experience to tackle an Arduino: the platform was specifically designed to cater to artists and designers, it is meant to be approachable by users who are not EE wizards. That said, if what you are after is learning the underpinnings of low-level electronics or hardcore embedded systems programming, this book is not for you: pick up a copy of Horowitz and Hill's The Art of Electronics (possibly including the student manual), and check back with us in a year or so for the digital followup recommendation. But if you have less time on your hands, and you just want to network-enable a coffeepot or build some interactive art display, the introduction to Arduino Maik delivers is quite sufficient for your aims, and it spans material other authors have been remiss to include, like developing libraries and (Appendix C) use of serial line protocols.
Zooming in on the details, perhaps the comment can be made that it would be good if there was a single kit available including all components used in the text: perhaps Makershed or Adafruit Industries will supplement their existing kits with one comprising the full range of the author's selection. On the plus side, I must highlight the extensive illustrations, which visually represent the breadboard linkage between the Arduino and the sensor or actuator being used with extreme clarity, and are much more effective in teaching neophytes than more traditional circuit designs. Where these are not actual pictures, they were generated using the alpha release of Fritzing, a very interesting piece of software (see fritzing.org) aiming at facilitating circuit design for those of us without a background in electronics.
The landscape of Arduino publications is shifting faster than many other subjects in print, and doubtlessly Maik's status as "king of the Hill" is but temporary — however, among those books on the subject I have personally surveyed, I am pleased to say that he currently holds the championship cup.
Federico Lucifredi is the maintainer of man (1) and a Product Manager for the SUSE Linux Enterprise and openSUSE distributions.
You can purchase Arduino: A Quick-Start Guide from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
This is a hands-on book, theory is kept to a minimum, as you don't really need previous experience to tackle an Arduino: the platform was specifically designed to cater to artists and designers, it is meant to be approachable by users who are not EE wizards. That said, if what you are after is learning the underpinnings of low-level electronics or hardcore embedded systems programming, this book is not for you: pick up a copy of Horowitz and Hill's The Art of Electronics (possibly including the student manual), and check back with us in a year or so for the digital followup recommendation. But if you have less time on your hands, and you just want to network-enable a coffeepot or build some interactive art display, the introduction to Arduino Maik delivers is quite sufficient for your aims, and it spans material other authors have been remiss to include, like developing libraries and (Appendix C) use of serial line protocols.
Zooming in on the details, perhaps the comment can be made that it would be good if there was a single kit available including all components used in the text: perhaps Makershed or Adafruit Industries will supplement their existing kits with one comprising the full range of the author's selection. On the plus side, I must highlight the extensive illustrations, which visually represent the breadboard linkage between the Arduino and the sensor or actuator being used with extreme clarity, and are much more effective in teaching neophytes than more traditional circuit designs. Where these are not actual pictures, they were generated using the alpha release of Fritzing, a very interesting piece of software (see fritzing.org) aiming at facilitating circuit design for those of us without a background in electronics.
The landscape of Arduino publications is shifting faster than many other subjects in print, and doubtlessly Maik's status as "king of the Hill" is but temporary — however, among those books on the subject I have personally surveyed, I am pleased to say that he currently holds the championship cup.
Federico Lucifredi is the maintainer of man (1) and a Product Manager for the SUSE Linux Enterprise and openSUSE distributions.
You can purchase Arduino: A Quick-Start Guide from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
If someone is thinking about getting into this, I would suggest you weigh the options between this and the TI LaunchPad
The LaunchPad doesn't have any 'shields', but if you're just looking for basic IO, it's MUCH cheaper with a full dev kit for under $5.
You also program it in real C, not the pseudo-C that is the Arduino language.
---------
If you have an Arduino and are lucky enough to have a copy of RealTime Workshop for Matlab laying around. (Most universities should have this installed on their computers. I know the ME department where I go has FULL Matlab on all computers).
There is a Simulink Arduino target: http://www.mathworks.com/academia/arduino-software/arduino-simulink.html Meaning no coding needed on your behalf, just setup your Simulink model and go. Great for controls engineers that may know how to sim something in Simulink, but not how to convert that to Arduino.
even O'Reilly, which usually does not ship multiple titles on a single subject, has a variety of them
Since when? (Learning X, Programming X, Advanced X programming, X Cookbook, X in a nutshell...)
Is cmdrtaco having an affair with the bint from adafruit or something?
Seriously, I want to know. Arduino is the Microsoft Bob of EE.
Arduinos can be used so many different ways... here're a few things you can do with them:
http://www.arduino.cc/playground/Projects/ArduinoUsers
http://blog.makezine.com/archive/category/arduino
http://hackaday.com/category/arduino-hacks/
Agile Artisans
The Arduino platform has been described in many ways, but the best I have heard so far insightfully labels it 'The 555 of the future,' referring to the ubiquitous timer chip so many simple electronic projects make use of.
I always thought of the pic 10f222 as the 555 of the future, since it has the classic 8 pin pin form factor and costs "about the same".
And the AC above is wrong, the Arduino is the Clippy of CS not the Microsoft Bob of EE.
One piece of advice for people getting "into" microcontrollers, is its a narrow field and rapidly shrinking. Rather than trying to do "big PC" stuff with a herd of 8 bit pics in raw assembly, you should be using embedded industrial single board computer PCs. PC/104, kinda like the soekris boards but tougher. Don't spend enough cash on "microcontroller stuff" to purchase a PC/104 SBC.
By narrow, I mean if you want to turn on a LED when a switch closes, use a freaking dropping resistor and some wire, not a microcontroller. Or a SSR or old fashioned physical relay, or whatever. If you want to do anything "complicated" like more than a line or two of Perl, or anything video or DSPish, use an embedded PC running linux or an embedded RTOS. If you're trying to optimize the heck out of power consumption or price, you might be stuck microcontrolling but no one whom knows anything likes to do that for fun, certainly not as a one-off or prototype. The gap in between where a microcontroller is ideal is technologically small (even if economically big). Something like a dishwasher controller or a clothes dryer controller is just about right.
"Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
author Maik Schmidt
pages Pragmatic Bookshelf
publisher 263
rating Federico Lucifredi
reviewer 9781934356661
ISBN With this Quick-Start Guide you'll be creating your first gadgets within a few minutes
summary 8/10
Got mine a few weeks ago. Have had a lot of fun just tinkering with the various inputs and outputs, but I think my first real project will be to make a music box with lights (and possibly motors) for my son. Should be fun!
Just keep swimming.
I am amazed that even here on Slashdot almost everyone seems to miss the point of the Arduino. It is very much the 555 of the... right now! It is not exactly the best thing for many jobs and is under-utilised for a lot (exactly like the 555) but it gets instant repeatable results at a tiny cost. These boards are proliferating through the retro-fit industry where they are replacing obsolete logic and ancient primitive PLCs. Where I work we've started to use them. We do the development on the full board, then pop the chip out, add one resonator and a couple of resistors and your on your way. Replacement chips (with bootloader) are 5ukp.
The Arduno is cute as a low-level microcontroller. Sometimes you need the next step up - something bigger than an Arduno, but without the bloat of Windows CE or Linux. Big enough to have a protected-mode OS with a networking stack and an Ethernet port, but small enough that you don't need system administration.
Gumstix has some entries in that space, but they don't cater to the hobbyist market.
I think you miss the point - isn't learning while having fun but doing something that is ultimately pointless what a good hobby should be?
I like Arduino. It is a fun hoppy - My example: I wanted to build a "big switch" interface for my special needs son.
Option one - a 3.5mm socket on a USB mouse
Option two - An Arduino with a bit bashing USB stack, emulating a USB keyboard.
Guess which works best? Option one - The mouse is always connected to the PC so I just plug the switch into the mouse and it works.
Guess which I learnt the most doing, and I had the most fun with, and maybe even feel proud of?
Yes, the Arduino is ubiquitous.
It is also a microcontroller with the training wheels invariably built-in for everything.
It is, itself, already a Quick-Start Guide to real microcontrollers.
If the only way you can accept an assertion is by faith, then you are conceding that it can't be taken on its own merits
Would be nice if this book had a Kindle edition, is there any information regarding potential release in the near future?
It is not some wiz bang new invention. It is an ATmel AVR on a protoboard with a easy to use front end (IDE). Very useful for sure. But it is not going to eliminate the millions of low end Micro-controllers sold every year, or the LM555.
The free tools that come with TI launchpad and most other tools are superior to Arduino in every way. If you can write basic C code it is is a no-brainer. From wikipedias entry on Aurdino "It is designed to introduce programming to artists and other newcomers unfamiliar with software development". If you are not an "artist" or a "newcomer" to programming, just drop this.
Even for a beginner, I would not steer them down the Aurdino path. It is kind of a short dead end. Better try out the TI launchpad with their ID. It will set you back $3.40, and give you a large library, and get you going with C or C++.
don't cut it off www.mgmbill.org
The TI stuff is a bit of a mess for Mac and Linux.
Reality is defined by the maddest person in the room
Am I the only one for whom the first association to 555 was the brand of cigarettes, not the timing chip?
The world needs more toilets that tweet when flushed...go Arduino!
I think you miss the point - isn't learning while having fun but doing something that is ultimately pointless what a good hobby should be?
I like Arduino. It is a fun hoppy - My example: I wanted to build a "big switch" interface for my special needs son.
Option one - a 3.5mm socket on a USB mouse
Option two - An Arduino with a bit bashing USB stack, emulating a USB keyboard.
Guess which works best? Option one - The mouse is always connected to the PC so I just plug the switch into the mouse and it works.
Guess which I learnt the most doing, and I had the most fun with, and maybe even feel proud of?
Ah exactly and perfectly true IF your hobby is learning to program an arduino. And there is absolutely nothing wrong with programming a MC as a hobby, I enjoyed my 68hc11 in ye olden days and modern PICs today.
But - If your hobby is the typical make magazine article of automating your fishtank feeder or monitoring your hamster cage wheel complete with a twitter interface, you're better off maximizing your efficiency, and doing it in about five lines of perl or ruby, not necessarily taking the long way around.
"Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
In contrast to what the summary suggests, there's a big difference between an Arduino and a 555. The 555 was a barebones timer chip which could be misapplied to accomplish a lot, but required a decent understanding of basic electronics to use in any way other than its basic concept allowed (a timer/multivibrator). The Arduino is a toy, mostly for non-engineers, who are interested in learning more. I don't think there is a real analogue (oh, I'm so punny) to the 555 in the microcontroller world except, perhaps, the $5 TI Launchpad as so many other posters have suggested. The Launchpad is a cheap and nearly barebones micro which can be used to do a wide range of simple tasks and can be misapplied to very complicated things given a sufficiently capable user.
I think this is the real root of why most EEs "hate" the Arduino - it's overkill for most of what it is used for. "Proper" engineering implies designing the right solution to a problem, whereas Arduino "engineering" applies an Arduino to a problem. In both cases a solution is achieved, but the Arduino solution is so often needlessly complicated: a microcontroller is not needed to blink an LED when a 555 will suffice.
Just my $0.55 (US inflation, 1774-2008, for $0.02)
Great timing on that comment - I just spent last month playing with 555s for the 555 Design Contest that accidentally occurred. If you want to blink LEDs, you don't need a 555 - you can use two transistors instead. (And in fact my contest project starts with a 2-transistor oscillator driving two LEDs, and feeds the voltages from it to a 555-based PWM circuit that flashes more LEDs. I've also got an Arduino in it, which is way overkill when I'm just using it for the 5v power supply (:-), but in fact it was convenient to also use it as a voltmeter to test what the transistors and 555 were doing.)
The Launchpad isn't dumber than the Arduino, just cheaper - the MSP430 is a 16-bit chip, but has less RAM and Flash than the 8-bit AVR Atmega328 that Arduino uses. The big difference is in the development environments - the Arduino comes with a higher-level environment, so you don't have to start down at the Raw Bits unless you want to (unlike the MSP430, where you're pretty much forced to), and comes with enough hand-holding that an artist can start doing real work right away. Also, the Launchpad makes you solder the headers and (surface-mount!) timer crystal onto the board yourself, instead of just plugging in shields or wires, but it is better integrated with USB because it doesn't have the leftover serial-FTDI design that Arduino started with.
Bill Stewart
New Fast-Compression-only CPR http://preview.tinyurl.com/dy575ks
Arduino is a better place to start - the package really does give you everything you need to get up and running, between development environment, documentation, hardware, and friendly handholding-for-artists. (You'll still find yourself running out to Fry's or Radio Shack to buy more LEDs and resistors - I'd recommend buying a couple packages of "20 assorted LEDs", "50 assorted resistors", etc. to save yourself some trouble.)
You really don't need to know much more for Launchpad than for Arduino, but the Launchpad docs generally assume you already know what you're doing, and the Arduino docs generally assume you don't know what you're doing and want to learn, so there's a lot easier learning curve. Also, Launchpad's a bit closer to the metal than Arduino, where you can start at a slightly higher language level to write your code, if you want to, and Launchpad requires you to solder the headers onto the board yourself, so it assumes you're good at soldering. (And if you want to use the timing crystal, it's surface-mount, which is really annoying if you're not already experienced with soldering.) With Arduino, soldering's optional - you can breadboard everything, or use shields.
Once you've done your first Arduino project, you can do later stuff by just getting the AVR chips and putting them on a breadboard yourself if you'd prefer.
Bill Stewart
New Fast-Compression-only CPR http://preview.tinyurl.com/dy575ks
Yeah, it's under $5, but you'll have to buy a soldering iron and some headers to use Launchpad, so it's pretty much equivalent. With Arduino, you can do everything on breadboards. And in practice, you're going to end up buying a bunch of breadboards, LEDs, resistors, alligator clips, baling wire, accelerometers, a Wii Nunchuck, speakers, and other stuff to go with it, so the cost is pretty much equivalent. And if you want to play with the AVR environment much, you'll either end up spending $30 to buy an ICSP programmer or just use the Arduino to do it instead, so you might as well just buy it.
On the other hand, Launchpad's cheap enough that once you've gotten started with the Arduino, you might as well also buy a Launchpad. It's what I would have been playing with next except they were backordered and by the time it arrived I had started playing with 555s.
Bill Stewart
New Fast-Compression-only CPR http://preview.tinyurl.com/dy575ks
At least one of the TI compiler suites comes in a limited-memory-crippled free-beer version, but that's ok in practice if you're using it with Launchpad - it limits you to something like 4K, but the MSP430 chips that come with the Launchpad are the versions with only 2K flash and 128-bye RAM, so it'll let you do anything those chips can do, and let you learn about TI's chip environment.
If you decide to start using the bigger chips from TI, the limitation may get annoying, but by that point you can decide whether to use GCC or (if you're using it commercially) to pay for the non-free development environment because you like those TI chips better than the AVR ATmegas that can use the Arduino environment.
Bill Stewart
New Fast-Compression-only CPR http://preview.tinyurl.com/dy575ks
Arduino comes with pretty much everything you need to get started in a really sophisticated programming environment. It's not quite down to the metal (you can go read rants about "Why DigitalWrite() is Too Slow!" for explanations), but it's close enough, and you can ignore the higher-level libraries and get at the raw bits if you want to. If you're more interested in using them for artwork than engineering, you don't need to do the deep dive, but it's a great place to learn.
Bill Stewart
New Fast-Compression-only CPR http://preview.tinyurl.com/dy575ks
When I did my 555 contest project, I mainly used the Arduino as a handy 5-volt power supply, but I also ran a voltmeter script on it that sent its output to my PC screen. Instead of using a traditional voltmeter, I'd get a nice trace of the voltage levels it was seeing on the capacitors, so I could look at the last 100 samples instead of just guessing "it was bouncing between about 1-2v" (or "0.76 and 2.07", on the digital voltmeter, but the batteries on that were dead :-)
An oscilloscope would have been another traditional approach, but I don't have one of those, and the Arduino was a good in-between step.
Bill Stewart
New Fast-Compression-only CPR http://preview.tinyurl.com/dy575ks
A friend of mine who worked in QA used to use Scharffenberger chocolate bars as a bribe when the developers fixed things that made her life easier. They were the small ones, the recipients knew they only cost $2, but it's really the appreciation that counts.
Bill Stewart
New Fast-Compression-only CPR http://preview.tinyurl.com/dy575ks
I don't get all the Arduino haters in this thread. I've been programming PICs in assembly for years and just recently picked up an Arduino. I'm having a ball with it. I'm sure the TI Launchpad is fun, but it's obviously so cheap right now because TI is trying to flood the market and gain market share. It appears their development tools are not open source and are crippled. The Arduino is not offered or controlled by the microcontroller manufacturer, Atmel; it's an open source project and you can get Arduino variants from various companies. Furthermore, the boot loader, compiler, and board designs are open source.
You all can sit here and argue about what's a real microcontroller and make faulty Microsoft Bob analogies, but the Arduino has an established community and people are having fun with them. There are people doing more with Arduinos than blinking LEDs. If you want to impress your friends with a so-called "real" platform and play EE snobbery, have at it. Hopefully TI will still be gracious enough to keep selling their boards at $5 next year and let you use their free-as-in-beer development environment.
Tired of being "punished" by the Slashdot $rtbl since 2002. I'm now over at http://soylentnews.org/ .
I've seen a lot of comments about the arduino not being good enough. As I am a budding EE, I ask, what is good enough? What should I be playing around with?
Furthermore, some people seem to talk about embedded linux or real time OS being the greatest thing ever. So, where are these development boards? How do I get my hands on one???
It's one thing to denounce arduino, but you could at least offer alternatives while you're shitting all over everything :P
Also LPCxpresso.
$30 for a 120MHz Arm Cortex-M0, 512k Flash, 64k of RAM with USB, Ethernet, 12-bit ADCs, and more peripherals than you could want. All this on a PCB that integrates a USB debugger.
The development environment is based on eclipse and gcc. While the environment claims a limit of 128k without purchase, I suspect that a gcc port could lift this restriction. Not sure if the debugger would survive the transition to OSS or not.
Shields are available from embeddedartists, but they're quite expensive.
Arduino shouldn't be able to compete with this, but the hobbyist scene is enthralled with arduino right now and hasn't really met lpcxpresso yet.
If you are looking for LEDs and tons of little parts for projects cheap may I suggest BGMicro? I have a customer that helps the local college robotic and rocketry clubs and has been buying from them for ages and swears by them. You can get everything from solar panels to IR illumination and all the LEDs in every color they make, all cheap and delivered to your door. Great for the DIY project hacker type.
ACs don't waste your time replying, your posts are never seen by me.
The schematic and documentation application Fritzing is the program you need once you get an Arduino running and doing something useful.
Note the link in the book review.
They look like one of many good places to order things online; I got started with Sparkfun and Seeed Studios, and Mouser and Digikey and FunGizmos seem to be popular.
I was using Fry's and Radio Shack more as examples of places you end up dropping by to pick up a couple of transistors or some more connector wire or whatever on your way home from work. (RS has a coupon good for $10 off your next $40 purchase, which I almost never spend there; it's the $5-10 trips that add up :-)
Bill Stewart
New Fast-Compression-only CPR http://preview.tinyurl.com/dy575ks
Yeah but if they charge you $50 for $10 worth of stuff, is it a good deal? I don't think so.
I don't know how the RS is in your area, but in mine the little parts that cost a buck or two WITH shipping at BGMicro will cost you $12+, and a simple printer cable which I bought for just $3 WITH shipping from Monoprice (which is an EXCELLENT source for cable and adapters BTW. I just picked up a couple of 5 pin DIN to 6 pin PS2 for a couple of classic clicky clacky KBs I got give to me for $3 with shipping!) they wanted $18! For just a bloody printer cable!
So while I don't mind shopping local when the prices are reasonable with RS at least in my area you are looking at 400%-600% markups. I'm sorry but at those prices I can afford to wait a day or two.
ACs don't waste your time replying, your posts are never seen by me.
Oh, yeah, there are definitely things at Radio Shack that are hopelessly overpriced. On the other hand, they've typically got a dozen drawers of electronics components (resistors, ICs, connectors, etc.) most of which are reasonable, and I can get them this afternoon (since I live in Silicon Valley, I can also drive a couple miles farther and go to Fry's for a bigger selection, or Hal-Ted for a much much bigger selection, but RS's pretty convenient.)
Bill Stewart
New Fast-Compression-only CPR http://preview.tinyurl.com/dy575ks