One strategy is to have the Arduino connected to the internet and then a Web server or other computer can handle the heavier workload. For that you need to add an Ethernet shield and so forth and the next thing you know you’re way over a hundred bucks. The Ethernet shields tend to have stuff like SD cards for more storage which is cool but complexity is increasing and with all the libraries there isn’t much room left in the Arduino memory for your programs. There is the Arduino Mega which is about 70 or 80 bucks. But it’s not a dramatic improvement.
The BeagleBone boards already have Ethernet and SD cards and lots more power. And that’s under a hundred bucks. Quick start guide. They can also run Linux (even Ubuntu I think) so this will allow many different programming languages and also to leverage a huge community of support.
In cases where the arduino winds up tethered to a computer it could be tethered to a BeagleBone instead. Then you can get into the BeagleBone through ssh or perhaps even remote desktop. So it can be used alone and in concert with Arduino. I haven’t looked at all details yet but I think it’s 3.3V logic. So a 8-channel Bi-directional Level Converter – TXB0108 is on order as well. I realize I could probably come up with something with resistors but it was only 8.00 and could save a lot of time. It has the right spacing to install headers for breadboards so that’s a plus for prototyping.
This converter should help with connecting the BeagleBone to other 5V devices as well.
If it’s tethered to an arduino or not I think it would be easy to access it wirelessly. I have some WRT-54G routers that have been flashed with DD-WRT that could add wireless access. I don’t think they are in production anymore so I will run out of those and they were like 90 bucks (on sale about once per year for about 60). So I picked up an Asus WL-330ge. I will give this a try and see how things shape up.
I ordered the BeagleBone, converter and a power supply from Adafruit so will probably have it in a few days. I ordered the Asus access point in China so that might take a little longer.
So I will try and get all this up and running and see where it takes me.
I already have a project for it. Brita and I are doing a collaboration on an installation that will use face detection and smile detection. So this will be a chance to see how well the BeagleBone works.
Here it is being used with openCV for face detection:
Update March 15, 3am: Make Magazine just published a list of resources for the BeableBone:
- Nathan Dumont’s blog post on Hardware Interfacing on the BeagleBone was a huge breakthrough for me in figuring out how to control GPIO pins with sysfs.
- A lot of my Google searches lead me to The Embedded Linux Wiki at eLinux.org. There are some BeagleBoard and BeagleBone specific pages, but the other pages are a very helpful resource as well.
- Nuno Alves wrote a great post on how to load a new beaglebone OS into a SD card using Mac OS X
- For quick questions, the #beagle IRC channel on Freenode was a big help. You’ll find me lurking there if you need any help with this particular project. Just mention “MattRichardson” and I’ll get an alert.
- Akademii’s blog post on BeagleBone GPIO Testing helped me through a common pin multiplexing pitfall on the BeagleBone.
- GigaMegaBlog has a post about using serial and analog input on the BeagleBone. I haven’t dug into these topics much, but they may be good for people who want to get beyond digitalRead and digitalWrite. Be sure to check out all of the Beagle posts at GigaMegaBlog; there’s a lot of great content there.
- Alexander Hiam’s pyBBIO gave me a good idea of how to make the mrbbio module take a simple setup and loop function, just like Arduino code.
- Mark Lutz’s Learning Python, 3rd Edition helped me figure out how Python works.
- I didn’t have the intention to make this module available publicly, but I figured it could be a lot of help to anyone who’s getting started. This module, mrBBIO, is available at Github and I welcome anyone to make any improvements to it. If you’re looking for something more advanced, check out PyBBIO, which uses memory registers to do the same thing.
- Now that I’ve got a good grasp on this, I’m eager to start using it in a “real” project. I managed to get the lighttpd web server with PHP running and I even wrote a PHP script that could set pins high and low. This will make it so much easier to put my electronics projects online, something that can be quite a challenge to do on less capable microntrollers.