Lego plays Ruzzle

Today I have uploaded a video ‘Lego plays Ruzzle‘ on Youtube, to show how my creation works.

I like to mix different technologies to create something innovative.

I love Lego, and recently discovered Ruzzle, a popular mobile game. So, I decided to mix Lego, Ruzzle, Javascript, bash and other pieces to create a super robot :)

lego-plays-ruzzle

In this project I used:

  • Tablet with Ruzzle
  • Bash script for:
    • Bash script for download screenshot of device
    • Process image with Imagemagick
    • Recognize character from image with Tesseract
  • NodeJS for:
    • Solving Ruzzle
    • Optimizing the plan
    • Send via bluetooth to Lego Mindstorm
  • Nxc program to receive plan via bluetooth
  • Absolute Position Regulator library for precise control of lego motors

Ruzzle solver scheme (3)

The project is open source, and the code is on Github:

https://github.com/albertosarullo/ruzzle-mindstorm-nxc-nodejs-solver

More photos are on Flickr:

http://www.flickr.com/photos/silvana_g/8459161766/in/set-72157632723812787/

Other article on Lego Ruzzle Solver:

In march 23 I talked about history of my robots @ Codemotion Rome. Below you can finde the slides of my talk:

 

Any feedback / request is appreciated !

 

 

 

Posted in Uncategorized | 27 Comments

Ruzzle Lego Solver: first photo

After some day of building, conding, and testing, I publish the first photo of my Lego Ruzzle Solver.

The robot use 3 NXT motors: one for x-axis movement, one for y-axis movement, and one for move the “finger” up and down. To decrease friction, the two movable parts of robot are supported on rigid wheels, like a bridge crane.

Ruzzle Lego Mindstorm Solver

A curious thing: the capacitive touchscreen of the tablet require human fingers (attached to human body) to dispatch touche event. Because attach fingers to lego mindstorm motor require detaching fingers from my body, I have discover that conductive sponge is a very good alternative, and because vegetal sponge is conductive, I have buy it at supermarket for 1 euro saving my real fingers.

Posted in Uncategorized | Tagged , , , , , | 1 Comment

Ruzzle Lego Mindstorm NodeJS Solver

Yesterday I start to build a new Lego Mindstorm project to solve Ruzzle, a popular iOS/Android game.

My goal is to merge both software (image processing, ocr, solver) and hardware (mechanics, servos, fake finger on a touchscreen) worlds, building a funny Lego robot.

On software side:

  • Bash script for download screenshot of device
  • ImageMagick to process screenshot image
  • Tesseract for character recognition
  • NodeJS for:
    • solving ruzzle game
    • send the plan to lego mindstorm nxt via bluetooth

On hardware side:

  • Lego Mindstorm (nxt)
  • Nxc program that receive plan via bluetooth
  • Absolute Position Regulator for precise control of servo

When I have something working, I post nxc program on Github:

  • https://github.com/albertosarullo/ruzzle-mindstorm-nxc-nodejs-solver

 

Posted in Android, Ipad, Iphone, Javascript | Tagged , , , , , , , , , | Leave a comment

Facebook Flash Apps and Firefox: bug and workaround

If you develop a flash iframe facebook application that records images / video from the user camera, you have serious problem on Firefox on mac OSX: you are unable to interact with the flash settings dialog box.
Continue reading

Posted in Facebook, Flash | Tagged , , , , , , | Leave a comment

Javascript Accelerometer Demo and Source

IOS 4.2 (with new Safari Mobile) has the possibility to read sensor data like accelerometer and gyroscope directly from Javascript.
Continue reading

Posted in Ipad, Iphone, Javascript | Tagged , , , , | 8 Comments

ActionScript: IE8 navigateToURL bug and workaround

Flash player on IE8 has a bug: the call to actionscript function navigateToURL(urlRequest) always opens in a new window.
Continue reading

Posted in Actionscript | 1 Comment

Google Map V3: Markerclusterer with custom tooltip/title

Markerclusterer, part of Google Maps Utility Library, is a Javascript library that helps developers to manage a large number of markers, grouping near markers into a single “cluster”.

Continue reading

Posted in Google Map, Javascript | Tagged , , | 17 Comments

Html5 Canvas Display List

Html5 Canvas is a cool component, but:

  • without a Display List many developers loose their time to draw simple geometric polygons
  • without interaction, polygons are motionless and dead

Continue reading

Posted in Canvas, Html5, Javascript | Tagged , , , , | 1 Comment