Beta
×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Book Review: Arduino: a Quick-Start Guide

samzenpus posted more than 3 years ago | from the read-all-about-it dept.

Books 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 reviewThere 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.

cancel ×

80 comments

Sorry! There are no comments related to the filter you selected.

TI LaunchPad too (2, Informative)

0100010001010011 (652467) | more than 3 years ago | (#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.

Re:TI LaunchPad too (2)

TheRealMindChild (743925) | more than 3 years ago | (#35359936)

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?

Re:TI LaunchPad too (3, Insightful)

vlm (69642) | more than 3 years ago | (#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.

Re:TI LaunchPad too (0)

Anonymous Coward | more than 3 years ago | (#35361446)

Hope it won't ruin your day to find out the Arduino IDE has a window you can open up to get text printouts from the code running on the Arduino...

Really, it's not 1985 any more :-)

Re:TI LaunchPad too (1)

vlm (69642) | more than 3 years ago | (#35362244)

Hope it won't ruin your day to find out the Arduino IDE has a window you can open up to get text printouts from the code running on the Arduino...

Really, it's not 1985 any more :-)

Nice, instead of flashing an LED right before my interrupt routine returns, I could print it to the screen. Doesn't actually change development very much, but could occasionally be convenient...

Arduino IDE text windows (2)

billstewart (78916) | more than 3 years ago | (#35363382)

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.

Re:TI LaunchPad too (0)

Anonymous Coward | more than 3 years ago | (#35362170)

I got three of them, but they won't let me log in to download the software from my linux box using firefox.

Arduino is a better place to start - it's complete (1)

billstewart (78916) | more than 3 years ago | (#35362926)

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.

Re:Arduino is a better place to start - it's compl (1)

hairyfeet (841228) | more than 3 years ago | (#35366754)

If you are looking for LEDs and tons of little parts for projects cheap may I suggest BGMicro? [bgmicro.com] 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.

Re: BGMicro (1)

billstewart (78916) | more than 3 years ago | (#35377454)

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

Re: BGMicro (1)

hairyfeet (841228) | more than 3 years ago | (#35377882)

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

Re: BGMicro vs Radio Shack (1)

billstewart (78916) | more than 3 years ago | (#35387716)

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 (4, Informative)

iluvcapra (782887) | more than 3 years ago | (#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 (4, Informative)

Miffe (592354) | more than 3 years ago | (#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.

Re:TI LaunchPad Free-Beer Compilers (1)

billstewart (78916) | more than 3 years ago | (#35363170)

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.

Re:TI LaunchPad too (2)

Steauengeglase (512315) | more than 3 years ago | (#35360168)

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

Re:TI LaunchPad too (1)

Anonymous Coward | more than 3 years ago | (#35360174)

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.

Re:TI LaunchPad too (2)

alvieboy (61292) | more than 3 years ago | (#35360596)

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

Just to let you know.

Re:TI LaunchPad too (1)

boristdog (133725) | more than 3 years ago | (#35361052)

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.

Re:TI LaunchPad too (1)

Bassman59 (519820) | more than 3 years ago | (#35361276)

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.

Re:TI LaunchPad as a bribe (1)

billstewart (78916) | more than 3 years ago | (#35363404)

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.

Re:TI LaunchPad too (1)

waldozer (1204634) | more than 3 years ago | (#35361660)

I would not suggest the launch pad over Arduino for a beginner. I have both. The Arduino is much easier to start with.

Re:TI LaunchPad too (1)

icebraining (1313345) | more than 3 years ago | (#35361864)

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.

TI LaunchPad isn't significantly cheaper (1)

billstewart (78916) | more than 3 years ago | (#35363040)

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.

LPCXpresso pwns the arduino. (1)

Annirak (181684) | more than 3 years ago | (#35366184)

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.

Re:TI LaunchPad too (0)

Anonymous Coward | more than 3 years ago | (#35366730)

The arduino compiler is just gcc. It actually is full fledged C++ with template support. The nice thing the Arduino people have done is set it up so that you do not have to know this to build useful applications. However objects and templates are there for you to use of you want (asm as well of course).

Re:TI LaunchPad too (0)

Anonymous Coward | more than 3 years ago | (#35367762)

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

i don't really like arduino, but you the "pseudo-C" you're talking about is actually C++ wrapped with weird libraries and some preprocessing.
+1 on TI launchpad though

Re:TI LaunchPad too (1)

serviscope_minor (664417) | more than 3 years ago | (#35368564)

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.

Re:TI LaunchPad too (0)

Anonymous Coward | more than 3 years ago | (#35403346)

I think you'll receive pretty interesting responses, this article will be very beneficial
  to many people in more than one ways. Thanks for posting!
  itower [emlakkulisi.com]

Huh? (3, Insightful)

geminidomino (614729) | more than 3 years ago | (#35359890)

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

Re:Huh? (-1)

Anonymous Coward | more than 3 years ago | (#35359970)

who cares???? ARDUINO! I think I'll start an Arduino blog. Because, well, Arduino! ARDUIINOOOOOOO*spurt* ahh

Re:Huh? (0)

Anonymous Coward | more than 3 years ago | (#35359994)

Don't forget the pocket sized versions of those!

I guess I must have been living under a rock, cuz I haven't seen the plethora of stuff out there on Arduino, AKA today's 555.

Re:Huh? (1)

human-cyborg (450395) | more than 3 years ago | (#35360042)

And X for System Administrators.

oh look another arduino article (0, Troll)

Anonymous Coward | more than 3 years ago | (#35359992)

Is cmdrtaco having an affair with the bint from adafruit or something?

Seriously, I want to know. Arduino is the Microsoft Bob of EE.

Re:oh look another arduino article (1)

Bassman59 (519820) | more than 3 years ago | (#35361286)

Is cmdrtaco having an affair with the bint from adafruit or something?

Seriously, I want to know. Arduino is the Microsoft Bob of EE.

EXACTLY.

Re:oh look another arduino article (0)

Anonymous Coward | more than 3 years ago | (#35362080)

Apparently Packt stopped sending checks so Arduino is picking up and Taco is sucking their dicks instead.

More Arduino Info... (1)

jarich (733129) | more than 3 years ago | (#35360004)

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]

Re:More Arduino Info... (0)

Anonymous Coward | more than 3 years ago | (#35360424)

There's one more variant: Netduino Plus [netduino.com] that will let you run .Net embedded code, connect to ethernet and use SD Micro storage.

A little redundant... (1)

MacGyver2210 (1053110) | more than 3 years ago | (#35361014)

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.

Training Wheels are Just Fine, thank you (1)

billstewart (78916) | more than 3 years ago | (#35363236)

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.

Re:Training Wheels are Just Fine, thank you (1)

cr0nj0b (20813) | more than 3 years ago | (#35368338)

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 in Arduino's bitmath page: http://www.arduino.cc/playground/Code/BitMath [arduino.cc] They show you the low level AVR C if you want to use it.

I am not a programmer, but with the available libraries, I was able to accomplish many projects quickly. In less than a year of using arduino in spare time, I learned enough to move on to other AVR micros. GCC supports AVR micros. The TI Launchpad is highly restricted to windows.

No comment on PIC. Have not had time to try programming with PIC.

Re:More Arduino Info... (1)

Bassman59 (519820) | more than 3 years ago | (#35361312)

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

Re:More Arduino Info... (1)

William-Ely (875237) | more than 3 years ago | (#35363944)

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.

555 of the future (0)

vlm (69642) | more than 3 years ago | (#35360118)

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.

Re:555 of the future (1)

mikael_j (106439) | more than 3 years ago | (#35360290)

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, registers, ALUs and other stuff. I also got my first taste of using a single chip computer (the 68HC11 to be exact) and honestly, for a whole lot of stuff I'd rather have some somewhat generic hardware for interfacing with things like switches, LEDs and other digital/analog IO while the actual logic takes place in a microcontroller. Maybe I'm lazy, maybe it's not "economic" to "waste" a few extra bucks on a microcontroller when I could "just" spend a weekend building in hardware what takes me a couple of hours to do in code or whatever other thing people might think of me, I like not having to dismantle a hobby project of mine and then spending days rebuilding it because of minor logic bugs or because I wanted to make some little feature change.

Re:555 of the future (0)

Anonymous Coward | more than 3 years ago | (#35361616)

My son (a high school senior at the time) built a "Night Rider" LED scanner for his car with an Arduino kit he received while touring UMass' EE program. Hardest part of the project was buying the current limiting resistors at Radio Shack...

Would have been a piece of cake to add subroutines to handle "waking up" / "going to sleep" (i.e. slowly converge / diffuse the beam, using different duty cycles to control the intensity), randomly stopping to "track" a target, or even allowing manual input to drive the sweep angle via a pot. Much easier to update a line of code to change the behaviour than ripping the hardware apart to reconfigure.

Re:555 of the future (1)

Anonymous Coward | more than 3 years ago | (#35360934)

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 be converted to a prototype and then to a small production run within weeks.

Trick is to guess what size PIC etc you are likely to need before starting any wiring, cause you'll ALWAYS need more I/O.
You'll also have a much better idea of production costs as the development starts with the option of going to FPGA or PC/104 or down to lower level should you need to.

Re:555 of the future (1)

vlm (69642) | more than 3 years ago | (#35362498)

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 at this time is FPGA with a soft-CPU core inside. You need exactly five I2C and two RS-232? OK fine synthesize them in, right at the address and package pins you want. Or you want two USB instead? OK put those dudes in. You want a hardware multiplier? OK synthesize that into the FPGA, map it into memory, and write your software to use it. I like the xylinx -blaze family of cores. Like a virtual lego set. Big fun. I wish you could buy a spartan 3 in a DIP package. Boot time and power consumption are not exactly ideal.

Re:555 of the future... yes, but... (1)

hamster_nz (656572) | more than 3 years ago | (#35361002)

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?

Re:555 of the future... yes, but... (1)

vlm (69642) | more than 3 years ago | (#35362384)

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.

Re:555 of the future (1)

Bassman59 (519820) | more than 3 years ago | (#35362106)

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 handful of I/O ports, perhaps ADCs and DACs, and you're good to go.

And, yes, the number of 8-bit microcontrollers sold per year overwhelmingly dwarfs the sales of PC-class microprocessors.

Re:555 of the future (1)

vlm (69642) | more than 3 years ago | (#35362328)

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

Re:555 of the future (1)

drinkypoo (153816) | more than 3 years ago | (#35368220)

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 weight by increasing complexity, for example replacing a sender with a smart sensor, powering it off a source already near it, and replacing a big fat wire with a teensy tiny one that only has to carry a digital signal. The 10F222 seems ideal for this specific purpose, especially if you can implement a daisy-chained or bus-type serial network at the same time, due to its small size and low cost.

Review Info is messed up (0)

Anonymous Coward | more than 3 years ago | (#35360128)

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

Love it (1)

FencingLion (1553981) | more than 3 years ago | (#35360570)

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!

Missing the point (1)

folderol (1965326) | more than 3 years ago | (#35360754)

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.

Re:Really Missing the point (0)

Anonymous Coward | more than 3 years ago | (#35361370)

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.

Now we need the next step up (2)

Animats (122034) | more than 3 years ago | (#35360776)

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.

Re:Now we need the next step up (0)

Anonymous Coward | more than 3 years ago | (#35361526)

The AVR32 and PIC32 chips probably would be enough to fill this space. There is also BeagleBoard/OMAP that would get you a lot of power for way more. A AVR32 that would be more powerful than a mid-80s computer go for $10-$15 and you can do a whole lot with it

Re:Now we need the next step up (1)

zero0ne (1309517) | more than 3 years ago | (#35364566)

try phidgets.

Re:Now we need the next step up (1)

cr0nj0b (20813) | more than 3 years ago | (#35368434)

and sometime you just need one of these (when they are back in stock): http://www.mini-box.com/pico-SAM9G45-X [mini-box.com]

Kindle Edition (0)

Anonymous Coward | more than 3 years ago | (#35361198)

Would be nice if this book had a Kindle edition, is there any information regarding potential release in the near future?

Aurdino is for "Artists" and "newcomers" (1)

viking80 (697716) | more than 3 years ago | (#35361508)

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

Also for people who do not use Windows (2)

ctid (449118) | more than 3 years ago | (#35361758)

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

Re:Aurdino is for "Artists" and "newcomers" (2)

drinkypoo (153816) | more than 3 years ago | (#35362904)

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.

Re:Aurdino is for "Artists" and "newcomers" (0)

Anonymous Coward | more than 3 years ago | (#35363434)

Most AVR products on the market probably started out on a real AVR development board like the STK500, not a toy like the Arduino.

Re:Aurdino is for "Artists" and "newcomers" (1)

drinkypoo (153816) | more than 3 years ago | (#35366916)

Most AVR products on the market probably started out on a real AVR development board like the STK500, not a toy like the Arduino.

I own an STK500 and an Arduino Nano and I'm hard-pressed to figure out what makes the STK500 a more "real" development board than an Arduino. You can put the same code into the chip whether you use a dedicated programmer or the in-system programming facility.

Re:Aurdino is for "Artists" and "newcomers" (1)

tibman (623933) | more than 3 years ago | (#35366144)

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

555 cigarettes (0)

Anonymous Coward | more than 3 years ago | (#35361942)

Am I the only one for whom the first association to 555 was the brand of cigarettes, not the timing chip?

It's Great (0)

Anonymous Coward | more than 3 years ago | (#35361980)

The world needs more toilets that tweet when flushed...go Arduino!

Big difference between an Arduino and a 555 (1)

jimmyswimmy (749153) | more than 3 years ago | (#35362500)

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.

Arduino vs. Launchpad vs. 555 vs. Transistors (1)

billstewart (78916) | more than 3 years ago | (#35362782)

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.

Re:Big difference between an Arduino and a 555 (1)

profplump (309017) | more than 3 years ago | (#35362868)

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 well be moreefficient to use the $20 Arduino to toggle your LEDs.

Re:Big difference between an Arduino and a 555 (1)

Maestro485 (1166937) | more than 3 years ago | (#35363182)

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 blast. Sure, I might not know much about electronics, but I didn't need to. If I want to learn more about a particular subject I'm free to explore more deeply.

I think that's the real power of Arduino right there.

Microcontroller Snobbery (3)

Goody (23843) | more than 3 years ago | (#35365060)

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.

Re:Microcontroller Snobbery (1)

TheRealMindChild (743925) | more than 3 years ago | (#35369690)

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.

So what's a "real" microcontroller? (0)

Anonymous Coward | more than 3 years ago | (#35365944)

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

Re:So what's a "real" microcontroller? (1)

eatfrog (212644) | more than 3 years ago | (#35366308)

What should I be playing around with?

Play around with everything except your willy.

Re:So what's a "real" microcontroller? (1)

The Gaytriot (1254048) | more than 3 years ago | (#35379606)

I used a couple different Arduino boards for several projects during the course of getting my CE (Not exactly EE, but very close), and also played around with them for a few personal projects as well. The CE and EE majors all had to learn the 68hc11 for the actual embedded micro-controllers course, but only a few chose that platform for use when a project actually called for a microcontroller later on for their senior projects.

If you think that an AVR would be a great fit to accomplish what you are trying to do, then Arduino would be a great choice within that category. If you need more beefy memory or processing, an AVR would not be a good choice. You can program it in C, C++, or assembly language, which made it super easy for me to pick up and get going on some fairly complicated projects with a tight timeline.

BTW, I used an Arduino Mega board for my senior project, which was an automated aquarium system. It monitored and controlled all of the aspects of keeping an aquarium running and safe for the fish. It also had an LCD display and keypad for user I/O, and I think that was a great learning experience figuring out how to make a good user friendly I/O. Both the project mentor and the dean of engineering thought that the Arduino was a perfect fit and implemented well, this project did not need a super powerful controller, nor could it have done so simply with just electrical hardware.

Fritzing is the next step for Arduino users (0)

Anonymous Coward | more than 3 years ago | (#35375196)

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.

Check for New Comments
Slashdot Login

Need an Account?

Forgot your password?