{"id":21,"date":"2013-01-21T07:58:58","date_gmt":"2013-01-21T07:58:58","guid":{"rendered":"http:\/\/www.albertosarullo.com\/blog\/?p=21"},"modified":"2013-01-21T17:31:43","modified_gmt":"2013-01-21T17:31:43","slug":"ruzzle-lego-mindstorm-nodejs-solver","status":"publish","type":"post","link":"http:\/\/www.albertosarullo.com\/blog\/ruzzle-lego-mindstorm-nodejs-solver","title":{"rendered":"Ruzzle Lego Mindstorm NodeJS Solver"},"content":{"rendered":"<p>Yesterday I start to build a new Lego Mindstorm project to solve Ruzzle, a popular iOS\/Android game.<\/p>\n<p>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.<\/p>\n<p>On software side:<\/p>\n<ul>\n<li>Bash script for download screenshot of device<\/li>\n<li>ImageMagick to process screenshot image<\/li>\n<li>Tesseract for character recognition<\/li>\n<li>NodeJS for:\n<ul>\n<li>solving ruzzle game<\/li>\n<li>send the plan\u00c2\u00a0to lego mindstorm nxt\u00c2\u00a0via bluetooth<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>On hardware side:<\/p>\n<ul>\n<li>Lego Mindstorm (nxt)<\/li>\n<li>Nxc program that receive plan via bluetooth<\/li>\n<li>Absolute Position Regulator for precise control of servo<\/li>\n<\/ul>\n<p>When I have something working, I post nxc program on Github:<\/p>\n<p><a title=\"https:\/\/github.com\/albertosarullo\/ruzzle-mindstorm-nxc-nodejs-solver\" href=\"https:\/\/github.com\/albertosarullo\/ruzzle-mindstorm-nxc-nodejs-solver\"><\/p>\n<ul>\n<li>https:\/\/github.com\/albertosarullo\/ruzzle-mindstorm-nxc-nodejs-solver<\/li>\n<\/ul>\n<p><\/a><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>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 &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/www.albertosarullo.com\/blog\/ruzzle-lego-mindstorm-nodejs-solver\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Ruzzle Lego Mindstorm NodeJS Solver&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[53,17,16,3],"tags":[43,44,45,42,39,37,36,41,38,40],"class_list":["post-21","post","type-post","status-publish","format-standard","hentry","category-android","category-ipad","category-iphone","category-javascript","tag-absolute-position-regulation","tag-android","tag-bluetooth","tag-imagemagick","tag-lego","tag-mindstorm","tag-nodejs","tag-ocr","tag-ruzzle","tag-tesseract"],"_links":{"self":[{"href":"http:\/\/www.albertosarullo.com\/blog\/wp-json\/wp\/v2\/posts\/21","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.albertosarullo.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.albertosarullo.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.albertosarullo.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.albertosarullo.com\/blog\/wp-json\/wp\/v2\/comments?post=21"}],"version-history":[{"count":0,"href":"http:\/\/www.albertosarullo.com\/blog\/wp-json\/wp\/v2\/posts\/21\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.albertosarullo.com\/blog\/wp-json\/wp\/v2\/media?parent=21"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.albertosarullo.com\/blog\/wp-json\/wp\/v2\/categories?post=21"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.albertosarullo.com\/blog\/wp-json\/wp\/v2\/tags?post=21"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}