Slashdot Mirror


Roomba + Wii remote + Perl = Awesome

Anonymous Wii Lov'n Coward writes "Check out the WiiRoomba, a mashup using a Wii remote, a perl script, and the Darwiin Remote software. While a little sluggish to respond, the Roomba is entirely controlled by the Wii remote accelerometers." All of the source code to do it yourself is available at the site linked, along with a youtube video of how it works.

17 of 175 comments (clear)

  1. Strange by Cytlid · · Score: 5, Funny

    This is like an odd parallel universe movie where a younger Matt Damon controls his vacuum with a remote control.

    --
    FLR
  2. Cool hack, but by Oddster · · Score: 5, Insightful

    Isn't the point of the Roomba that it doesn't need control?

    Although I suppose it would be really useful if you added a servo arm, and could use the contraption to get yourself a beer without leaving your chair.

  3. Wrong Department... by __aaclcg7560 · · Score: 4, Funny

    It should be "People who have too much time on their hands" department. :P

  4. Spoiler by Nerdfest · · Score: 5, Funny

    It sucks.

  5. Re:Perl vs. Python? by grumbel · · Score: 4, Informative

    For those interested, the WiiLi.org Wiki is full of Wiimote examples using Python, just takes a handfull lines of code to get started with the Wiimote, its really easy.

  6. Good Will by huper · · Score: 5, Funny

    My boy is wicked smart!

  7. Re:Why Perl? by FooAtWFU · · Score: 4, Insightful
    Hey, look at the code. The important bits seem to be like

    printf $roomba "\x89%c%c%c%c", $vh,$vl,$rh,$rl;
    Elsewhere, they seem to be communicating with another application through a named pipe. Text processing and the UNIX philosophy: Perl at its finest.
    --
    The World Wide Web is dying. Soon, we shall have only the Internet.
  8. Re:Why Perl? by Nasarius · · Score: 4, Insightful
    Out of curiosity, why use a language like Perl to do something dynamic like this? I'm no code jockey, but I always thought that Perl was meant for run-it-once type applications that handle things like text processing and database searching.
    The question is valid, but the nonsensical rambling that follows detracts from it. So I'll just say that modern scripting languages like Perl, Python, or Ruby can do just about anything but systems programming. In fact, they are perfect for doing what the summary seems to describe: taking the output from one program, parsing it, and sending instructions to another program.
    --
    LOAD "SIG",8,1
  9. It's only a question of time now. by gijoel · · Score: 5, Funny

    Before they REBEL!

  10. Let me see if I understand this by fm6 · · Score: 4, Funny

    You're tired of vacuuming by hand, so you buy a robot vacuum that works all by itself. Then you add a clever hack that allows you to control the robot vacuum just like the manual vacuum you had before...

  11. Re:iRobot could have made Roomba remote controlled by mccalli · · Score: 4, Insightful

    ... but they didn't. Because the whole point of the Roomba is that you don't need to control it.

    No and yes, in that order. My Roomba certainly came with a remote control that can steer the device, but I've never found a need to use it. However, I still appreciate this hack for what it is - a spot of fun done just because you can.

    Cheers,
    Ian

  12. Re:Why Perl? by bockelboy · · Score: 5, Informative
    Wouldn't Java be better suited for this?

    No offense, but Java would be a particularly bad choice for this application. The real work done here is "gluing" two things together at a system level - the Roomba program and the Wii program. Java is uniquely miserable at interacting on the system level. Where Java excels is object-oriented architectural design and huge enterprise-level programs.

    So, if you want a scalable application server, use Java. If you need to tie two programs together, use a scripting language like Python or Perl. If you know you can limit yourself to a Unix shell environment, Perl may be best (and this is from a Python junkie!)
  13. "mashup" by sinserve · · Score: 5, Insightful

    What is this trendy-word shit? MASHUP? Who the fuck came up with this word? In multimedia we already had "remixing" and "sampling".

    Hardware and software can not "mashup", they're "coupled" or "integrated" in manager-speak, but in honest everyday speak hardware is "driven" or "controlled" or "interfaced" with software.

    It could have been "controling roomba with wii remote". Perl would never show up in the headline because software drivers are no often given banner credit. They're expected to work.

  14. Re:Next: Wii-mote RC cars ? by FleaPlus · · Score: 4, Interesting
  15. How programable is the Roomba? by RalphBNumbers · · Score: 4, Insightful

    Taking this hack a step farther:

    Since Roombas can be made to connect to computers via bluetooth adapters, it stands to reason that if they are sufficiently programable, they could be made to respond directly to the Wiimote via bluetooth, without a Mac playing middleman. This might even eliminate a lot of the the lag the story mentions.

    --
    "The worst tyrannies were the ones where a governance required its own logic on every embedded node." - Vernor Vinge
  16. I know what its for by bigsam411 · · Score: 4, Funny

    They designed this so that when people throw their Wiimotes at televisions while playing Wii Sports, the Roomba will go clean up the glass shards.

  17. I've got a similar hack by sdcharle · · Score: 3, Funny

    I attached a handle to my roomba so I can control it by hand.