Turn your Roomba vacuum cleaner into a boombox (minus the boom) using node.js
Roombox is a node.js module that turns a Roomba vacuum cleaner into a boombox which can play some songs.
I'm trying to show that node.js can be used to communicate with a piece of hardware, and hopefully at the same time you will also see this as a fun and somewhat creative hack :). Where else would you see a vacuum cleaner playing Rocky and Beverly Hills Cop theme songs? Any Red Hot Chilli Peppers fan? This Roomba plays Scar Tissue opening guitar too :).
The reason why I wanted to do something with Roomba is because I have one at home with broken sensors. It can no longer autonomously clean up the carpet around the house. I want to use node.js to turn this broken Roomba into something more useful.
I tried playing Rick Astley's Never Gonna Give You Up on the Roomba, but it didn't sound good so I took it out from the demo song list. Yes, I failed to rickroll you. My apology, bow.
I understand that you might not have a Roomba vacuum cleaner to test out the Roomba, so hopefully the video above gives you some idea of what Roombox can do.
You need a Roomba vacuum cleaner with RooTooth wireless bluetooth, paired to your computer, then:
git clone http://github.com/cliffano/roombox
roombox start --path /dev/tty.FireFly-9E56-SPP --baud-rate 57600
How does it work?
Roombox parses the available music sheets, connects to Roomba via bluetooth, convert selected song's music sheet into Roomba data, slices it into 4 segments of 16 notes each, then registers those segments into Roomba via bluetooth, and plays those segments.
node.js modules used:
Music sheets source:
Voting is now closed.
Thanks Sacha! :D node.js enables Rocky-theme-singing vacuum cleaner FTW!!!
Thanks and I'm glad that you found it funny :D. From writing Roombox, I learnt that the limited range of tones is actually unsuitable for dubstep. Dubstep surprisingly has patterns, and random() is not enough lol.
Thanks for checking it out :).
Thanks :D. I'm glad you had a laugh cause fun and innovation are the target segments :p. At least you had fun out of it, mission accomplished :).
Haha thanks. I had this idea of creating Gangnam Style background music with dotmatrix printers :D.
And I totally wish there's a fun segment separate from utility for Node Knockout 2014. Roombox is fun, but definitely not a utility for most people. :p
My bad. I've updated the entry details with more information. This entry is a fun hack to show that node.js can be used to communicate with a piece of hardware.
Not many technologies are easy to use for hardware-related things. And node.js is able to do that. How many times have we seen a vacuum cleaner playing Rocky theme song? node.js made it easily possible.
You should totally get a Roomba for daily cleaning :), and you can use node to improve its movement pattern. Btw, Roombox works with unbroken Roomba too. :D