<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.0.4" -->
<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/"
	>

<channel>
	<title>nxtasy.org | Building a LEGO Mindstorms NXT Community Brick by Brick</title>
	<link>http://nxtasy.org</link>
	<description>LEGO Mindstorms NXT Blog Forums Community Downloads Tutorials</description>
	<pubDate>Tue, 30 Jun 2009 13:12:40 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.0.4</generator>
	<language>en</language>
			<item>
		<title>Ada now available on MINDSTORMS NXT</title>
		<link>http://nxtasy.org/2009/06/30/ada-now-available-on-mindstorms-nxt/</link>
		<comments>http://nxtasy.org/2009/06/30/ada-now-available-on-mindstorms-nxt/#comments</comments>
		<pubDate>Tue, 30 Jun 2009 13:12:39 +0000</pubDate>
		<dc:creator>guy</dc:creator>
		
	<category>news</category>
		<guid isPermaLink="false">http://nxtasy.org/2009/06/30/ada-now-available-on-mindstorms-nxt/</guid>
		<description><![CDATA[Ada, the language designed for long-lived applications where safety,&#160; security, and reliability are critical is now available on the MINDSTORMS NXT through GNAT GPL: http://libre.adacore.com/libre/tools/mindstorms/ 
The GNAT GPL Ada development environment is a Free Software toolset targeting the FLOSS and Academic communities. The MINDSTORMS NXT port is maintained by AdaCore (www.adacore.com).
&#8211; Matteo Bordin bordin@adacore.com
]]></description>
			<content:encoded><![CDATA[<p>Ada, the language designed for long-lived applications where safety,&#160; security, and reliability are critical is now available on the MINDSTORMS NXT through GNAT GPL: <a href="http://libre.adacore.com/libre/tools/mindstorms/">http://libre.adacore.com/libre/tools/mindstorms/</a> </p>
<p>The GNAT GPL Ada development environment is a Free Software toolset targeting the FLOSS and Academic communities. The MINDSTORMS NXT port is maintained by AdaCore (<a href="http://www.adacore.com">www.adacore.com</a>).</p>
<p>&#8211; Matteo Bordin <a href="mailto:bordin@adacore.com">bordin@adacore.com</a></p>
]]></content:encoded>
			<wfw:commentRSS>http://nxtasy.org/2009/06/30/ada-now-available-on-mindstorms-nxt/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>MCP4 forum applications</title>
		<link>http://nxtasy.org/2009/06/29/mcp4-forum-applications/</link>
		<comments>http://nxtasy.org/2009/06/29/mcp4-forum-applications/#comments</comments>
		<pubDate>Mon, 29 Jun 2009 16:34:37 +0000</pubDate>
		<dc:creator>guy</dc:creator>
		
	<category>news</category>
		<guid isPermaLink="false">http://nxtasy.org/2009/06/29/mcp4-forum-applications/</guid>
		<description><![CDATA[Are You a Hardcore LEGO® MINDSTORMS® NXT User?
Do you want to have a seat in our closed web forum, the MINDSTORMS Community Partners, where we involve you in our development and tests of new ideas, concepts, prototypes, products and discuss various issues around our SW, HW, FW and wetware…?
Then send an application via email with [...]]]></description>
			<content:encoded><![CDATA[<p>Are You a Hardcore LEGO® MINDSTORMS® NXT User?<br />
Do you want to have a seat in our closed web forum, the MINDSTORMS Community Partners, where we involve you in our development and tests of new ideas, concepts, prototypes, products and discuss various issues around our SW, HW, FW and wetware…?</p>
<p>Then send an application via email with a description of yourself, your involvement with LEGO MINDSTORMS, your special areas of interest, and a paragraph on why you are eligible to be an MCP member!</p>
<p>Send it to mindstormsnxt@lego.com with the header ‘MCP 4 application’.</p>
<p>Applications will be received from now and until 31 July 1200 GMT. All email applications received after this date will be rejected.</p>
<p>Applicants must be 18 years old to apply.
</p>
]]></content:encoded>
			<wfw:commentRSS>http://nxtasy.org/2009/06/29/mcp4-forum-applications/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>LEGO Beyond Toys</title>
		<link>http://nxtasy.org/2009/06/19/lego-beyond-toys/</link>
		<comments>http://nxtasy.org/2009/06/19/lego-beyond-toys/#comments</comments>
		<pubDate>Fri, 19 Jun 2009 05:24:55 +0000</pubDate>
		<dc:creator>guy</dc:creator>
		
	<category>news</category>
		<guid isPermaLink="false">http://nxtasy.org/2009/06/19/lego-beyond-toys/</guid>
		<description><![CDATA[A facinating university master class dealt with building new sensors for NXT. The outcome is a collection of robots and sensors, including a water pump, GPS sensor, Wireless sensor bridge and an Optical Mouse sensor. Each built with 3D rapid prototyping “legoish” casting. Details on the class and the results can be read here:
Lego Beyond [...]]]></description>
			<content:encoded><![CDATA[<p>A facinating university master class dealt with building new sensors for NXT. The outcome is a collection of robots and sensors, including a water pump, GPS sensor, Wireless sensor bridge and an Optical Mouse sensor. Each built with 3D rapid prototyping “legoish” casting. Details on the class and the results can be read here:</p>
<p><a title="Permanent link to Lego Beyond Toys" href="http://www.bartneck.de/2008/03/09/lego-beyond-toys/">Lego Beyond Toys</a></p>
<p><a title="Permanent link to Results - Lego Beyond Toys 1" href="http://www.bartneck.de/2008/03/09/results-lego-beyond-toys-1/">Lego Beyond Toys 1</a></p>
<p><a title="Permanent link to Results - Lego Beyond Toys 2" href="http://www.bartneck.de/2009/02/16/results-lego-beyond-toys-2/">Lego Beyond Toys 2</a></p>
]]></content:encoded>
			<wfw:commentRSS>http://nxtasy.org/2009/06/19/lego-beyond-toys/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>Weather forecasts on your NXT</title>
		<link>http://nxtasy.org/2009/06/16/weather-forecasts-on-your-nxt/</link>
		<comments>http://nxtasy.org/2009/06/16/weather-forecasts-on-your-nxt/#comments</comments>
		<pubDate>Wed, 17 Jun 2009 02:47:18 +0000</pubDate>
		<dc:creator>Linus</dc:creator>
		
	<category>development</category>
	<category>projects</category>
	<category>news</category>
	<category>software</category>
	<category>knowledge</category>
		<guid isPermaLink="false">http://nxtasy.org/2009/06/16/weather-forecasts-on-your-nxt/</guid>
		<description><![CDATA[or communication between an NXT, a computer and the internet.
Quite some time ago I wanted to give a brief tutorial about communication between an embedded program running on the NXT (for example written in NXC) and a computer. The reasons one would want to send data from an NXC program to a PC or vice [...]]]></description>
			<content:encoded><![CDATA[<p>or <strong>communication between an NXT, a computer and the internet</strong>.</p>
<p>Quite some time ago I wanted to give a brief tutorial about communication between an embedded program running on the NXT (for example written in NXC) and a computer. The reasons one would want to send data from an NXC program to a PC or vice versa can be divided into two main categories: Either the NXC program wants the computer to do things it can&#8217;t (complex calculations, look up information), or a computer program needs to tell an NXC program what to do (or which information to collect or log).</p>
<p><img hspace="8" height="244" align="right" width="177" alt="Weather Demo Client Screenshot" id="image1360" title="Weather Demo Client Screenshot" src="http://nxtasy.org/wp-content/uploads/2009/06/weatherclientscreenshot_smaller.png" /> In the search for a good example I came across this idea: Wouldn&#8217;t it be great to show how the NXT could retrieve data from the internet (although the display is to small for a browser <img src='http://nxtasy.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> )? The first kind of data I could think of were weather forecasts (or current weather conditions). So here we are: This is how it looks if your NXT can show the current temperature and brief conditions of any place around the world (screenshot taken with J. Hansen&#8217;s tool NXTScreen).</p>
<p>Short description: The NXC program (client) can request weather conditions by storing a string in one of its mailboxes. The computer program (server, written in MATLAB) constantly looks for messages there via direct commands. If one is found the according weather conditions will be retrieved from the internet using the Yahoo! Weather RSS service. The most important data are extracted and sent back to the NXT (again by storing a string in a mailbox). The NXC program in term waits until a string can be read from the queue, parses it and finally displays city name, current temperature, and condition.</p>
<p>Left and right buttons cycle through multiple locations (i.e. cities); the orange center button toggles between Fahrenheit and Celsius mode! Interested? Read on!</p>
<p><a id="more-1356"></a>The main requirements for bi-directional communication between an NXC program and a computer program are functions to send and receive strings. Once we have these, we can define our own protocol and send information back and forth. In NXC, we can use the function <em>SendMessage()</em> to store a string in a mailbox (let&#8217;s call this the NXC-Outbox for a moment, number 0 is fine). To retrieve strings from a mailbox (that have been put there by the computer), the function <em>ReceiveRemoteString</em>() works well. This time, we better use a different mailbox queue, e.g. number 1, and name it NXC-Inbox.</p>
<p>Half there! The NXC program can send and receive data, how about the PC side? We need some sort of program or library that supports direct commands (those are commands you can use to remote control your NXT; you can find more details in the <a title="LEGO Mindstorms BDK" href="http://cache.lego.com/upload/contentTemplating/MindstormsOverview/otherfiles/2057/LEGO%20MINDSTORMS%20NXT%20Bluetooth%20Developer%20Kit_58CE458E-5292-4CB0-93D2-4BEC821C13C2.zip">Bluetooth Developer Kit</a>). There are many implementations, good overviews are either <a href="http://en.wikipedia.org/wiki/Lego_Mindstorms#Programming_languages_2">this Wikipedia table</a> or <a href="http://www.teamhassenplug.org/NXT/NXTSoftware.html">Steve&#8217;s comparison</a>. Even more, we need to find a solution that already supports the direct commands <em>MessageRead</em> and <em>MessageWrite</em> (I&#8217;m saying this since some packages are still under development and don&#8217;t support the full set of commands). If not, those direct commands would have to be implemented (the Bluetooth Developer Kit has details about the format).</p>
<p>So let&#8217;s say we already have <em>MessageRead</em> and <em>MessageWrite. </em>These are the counter-parts of <em>SendMessage() </em>and  <em>ReceiveRemoteString</em>() in NXC. We use <em>MessageWrite </em>to send a string to the mailqueue we called NXC-Inbox before (so the PC&#8217;s outbox is the NXT&#8217;s inbox). Just as well we use <em>MessageRead </em>to see if there&#8217;s something waiting for us in the NXC-Outbox (again, this would be the inbox from the PC&#8217;s point of view). If you get confused, don&#8217;t worry. Just remember that the computer has to receive what the NXT sends and the other way around.</p>
<p>Almost done. We have everything we need. We can send little &#8220;orders&#8221; (commands would be a better word) from the NXT to the PC, for example. Of course we have to define what those commands mean. The PC could see the incoming strings, react on them and send answers. This is what my weather demo does. I use <a href="http://weather.yahoo.com/">Yahoo! Weather</a> as actual source, so the program on the PC retrieves data from the internet (it&#8217;s actually data in the RSS newsreader format, the API details are described <a href="http://developer.yahoo.com/weather/">here</a>).</p>
<p>As language I chose MATLAB (and the <a href="http://www.mindstorms.rwth-aachen.de">RWTH - Mindstorms NXT Toolbox</a>, which I happen to be a developer of <img src='http://nxtasy.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> ). It provides the direct commands mentioned above, as well as a very easy-to-use built-in function to retrieve data from the internet. In theory the server could be implemented in any language. A detail I didn&#8217;t mention before is that we of course have to connect the computer to the NXT somehow. This can be a bit complicated if you want to use Bluetooth, it&#8217;s usually easier with USB, but always depends on your OS and hardware (as well as the programming package you use). With the MATLAB toolbox, you just have to plug in the USB cable or connect the Bluetooth dongle with the driver software, and you&#8217;re ready to go. Other packages are similar easy to use.</p>
<p>So finally, where is the sourcecode? Here&#8217;s the <a href="http://www.mindstorms.rwth-aachen.de/trac/export/610/branches/atorf/personal%20playground/WeatherServer/WeatherClient.nxc">NXC client program</a>, and here&#8217;s the <a href="http://www.mindstorms.rwth-aachen.de/trac/export/610/branches/atorf/personal%20playground/WeatherServer/WeatherServer.m">MATLAB server program</a>. If you don&#8217;t have MATLAB installed, this <a href="http://www.mindstorms.rwth-aachen.de/trac/export/610/branches/atorf/personal%20playground/WeatherServer/WeatherServer.html">HTML version with syntax highlighting</a> is easier to read. Both programs are heavily commented and can be used freely (GPL license).</p>
<p>If you just wanted to write a program that reacts on certain weather data (or whatever is available on a computer these days), you could have done this without an NXC program of course (just using remote control software like the MATLAB toolbox), resulting in a much simpler program. But then you&#8217;re in certain other ways limited (Bluetooth latency, or real time motor control for example). The way I documented it in this little tutorial, you could adapt the NXC program to work without a computer in range, and only use external data if they are available. The main point is that I wanted to illustrate some NXC-to-Computer communication.</p>
<p>So what do you think? What new kind of applications are possible? Any great ideas? If you did anything interesting, useful, or funny with this example, or have any other questions, please don&#8217;t hesitate to start a discussion in the forums!</p>
<p align="right"><a href="http://forums.nxtasy.org/index.php?showuser=4951">Linus Atorf<br />
</a>
</p>
]]></content:encoded>
			<wfw:commentRSS>http://nxtasy.org/2009/06/16/weather-forecasts-on-your-nxt/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>What to do next? &#8211; Part 2</title>
		<link>http://nxtasy.org/2009/06/02/what-to-do-next-part-2/</link>
		<comments>http://nxtasy.org/2009/06/02/what-to-do-next-part-2/#comments</comments>
		<pubDate>Wed, 03 Jun 2009 02:34:07 +0000</pubDate>
		<dc:creator>guy</dc:creator>
		
	<category>news</category>
		<guid isPermaLink="false">http://nxtasy.org/2009/06/02/what-to-do-next-part-2/</guid>
		<description><![CDATA[During my last blog I gave a very general overview of digital systems and digital communication. Now let’s dive&#160; into development! 
To begin you are going to need a development board for an FPGA or microcontroller. I chose the Digilent (http://www.digilentinc.com) Nexys 2 board. It uses a Xilinx Spartan 3E FPGA. You will also want [...]]]></description>
			<content:encoded><![CDATA[<p>During my last blog I gave a very general overview of digital systems and digital communication. Now let’s dive&#160; into development! </p>
<p>To begin you are going to need a development board for an FPGA or microcontroller. I chose the Digilent (<a href="http://www.digilentinc.com">http://www.digilentinc.com</a>) Nexys 2 board. It uses a Xilinx Spartan 3E FPGA. You will also want a bread board to develop the communications circuit. Digilent also sells I/O devices called PMODs. I got their servo motor interface PMOD. As a side note, all these components will work with a project for the RCX or NXT.&#160; Finally you will need some resistors to build into the input circuit to keep from frying the FPGA.</p>
<p>Remember how I said digital systems work in pulses? Well these pulses are read every so often as defined by the system clock. For the RCX servo motor controller we have to have two clocks. Using verilog (a programming language for hardware) we can divide the clock into the two clocks we need.&#160; Clock speeds can vary from servo to servo, but expect to program for 10 pulses per millisecond. The other clock will need to run at 10 pulses per second for the RCX. To write code in verilog, you will need a program from Xilinx that will allow you to create the file you download to the FPGA. For help regarding verilog, send me a PM. Wikipedia has good documentation, but once you begin to understand it, it is really easy.</p>
<p>Once you have your two clocks made, let’s work on the important part: the servo PWM. This is the real hard part. For this you are going to need to use one of your clocks (the faster one). You need to be able to control the 0’s and 1’s going to the motor. This can be done with a simple if statements. Again, exact times depend on the motor you choose!</p>
<p>Now you need to read the signal coming from the RCX. I uses eight clock counts (one byte) but you can work with different counts. You want to count up all the 1’s in your chosen cycle. Your code then needs to pass this to the PWM controller and have it decide on the time. That is it. Pretty simple right? Well, try and see. If you can master this fairly simple project (yet one that no one has tackled) then you are ready to work on the NXT!</p>
<p>This is how I approached the problem, and it sets you up for a good basic understanding of digital systems. Wikipedia and google are your friends. Once this all makes sense then you can begin to work on the NXT. I will say the I2C stuff for my next blog, but I think this will take you enough time!</p>
<p>&#8211;Andy Milluzzi</p>
]]></content:encoded>
			<wfw:commentRSS>http://nxtasy.org/2009/06/02/what-to-do-next-part-2/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>PID Control: Staying Put</title>
		<link>http://nxtasy.org/2009/05/25/pid-control-staying-put/</link>
		<comments>http://nxtasy.org/2009/05/25/pid-control-staying-put/#comments</comments>
		<pubDate>Mon, 25 May 2009 14:21:57 +0000</pubDate>
		<dc:creator>Xander</dc:creator>
		
	<category>knowledge</category>
	<category>Tutorials</category>
		<guid isPermaLink="false">http://nxtasy.org/2009/05/25/pid-control-staying-put/</guid>
		<description><![CDATA[I racked my brain trying to come up with another example of PID control that didn’t involve a whole lot of hocus pocus and math for my next article.&#160; Then I remembered; a few months ago when I first got my Hitechnic Magnetic Compass Sensor, I wrote a quick program to test it.&#160; It was [...]]]></description>
			<content:encoded><![CDATA[<p>I racked my brain trying to come up with another example of PID control that didn’t involve a whole lot of hocus pocus and math for my next article.&#160; Then I remembered; a few months ago when I first got my <a href="http://www.hitechnic.com/cgi-bin/commerce.cgi?preadd=action&amp;key=NMC1034">Hitechnic Magnetic Compass Sensor</a>, I wrote a quick program to test it.&#160; It was nothing special, just a program that would allow the robot to sit on a spinning platform but remain pointing in the direction it started off at.&#160;&#160; I had forgotten that it has a small PID control in it to make it react faster if the platform was spun more quickly.&#160; </p>
<div>
<div></div>
</div>
<p><object width="425" height="344"><br />
<param name="movie" value="http://www.youtube.com/v/G6CBzx0x2Io&#038;hl=en&#038;fs=1"></param>
<param name="allowFullScreen" value="true"></param>
<param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/G6CBzx0x2Io&#038;hl=en&#038;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
<p>So how does this one work?&#160; When the program starts, the robot checks its current heading and makes this its Set Point.&#160; Any change in the position of the spinning platform will cause the robot to rotate as well, thus changing its heading.&#160; The difference between the new heading and the Set Point is the error.&#160; Using the PID control a response is calculated and actuated by the motors.&#160; If the platform is rotated slowly, the robot will in turn only pivot slowly about its axis.&#160; However, if you give the platform a nice spin, the robot will speed up its motors and try to keep up.</p>
<p>You can download the RobotC source code from here: [<a href="http://www.breigh.com/xander/StayPut.c">LINK</a>].&#160; Make sure you calibrate the compass and mount it as far from the motor and brick as possible (at least 15 cms) due to magnetic interference.</p>
]]></content:encoded>
			<wfw:commentRSS>http://nxtasy.org/2009/05/25/pid-control-staying-put/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>Frequency response (dB/dBA) of the sound sensor</title>
		<link>http://nxtasy.org/2009/05/24/frequency-response-dbdba-of-the-sound-sensor/</link>
		<comments>http://nxtasy.org/2009/05/24/frequency-response-dbdba-of-the-sound-sensor/#comments</comments>
		<pubDate>Mon, 25 May 2009 02:56:50 +0000</pubDate>
		<dc:creator>Linus</dc:creator>
		
	<category>hardware</category>
	<category>news</category>
	<category>knowledge</category>
		<guid isPermaLink="false">http://nxtasy.org/2009/05/24/frequency-response-dbdba-of-the-sound-sensor/</guid>
		<description><![CDATA[When playing around with the NXT&#8217;s sound sensor I wasn&#8217;t probably the only one wondering about the different modes, dB and dBA. Without going much into detail, dB (or decibel) is the unit to measure sound pressure, basically what we describe as volume. This kind of measurement is not that simple (due to the physics [...]]]></description>
			<content:encoded><![CDATA[<p>When playing around with the NXT&#8217;s sound sensor I wasn&#8217;t probably the only one wondering about the different modes, dB and dBA. Without going much into detail, dB (or decibel) is the unit to measure sound pressure, basically what we describe as volume. This kind of measurement is not that simple (due to the physics behind sound levels, frequency, and so on). Also the human hear interprets sounds a certain way, which is why we have adjusted decibels, dBA. You can read a brief description on the <a title="sound sensor" href="http://mindstorms.lego.com/Overview/Sound_Sensor.aspx">official site</a> of the NXT sound sensor.</p>
<p>While all the theory is one thing, I wanted to see how the sound sensor reacts on tones of different frequencies in reality. And what would be easier than to use the NXT&#8217;s built-in speaker? You can use it to produce a tone of a given frequency (for example with the direct command PlayTone), and then record the sound pressue with the sound sensor. That is exactly what I have done (the MATLAB script can be found <a title="MATLAB sound sensor test script" href="http://www.mindstorms.rwth-aachen.de/trac/browser/branches/atorf/SensorTests/Sound/SoundTestFrequencyResponse.m">here</a>), and here are the results:</p>
<div id="div1351" class="imagewrap" onclick="doPopup(1351);">
<div style="text-align: center"><img height="400" width="485" id="image1351" alt="Frequency response: dB vs. dBA" src="http://nxtasy.org/wp-content/uploads/2009/05/sound_freqresp_dbvsdba_small.png" /></div>
</div>
<p>Now this looks interesting! It shows how the sound sensor determined different volume levels for different frequencies, whereas the actual volume of the speaker was not changed. Since two unknown devices where used in this test (the NXT&#8217;s sound sensor as well as its speaker), we cannot know where exactly this behavior comes from. And as I mentioned above, measuring sound pressure levels is a complicated thing, which is why it is hard to say (for me, at least) how the curve should look in an ideal world. But we can analyze the data a bit further without having to worry too much about exact acoustics.</p>
<p><a id="more-1349"></a>With dBA units one tries to account for the fact that different frequencies are perceived as having a different volume by the human ear. There are different weightings, the following picture shows the case for dBA (taken from <a title="dBA calculator" href="http://www.sengpielaudio.com/calculator-dba-spl.htm">this site</a>):</p>
<div id="div1351" class="imagewrap" onclick="doPopup(1351);">
<div style="text-align: center"><img height="243" width="379" alt="dBA frequency weighting " id="image1352" src="http://nxtasy.org/wp-content/uploads/2009/05/bewertungsfilter02.gif" /></div>
</div>
<p>As you can see, the human ear perceives tones between 1kHz and 10kHz as the loudest ones. To see what the sound sensor does when returning the data in either dB or dBA, I simply divided dBA by dB values to see their relative amplification:</p>
<div id="div1351" class="imagewrap" onclick="doPopup(1351);">
<div style="text-align: center"><img height="401" width="486" alt="dBA / dB ratio" id="image1353" src="http://nxtasy.org/wp-content/uploads/2009/05/sound_freqresp_dbdbaratio_small.png" /></div>
</div>
<p>The shape of this curve is not quite similar to the one we expect (note the different axes in the two plots). There is no real conclusion that can be drawn here, at least not with more tests&#8230;</p>
<p>So what is the use of these new insights (if any)? First of all, we have a picture of the difference between dB and dBA modes. Apart from some aspects of the NXT speaker one could discuss (but I will not do this right now), we know that the sound sensor picks up different tones with different readings. Unfortunately, the sound sensor reading is also influenced by its distance from the speaker. What we could use however are <em>relative volumes</em> of different tones.</p>
<p>Maybe this way multiple NXTs could communicate with each other via beeps, independent from their distance (i.e. from the absolute volume of the beeps). I imagine a certain beep-code being sent, something like a sequence of tones with different frequencies. The sound sensor could record the according sound levels of the tones, and calculate the ratio between them. If everything goes well, this ratio should stay fairly constant and enable transmission of information.</p>
<p>I am going to investigate this idea further some time in the future. Another thing on the to-do-list would be to repeat the described experiment, but this time with different (better) speakers&#8230;
</p>
]]></content:encoded>
			<wfw:commentRSS>http://nxtasy.org/2009/05/24/frequency-response-dbdba-of-the-sound-sensor/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>What to do next? - Part 1</title>
		<link>http://nxtasy.org/2009/05/20/what-to-do-next-part-1/</link>
		<comments>http://nxtasy.org/2009/05/20/what-to-do-next-part-1/#comments</comments>
		<pubDate>Wed, 20 May 2009 06:36:01 +0000</pubDate>
		<dc:creator>guy</dc:creator>
		
	<category>news</category>
		<guid isPermaLink="false">http://nxtasy.org/2009/05/20/what-to-do-next-part-1/</guid>
		<description><![CDATA[I have had the honor of being a member on the nxtasy.org forums for six months now and I have seen some amazing things done with the NXT. Each time I see someone do something new or get a new sensor I keep thinking what&#8217;s next. I don&#8217;t mean next by parts or new Mindstorms, [...]]]></description>
			<content:encoded><![CDATA[<p>I have had the honor of being a member on the nxtasy.org forums for six months now and I have seen some amazing things done with the NXT. Each time I see someone do something new or get a new sensor I keep thinking what&#8217;s next. I don&#8217;t mean next by parts or new Mindstorms, I mean next in expanding what we already have. As many of you know, I am a computer Engineering student at Rose-Hulman Institute of Technology. During winter term, I was introduced to a new form of micro processing: the FPGA. FPGAs, or Field Programmable Gate Arrays, are programmable logic devices developed by Xlinix in the 1980&#8217;s. What makes these devices special is that you control how they process data and you control how they interact with other digital systems. To me this seems like a perfect way to expand my NXT&#8217;s power. Over the next few weeks I plan to introduce you to the basics of embedded hardware development and apply those skills to create useful sensors and processing units that can be change to do whatever you like, whenever you like; think super-sensor system! Now before we can develop for something that is as complex as the NXT, we need to start with the basics. To understand logic devices, you must understand that digital systems run in 0&#8217;s and 1&#8217;s and communicate through pulsed signals (this method is called serial connections). While the NXT has several other components, like memory and registries, we first need to understand how to make things talk. A relatively simple demonstration can be seen in the RCX servo motor controller I developed. By writing my own function that creates a pulsed signal between the RCX output and FPGA, the RCX is able to interact with the rest of the world in a much more complex manner. The pulsed signals coming out of the RCX were reduced in voltage and the FPGA clock was adjusted to accept the speed of the RCX processor. From this the FPGA reads the signal and produces the correct response. How that exactly works is another blog, but understanding the high level serial connection is the first step to understanding development for the NXT. I can go on for pages and pages on this technology, but I will leave you with this to digest about basic digital communication. If you would like more information, please feel free to PM me on the forums or check out Wikipedia.org. </p>
<p>&#8211; Andrew Milluzzi</p>
]]></content:encoded>
			<wfw:commentRSS>http://nxtasy.org/2009/05/20/what-to-do-next-part-1/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>New contributor</title>
		<link>http://nxtasy.org/2009/05/20/new-contributor/</link>
		<comments>http://nxtasy.org/2009/05/20/new-contributor/#comments</comments>
		<pubDate>Wed, 20 May 2009 06:30:17 +0000</pubDate>
		<dc:creator>guy</dc:creator>
		
	<category>news</category>
		<guid isPermaLink="false">http://nxtasy.org/2009/05/20/new-contributor/</guid>
		<description><![CDATA[I would like to welcome Linus Atorf to NXTasy list of contributors. Here’s some bio on Linus:
Hi everybody! I&#8217;m Linus Atorf, a 25-year-old physics student from Aachen, Germany. I&#8217;ve been working with LEGO Mindstorms for 2 years now, since I joined the Insitute for Imaging and Computer Vision at RWTH Aachen University. There I&#8217;ve helped [...]]]></description>
			<content:encoded><![CDATA[<p>I would like to welcome Linus Atorf to NXTasy list of contributors. Here’s some bio on Linus:</p>
<blockquote><p>Hi everybody! I&#8217;m Linus Atorf, a 25-year-old physics student from Aachen, Germany. I&#8217;ve been working with LEGO Mindstorms for 2 years now, since I joined the Insitute for Imaging and Computer Vision at RWTH Aachen University. There I&#8217;ve helped developing the RWTH - Mindstorms NXT Toolbox for MATLAB from scratch. Since 2007, every year almost 400 students (field of study Electrical Engineering, Information Technology, and Computer Engineering) work with 200 NXT sets during a full-time laboratory course lasting 8 days [1]. The lab is used to teach the first-year students (about 20 years old) programming in MATLAB, mathematical methods and of course teamwork skills, while hopefully having some fun with LEGO robots. Most of the time I&#8217;m working with MATLAB, but recently I also began to enjoy NXC. During my work I occasionally stumble upon interesting NXT-related things I&#8217;d like to share - or I could show you some of the impressive robots our students build (like this tic tac toe playing bot [2])&#8230; </p>
<p>[1] <a href="http://mindstorms.lfb.rwth-aachen.de/index.php/en">http://mindstorms.lfb.rwth-aachen.de/index.php/en</a>       <br />[2] <a href="http://thenxtstep.blogspot.com/2008/12/tic-tac-toe-playing-nxt.html">http://thenxtstep.blogspot.com/2008/12/tic-tac-toe-playing-nxt.html</a></p>
</blockquote>
]]></content:encoded>
			<wfw:commentRSS>http://nxtasy.org/2009/05/20/new-contributor/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>How do we perceive objects?</title>
		<link>http://nxtasy.org/2009/05/10/how-do-we-perceive-objects/</link>
		<comments>http://nxtasy.org/2009/05/10/how-do-we-perceive-objects/#comments</comments>
		<pubDate>Sun, 10 May 2009 16:00:53 +0000</pubDate>
		<dc:creator>guy</dc:creator>
		
	<category>news</category>
		<guid isPermaLink="false">http://nxtasy.org/2009/05/10/how-do-we-perceive-objects/</guid>
		<description><![CDATA[
Nils Voelker sent me an email on this NXT creation he made. It was a part of an art and design exhibit in Netherlands. The exhibit had images of objects such as an apple or a chicken, an eye-tracker followed the observer and recorded the points on the object he looked at, and this ceiling-mounted [...]]]></description>
			<content:encoded><![CDATA[<p><img id="image1346" width=300 alt=nils.png src="http://nxtasy.org/wp-content/uploads/2009/05/nils.png" />
<p>Nils Voelker sent me an email on this NXT creation he made. It was a part of an art and design exhibit in Netherlands. The exhibit had images of objects such as an apple or a chicken, an eye-tracker followed the observer and recorded the points on the object he looked at, and this ceiling-mounted NXT made spots on a piece of paper recording these points. See more pictures and videos on Nils site <a href="http://www.nilsvoelker.com/nxt/">here</a>.</p>
]]></content:encoded>
			<wfw:commentRSS>http://nxtasy.org/2009/05/10/how-do-we-perceive-objects/feed/</wfw:commentRSS>
		</item>
	</channel>
</rss>
