<?xml version="1.0" encoding="UTF-8"?> <rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" ><channel><title>toxicsoftware.com &#187; Mindstorms</title> <atom:link href="http://toxicsoftware.com/tag/mindstorms/feed/" rel="self" type="application/rss+xml" /><link>http://toxicsoftware.com</link> <description>RANDOMIZE USR 0</description> <lastBuildDate>Thu, 22 Dec 2011 03:35:22 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.3.1</generator> <item><title>SpaceNavigator controlled Lego Mindstorms NXT</title><link>http://toxicsoftware.com/spacenavigatornxt/</link> <comments>http://toxicsoftware.com/spacenavigatornxt/#comments</comments> <pubDate>Thu, 27 Sep 2007 02:50:04 +0000</pubDate> <dc:creator>schwa</dc:creator> <category><![CDATA[Default]]></category> <category><![CDATA[Cocoa]]></category> <category><![CDATA[Lego]]></category> <category><![CDATA[Links]]></category> <category><![CDATA[Mindstorms]]></category> <category><![CDATA[NXT]]></category> <category><![CDATA[Source Code]]></category> <category><![CDATA[SpaceNavigator]]></category><guid isPermaLink="false">http://toxicsoftware.com/spacenavigatornxt/</guid> <description><![CDATA[It&#8217;s my second year of coaching a First Lego League team. The experience has been fantastic, I&#8217;m teaching 4th and 5th grade children about robots and computers, and teaching them to build and program their own robots. This year the &#8230; <a href="http://toxicsoftware.com/spacenavigatornxt/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>It&#8217;s my second year of coaching a <a href="http://www.firstlegoleague.org/">First Lego League</a> team. The experience has been fantastic, I&#8217;m teaching 4th and 5th grade children about robots and computers, and teaching them to build and program their own robots. This year the kids are going to be learning how to use the new <a href="http://www.amazon.com/gp/product/B000E4FDAE?ie=UTF8&amp;tag=toxicsoftware-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=B000E4FDAE">Lego Mindstorms NXT</a> robot; therefore I happen to have an NXT robot in the house. One of the cool features of the NXT is that it can communicate to a Mac (or even another NXT robot) via Bluetooth. So I thought it might be fun to take the <a href="http://www.amazon.com/gp/product/B000LB41BM?ie=UTF8&amp;tag=toxicsoftware-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=B000LB41BM">3Dconnexion SpaceNavigator</a> controller device I used in my <a href="/the-intersection-of-cool-and-awesome">previous blog post</a> and use it to control an NXT Robot. Here is the result:</p><p><a href="http://s3.amazonaws.com/uploads.toxicsoftware.com/SpaceNavigatorNXT.mp4"><img src="http://toxicsoftware.com/wordpress/uploads/spacenavigatornxtpreview.png" alt="SpaceNavigatorNXTPreview.png" border="0" width="320" height="248" /></a></p><p>Although the SpaceNavigator support six degrees of freedom, I&#8217;m only using two (Y axis for forwards/reverse and RZ for turning), that leaves plenty of room for expansion (perhaps hooking up a third motor to another controller axis).</p><p>Although the video doesn&#8217;t show it too well, the SpaceNavigator does allow for very fine grained control over the robot (as long as the robot has fresh batteries!). The controller is extremely sensitive and with practice the robot can be controlled quite delicately.</p><p>Currently only one axis is dominant at a time (that&#8217;s actually a preference in the SpaceController System Preferences screen) but it is be possible to control robot steering and speed/direction at the same time. I&#8217;ll be trying that out soon.</p><p>There doesn&#8217;t seem to be much in the way of Mac OS X APIs for controlling NXT via Bluetooth, so I&#8217;m putting my code onto my <a href="http://toxic-public.googlecode.com/svn/tags/BlogTag_20070927_743/Projects/NXTTest/">public subversion server</a> and releasing it (like everything else in my public repository) under the <a href="http://en.wikipedia.org/wiki/Bsd_license">BSD License</a>. The code is Leopard only (although all I&#8217;m using are some <a href="http://developer.apple.com/leopard/overview/tools.html">Objective-C 2.0</a> features, such as properties and the new for loop). The code uses Cocoa bindings/KVC and has a rather simple interface:</p><pre><code>robot = [[[CNXTRobot alloc] init] autorelease];
((CNXTMotor *)[robot.ports objectForKey:@"B"]).power = (int)(theMotor1 * 100.0);
((CNXTMotor *)[robot.ports objectForKey:@"C"]).power = (int)(theMotor2 * 100.0);
</code></pre><p>The sample NXT project relies on my <a href="http://toxic-public.googlecode.com/svn/tags/BlogTag_20070927_743/Frameworks/ToxicWarped/">ToxicWarped</a> framework. ToxicWarped was originally created for my <a href="/">Geode</a> project and is designed to help write simple but flexible Object Oriented protocol stacks.</p><p>The NXT code is barely a day old, so it is very rough and ready but I&#8217;ll be tinkering with the NXT and SpaceNavigator code over the next few weeks (in my spare time) but if anyone has a use for the code and would like to contribute back that would be fantastic.</p><p>Update: Couldn&#8217;t stand awful <a href="http://www.youtube.com/watch?v=H4zct49Dv6Y">Youtube</a> image quality any longer. Videos are now on amazon s3.</p> ]]></content:encoded> <wfw:commentRss>http://toxicsoftware.com/spacenavigatornxt/feed/</wfw:commentRss> <slash:comments>9</slash:comments> <enclosure url="http://s3.amazonaws.com/uploads.toxicsoftware.com/SpaceNavigatorNXT.mp4" length="2233920" type="audio/mp4" /> <enclosure url="http://s3.amazonaws.com/uploads.toxicsoftware.com/SpaceNavigatorNXT/SpaceNavigatorNXT.mov" length="296" type="video/quicktime" /> </item> </channel> </rss>
<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: basic
Database Caching 1/10 queries in 0.003 seconds using disk: basic
Object Caching 265/279 objects using disk: basic

Served from: toxicsoftware.com @ 2012-02-08 14:27:01 -->
