{"id":498,"date":"2008-12-20T21:59:15","date_gmt":"2008-12-21T02:59:15","guid":{"rendered":"http:\/\/php.astolfo.com\/?p=498"},"modified":"2015-01-31T14:46:26","modified_gmt":"2015-01-31T19:46:26","slug":"dominobotnxt-wmotormux","status":"publish","type":"post","link":"https:\/\/www.plastibots.com\/index.php\/2008\/12\/20\/dominobotnxt-wmotormux\/","title":{"rendered":"DominoBotNXT w\/MotorMux"},"content":{"rendered":"<p>This page is dedicated to the further enhancements that I have done to DominoBotNXT. For more info on the original DominoBotNXT, have a look here. <img loading=\"lazy\" decoding=\"async\" class=\"alignright\" src=\"\/image\/DominoBotNXT2\/motormux.gif\" alt=\"\" width=\"135\" height=\"80\" align=\"right\" \/><\/p>\n<p>One of the drawbacks of the original was that due to the 3 motor limit, it had to backup to properly place dominos. This was because the domino-placing component was tied directly to the drive wheels. So, as it drove forward, a domino would make its way to being placed in the holder mechanism. Doing this caused the robot to move forward approx. 4 inches. Since this is too far for domino&#8217;s to actually cause any chain reaction, the robot had to move each newly placed domino back to be within 1&#8243; of the last placed one.<\/p>\n<p><strong><!--more--><\/strong><\/p>\n<p>Since I&#8217;m never really satisfied, I called upon the folks at <a href=\"http:\/\/www.mindsensors.com\/\" target=\"_new\">Mindsensors<\/a> to try out their newly developed NXT Motor Multiplexer (MotorMux).\u00a0 They gladly provided me with a test unit to try out. The purpose of the NXT MotorMux is to expand the number of available motors by 4, and it uses 1 sensor port to do this. Since the standard NXT software does not have built-in support for I2C messaging (interface to talk to the motors on the sensor port), along came <a href=\"http:\/\/www-education.rec.ri.cmu.edu\/robotc\/index.html\" target=\"_new\">RobotC<\/a>. RobotC is currently in Beta testing (July 06) but has proven quite useful for this task. With some help from Dick Swan, I was able create the necessary code and logic to talk to the sensor port to control a 4th motor. Its&#8217; purpose &#8211; to seperately drive the domino-placement mechanism so that DominoBotNXT does not need to back up. Now, it can place domino&#8217;s on the fly while always moving forward. I&#8217;ll save the descriptive works and let you <strong>watch the <a href=\"http:\/\/www.brickshelf.com\/gallery\/dastolfo\/NXT\/dominobotnxt.wmv\">video<\/a> to see it in action<\/strong>.<\/p>\n<p style=\"text-align: center;\">[ad name=&#8221;GoogleAS728x90&#8243;]<\/p>\n<p>The following is an excerpt of the code showing a function used to call on the MotorMux: <code><br \/>\n\/\/backup domino placer a bit<br \/>\nmmControl(kMotorOnMux, mmReverse, nSpeed);<br \/>\n\/\/float the motor off<br \/>\nmmControl(kMotorOnMux, mmFloat, nSpeed);<br \/>\n\/\/ Send the message<br \/>\nsendI2CMsg(kSensorMuxPort, motorMuxMsg [0], 0);<br \/>\nreturn;<\/code><\/p>\n<p>Close-up of the MotorMux unit and its connector to the NXT motor. Click to enlarge.<\/p>\n<p style=\"text-align: center;\">\n<p style=\"text-align: center;\"><a href=\"\/image\/DominoBotNXT2\/main2_L.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"\/image\/DominoBotNXT2\/main2.jpg\" alt=\"\" width=\"220\" height=\"236\" border=\"0\" \/><\/a><a href=\"\/image\/DominoBotNXT2\/mmuxConnector_L.jpg\"> <img loading=\"lazy\" decoding=\"async\" src=\"\/image\/DominoBotNXT2\/mmuxConnector.jpg\" alt=\"\" width=\"214\" height=\"160\" border=\"0\" \/><\/a><\/p>\n<p style=\"text-align: center;\">\n<p style=\"text-align: left;\">A close-up of the path that a domino travels. To the top left is the light sensor used to detect when a domino is depolyed. The domino will fall into the holder unit. Click for a larger image.<br \/>\n<a title=\"click for larger picture\" href=\"\/image\/DominoBotNXT2\/dominoCarrier_L.jpg\"> <img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"\/image\/DominoBotNXT2\/dominoCarrier.jpg\" alt=\"\" width=\"242\" height=\"181\" border=\"0\" \/><\/a><\/p>\n<p style=\"text-align: left;\">\n<p style=\"text-align: left;\">Another close-up of the MotorMux. Standard sized mounting holes allow the unit to be mounted to studded or studless Technic beams.<br \/>\n<a title=\"click for larger picture\" href=\"\/image\/DominoBotNXT2\/motormuxClose_L.jpg\"> <img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"\/image\/DominoBotNXT2\/motormuxClose.jpg\" alt=\"\" width=\"285\" height=\"192\" border=\"0\" \/><\/a><\/p>\n<p style=\"text-align: left;\">\n<p>The following shows the configuration \/ wiring of the MotorMux unit to the NXT. The MotorMux must be powered by an external source (9-12V DC). One NXT sensor port is used to send commands to the MotorMux. From the MotorMux, up to 4 standards electrical wires can be connected to the holes to power 4 motors. In this case, it goes from the MotorMux &gt;&gt; Std. Lego Wire &gt;&gt; Mindsensors Wire Converter &gt;&gt; NXT Wire &gt;&gt; NXT Motor.<\/p>\n<p style=\"text-align: left;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"\/image\/DominoBotNXT2\/DBotNXTmotorMuxSetupConfig.jpg\" alt=\"\" width=\"272\" height=\"174\" border=\"0\" \/><br \/>\n<strong>Rate This Post: <span id=\"post-ratings-498\" class=\"post-ratings\" data-nonce=\"e1677f1049\"><img decoding=\"async\" id=\"rating_498_1\" src=\"https:\/\/www.plastibots.com\/wordpress\/wp-content\/plugins\/wp-postratings\/images\/stars\/rating_on.gif\" alt=\"1 Star\" title=\"1 Star\" onmouseover=\"current_rating(498, 1, '1 Star');\" onmouseout=\"ratings_off(4.5, 5, 0);\" onclick=\"rate_post();\" onkeypress=\"rate_post();\" style=\"cursor: pointer; border: 0px;\" \/><img decoding=\"async\" id=\"rating_498_2\" src=\"https:\/\/www.plastibots.com\/wordpress\/wp-content\/plugins\/wp-postratings\/images\/stars\/rating_on.gif\" alt=\"2 Stars\" title=\"2 Stars\" onmouseover=\"current_rating(498, 2, '2 Stars');\" onmouseout=\"ratings_off(4.5, 5, 0);\" onclick=\"rate_post();\" onkeypress=\"rate_post();\" style=\"cursor: pointer; border: 0px;\" \/><img decoding=\"async\" id=\"rating_498_3\" src=\"https:\/\/www.plastibots.com\/wordpress\/wp-content\/plugins\/wp-postratings\/images\/stars\/rating_on.gif\" alt=\"3 Stars\" title=\"3 Stars\" onmouseover=\"current_rating(498, 3, '3 Stars');\" onmouseout=\"ratings_off(4.5, 5, 0);\" onclick=\"rate_post();\" onkeypress=\"rate_post();\" style=\"cursor: pointer; border: 0px;\" \/><img decoding=\"async\" id=\"rating_498_4\" src=\"https:\/\/www.plastibots.com\/wordpress\/wp-content\/plugins\/wp-postratings\/images\/stars\/rating_on.gif\" alt=\"4 Stars\" title=\"4 Stars\" onmouseover=\"current_rating(498, 4, '4 Stars');\" onmouseout=\"ratings_off(4.5, 5, 0);\" onclick=\"rate_post();\" onkeypress=\"rate_post();\" style=\"cursor: pointer; border: 0px;\" \/><img decoding=\"async\" id=\"rating_498_5\" src=\"https:\/\/www.plastibots.com\/wordpress\/wp-content\/plugins\/wp-postratings\/images\/stars\/rating_half.gif\" alt=\"5 Stars\" title=\"5 Stars\" onmouseover=\"current_rating(498, 5, '5 Stars');\" onmouseout=\"ratings_off(4.5, 5, 0);\" onclick=\"rate_post();\" onkeypress=\"rate_post();\" style=\"cursor: pointer; border: 0px;\" \/> (<strong>2<\/strong> votes, average: <strong>4.50<\/strong> out of 5)<br \/><span class=\"post-ratings-text\" id=\"ratings_498_text\"><\/span><\/span><span id=\"post-ratings-498-loading\" class=\"post-ratings-loading\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.plastibots.com\/wordpress\/wp-content\/plugins\/wp-postratings\/images\/loading.gif\" width=\"16\" height=\"16\" class=\"post-ratings-image\" \/>Loading...<\/span><\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>This page is dedicated to the further enhancements that I have done to DominoBotNXT. For more info on the original DominoBotNXT, have a look here. One of the drawbacks of the original was that due to the 3 motor limit, it had to backup to properly place dominos. This was because the domino-placing component was tied directly to the drive wheels. So, as it drove forward, a domino would make its way to being placed &hellip; <a href=\"https:\/\/www.plastibots.com\/index.php\/2008\/12\/20\/dominobotnxt-wmotormux\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[18,3,4],"tags":[27,24,26,25],"class_list":["post-498","post","type-post","status-publish","format-standard","hentry","category-autonomous","category-legorobots","category-nxtrobots","tag-domino","tag-mindsensors","tag-motor-multiplexer","tag-motormux","has_no_thumb"],"aioseo_notices":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/pK41j-82","jetpack_sharing_enabled":true,"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/www.plastibots.com\/index.php\/wp-json\/wp\/v2\/posts\/498","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.plastibots.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.plastibots.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.plastibots.com\/index.php\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.plastibots.com\/index.php\/wp-json\/wp\/v2\/comments?post=498"}],"version-history":[{"count":0,"href":"https:\/\/www.plastibots.com\/index.php\/wp-json\/wp\/v2\/posts\/498\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.plastibots.com\/index.php\/wp-json\/wp\/v2\/media?parent=498"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.plastibots.com\/index.php\/wp-json\/wp\/v2\/categories?post=498"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.plastibots.com\/index.php\/wp-json\/wp\/v2\/tags?post=498"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}