Become a fan of Slashdot on Facebook

 



Forgot your password?
typodupeerror
×
Image

Book Review: Arduino: a Quick-Start Guide 80

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 discussion has been archived. No new comments can be posted.

Book Review: Arduino: a Quick-Start Guide

Comments Filter:
  • TI LaunchPad too (Score:3, Informative)

    by 0100010001010011 ( 652467 ) on Wednesday March 02, 2011 @01:53PM (#35359848)

    If someone is thinking about getting into this, I would suggest you weigh the options between this and the TI LaunchPad [ti.com]

    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 [mathworks.com] 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.

    • I've been thinking about getting a TI LaunchPad, but I have to admit, I am a bit reluctant, as the samples I have found seem to assume you know a little bit of something. I can write code with the best of them, but how the hardware works, how to read schematics, how to add to these boards escapes me. Is there any references out there for people like me?
      • by vlm ( 69642 ) on Wednesday March 02, 2011 @02:26PM (#35360244)

        how the hardware works

        If you are thinking of TTL schematics, don't worry (too much). You'll learn soon enough what tristate I/O ports are, open collector, phrases like that.

        Worry about understanding internal devices and how to use them. Pick up any 16 bit PIC reference manual and see if you can figure out the code required to use the onboard timer device, or maybe read and write from the I2C port. Doesn't matter if you're planning to use the PIC, my point is I personally know that manual is pretty decent and pretty typical of what you're going to get, and pretty typical of difficulty.

        Coding for MCs isn't like high level work on PCs, its more like coding multiple simple little device drivers and gluing them together. And the only debugger you're likely to have is maybe you wired an LED to blink when certain code executes.

        If you like those "black box" games where you shoot a pool ball into a black box and it is emitted out another hole of the box, and you do that many times and then deduce the location of the bumpers inside, then you'll love the mental process of working on microcontrollers.

      • 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 La

        • Comment removed based on user account deletion
          • 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 :-)

            • Comment removed based on user account deletion
              • 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.)

    • Re:TI LaunchPad too (Score:5, Informative)

      by iluvcapra ( 782887 ) on Wednesday March 02, 2011 @02:17PM (#35360116)
      According to the page you linked to, the development environment is closed source and requires a license. It does say the hardware platform is open and documented, but the toolchain, which is what people end up doing their work, is not -- they don't even seem to target Linux, let alone Mac OS X, which Arduino does. Weirdly, their "Code Composer Studio [ti.com]" is built on Eclipse but requires an license and activation file, and a "30-day trial" is mentioned. Here be dragons...
      • Re:TI LaunchPad too (Score:5, Informative)

        by Miffe ( 592354 ) on Wednesday March 02, 2011 @02:47PM (#35360552)
        There is a port of gcc available at http://mspgcc4.sourceforge.net/ [sourceforge.net]

        I recently used this to build a small led cube, worked like a charm.
      • 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 wh

    • Don't forget the AVR Butterfly. About $15 more, but with a few more bells and whistles.

    • by Anonymous Coward

      One negative about the TI: The "easy to set up and use" software from TI only runs on windows. It's possible to set up the toolchain for MacOSX or Linux, but it's a pain, and then you're into real geekwad territory.

      The Al Williams of the world *really* don't get just how astoundingly easy it is to use an Arduino: plug it into your computer, start the Arduino IDE (or Processing) and have fun. Really, truly, effectively painless.

    • by alvieboy ( 61292 )

      Arduino is actually programmed in C++, with a bit of help from IDE to generate function prototypes.

      Just to let you know.

    • I bought a dozen of the LaunchPad dev kits and gave them out to other engineers at work in exchange for various engineering favors. Bribery always works like a charm, and I never told them they cost me under $5 each.

      • I bought a dozen of the LaunchPad dev kits and gave them out to other engineers at work in exchange for various engineering favors. Bribery always works like a charm, and I never told them they cost me under $5 each.

        You can be sure that the other engineers know exactly how much you paid for the kits.

      • 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.

    • I would not suggest the launch pad over Arduino for a beginner. I have both. The Arduino is much easier to start with.
    • The Arduino language is C [arduino.cc] with a bunch of libraries. In fact, it uses avr-gcc, and you can program it outside their IDE.

    • 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

    • 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.

      Ar

    • You also program it in real C, not the pseudo-C that is the Arduino language.

      Yeah, that pseudo-C language is *terrible*. It has all sotrs of weird things. Like you can embed functions in structs. Seems pointless to me. It has all sorts of weird other things, like strange extra preprocessor macros that *REAL* *C* doesn't have. I think the oddest one is the macro called __cplusplus. I really have no idea what that is about.

  • Huh? (Score:4, Insightful)

    by geminidomino ( 614729 ) on Wednesday March 02, 2011 @01:56PM (#35359890) Journal

    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...)

  • If you're not familiar w/the Arduinos, you'll have to return your geek license. ;)

    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 [arduino.cc]

    http://blog.makezine.com/archive/category/arduino [makezine.com]

    http://hackaday.com/category/arduino-hacks/ [hackaday.com]

    • 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.

      • 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.

        • by cr0nj0b ( 20813 )

          Arduino is a great starting point for micro controllers. You can put in raw AVR C++ code into the ide if you want. Personally, Arduino helped me get going quickly. Then if you outgrow it, you can use the same hardware and program without the IDE and all the libraries if you want. From there, it is easy to move to other ATMega/ATTiny chips if you need to.

          Arduino is more than make an LED blink. There are libraries for LCDs, Ethernet, read/write SD Cards, and examples for many sensors. (and much much more)

          Even

    • If you're not familiar w/the Arduinos, you'll have to return your geek license. ;)

      And if you're an engineer, you are familiar with the Arduino, and you've gone back to an SiLabs or other proper dev kit, or more likely, to the product you're designing ...

      • Exactly. I write software for PIC and AVR and I have a couple of dev kits for each but I end up using the prototype of the product once I am past the proof of concept phase. The point of Arduino is that a hobbyist can get something up and running quick but that's about it. It doesn't work out well when you're looking for a job in the MCU field and your experience is limited to slapping something together on Arduino.

  • 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 soekri

    • 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.

      The thing is that for a lot of hobbyists it tends to make sense to use a microcontroller (or something "between" a microcontroller and a regular computer) to control those LEDs rather than building custom stuff that needs to be replaced every time they want to make a change.

      Personally I cut my teeth on analog electronics as a kid, took a special "program" (that's what it's called here in Sweden) in HS that focused on digital electronics which meant I got to spend most of those years playing with transistors

    • by Anonymous Coward

      Problem with the PC/104 type boards is that they'll have a limited amount of I/O that can be accessed by Linux or your RTOS, if you want more you end up buying more I/O cards to stack up and hoping you don't get driver issues, or you end up designing an I/O card using the trusty ISA bus ( yes it still exists in the PC/104 ,thank god ) to get the extra A/D converters and digital required without building yourself a monstrous cube of wasted processing power.

      bread boarded PIC or whatever micro-controller can b

      • by vlm ( 69642 )

        Problem with the PC/104 type boards is that they'll have a limited amount of I/O that can be accessed by Linux or your RTOS, if you want more you end up buying more I/O cards to stack up and hoping you don't get driver issues, or you end up designing an I/O card using the trusty ISA bus.

        Google for I2C port expander and phrases like that. Assuming you've got a user accessible I2C on your PC/104 (quite likely on a modern one). You'll pay about 10 cents per I/O bit rather than $10 per I/O bit on a "PC/104 expansion board". Or for that matter go (nearly) pure I2C if you can. Its kinda like USB in that everything you can imagine, (from an EE perspective) is available in I2C. The key, if I haven't mentioned it enough, is I2C all the way.

        There are of course other solutions.

        My favorite design

    • 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

      • by vlm ( 69642 )

        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 aro

    • 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.

      That's not really good advice. Microcontrollers have their place -- in embedded systems, where you need just the right amount of processing power to do that which needs to be done, and no more. Many products don't need, and their budgets certainly can't support, a full-up 32- or 64-bit microprocessor system with a multitasking operating system and multiple cores and SDRAM and disk subsystem and the usual things associated with a PC. In those cases, an 8-bit micro with 64 kB flash, a few k of on-chip RAM, a

      • by vlm ( 69642 )

        "big PC" stuff is like trying to interface to a USB webcam, complicated floating point calculations, exotic DSP...

        Theoretically you can do that in "an 8-bit micro with 64 kB flash, a few k of on-chip RAM, a handful of I/O ports". After all that pretty well describes my home computer in the 80s and I / we did that kind of stuff. Well, maybe not well, and it was a heck of an expensive headache.

    • I think "the future" has more low-power electronics in it, so people really are optimizing for super low power situations. For example, you can run an arduino off a cheap solar light. Wake it up and have it chirp at you via XBee once in a while... for forty bucks per node or less. So there's loads of applications where it still makes sense to use a microcontroller. It just doesn't make sense to do a lot of thinking on one. There's also a shit-ton of applications where a microcontroller can help you reduce w

  • 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!

  • 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, the
  • by Animats ( 122034 ) on Wednesday March 02, 2011 @03:02PM (#35360776) Homepage

    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.

  • 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 the

    • The TI stuff is a bit of a mess for Mac and Linux.

    • People seem to use Arduino every day to actually do stuff. I also keep seeing AVR-based products hit the market, some in kit form and some only available completed, and I suspect many of them began life as an Arduino project.

      I still want to try the launchpad, but AVR is pretty ubiquitous all of a sudden.

    • by tibman ( 623933 )

      I think you've got it backwards. Arduino is great for programmers who don't know anything about electronics.

  • 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, pe

    • 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 wa

    • One of the reasons the Arduino is so popular is because it allows programmers -- people who don't know the first thing about electronics or micro-controllers -- to build hardware devices. As you note, this is often inefficient from a production standpoint because $0.03 worth of transistors will do the same job. But the Arduino is not meant for production runs, and that $0.03 worth of transistors has a prerequisite of $20k in hardware engineering -- if you don't already have that electronics knowledge it may

    • Although what you say is true, Arduino being a "toy" isn't exactly a bad thing.

      I liken it to hardcore Linux users' disdain for Ubuntu. (I'm obviously making a sweeping generalization here, one that might not even be accurate, but I feel it's an apt comparison.)

      It may not be the most efficient or the most technical or the most powerful, but it opens up a lot of new avenues for those that decide to try it out.

      I ordered an Arduino starter kit last summer and a couple of books just for the hell of it and had a

  • by Goody ( 23843 ) on Wednesday March 02, 2011 @09:49PM (#35365060) Journal
    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.
    • I know this is late, and likely only to be read by you (the parent poster), but the reason for the TI LaunchPad over the Arduino is price, plain and simple. A few key parts for the Arduino can throw my close to $100 in cost. The equivelent for the TI LaunchPad is significantly less.

A committee takes root and grows, it flowers, wilts and dies, scattering the seed from which other committees will bloom. -- Parkinson

Working...