{"id":630,"date":"2009-10-28T19:36:40","date_gmt":"2009-10-29T02:36:40","guid":{"rendered":"https:\/\/mathpirate.net\/log\/?page_id=630"},"modified":"2009-10-28T19:40:31","modified_gmt":"2009-10-29T02:40:31","slug":"atari-robot","status":"publish","type":"page","link":"https:\/\/mathpirate.net\/log\/atari-robot\/","title":{"rendered":"Atari Robot"},"content":{"rendered":"<p>Over Labor Day Weekend 2009,\u00c2\u00a0 I spent five days building a robot that could play Pong on\u00c2\u00a0a real\u00c2\u00a0Atari 2600, using an unmodified paddle controller.\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 The robot was constructed using a Lego Mindstorms NXT kit.\u00c2\u00a0 There was a PC-based component which handled the video input, playfield recognition using OpenCV, and trajectory projection and movement calculation using a custom algorithm.\u00c2\u00a0 By the end of the time, I had built a robot that could play Pong decently well, although it was far from perfect.<\/p>\n<p><object classid=\"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000\" width=\"425\" height=\"350\" codebase=\"http:\/\/download.macromedia.com\/pub\/shockwave\/cabs\/flash\/swflash.cab#version=6,0,40,0\"><param name=\"src\" value=\"http:\/\/www.youtube.com\/v\/BAX1o8NBPxU\" \/><embed type=\"application\/x-shockwave-flash\" width=\"425\" height=\"350\" src=\"http:\/\/www.youtube.com\/v\/BAX1o8NBPxU\"><\/embed><\/object><\/p>\n<p>You can read all about the development of this robot and associated program here:\u00c2\u00a0 <a href=\"https:\/\/mathpirate.net\/log\/category\/crazy-weekend-project-1-pong-robot\/\">https:\/\/mathpirate.net\/log\/category\/crazy-weekend-project-1-pong-robot\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Over Labor Day Weekend 2009,\u00c2\u00a0 I spent five days building a robot that could play Pong on\u00c2\u00a0a real\u00c2\u00a0Atari 2600, using an unmodified paddle controller.\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 The robot was constructed using a Lego Mindstorms NXT kit.\u00c2\u00a0 There was a PC-based component which handled the video input, playfield recognition using OpenCV, and trajectory projection and movement calculation using [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"open","ping_status":"open","template":"","meta":[],"_links":{"self":[{"href":"https:\/\/mathpirate.net\/log\/wp-json\/wp\/v2\/pages\/630"}],"collection":[{"href":"https:\/\/mathpirate.net\/log\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/mathpirate.net\/log\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/mathpirate.net\/log\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/mathpirate.net\/log\/wp-json\/wp\/v2\/comments?post=630"}],"version-history":[{"count":3,"href":"https:\/\/mathpirate.net\/log\/wp-json\/wp\/v2\/pages\/630\/revisions"}],"predecessor-version":[{"id":857,"href":"https:\/\/mathpirate.net\/log\/wp-json\/wp\/v2\/pages\/630\/revisions\/857"}],"wp:attachment":[{"href":"https:\/\/mathpirate.net\/log\/wp-json\/wp\/v2\/media?parent=630"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}