Open hardware guru answers: Arduino or Raspberry Pi?
Should I get an Arduino or a Raspberry Pi?
I spend a lot of time at conferences and events like Maker Faires, and having co-authored a book on the Raspberry Pi, I spend a lot of time talking to people about things like small electronics and open hardware. Probably the most frequent question I hear is, "Should I get a Raspberry Pi or an Arduino?"
Depending on the person asking, I've almost always said yes to getting a Raspberry Pi, and not just in hopes of selling a book or two. Often the people who ask this question are at a point where they don't even realize that the two devices aren't the same. This isn't "should I get a Mac or a PC?" or "should I try Ubuntu or Fedora?" with relatively the same endpoints and finer distinctions. The Raspberry Pi is a computer. The Arduino is a microcontroller. If you're starting from square zero and have no idea what to do, you can at least plug an SD card and a monitor into the Pi and have a computer. You can flash the card with Kodi (formerly XMBC) and have a working media center in minutes. It's a quick path to completed-project satisfaction with plenty of room for growth.
People who ask this question are also often asking not for themselves but rather, "Which of these devices should I buy for a child?" And to that end, if you're a kid who opens that box on Christmas morning, it's not exactly a set of Lego bricks with an instruction booklet and an hour or two to a finished piece. There's a learning curve, and again, if you have a Pi, at least you can get a computer up and running fairly quickly, play with it for a bit, and then figure out what's next from there. If you have an Arduino, you instead have a pretty blue board and no idea what to do with it.
Of course, leave it to a nine-year-old to prove my entire theory wrong.
As you can imagine, in the course of writing that book, my house has become a small Radio Shack. There are wires and buttons and LEDs and disemboweled Game Boys everywhere. (And have been for a few years now.) My children, however, are apparently completely oblivious to this and took very little interest in any of it except when I'd specifically ask them to check something out.
But they did seem interested in software and had been playing with a kid-level app creator, so I bought the older child the SparkFun Inventor's Kit. Murphy's Law being what it is, this is also about the same time she announced that she didn't know what she was going to be when she grew up, but she knew it wouldn't be a programmer because she wasn't any good at it.
Six weeks later, with that Arduino-based Inventor's Kit, her STEAM fair project was an Arduino project.
As best I can tell, the Raspberry Pi was just another computer in the house, and there are plenty of those. It happened to be small, so that's neat. But it was just another computer. And a lot slower than all of the rest of them. The Arduino was a mystery. A puzzle to solve. Secrets to unlock. And most importantly, came with the huge satisfaction of realizing you've created something that you had no idea how to make when you started.
I credit that Inventor's Kit with most of the work of making her enjoy both building the hardware and the software. Its booklet starts you at the place most of us start—making an LED blink. And then you learn what a potentiometer is and how to make it work. Then more LEDs, sensors, motors, and more. She learned that she could create code by building off the examples of others, which is far easier than starting from scratch, which is what had given her the impression that she was "no good at it." It was a really rewarding experience that made her realize she could create bigger things.
Or, the Raspberry Pi?
So, the Arduino it is, then?
No, not necessarily. The Raspberry Pi is, of course, not "just" a small, slower computer. If it were, we couldn't have written a whole book of projects for it! There are projects (and people) that are more well-suited to one device or another. And thus the recommendation for "which one should I get?" is more nuanced.
I think the best way to get started is to choose a project, or if you really have no idea where to begin, a kit like the one I bought my daughter. The Maker Shed sells a few Raspberry Pi kits. Adafruit has a whole section for young engineers with kits. If price is a factor and you're a good shopper, you can sometimes acquire the parts in these kits for less than the kits. But then you don't have the guidebook for the kit. These sites all run regular sales as well, so get on their mailing lists and keep an eye out.
You can also create your own "kit" by finding a project you want to make and obtaining the parts. Instructables is a great place to find projects, as are many other sites. But when you find something you think you want to build, read through the instructions. Do they seem complete and easy to follow? Crowdsourced ideas are great, but not all good builders are also good writers! You don't want to end up frustrated with a half-finished project because the instructions were missing a useful level of detail.
Guides to builds
You may, then, want to turn to the wide selection of books for your starter projects. For the Raspberry Pi, I'd (of course!) start with my own book, Raspberry Pi Hacks. There are quite a few others, though, and books specifically for the latest version, the Raspberry Pi 2, are starting to appear. You shouldn't have problems building most projects from older books or projects online on the new Pi, though.
For the Arduino, one of my favorites is Arduino and LEGO Projects, because you get to put together two of the most fun toys in the house! I also like anything Simon Monk writes, so to that I might suggest 30 Arduino Projects for the Evil Genius.
While you're considering what you want to build, think through a few of these questions as well:
- Is this for a child? Consider not only that child's age, experience, and patience, but also your own. How much time are you willing to spend working with the child on the projects?
- Are there parts you'll need that are easier to obtain for one than the other? There's a vast Arduino community that has created shields (add-on parts that perform specific roles) for just about anything you can imagine. The Raspberry Pi community is large and growing, but you may find is easier to find particular parts for a given project for one than the other.
- Do you need or want any/all the built-in goodness of a Raspberry Pi, like HDMI and USB ports?
- What's your final goal? Are you hoping to learn programming? Do you want to play with a device for a while and then repurpose it? (The Arduino is good at doing one thing at a time, but not so good at multiple functions if you decide you want to move on to a more complicated project without buying a new board.)
Some of these questions you may answer on your way to choosing a project, so keep that last one in mind as you go. They're both inexpensive boards, but if you want to reuse it in the future, you'll need to think about multiple projects as you're planning. And in the end? Maybe you'll decide you need them both! In fact, with projects like the AlaMode, you can use them together.
Good luck, and happy building!