Did you see the amazing RC (radio controlled) toys you can buy today? What is even more amazing is that you can build one yourself, revisiting some science and engineering knowledge in the process. I can only imagine what it feels like, when something you have built turns on the engine, and you can control it from your phone or computer.
That’s what Mike Meyer – a software consultant from Norman, Oklahoma and a citizen of the
Chickasaw Nation – is building. And no, it’s not some “assemble these parts” type toy. Mike is using universal parts and he programs them himself, so he can apply this knowledge to multiple other exciting projects. In fact, he does that already.
Mike, please tell our readers about the essence of your project.
I mentioned doing “Arduino programming”. That’s not one project, but a swarm of them. Arduino is an open source hardware platform that’s very inexpensive (I can buy Arduino-compatible micro-controller boards for $5.50 shipped) and very flexible. There are projects it can help with everywhere I look!
As an example, I’ve been shopping for an anemometer (wind speed meter), and not finding anything I liked. This evening I found one that only had one problem: the display is a bicycle speedometer that’s relatively small. Turns out they sell the wind sensor part of it alone, which can be plugged into one of these displays to get a nice big display that runs Arduino software. Even after adding an enclosure, the entire thing will cost less than their anemometer would have.
So I’m going to talk about the project that first got me interested in Arduino hardware – a Bluetooth controlled model hovercraft. This involves developing the software to control the motors on the hovercraft using stock Arduino hardware, and an Arduino module to translate the signal from an aircraft RC controller to the appropriate Bluetooth commands to talk to the other end. Testing will involve controlling a Sphero Bluetooth robot (since they published the protocol) with the RC controller, and using an Android device to control the hovercraft instead of the RC controller to test the two parts independently.
How did you come up with the idea?
A number of interests intersected at it. I got back into the RC hobby a couple of years ago, and started looking into both things that can be controlled from a computer, and hovercraft. Computer-controlled models are typically controlled via either an infrared dongle using the audio port, or Bluetooth. The Bluetooth versions are more reliable and in general work better. On the other hand, there aren’t any ready-to-run hobby grade model hovercraft, so I was looking at having to build a kit, if not build things from scratch.
Since I was going to have to put together a radio system, I figured I might as well make it computer controllable, meaning Bluetooth. When I started looking into the hardware to do that, I kept running into Arduino hardware. So I investigated those, and found they were a perfect fit for the project. The only problem is that I keep finding other things to do with them!
What motivated you to work on this, despite being busy with other tasks?
It’s a hobby. It’s something I do to take my mind off of work, and the problems that go with life. I still make time to go fly ‘copters, but working on this is something to do when the weather won’t permit that.
What were your qualifications? Did you use your experience, or learn new skills?
Well, I have a lot of C programming language experience, which is useful for embedded systems like the Arduino. I have some real-time experience from long ago, plus some experience working on the first generation of home computers – things like the Apple ][, TRS-80 Model 1 and Commodore-64 – which are roughly as powerful as the Arduino. I think all of that helped, but I also had to learn the Arduino libraries and hardware.
What was your time budget? How did you manage it?
There was no time budget. It’s a hobby, so it’s supposed to be fun. I work on it when I feel like it, and as the hardware arrives. When I feel like doing other things, I do them instead.
Did you do everything by yourself, or did you get some help?
I’ve reached out more than once to the Arduino and RC hobby communities for help. While I am pretty much doing everything myself, they’ve been invaluable in solving some of the problems I’ve run into, and in providing advice on how to do things.
If you’re going to tackle a hobby project, I recommend treating it as such. Plan on giving away the results, or at least any intellectual property you create. That way you can take maximum advantage of available open source tools, and there’s no qualms about showing the source (or schematics, or whatever) to the community when you’re asking for help.
What tools did you use for this project?
For the Arduino, you need to download the Arduino tool chain, which includes an IDE. That’s open source and free to download. You can get it from arduino.cc, along with descriptions of a wide variety of Arduino boards. It should be in the package system for most Linux and BSD distributions.
If you don’t want to use their IDE – and I’m an Emacs fan, so I didn’t – you can use the arduino-mk (aka arduino command line tools) package, which provides a GNU Make file for driving the tool chain.
Any productivity tips to share? Tools, techniques?
If you built the hardware, check it for “bugs” as thoroughly as your software! The two problems that have consumed most of my time to date both turned out to be hardware problems.
Is the project in active use? Actively supported and extended?
It’s still in development, so it’s not in use, but is being actively supported and extended – when I feel like working on it.
What were the biggest benefits for you from this project, what brings you the most joy?
Discovering the Arduino. I’ve done a number of small projects using it. My day job generally involves large data and databases, so you can only see the end result by doing database queries. There’s something a lot more satisfying about watching LED’s change state in a matrix, or a hovercraft change directions as you type commands into the computer.
What lessons did you learn while working on this?
I relearned some basic electronics. I’ve already mentioned the issue of hardware problems.
What would you do differently if you could get back in time?
Better hardware planning. I ordered what I expected would be the basic bits when I ordered my first Arduino board, and wound up with some hardware I probably won’t use, other hardware that’s more than I actually need for the project, and not quite enough hardware to do everything.
What book would you recommend to someone starting a hobby project?
There are lots of books on Arduino available, including one by one of the founders of the project: Massamo Banzi’s “Getting Started with Arduino” (aff.) That one is sold by a number of retailers bundled with an Arduino and the hardware it calls for, but you can also find it as a free PDF from a number of sites.
Personally, I bought two Simon Monk books: “30 Arduino Projects for the Evil Genius” (aff.), and “Arduino + Android Projects for the Evil Genius” (aff.), because the latter included a Bluetooth controlled robot that is similar to the hovercraft, and I figured I’d just stay with his stuff. There’s a bit more in the first one than in Banzi’s book, but not anything you can’t find on the net.
If you’re into the hovercraft aspect, the book to get is Kevin Jackson & Mark Porter’s “Introduction to Radio Controlled Hovercraft.” (aff.) The stuff in it is both invaluable, and not likely to be found anywhere else.
What other projects or authors would you like to read about in our interviews?
I’d be interested in hearing from the people who started the th9x, OpenRC and DeviationTx (all open source rc aircraft controller firmware) projects.
Feel free to ask Mike about the details of his project in the comments.
This post was written by Valentyn Danylchuk, the editor of Five-Hour Projects. You can also publish guest posts here, suggest projects to write about, or get interviewed – contact firstname.lastname@example.org