<?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>Xiaoyang&#039;s ITP Life</title>
	<atom:link href="http://www.sunshinehere.com/blog/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.sunshinehere.com/blog</link>
	<description>Learning from each other...</description>
	<lastBuildDate>Tue, 20 Apr 2010 00:34:35 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Visualizing ITP floor data in Processing</title>
		<link>http://www.sunshinehere.com/blog/?p=155</link>
		<comments>http://www.sunshinehere.com/blog/?p=155#comments</comments>
		<pubDate>Tue, 20 Apr 2010 00:33:35 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ITP]]></category>
		<category><![CDATA[Telling Stories with Data, Sensors & Humans]]></category>
		<category><![CDATA[sensor itp data logger processing visualization]]></category>

		<guid isPermaLink="false">http://www.sunshinehere.com/blog/?p=155</guid>
		<description><![CDATA[
ITP sensor visualization processing sample from fxydesign on Vimeo.
]]></description>
			<content:encoded><![CDATA[<p><object width="600" height="450"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=11062172&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=11062172&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="600" height="450"></embed></object>
<p><a href="http://vimeo.com/11062172">ITP sensor visualization processing sample</a> from <a href="http://vimeo.com/user2604252">fxydesign</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunshinehere.com/blog/?feed=rss2&amp;p=155</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Visualization of openLog</title>
		<link>http://www.sunshinehere.com/blog/?p=141</link>
		<comments>http://www.sunshinehere.com/blog/?p=141#comments</comments>
		<pubDate>Tue, 13 Apr 2010 03:23:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ITP]]></category>
		<category><![CDATA[Telling Stories with Data, Sensors & Humans]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[data visualization]]></category>
		<category><![CDATA[google visualization]]></category>
		<category><![CDATA[openLog]]></category>
		<category><![CDATA[photo cell]]></category>
		<category><![CDATA[ultrasonic range finder]]></category>

		<guid isPermaLink="false">http://www.sunshinehere.com/blog/?p=141</guid>
		<description><![CDATA[Nick want me to run a workshop for students about openLog and sensors. I use one photocell and ultrasonic range finder sensor as an example. Since most time people use sensors, either record sensor value constantly, or record whenever a big change happens. These two sensor are perfectly for this application.
Openlog are dataloggers taking serial [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://nickbilton.com">Nick</a> want me to run a workshop for students about openLog and sensors. I use one photocell and <a href="http://www.sparkfun.com/commerce/product_info.php?products_id=639">ultrasonic range finder sensor</a> as an example. Since most time people use sensors, either record sensor value constantly, or record whenever a big change happens. These two sensor are perfectly for this application.</p>
<p>Openlog are dataloggers taking serial values, so  I use software library to get a screen monitor as well, super useful for debugging. And for the distance sensor, I write some algorithms to catch the peak value whenver a change happens, it average 100 samples at the beginning, and record changes with timeline encoded. I attached all the codes in the download links.</p>
<p>The I realized google have javascript visualization code available, so I start to play with them. For the photocell, since I print only sensor values line by line in arduino, so I use the sample rate as a timer, time coded in processing to print java like code for google viz &#8211; using image line chart.<br />
<code><br />
    function drawVisualization() {<br />
    var data = new google.visualization.DataTable();<br />
    data.addColumn('timeofday', 'Time');<br />
    data.addColumn('number', 'Lights of Room');<br />
    data.addRows(10);<br />
    data.setCell(0,0,[12,25,37]);<br />
    data.setCell(0,1,23);<br />
    ... ...<br />
    data.setCell(9,0,[12,25,46]);<br />
    data.setCell(9,1,23);<br />
    new google.visualization.ImageLineChart(document.getElementById('visualization')).<br />
    draw(data, null);<br />
}<br />
​</code><br />
<!--
  copyright (c) 2009 Google inc.

  You are free to copy and use this sample.
  License can be found here: http://code.google.com/apis/ajaxsearch/faq/#license
-->

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
    <title>
      Google Visualization API Sample
    </title>
    <script type="text/javascript" src="http://www.google.com/jsapi"></script>
    <script type="text/javascript">
      google.load('visualization', '1', {packages: ['imagelinechart']});
    </script>
    <script type="text/javascript">
      function drawVisualization() {
        // Create and populate the data table.
        var data = new google.visualization.DataTable();
        data.addColumn('timeofday', 'Time');
        data.addColumn('number', 'Light of Room');
      data.addRows(10);
      data.setCell(0,0,[12,25,37]);
      data.setCell(0,1,23);
      data.setCell(1,0,[12,25,38]);
      data.setCell(1,1,23);
      data.setCell(2,0,[12,25,39]);
      data.setCell(2,1,23);
      data.setCell(3,0,[12,25,40]);
      data.setCell(3,1,23);
      data.setCell(4,0,[12,25,41]);
      data.setCell(4,1,23);
      data.setCell(5,0,[12,25,42]);
      data.setCell(5,1,24);
      data.setCell(6,0,[12,25,43]);
      data.setCell(6,1,22);
      data.setCell(7,0,[12,25,44]);
      data.setCell(7,1,24);
      data.setCell(8,0,[12,25,45]);
      data.setCell(8,1,23);
      data.setCell(9,0,[12,25,46]);
      data.setCell(9,1,23);
        // Create and draw the visualization.
        new google.visualization.ImageLineChart(document.getElementById('visualization_photocell')).
            draw(data, null);  
      }
      

      google.setOnLoadCallback(drawVisualization);
    </script>
  </head>
  <body style="font-family: Arial;border: 0 none;">
    <div id="visualization_photocell" style="width: 600px; height: 300px;"></div>
  </body>
</html>
​</p>
<p>For the distance sensor, I remember saw a new about a bike project in copenhagen, they have a sensor installed on the bike lane, with a giant LED screen on it, every time one bike passes, the screen show a number increase. So I use this idea to test the sensor. Every time the distance is shorter, I catch the change and print time encoded message into the datalogger, eg (12:53:17 one bike). For viz on the google chart,  I take the time, count the number in every minutes, and print jave like code for google viz &#8211; using column chart.<br />
<code><br />
      function drawVisualization() {<br />
        var data = new google.visualization.DataTable();<br />
        data.addColumn('timeofday','Time');<br />
        data.addColumn('number', 'Number of Bikes');<br />
        data.addRows(42);<br />
        data.setCell(0,0,[12,25,0]);<br />
        data.setCell(0,1,0);<br />
        ......<br />
        data.setCell(41,0,[12,6,0]);<br />
        data.setCell(41,1,0);<br />
        new google.visualization.ColumnChart(document.getElementById('visualization_ultrasonic')).<br />
            draw(data,<br />
                {title:"Bike Lane Analytics",<br />
                  width:600, height:300}<br />
            );<br />
      }<br />
      google.setOnLoadCallback(drawVisualization);<br />
      </code><br />
<!--
  copyright (c) 2009 Google inc.

  You are free to copy and use this sample.
  License can be found here: http://code.google.com/apis/ajaxsearch/faq/#license
-->

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
    <title>
      Google Visualization API Sample
    </title>
    <script type="text/javascript" src="http://www.google.com/jsapi"></script>
    <script type="text/javascript">
      google.load('visualization', '1', {packages: ['columnchart']});
    </script>
    <script type="text/javascript">
      function drawVisualization() {
        // Create and populate the data table.
        var data = new google.visualization.DataTable();
      
        
          data.addColumn('timeofday','Time'); 
          data.addColumn('number', 'Number of Bikes'); 
data.addRows(42);
data.setCell(0,0,[12,25,0]);
data.setCell(0,1,0);
data.setCell(1,0,[12,26,0]);
data.setCell(1,1,3);
data.setCell(2,0,[12,27,0]);
data.setCell(2,1,0);
data.setCell(3,0,[12,28,0]);
data.setCell(3,1,0);
data.setCell(4,0,[12,29,0]);
data.setCell(4,1,0);
data.setCell(5,0,[12,30,0]);
data.setCell(5,1,0);
data.setCell(6,0,[12,31,0]);
data.setCell(6,1,0);
data.setCell(7,0,[12,32,0]);
data.setCell(7,1,0);
data.setCell(8,0,[12,33,0]);
data.setCell(8,1,0);
data.setCell(9,0,[12,34,0]);
data.setCell(9,1,1);
data.setCell(10,0,[12,35,0]);
data.setCell(10,1,2);
data.setCell(11,0,[12,36,0]);
data.setCell(11,1,8);
data.setCell(12,0,[12,37,0]);
data.setCell(12,1,10);
data.setCell(13,0,[12,38,0]);
data.setCell(13,1,21);
data.setCell(14,0,[12,39,0]);
data.setCell(14,1,27);
data.setCell(15,0,[12,40,0]);
data.setCell(15,1,38);
data.setCell(16,0,[12,41,0]);
data.setCell(16,1,15);
data.setCell(17,0,[12,42,0]);
data.setCell(17,1,0);
data.setCell(18,0,[12,43,0]);
data.setCell(18,1,0);
data.setCell(19,0,[12,44,0]);
data.setCell(19,1,0);
data.setCell(20,0,[12,45,0]);
data.setCell(20,1,3);
data.setCell(21,0,[12,46,0]);
data.setCell(21,1,33);
data.setCell(22,0,[12,47,0]);
data.setCell(22,1,9);
data.setCell(23,0,[12,48,0]);
data.setCell(23,1,0);
data.setCell(24,0,[12,49,0]);
data.setCell(24,1,14);
data.setCell(25,0,[12,50,0]);
data.setCell(25,1,5);
data.setCell(26,0,[12,51,0]);
data.setCell(26,1,12);
data.setCell(27,0,[12,52,0]);
data.setCell(27,1,35);
data.setCell(28,0,[12,53,0]);
data.setCell(28,1,1);
data.setCell(29,0,[12,54,0]);
data.setCell(29,1,24);
data.setCell(30,0,[12,55,0]);
data.setCell(30,1,10);
data.setCell(31,0,[12,56,0]);
data.setCell(31,1,9);
data.setCell(32,0,[12,57,0]);
data.setCell(32,1,12);
data.setCell(33,0,[12,58,0]);
data.setCell(33,1,22);
data.setCell(34,0,[12,59,0]);
data.setCell(34,1,10);
data.setCell(35,0,[12,0,0]);
data.setCell(35,1,23);
data.setCell(36,0,[12,1,0]);
data.setCell(36,1,35);
data.setCell(37,0,[12,2,0]);
data.setCell(37,1,13);
data.setCell(38,0,[12,3,0]);
data.setCell(38,1,0);
data.setCell(39,0,[12,4,0]);
data.setCell(39,1,20);
data.setCell(40,0,[12,5,0]);
data.setCell(40,1,4);
data.setCell(41,0,[12,6,0]);
data.setCell(41,1,0);

        // Create and draw the visualization.
        new google.visualization.ColumnChart(document.getElementById('visualization_ultrasonic')).
            draw(data, 
                {title:"Bike Lane Analytics", 
                  width:600, height:300}          
            );
      }
      

      google.setOnLoadCallback(drawVisualization);
    </script>
  </head>
  <body style="font-family: Arial;border: 0 none;">
    <div id="visualization_ultrasonic" style="width: 600px; height: 300px;"></div>
  </body>
</html>
​</p>
<p><a href="http://www.sunshinehere.com/things/Blog/DataSensingClass.zip">download</a></p>
<p>ps: to use google viz in your wordpress page, use &#8216;<a href="http://wordpress.org/extend/plugins/custom-fields-shortcode/">custom field shortcode</a>&#8216; plugin.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunshinehere.com/blog/?feed=rss2&amp;p=141</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Illustration of one week life</title>
		<link>http://www.sunshinehere.com/blog/?p=137</link>
		<comments>http://www.sunshinehere.com/blog/?p=137#comments</comments>
		<pubDate>Mon, 22 Mar 2010 19:45:24 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Telling Stories with Data, Sensors & Humans]]></category>
		<category><![CDATA[adobe ai]]></category>
		<category><![CDATA[daytum]]></category>
		<category><![CDATA[visualization]]></category>

		<guid isPermaLink="false">http://www.sunshinehere.com/blog/?p=137</guid>
		<description><![CDATA[Assignment: Visualization the data source in Adobe AI.
Data: 5 different things logged in one week.
tool: I use daytum to log all my infomation.
Here is my visualization:

]]></description>
			<content:encoded><![CDATA[<p>Assignment: Visualization the data source in Adobe AI.</p>
<p>Data: 5 different things logged in one week.</p>
<p>tool: I use <a href="http://www.daytum.com/fxy">daytum</a> to log all my infomation.</p>
<p>Here is my visualization:</p>
<p style="text-align: center;"><a href="http://www.sunshinehere.com/blog/wp-content/uploads/2010/03/Picture-11.png"><img class="aligncenter size-large wp-image-138" title="xiaoyang's daytum" src="http://www.sunshinehere.com/blog/wp-content/uploads/2010/03/Picture-11-1024x766.png" alt="" width="614" height="460" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunshinehere.com/blog/?feed=rss2&amp;p=137</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tutorial: openLog data logger from Sparkfun</title>
		<link>http://www.sunshinehere.com/blog/?p=104</link>
		<comments>http://www.sunshinehere.com/blog/?p=104#comments</comments>
		<pubDate>Sat, 06 Mar 2010 18:01:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ITP]]></category>
		<category><![CDATA[P-Com]]></category>
		<category><![CDATA[Telling Stories with Data, Sensors & Humans]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[fritzing]]></category>
		<category><![CDATA[microSD]]></category>
		<category><![CDATA[openLog]]></category>
		<category><![CDATA[sparkfun]]></category>

		<guid isPermaLink="false">http://www.sunshinehere.com/blog/?p=104</guid>
		<description><![CDATA[
OpenLog
WHAT IS THIS:
OpenLog is an open source data logger, available from SparkFun. It takes serial data and write into a microSD card. It can be connected to a microcontroller, such as Arduino.
Feather:

small size
integrating a MicroSD card writer
support MicroSD card  up to 2GB, ONLY FAT16 format
Support high sample rate
Power usage about 18mA at Maximum rate
Take either 3.3V [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.sparkfun.com/commerce/product_info.php?products_id=9530"><img class="aligncenter size-full wp-image-105" title="Picture 1" src="http://www.sunshinehere.com/blog/wp-content/uploads/2010/03/Picture-1.png" alt="Picture 1" width="599" height="355" /></a></p>
<p>OpenLog</p>
<p>WHAT IS THIS:</p>
<p>OpenLog is an open source data logger, available from SparkFun. It takes serial data and write into a microSD card. It can be connected to a microcontroller, such as Arduino.</p>
<p>Feather:</p>
<ul>
<li>small size</li>
<li>integrating a MicroSD card writer</li>
<li>support MicroSD card  up to 2GB, ONLY FAT16 format</li>
<li>Support high sample rate</li>
<li>Power usage about 18mA at Maximum rate</li>
<li>Take either 3.3V or 5V Power</li>
</ul>
<p><a href="http://www.ehow.com/how_4794433_format-sd-card-mac.html">How to format</a></p>
<p>HOW TO CONFIG:</p>
<p>Wire your openLog with USBtoSerial Adapter or using Arduino. If you use USBtoSerial adapter, you connect Rx to Tx, Tx to Rx, check <a href="http://www.sunshinehere.com/blog/wp-content/uploads/2010/03/usLog_FTDI.png">this</a> as reference. If you use Arduino, connect your Rx pin on arduino to Rx pin on openLog, Tx to Tx. Here is the diagram how to wire it.(you need to upload a blank code or any code without serial communication).</p>
<p><a href="http://www.sunshinehere.com/blog/wp-content/uploads/2010/03/FTDI_Schematic1.png"><img class="aligncenter size-full wp-image-130" title="FTDI_Schematic1" src="http://www.sunshinehere.com/blog/wp-content/uploads/2010/03/FTDI_Schematic1.png" alt="" width="640" height="300" /></a></p>
<p><a href="http://www.sunshinehere.com/blog/wp-content/uploads/2010/03/openLog_Config.png"><img class="aligncenter size-full wp-image-106" title="openLog_Config" src="http://www.sunshinehere.com/blog/wp-content/uploads/2010/03/openLog_Config.png" alt="openLog_Config" width="700" height="417" /></a></p>
<p>you can use any serial program(such as coolterm/cornflakes) to configure it. I use terminal below. Here are the steps you take once you&#8217;ve got the serial port open:</p>
<ol>
<li>type &#8220;Control + z to get into the configuration mode&#8221;</li>
<li>&#8230;.config it&#8230;. check <a href="http://wiki.github.com/nseidle/OpenLog/command-set">commend sets </a>for more details</li>
<li>type &#8220;set&#8221;</li>
<li>type 1 to get into &#8216;LOG&#8217; Mode.</li>
</ol>
<p>( <em>if your arduino have some serial communication code running, the terminal will print the data out, you can&#8217;t get into the config mode. If you have problem from changing into Log mode, you might need to update the firmware of it. Since it&#8217;s a AMTEL chip, same as arduino, you can use avrdude to do it. I will post one tutorial later.)</em></p>
<p><em><br />
</em></p>
<p>HOW TO LOG DATA:</p>
<p>OpenLog can log data, but don&#8217;t have any analog inputs. It take whatever serial inputs and write it down into the mircoSD card. So you need a microcontroller like arduino to read the sensor data and pass them to openLog using serial. In openLog, you can have more file controls on the SD card side, like log into different file&#8230;etc. I&#8217;ll take a photocell as an example:</p>
<p><a href="http://www.sunshinehere.com/blog/wp-content/uploads/2010/03/openLog_LOG.png"><img class="aligncenter size-full wp-image-107" title="openLog_LOG" src="http://www.sunshinehere.com/blog/wp-content/uploads/2010/03/openLog_LOG.png" alt="openLog_LOG" width="700" height="417" /></a></p>
<p>You notice from the diagram above, you connect your Rx pin to Tx pin, Tx pin to Rx pin. It&#8217;s different from the config mode. To test it out, simply choose an example code from arduino: File-&gt;Exmaples-&gt;Analog-&gt;AnalogInSerial. Then openlog will log your data line by line into your microSD card. The simple way to play with it is changing delays to change the sample rates. Like delay(100) means 10 samples per second. You can also add serial.println to change your data format, like Serial.println(&#8220;Sensor1: &#8220;)&#8230;&#8230;</p>
<p>HOW TO READ THE LOG DATA:</p>
<p>Use a SD card reader or when you config the openLog, there is command to do it as well.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunshinehere.com/blog/?feed=rss2&amp;p=104</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Tutorial: uLog data logger from Sparkfun</title>
		<link>http://www.sunshinehere.com/blog/?p=83</link>
		<comments>http://www.sunshinehere.com/blog/?p=83#comments</comments>
		<pubDate>Fri, 05 Mar 2010 23:06:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ITP]]></category>
		<category><![CDATA[Telling Stories with Data, Sensors & Humans]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[data logging]]></category>
		<category><![CDATA[sparkfun]]></category>
		<category><![CDATA[tom igoe]]></category>
		<category><![CDATA[uLog]]></category>

		<guid isPermaLink="false">http://www.sunshinehere.com/blog/?p=83</guid>
		<description><![CDATA[

uLog
WHAT IS THIS?
uLog is a tiny analog logging device from Sparkfun.  The uLog have an onboard flash memory mated with a ATtiny24. It don&#8217;t need a microcontroller, but can only take data on three analog inputs.
Feature:

small size
have 3 analog inputs
on/off switch on board
designed for 3-axis accelerometer
16MB data size
50Hz sampling rate
about 2 hours logging space
battery usage [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;">
<a href="http://www.sunshinehere.com/blog/wp-content/uploads/2010/03/Picture-9.png"><img class="size-full wp-image-84 aligncenter" title="Picture 9" src="http://www.sunshinehere.com/blog/wp-content/uploads/2010/03/Picture-9.png" alt="Picture 9" width="553" height="373" /></a></p>
<p>uLog</p>
<p>WHAT IS THIS?</p>
<p>uLog is a tiny analog logging device from Sparkfun.  The uLog have an onboard flash memory mated with a ATtiny24. It don&#8217;t need a microcontroller, but can only take data on three analog inputs.</p>
<p>Feature:</p>
<ul>
<li>small size</li>
<li>have 3 analog inputs</li>
<li>on/off switch on board</li>
<li>designed for 3-axis accelerometer</li>
<li>16MB data size</li>
<li>50Hz sampling rate</li>
<li>about 2 hours logging space</li>
<li>battery usage about 4mA per hour</li>
</ul>
<p>HOW TO LOG:</p>
<p>Let&#8217;s use a photo cell as an example:</p>
<p style="text-align: center;"><a href="http://www.sunshinehere.com/blog/wp-content/uploads/2010/03/usLog_battery.png"><img class="size-full wp-image-88 aligncenter" title="usLog_battery" src="http://www.sunshinehere.com/blog/wp-content/uploads/2010/03/usLog_battery.png" alt="usLog_battery" width="640" height="360" /></a></p>
<p>Connect to your battery, you will see the red light flashes.  Then connect your sensor to one of the three input pins, use your breadboard to help you wire it up. Then you are ready to go. Turn on the on/off switch on the back to log the data. (Remember, don&#8217;t wire any thing on the Tx/Rx when you log your data, any wire on them will cause the Logger into configuration mode). The uLog only have 16MB space for data, it automatically append the new data into the ends and overrides the old one (from the beginning) if the memory full.</p>
<p>HOW TO READ THE LOG:</p>
<p>Use a USBtoSerial adapter to wire your uLog. Need 3.3 voltage one, not 5 voltage.( If you don&#8217;t have one, you can use your arduino instead, either pulling out the ATMEL chip or upload a code without any serial communications,check <a href="http://www.sunshinehere.com/blog/wp-content/uploads/2010/03/openLog_Config.png">this</a> as reference). Here is how your wire it. (If you use arduino,  Tx&lt;-&gt;Tx Rx&lt;-&gt;Rx, connect your Tx to Tx, Rx to Rx).</p>
<p><a href="http://www.sunshinehere.com/blog/wp-content/uploads/2010/03/FTDI_Schematic2.png"><img class="aligncenter size-full wp-image-133" title="FTDI_Schematic2" src="http://www.sunshinehere.com/blog/wp-content/uploads/2010/03/FTDI_Schematic2.png" alt="" width="640" height="300" /></a></p>
<p style="text-align: center;"><a href="http://www.sunshinehere.com/blog/wp-content/uploads/2010/03/usLog_FTDI.png"><img class="size-full wp-image-94 aligncenter" title="usLog_FTDI" src="http://www.sunshinehere.com/blog/wp-content/uploads/2010/03/usLog_FTDI.png" alt="usLog_FTDI" width="640" height="360" /></a></p>
<p style="text-align: left;">
<p style="text-align: left;">
<p style="text-align: left;">Basically, if you send &#8216;r&#8217; to your serial port, the uLog will send all the logged data, if you send &#8216;e&#8217; to your serial port, the uLog will erase the memory.</p>
<p style="text-align: left;">Based on <a href="http://www.tigoe.net/pcomp/code/category/Processing/616">Tom Igoe</a>&#8217;s processing code, I filter the noise data and convert hex into integers.</p>
<p style="text-align: left;">Run the sketch, type &#8216;r&#8217; in the opened window to read the data, type &#8216;e&#8217; to erase the data.</p>
<p><code><br />
import processing.serial.*;</code></p>
<p><code>Serial myPort;                  // instance of the serial library<br />
String dataString = "";         // string of data for each set of readings<br />
String[] data = {""};                          // array to save strings to a file<br />
boolean reading = false;        // whether or not you're reading from the logger</code></p>
<p><code>String filename = "datalog.txt";  // string to save the file to<br />
int lineCount = 0;              // count of the number of lines in the file</code></p>
<p><code>void setup() {<br />
// open the serial port:<br />
myPort = new Serial(this, Serial.list()[0], 38400);<br />
// flush the serial buffer:<br />
myPort.clear();<br />
}</code></p>
<p><code> </code></p>
<p><code>void draw() {</code></p>
<p><code> </code></p>
<p><code>}</code></p>
<p><code> </code></p>
<p><code>void serialEvent(Serial myPort) {<br />
// get a byte:<br />
int inByte = myPort.read();<br />
// do something different depending on what the byte is:<br />
switch(inByte) {<br />
case '?':          // response prompt<br />
// if you're already reading from the logger,<br />
//save the results to a file:<br />
if (reading) {<br />
saveStrings(filename, data);<br />
// you're done reading:<br />
reading = false;<br />
// print the linecount:<br />
print("lineCount: " + lineCount + "\0\r");<br />
}<br />
// print the prompt:<br />
println(char(inByte));<br />
break;<br />
case '\r':      // carriage return at the end of each line:<br />
// make sure you have at least four characters:<br />
if (dataString.length() &gt; 4) {<br />
//filter the data and covert from hex to integer<br />
String[] t = splitTokens(dataString);<br />
String newData = "";<br />
try{<br />
for(int m = 0; m &lt; t.length; m ++){<br />
if(t[m].length() == 4){<br />
int value = unhex(t[m]);<br />
newData = newData + ' ' + value;<br />
}<br />
}<br />
}<br />
catch(Exception e){<br />
break;<br />
}<br />
// add this string to the data array:<br />
data = append(data, newData);<br />
println(newData);<br />
// increment the line count:<br />
lineCount++;<br />
}<br />
// clear the string variable for the next string:<br />
dataString = "";<br />
break;<br />
case '\n':        // newline: get rid of them<br />
break;<br />
default:    // any other character:<br />
// add character to the string:<br />
dataString += char(inByte);<br />
break;<br />
}<br />
}</code></p>
<p><code>void keyReleased() {<br />
if (key == 'r') {<br />
reading = true;<br />
println("Reading from logger...");<br />
// send keystroke to the logger<br />
myPort.write(key);<br />
}</code></p>
<p><code> </code></p>
<p><code>if (key == 'e') {<br />
println("erasing data from logger...");</code></p>
<p><code>// you're erasing all the data on the logger<br />
// wait until the LEDS stop flashing before you disconnect it!<br />
// send keystroke to the logger<br />
myPort.write(key);<br />
}</p>
<p></code></p>
<p><code>}<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunshinehere.com/blog/?feed=rss2&amp;p=83</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Assignment &#8211; Week One</title>
		<link>http://www.sunshinehere.com/blog/?p=76</link>
		<comments>http://www.sunshinehere.com/blog/?p=76#comments</comments>
		<pubDate>Mon, 01 Feb 2010 15:24:25 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ITP]]></category>
		<category><![CDATA[Telling Stories with Data, Sensors & Humans]]></category>

		<guid isPermaLink="false">http://www.sunshinehere.com/blog/?p=76</guid>
		<description><![CDATA[


]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.sunshinehere.com/blog/wp-content/uploads/2010/02/Week-One.jpg"><img class="aligncenter size-large wp-image-81" title="Week One" src="http://www.sunshinehere.com/blog/wp-content/uploads/2010/02/Week-One-1024x115.jpg" alt="Week One" width="614" height="69" /></a></p>
<p style="text-align: center;">
<p style="text-align: center;">
]]></content:encoded>
			<wfw:commentRss>http://www.sunshinehere.com/blog/?feed=rss2&amp;p=76</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Week One &#8211; Use photos to tell story</title>
		<link>http://www.sunshinehere.com/blog/?p=74</link>
		<comments>http://www.sunshinehere.com/blog/?p=74#comments</comments>
		<pubDate>Wed, 27 Jan 2010 04:10:55 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ITP]]></category>
		<category><![CDATA[Telling Stories with Data, Sensors & Humans]]></category>

		<guid isPermaLink="false">http://www.sunshinehere.com/blog/?p=74</guid>
		<description><![CDATA[Nick on the class showed his photo collection of all capuchino coffee he drinks everyday. After see that and heard the story of Nicholas Feltron&#8217;s annual report, I start to understand why people start to fast document their daily life. Like twitter, foursquare, daytum, one good thing of this, it&#8217;s trackable, most of the data [...]]]></description>
			<content:encoded><![CDATA[<p>Nick on the class showed his photo collection of all capuchino coffee he drinks everyday. After see that and heard the story of Nicholas Feltron&#8217;s annual report, I start to understand why people start to fast document their daily life. Like twitter, foursquare, daytum, one good thing of this, it&#8217;s trackable, most of the data are stored online, you can always go back to look at those pictures, another good thing of those are statics, by learning your &#8216;past history&#8217; from your own document, people will know themselves better, they will have better ideas of their future plan/decision. It become one of people&#8217;s self motivation. like CAD(computer aided design), I&#8217;d call it WAM(web aided motivation). Nike + is a great example of it.</p>
<p>For the first week homework, Nick want us to use our cellphone camera/portable camera to document 10~20 photos to tell a story. I thought it&#8217;s a simple homework, however, 3 days already past, I haven&#8217;t decided what kinds of photos will best tell a story. I start to brainstorm, re think the concept. Information from a photo will tell a story. I was just looking at my poster wall at home&#8230;ideas&#8230;ideas&#8230;</p>
<p>My idea is every time I take a photo, I use three steps to add more informations of it.</p>
<p>1&gt; find a poster which catches my eyes, use iphone take a photo of it.</p>
<p>2&gt;go to the picture folder, view the photo I took and take a snap shot, so I can add time information to the photo</p>
<p>3&gt;open google map on the phone, and locate my position and take a snap shot</p>
<p>after these three steps, I have one photo of one event I interested, I know where I find the poster, I know when I find it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunshinehere.com/blog/?feed=rss2&amp;p=74</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>4-in-4 close my eyes for 6 hours</title>
		<link>http://www.sunshinehere.com/blog/?p=73</link>
		<comments>http://www.sunshinehere.com/blog/?p=73#comments</comments>
		<pubDate>Sun, 26 Apr 2009 20:22:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[4-in-4]]></category>
		<category><![CDATA[ITP]]></category>

		<guid isPermaLink="false">http://www.sunshinehere.com/blog/2009/04/26/4-in-4-close-my-eyes-for-6-hours/</guid>
		<description><![CDATA[Sometimes I liked to close my eyes and try to see how far I can go, but it really scared me everytime. I think I need to build confident to walk far. So in todays project, I closed my eyes, to learn experience of a blind person. I wrote a dairy in my laptop with [...]]]></description>
			<content:encoded><![CDATA[<p>Sometimes I liked to close my eyes and try to see how far I can go, but it really scared me everytime. I think I need to build confident to walk far. So in todays project, I closed my eyes, to learn experience of a blind person. I wrote a dairy in my laptop with &#8216;voice over&#8217; turned on, listen to iTune music, played LEGO for about 4 hours(really need patience), successful went to bathroom(of course sit to pee, easier!). It&#8217;s a fun experience, hope anyone can give it a try. Here is the Dairy I typed with my eyes closed.</p>
<p><em>4-in-4 Day 4<br />
In today&#8217;s project, I decide to close  my eyes for 6 hours. I want to let my eyes have winter special break also. And this will be my first time I intend to close my eyes for this long.  Since I prepared everything on my table, I don&#8217;t feel scared as I expected, maybe I haven&#8217;t start to learn how to walk(or meet any failure). I can do very limit thing on my computer, like listen to music from itune or pandora.com, but I don&#8217;t know the how to choose one. The voice over function is very helpful, I&#8217;m using it to guide me type now. I learned I need to type very carefully, make as less problem as possible, because once I made mistake, I need to listen what I delete,find the right position, and start to type agin. The way you listen to delete words i like to read a word backward. This is also one weird thing Ilearned of typing today. And I just realised the voice over is very smart. When I typed &#8216;learnd&#8217; instead of &#8216;learned, the system know it is not right, so when delete  from the back, the voice over will read out misspelling d&#8217;. Isn&#8217;t SMART! Also, if you turn on the&#8217;capital&#8217; key, when you type the system will rea out the letter in an excited voice. The next thing I did is playing LEGO. I had a LEGO box of different parts. I have to classify all the parts first by touch. Then, I can figure out what kind of shapes I can build. I decide start with building a car. To make it more fun, I build 3 layers on it. It needs lots ofPATIENCE. I remembered I rebuilded 4 times for the base. Every time I only need to adjust a little bit. I spend about 4 hours on it. Sometimes I dropped parts on the floor, I can know the basic area to find because of the dropping sound; sometimes I can recognize people by nose. I know petra came around by recognizing her perfume.  The things different from normal people is I need to use my brain to memorize everything, which is so different from memorizing pictures. Our eyes are so powerful, we rely on it too much. When I start to walk to the bath room, about 20 meters away. I can&#8217;t walk straight. I&#8217;m alittle scared. I think I knew I won&#8217;t get hurt and all my friends are not far away, I can call for help at any time.And I made it.But I waled really careful. Seems like everything slowed down. and feels more lonely and not confidentableTo feel the world as a blind person, II think people who can&#8217;t see, needs more tolerence from society.</em></p>
<p>LEGO Car:<br />
<object type="application/x-shockwave-flash" width="400" height="300" data="http://www.flickr.com/apps/video/stewart.swf?v=66164" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"><param name="flashvars" value="intl_lang=en-us&amp;photo_secret=d0673f862d&amp;photo_id=3202504894"></param><param name="movie" value="http://www.flickr.com/apps/video/stewart.swf?v=66164"></param><param name="bgcolor" value="#000000"></param><param name="allowFullScreen" value="true"></param><embed type="application/x-shockwave-flash" src="http://www.flickr.com/apps/video/stewart.swf?v=66164" bgcolor="#000000" allowfullscreen="true" flashvars="intl_lang=en-us&amp;photo_secret=d0673f862d&amp;photo_id=3202504894" height="300" width="400"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunshinehere.com/blog/?feed=rss2&amp;p=73</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>3-in-4 Rube Goldberg Photo Machine, collaborated with Ben Yee</title>
		<link>http://www.sunshinehere.com/blog/?p=72</link>
		<comments>http://www.sunshinehere.com/blog/?p=72#comments</comments>
		<pubDate>Sun, 26 Apr 2009 20:19:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[4-in-4]]></category>
		<category><![CDATA[ITP]]></category>

		<guid isPermaLink="false">http://www.sunshinehere.com/blog/2009/04/26/3-in-4-rube-goldberg-photo-machine-collaborated-with-ben-yee/</guid>
		<description><![CDATA[I saw a video from youtube long time before, a guy made a machine to shoot a peanut into the air. When I discussed with Ben, I remembered this video, also I was impressed by Vikram&#8217;s laser shot machine, so I came up the idea to combine these two things together. We start to build [...]]]></description>
			<content:encoded><![CDATA[<p>I saw a video from youtube long time before, a guy made a machine to shoot a peanut into the air. When I discussed with Ben, I remembered this video, also I was impressed by Vikram&#8217;s laser shot machine, so I came up the idea to combine these two things together. We start to build with LEGO, but it turns out, lego is too light, not enough energy. So we went to ITP second ER &#8216;Trash Shelf&#8217;, we found everything we thought we could use. And finally, we made this little funny machine. Thanks Ben and all the testers.<br />
<object type="application/x-shockwave-flash" width="400" height="300" data="http://www.flickr.com/apps/video/stewart.swf?v=66545" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"><param name="flashvars" value="intl_lang=en-us&amp;photo_secret=7815dcd6a6&amp;photo_id=3225257479"></param><param name="movie" value="http://www.flickr.com/apps/video/stewart.swf?v=66545"></param><param name="bgcolor" value="#000000"></param><param name="allowFullScreen" value="true"></param><embed type="application/x-shockwave-flash" src="http://www.flickr.com/apps/video/stewart.swf?v=66545" bgcolor="#000000" allowfullscreen="true" flashvars="intl_lang=en-us&amp;photo_secret=7815dcd6a6&amp;photo_id=3225257479" height="300" width="400"></embed></object></p>
<p><object width="400" height="300" data="http://www.flickr.com/apps/slideshow/show.swf?v=63961" type="application/x-shockwave-flash"><param name="flashvars" value="&amp;offsite=true&amp;lang=en-us&amp;page_show_url=%2Fphotos%2Ffxy%2Fsets%2F72157612570733583%2Fshow%2F&amp;page_show_back_url=%2Fphotos%2Ffxy%2Fsets%2F72157612570733583%2F&amp;set_id=72157612570733583&amp;jump_to=" /><param name="allowFullScreen" value="true" /><param name="src" value="http://www.flickr.com/apps/slideshow/show.swf?v=63961" /><param name="allowfullscreen" value="true" /></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunshinehere.com/blog/?feed=rss2&amp;p=72</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>2-in-4 Pipe Organ Toy</title>
		<link>http://www.sunshinehere.com/blog/?p=71</link>
		<comments>http://www.sunshinehere.com/blog/?p=71#comments</comments>
		<pubDate>Sun, 26 Apr 2009 20:17:21 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[4-in-4]]></category>
		<category><![CDATA[ITP]]></category>

		<guid isPermaLink="false">http://www.sunshinehere.com/blog/2009/04/26/2-in-4-pipe-organ-toy/</guid>
		<description><![CDATA[This toy is not well desigend yet, after I cut, sand, drill in 5 hours, I realize I forget(/don&#8217;t know I need to) to put the &#8216;Languid&#8217;, which to make the air over the hole. Also I can&#8217;t find a store to buy small springs, which are used to push the key up. At last, [...]]]></description>
			<content:encoded><![CDATA[<p>This toy is not well desigend yet, after I cut, sand, drill in 5 hours, I realize I forget(/don&#8217;t know I need to) to put the &#8216;Languid&#8217;, which to make the air over the hole. Also I can&#8217;t find a store to buy small springs, which are used to push the key up. At last, I made a dream(/fake) video to illustrate my little instrument. Here it is:</p>
<p>				<object type="application/x-shockwave-flash" width="400" height="300" data="http://www.flickr.com/apps/video/stewart.swf?v=66164" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"><param name="flashvars" value="intl_lang=en-us&amp;photo_secret=6900ff7f27&amp;photo_id=3194780357"></param><param name="movie" value="http://www.flickr.com/apps/video/stewart.swf?v=66164"></param><param name="bgcolor" value="#000000"></param><param name="allowFullScreen" value="true"></param><embed type="application/x-shockwave-flash" src="http://www.flickr.com/apps/video/stewart.swf?v=66164" bgcolor="#000000" allowfullscreen="true" flashvars="intl_lang=en-us&amp;photo_secret=6900ff7f27&amp;photo_id=3194780357" height="300" width="400"></embed></object></p>
<p>				<object width="400" height="300"><param name="flashvars" value="&#038;offsite=true&amp;lang=en-us&#038;page_show_url=%2Fphotos%2Ffxy%2Fsets%2F72157612489997957%2Fshow%2F&#038;page_show_back_url=%2Fphotos%2Ffxy%2Fsets%2F72157612489997957%2F&#038;set_id=72157612489997957&#038;jump_to="></param><param name="movie" value="http://www.flickr.com/apps/slideshow/show.swf?v=63961"></param><param name="allowFullScreen" value="true"></param><embed type="application/x-shockwave-flash" src="http://www.flickr.com/apps/slideshow/show.swf?v=63961" allowFullScreen="true" flashvars="&#038;offsite=true&amp;lang=en-us&#038;page_show_url=%2Fphotos%2Ffxy%2Fsets%2F72157612489997957%2Fshow%2F&#038;page_show_back_url=%2Fphotos%2Ffxy%2Fsets%2F72157612489997957%2F&#038;set_id=72157612489997957&#038;jump_to=" width="400" height="300"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunshinehere.com/blog/?feed=rss2&amp;p=71</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
