Random experiments, circuits, code, rapid prototyping examples, sometimes things to buy, and occasionally tunes by Tod E. Kurt.
Yay BlinkMs!
BlinkM is a smart LED. Imagine an LED with a tiny computer inside, one that can be any color and have a life of its own. You can buy them now from one of our global distributors.
The Roomba family was out caroling. They stopped by and sang a few songs. I caught a few on tape. I think they were a little tipsy on mulled 30W or something.
This was a demo of RoombaMidi2, a Mac OS X program to turn your Roomba into a MIDI instrument. Click the link to find out how and get the source code (and find out why they were so drunk).
Second, if you’ve got a MacBook and a Roomba, try out this way of using the MacBook’s built-in tilt sensors and Perl to control your Roomba:
(revver link)
I watch movies on my Mac. I’ve been ripping my DVDs to DivX or h.264 to my hard drive simply because it’s easier to double-click a file than hunt around for a particular configuration of atoms. I used to use VLC for any files that Quicktime Player couldn’t play, but I’ve recently come across a better solution.
NicePlayer — “Quite simply, the nicest media player for Mac.”
Ever since Bluetooth adapters for Roombas appeared, I’ve wanted to control my Roomba with a cell phone. All my recent phones have had Bluetooth. But getting a devkit for a phone was expensive and phone-specific. Trying to develop J2ME (aka “JavaME”) applications for cell phones has been a mess, especially for non-Windows users. Thankfully, Mobile Processing wraps up the ugly details, like Processing does for normal Java. It makes writing little programs for your phone pretty easy, and makes whipping up a program to control a Roomba possible.
So here’s “RoombaCtrl”, a small Java program for your Bluetooth- and J2ME-compatible phone that works with the build-your-own Bluetooth adapter shown in the book “Hacking Roomba” or the pre-built RooTooth.
RoombaCtrl Demo
Now you can drive your Roomba with your cellphone like so:
The Roomba has a piezo beeper that can play tunes. You’ve heard it.
And its motors make noise. Why not put them under MIDI control?
So here is RoombaMidi: a Mac OS X application that creates a virtual MIDI instrument for use by any Mac OS X MIDI sequencer, like Ableton Live, Logic, and so on.
If you don’t have a sequencer or just want to play with this quickly, grab the awesome and free app MidiKeys. It’s a little virtual MIDI keyboard.
RoombaMidi has the following features:
- provides GUI interface to controlling Roomba (MIDI not required)
- acts as normal MIDI interface to any MIDI application
- supports up to 16 Roombas, one per MIDI channel.
- responds to MIDI notes 32-127 as tones on Roomba beeper,
- MIDI notes 32-127 play corresponding pitch, velocity is duration in 1/64ths-second increments
- MIDI note 24 turns vacuum motor on-n-off for bass drum fun
- MIDI note 25 blinks the LEDs, velocity is color of Power LED
- MIDI note 28 & 29 spins left or right, velocity is speed of spin
- can act as general multi-Roomba test system
- written in Java, but acts like Mac OS X application
Setting up a Bluetooth serial adapter like the SparkFun BlueSMiRF isn’t very hard, but not very intuitive.
Bluetooth supports many “profiles” for doing various things (phone headset, address book syncing, file exchange, etc.) One of these profiles is the “COM” profile and is a simple serial port: raw binary data transmit and receive. That’s the profile these Bluetooth serial adapters speak. All Bluetooth stacks on computers appear to support the COM profile.
The SparkFun BlueSMiRF module speaks only the COM profile and when powered on and set up, looks just like a normal serial port to software. In truth it looks a little like a modem, because you can escape into a “command mode” that has an AT-compatible configuration language.
I finally broke my last working power adapter. Fortunately it was in a fashion that was orthogonal to the rest, so I was able to cobble together a working one.