<?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>robotguy.net/Blog</title>
	<atom:link href="http://robotguy.net/blog/index.php/feed/" rel="self" type="application/rss+xml" />
	<link>http://robotguy.net/blog</link>
	<description>Robotics &#038; Electronics gone bad</description>
	<lastBuildDate>Fri, 24 Jun 2011 19:43:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>Beagle-Book Update</title>
		<link>http://robotguy.net/blog/2011/06/24/beagle-book-update/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=beagle-book-update</link>
		<comments>http://robotguy.net/blog/2011/06/24/beagle-book-update/#comments</comments>
		<pubDate>Fri, 24 Jun 2011 19:37:58 +0000</pubDate>
		<dc:creator>Robotguy</dc:creator>
				<category><![CDATA[BeagleBoard]]></category>
		<category><![CDATA[Electronics]]></category>

		<guid isPermaLink="false">http://robotguy.net/blog/2011/06/24/</guid>
		<description><![CDATA[Doesn&#8217;t look a whole lot different, but I&#8217;ve added a small cooling fan for the DLP and it&#8217;s been rewired to run from a single 5V@2.6A wall wart (sorry for the shoddy cell-phone pic) :]]></description>
			<content:encoded><![CDATA[<p>Doesn&#8217;t look a whole lot different, but I&#8217;ve added a small cooling fan for the DLP and it&#8217;s been rewired to run from a single 5V@2.6A wall wart (sorry for the shoddy cell-phone pic) :<br />
<a href="http://robotguy.net/beagle_case_4.jpg"><img src="http://robotguy.net/tn_beagle_case_4.jpg" alt="Case 4" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://robotguy.net/blog/2011/06/24/beagle-book-update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Beagle Box</title>
		<link>http://robotguy.net/blog/2011/06/23/beagle-box/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=beagle-box</link>
		<comments>http://robotguy.net/blog/2011/06/23/beagle-box/#comments</comments>
		<pubDate>Fri, 24 Jun 2011 04:55:12 +0000</pubDate>
		<dc:creator>Robotguy</dc:creator>
				<category><![CDATA[BeagleBoard]]></category>
		<category><![CDATA[Electronics]]></category>

		<guid isPermaLink="false">http://robotguy.net/blog/2011/06/23/</guid>
		<description><![CDATA[I got a BeagleBoard for Father&#8217;s Day. My plan is to put the BeagleBoard, the Pico Projector and a battery in a small box, write some ALife software and carry around a virtual world. Tonight I started mounting the board and projector inside a fake book:]]></description>
			<content:encoded><![CDATA[<p>I got a BeagleBoard for Father&#8217;s Day. My plan is to put the BeagleBoard, the Pico Projector and a battery in a small box, write some ALife software and carry around a virtual world. Tonight I started mounting the board and projector inside a fake book:<br />
<a href="http://robotguy.net/beagle_case_1.jpg"><img src="http://robotguy.net/tn_beagle_case_1.jpg" alt="Case 1" /></a><br />
<a href="http://robotguy.net/beagle_case_2.jpg"><img src="http://robotguy.net/tn_beagle_case_2.jpg" alt="Case 1" /></a><br />
<a href="http://robotguy.net/beagle_case_3.jpg"><img src="http://robotguy.net/tn_beagle_case_3.jpg" alt="Case 1" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://robotguy.net/blog/2011/06/23/beagle-box/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Simple Embedded Architecture for Robot Learning and Emotion</title>
		<link>http://robotguy.net/blog/2011/05/25/simple-embedded-architecture-for-robot-learning-and-emotion/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=simple-embedded-architecture-for-robot-learning-and-emotion</link>
		<comments>http://robotguy.net/blog/2011/05/25/simple-embedded-architecture-for-robot-learning-and-emotion/#comments</comments>
		<pubDate>Wed, 25 May 2011 18:55:36 +0000</pubDate>
		<dc:creator>Robotguy</dc:creator>
				<category><![CDATA[Deskpet]]></category>
		<category><![CDATA[personality]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Robotics]]></category>

		<guid isPermaLink="false">http://robotguy.net/blog/2011/05/25/</guid>
		<description><![CDATA[I&#8217;ve been working on a paper about robot learning for over a year now, more as a place to organize my thoughts than anything else. This paper outlines some ideas I&#8217;ve been having about how to implement a learning system that let&#8217;s a robot relate state-action sequences to a result. It&#8217;s still extremely sketchy, but [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been working on a paper about robot learning for over a year now, more as a place to organize my thoughts than anything else. This paper outlines some ideas I&#8217;ve been having about how to implement a learning system that let&#8217;s a robot relate state-action sequences to a result. It&#8217;s still extremely sketchy, but I thought I&#8217;d make it public:<br />
<a href="https://docs.google.com/document/pub?id=1EhNtQPCn0M4jGueseuvHR0DMIo4nUFPI3hlmjQwUDSs">Simple Embedded Architecture for Robot Learning and Emotion</a><br />
Sorry for the shoddy formatting, but that results from publishing a Google Doc as HTML.</p>
<p>I also have a few background documents that may be interesting* to some:</p>
<p><a href="https://spreadsheets.google.com/spreadsheet/pub?hl=en_US&#038;hl=en_US&#038;key=0AvbgU50_SSCadENmaW1qVmF3VGdZQU8wOWtkNHBaSGc&#038;output=html">Senses/States Matrix</a><br />
<a href="https://spreadsheets0.google.com/spreadsheet/pub?hl=en_US&#038;hl=en_US&#038;key=0AvbgU50_SSCadFhPbno3RU9pX3EyTzMtQmZBMi1xQVE&#038;output=html">Emotional Effects on Outputs</a><br />
<a href="https://spreadsheets1.google.com/spreadsheet/pub?hl=en_US&#038;hl=en_US&#038;key=0AvbgU50_SSCacFNPTDN6LUxmcjBwcFZVNGcteVJCQ1E&#038;output=html">Robot Emotions versus Movements</a></p>
<p>My current mental obsession is an ALife simulation running under Linux, and I thought I would try out this learning architecture in a simulated environment on a capable processor.</p>
<p>*I find this stuff extremely interesting, but then according to my teenage daughters I&#8217;m <em>weird</em>. Of course they think weird is a compliment.</p>
]]></content:encoded>
			<wfw:commentRss>http://robotguy.net/blog/2011/05/25/simple-embedded-architecture-for-robot-learning-and-emotion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Something useless for xmas</title>
		<link>http://robotguy.net/blog/2010/12/18/something-useless-for-xmas/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=something-useless-for-xmas</link>
		<comments>http://robotguy.net/blog/2010/12/18/something-useless-for-xmas/#comments</comments>
		<pubDate>Sun, 19 Dec 2010 05:08:22 +0000</pubDate>
		<dc:creator>Robotguy</dc:creator>
				<category><![CDATA[Electronics]]></category>
		<category><![CDATA[Other Hobbies]]></category>

		<guid isPermaLink="false">http://robotguy.net/blog/2010/12/18/</guid>
		<description><![CDATA[I needed a ~$5 gift for family xmas this year, and was at a loss. Then I remembered the Useless Machine from Make, also known as a &#8220;Leave Me Alone Box.&#8221;  I had a $5 box from the thrift store, a smaller version of the one I used for my iPad Charger.  After a lot [...]]]></description>
			<content:encoded><![CDATA[<p>I needed a ~$5 gift for family xmas this year, and was at a loss. Then I remembered the <a href="http://blog.makezine.com/archive/2010/01/leave_me_alone_box.html" target="_blank">Useless Machine from Make</a>, also known as a &#8220;Leave Me Alone Box.&#8221;  I had a $5 box from the thrift store, a smaller version of the one I used for my <a href="http://robotguy.net/blog/2010/06/21/portable-electrick-storage-device-mark-i/" target="_blank">iPad Charger</a>.  After a lot of planning in AutoCAD and even more trial and error I came up with this:</p>
<p><a href="http://robotguy.net/useless_2.jpg"><img class="alignnone" title="Useless Machine" src="http://robotguy.net/tn_useless_2.jpg" alt="" width="150" height="133" /></a></p>
<p>It took me a while to figure out how to put it together with the cam attached to the lid, and my daughter suggested a rod &amp; tube setup:</p>
<p><a href="http://robotguy.net/useless_4.jpg"><img class="alignnone" title="Rod &amp; Tube" src="http://robotguy.net/tn_useless_4.jpg" alt="" width="150" height="128" /></a><a href="http://robotguy.net/useless_5.jpg"><img class="alignnone" title="Hinge" src="http://robotguy.net/tn_useless_5.jpg" alt="" width="114" height="150" /></a></p>
<p>The cam is connected to the lid through a bearing and a brass &#8220;bicycle fork&#8221;:</p>
<p><a href="http://robotguy.net/useless_6.jpg"><img class="alignnone" title="Bicycle Fork" src="http://robotguy.net/tn_useless_6.jpg" alt="" width="128" height="150" /></a><a href="http://robotguy.net/useless_7.jpg"><img class="alignnone" title="Bearing" src="http://robotguy.net/tn_useless_7.jpg" alt="" width="116" height="150" /></a></p>
<p>When the cam spins, it lifts the lid enough for the arm to come out and flip the switch.</p>
<p><a href="http://robotguy.net/useless_8.jpg"><img class="alignnone" title="Turning itself off" src="http://robotguy.net/tn_useless_8.jpg" alt="" width="150" height="146" /></a></p>
<p>One thing that I did slightly different was use a 5V DPDT relay to reverse the motor instead of a DPDT  switch. This allowed me to use a SPDT switch with a lower actuation force.</p>
]]></content:encoded>
			<wfw:commentRss>http://robotguy.net/blog/2010/12/18/something-useless-for-xmas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Perl for Puzzlers</title>
		<link>http://robotguy.net/blog/2010/08/24/perl-for-puzzlers/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=perl-for-puzzlers</link>
		<comments>http://robotguy.net/blog/2010/08/24/perl-for-puzzlers/#comments</comments>
		<pubDate>Tue, 24 Aug 2010 18:57:35 +0000</pubDate>
		<dc:creator>Robotguy</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://robotguy.net/blog/2010/08/24/</guid>
		<description><![CDATA[I was working on creating a puzzle a couple of weeks ago and needed sets of a dozen 5-letter words that all &#8220;interacted&#8221; in a certain way (sorry, don&#8217;t want to give away too much).  One of the software guys here at work suggested a Perl script to find sets words, specifically Strawberry Perl. I [...]]]></description>
			<content:encoded><![CDATA[<p>I was working on creating a puzzle a couple of weeks ago and needed sets of a dozen 5-letter words that all &#8220;interacted&#8221; in a certain way (sorry, don&#8217;t want to give away too much).  One of the software guys here at work suggested a Perl script to find sets words, specifically <a title="Strawberry Perl Home Page" href="http://strawberryperl.com/" target="_blank">Strawberry Perl</a>. I have been programming since I was a kid (basic on a VIC-20) but lately have been resistant to learning new languages because I can usually accomplish my goals with the languages I already know. This time I decided to take his advice and was pleasantly surprised with the simple learning curve and thought I&#8217;d pass on a bit of intro on how to set up and start using Perl to help create puzzles.</p>
<p><span id="more-129"></span>Disclaimer:</p>
<p>I am not a Computer Scientist, nor do I play one on TV. This is a description of how I went about solving a specific problem, not necessarily the best method. For informational purposes only. Use at your own risk.</p>
<p>Installation of Strawberry Perl was completely straightforward on my XP machine. I haven&#8217;t tried any Win7 installs, but the home page suggests it is just as simple. I just downloaded the Windows installer and let it run. This will install Perl on your machine let you run scripts from the command line.</p>
<p>1. Create a folder to place all of my code and research material.</p>
<p>2.  Create a text file in the folder where I had all of my puzzle related info called &#8220;<a href="http://robotguy.net/puzzles/prompt.bat" target="_blank">prompt.bat</a>&#8221; (no quotes), and consisted of the single word &#8220;cmd&#8221; (again no quotes). Double-clicking this file will open a command prompt within the folder so you can launch the scripts easily.</p>
<p>3. Download a word list that can be easily read into your script. I used output from <a href="http://www.crosswordman.com/tea.html" target="_blank">Tea</a>, but I also found some other word lists here: <a href="http://wordlist.sourceforge.net/">http://wordlist.sourceforge.net/</a></p>
<p>4. Create a text file (I prefer <a href="http://notepad-plus-plus.org/" target="_blank">Notepad++</a> for text editing. Be sure to set the Language to Perl to get the correct syntax hi lighting) with the name of the puzzle and a &#8220;.pl&#8221; suffix. This file will be your Perl Script.</p>
<p>5. Start the script with &#8220;<strong>#!/usr/bin/perl</strong>&#8221; This tells the computer that it is a Perl script.</p>
<p>6. Here&#8217;s a script I wrote to find all the rotations of a word (anyone who saw my <a href="http://forum.puzzalot.com/index.php/topic,50.0.html" target="_blank">sample puzzle on the forum</a> may recognize this) <a href="http://robotguy.net/puzzles/listrotator.pl" target="_blank">listrotator.pl</a> (Save target as&#8230; or you may get an error. No idea why). You can run this by typing &#8220;perl listrotator.pl words.txt&#8221; at the command prompt.</p>
<blockquote>
<div id="_mcePaste"><strong>#!/usr/bin/perl</strong></div>
<div id="_mcePaste"><strong>#use strict;</strong></div>
<div id="_mcePaste"><strong>my %words;</strong></div>
<div id="_mcePaste"><strong>my $i;</strong></div>
<div id="_mcePaste"><strong>open(DATAIN,&#8221;&lt;$ARGV[0]&#8220;) || die &#8220;cannot open \&#8221;$ARGV[0]\&#8221;: $!&#8221;;</strong></div>
<div id="_mcePaste"><strong>while(my $line = &lt;DATAIN&gt;){</strong></div>
<div id="_mcePaste"><strong>$line =~ s/\s+//;</strong></div>
<div id="_mcePaste"><strong>$words{$line} = 1;</strong></div>
<div id="_mcePaste"><strong>}</strong></div>
<div id="_mcePaste"><strong>foreach my $word1 (sort keys %words){</strong></div>
<div id="_mcePaste"><strong>my $num=0;</strong></div>
<div id="_mcePaste"><strong>my $word=$word1;</strong></div>
<div id="_mcePaste"><strong>print &#8220;-$word\n&#8221;;</strong></div>
<div id="_mcePaste"><strong>for($i = 1; $i &lt; length($word1); $i++){</strong></div>
<div id="_mcePaste"><strong>$word= rotate($word);</strong></div>
<div id="_mcePaste"><strong>print &#8220;$word\n&#8221;;</strong></div>
<div id="_mcePaste"><strong>}</strong></div>
<div id="_mcePaste"><strong>}</strong></div>
<div id="_mcePaste"><strong>sub rotate{</strong></div>
<div id="_mcePaste"><strong>my $foo=shift;</strong></div>
<div id="_mcePaste"><strong>chomp($foo);</strong></div>
<div id="_mcePaste"><strong>my $out=substr($foo,1,length($foo)-1).substr($foo,0,1);</strong></div>
<div id="_mcePaste"><strong>return $out;</strong></div>
<div id="_mcePaste"><strong>}</strong></div>
</blockquote>
<p>The beginning of the script reads in the command line argument (words.txt in the example above) then reads the word list into memory. Specifically into a <em>hash</em> structure named <strong>words</strong> hash, but I&#8217;ll discuss that later. While reading the file into memory, it also strips carriage returns and unprintable characters.</p>
<p>Next the script steps through each entry in the hash (<strong>%words</strong>). It takes this entry, and rotates it using the rotate function, once for each letter in the word. This way we end up with all possible rotations.</p>
<p>In a future post I&#8217;ll cover some of the neat things you can do once you have a word list in memory.</p>
]]></content:encoded>
			<wfw:commentRss>http://robotguy.net/blog/2010/08/24/perl-for-puzzlers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Portable Electrick Storage Device &#8211; Mark I</title>
		<link>http://robotguy.net/blog/2010/06/21/portable-electrick-storage-device-mark-i/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=portable-electrick-storage-device-mark-i</link>
		<comments>http://robotguy.net/blog/2010/06/21/portable-electrick-storage-device-mark-i/#comments</comments>
		<pubDate>Mon, 21 Jun 2010 19:29:33 +0000</pubDate>
		<dc:creator>Robotguy</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://robotguy.net/blog/2010/06/21/</guid>
		<description><![CDATA[My daughter has swim meets every Saturday morning from 7am until around 1pm. During this time she is actually swimming a total of about 4 minutes, so the entire family tries to stay occupied the rest of the day. Almost every week someone complains &#8220;Oh, man! My iPod is dead!&#8221; Answering the tinkerer&#8217;s call to [...]]]></description>
			<content:encoded><![CDATA[<p>My daughter has swim meets every Saturday morning from 7am until around 1pm. During this time she is actually swimming a total of about 4 minutes, so the entire family tries to stay occupied the rest of the day. Almost every week someone complains &#8220;Oh, man! My iPod is dead!&#8221; Answering the tinkerer&#8217;s call to arms, I would like to present the Portable Electrick Storage Device Mark I:</p>
<div class="wp-caption alignnone" style="width: 210px"><a href="http://robotguy.net/PESD-1.jpg"><img title="Outside" src="http://robotguy.net/tn_PESD-1.jpg" alt="" width="200" height="186" /></a><p class="wp-caption-text">Outside</p></div>
<div class="wp-caption alignnone" style="width: 139px"><a href="http://robotguy.net/PESD-2.jpg"><img title="Inside" src="http://robotguy.net/tn_PESD-2.jpg" alt="" width="129" height="200" /></a><p class="wp-caption-text">Inside</p></div>
<div class="wp-caption alignnone" style="width: 210px"><a href="http://robotguy.net/PESD-usb.jpg"><img title="usb" src="http://robotguy.net/tn_PESD-usb.jpg" alt="" width="200" height="93" /></a><p class="wp-caption-text">USB Connectors</p></div>
<div class="wp-caption alignnone" style="width: 196px"><a href="http://robotguy.net/PESD-charging.jpg"><img title="charging" src="http://robotguy.net/tn_PESD-charging.jpg" alt="" width="186" height="200" /></a><p class="wp-caption-text">Charging my iPad</p></div>
<div class="wp-caption alignnone" style="width: 210px"><a href="http://robotguy.net/PESD-schematic.png"><img title="Schematic" src="http://robotguy.net/tn_PESD-schematic.png" alt="" width="200" height="74" /></a><p class="wp-caption-text">Schematic</p></div>
<div class="wp-caption alignnone" style="width: 206px"><a href="http://robotguy.net/PESD-foot.jpg"><img title="Foot" src="http://robotguy.net/tn_PESD-foot.jpg" alt="" width="196" height="200" /></a><p class="wp-caption-text">Closeup of foot</p></div>
<div class="wp-caption alignnone" style="width: 210px"><a href="http://robotguy.net/PESD-build1.jpg"><img title="internals" src="http://robotguy.net/tn_PESD-build1.jpg" alt="" width="200" height="180" /></a><p class="wp-caption-text">Battery and Connectors</p></div>
<div class="wp-caption alignnone" style="width: 210px"><a href="http://robotguy.net/PESD-partition.jpg"><img title="partition" src="http://robotguy.net/tn_PESD-partition.jpg" alt="" width="200" height="191" /></a><p class="wp-caption-text">Internal partition</p></div>
<p>The yellow piece is some scrap expanded PVC left over from a laptop desk I built for my wife a while back. The PCB is mounted to this, opposite the battery.</p>
<div class="wp-caption alignnone" style="width: 166px"><a href="http://robotguy.net/PESD-chamfer.jpg"><img title="chamfer" src="http://robotguy.net/tn_PESD-chamfer.jpg" alt="" width="156" height="200" /></a><p class="wp-caption-text">Partition &amp; chamfer</p></div>
<p>The bottom of the partition is chamfered and held into place by another piece on the bottom. This lets it set into place easily, but still holds the battery in place tightly.</p>
<p>Specs:</p>
<ul>
<li>Box &#8211; $6 brand new at the local thrift store, I only added electronics and handles. (I need to head back and get a couple more!)</li>
<li>Battery &#8211; 12V 7Ah (~12 iPod charges or 3.5 iPad charges)</li>
<li>Output &#8211; 5V @ 1.5A (will charge iPad while watching video)</li>
<li>Connectors &#8211; 3x USB Type-A female</li>
<li>3A fuse directly on battery</li>
<li>Power switch with blue LED indicator</li>
</ul>
<p>Plans for the future:</p>
<ul>
<li>&#8220;Working&#8221; steam power plant</li>
<li>Microcontroller      based monitor (Battery charge level, internal temp, etc) with 128&#215;128 OLED      screen</li>
<li>Embedded      wireless web server (WRT54G based)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://robotguy.net/blog/2010/06/21/portable-electrick-storage-device-mark-i/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Steampunk PDA &#8211; Again</title>
		<link>http://robotguy.net/blog/2009/07/11/steampunk-pda-again/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=steampunk-pda-again</link>
		<comments>http://robotguy.net/blog/2009/07/11/steampunk-pda-again/#comments</comments>
		<pubDate>Sun, 12 Jul 2009 02:47:50 +0000</pubDate>
		<dc:creator>Robotguy</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://robotguy.net/blog/?p=89</guid>
		<description><![CDATA[I have been convinced to add the Steampunk PDA back to my list of projects I am allowing myself to work on, so the list currently stands as Deskpet, Mazetrix, PDA and notebooks. I ordered the accelerometers for the next 3 Mazetrix tiles (should be here Monday), and I should be building a couple of [...]]]></description>
			<content:encoded><![CDATA[<p>I have been convinced to add the <a title="PDA" href="http://robotguy.net/blog/?cat=12" target="_blank">Steampunk PDA</a> back to my list of projects I am allowing myself to work on, so the list currently stands as <a href="http://robotguy.net/blog/?cat=20" target="_blank">Deskpet</a>, <a href="http://robotguy.net/blog/?cat=26" target="_blank">Mazetrix</a>, PDA and <a href="http://robotguy.net/blog/?cat=21" target="_blank">notebooks</a>. I ordered the accelerometers for the next 3 Mazetrix tiles (should be here Monday), and I should be building a couple of notebooks for some guys at work, but this sounded like more fun.</p>
<p>I have been thinking about the PDA for a week or two now, and decided to make a custom case rather than attempting to use a pocketwatch case. I picked up a 2&#8243; brass pipe fitting from the hardware store and  started shaping it on the lathe. It should be just about the right size&#8230;</p>
<div class="wp-caption alignnone" style="width: 160px"><a href="http://robotguy.net/brass_4.JPG"><img title="Steampunk PDA Case - Size Comparison" src="http://robotguy.net/tn_brass_4.JPG" alt="PDA Case" width="150" height="102" /></a><p class="wp-caption-text">Steampunk PDA Case - Size Comparison</p></div>
<div class="wp-caption alignnone" style="width: 150px"><a href="http://robotguy.net/brass_1.JPG"><img title="Steampunk PDA Case" src="http://robotguy.net/tn_brass_1.JPG" alt="PDA Case" width="140" height="150" /></a><p class="wp-caption-text">Steampunk PDA Case</p></div>
<div class="wp-caption alignnone" style="width: 160px"><a href="http://robotguy.net/brass_2.JPG"><img title="Steampunk PDA Case" src="http://robotguy.net/tn_brass_2.JPG" alt="Steampunk PDA Case" width="150" height="148" /></a><p class="wp-caption-text">Steampunk PDA Case</p></div>
<div class="wp-caption alignnone" style="width: 160px"><a href="http://robotguy.net/brass_3.JPG"><img title="Steampunk PDA Case" src="http://robotguy.net/tn_brass_3.JPG" alt="Steampunk PDA Case" width="150" height="144" /></a><p class="wp-caption-text">Steampunk PDA Case</p></div>
<div class="wp-caption alignnone" style="width: 210px"><a href="http://robotguy.net/assembly.jpg"><img title="CAD Assembly" src="http://robotguy.net/tn_assembly.jpg" alt="CAD Assembly" width="200" height="199" /></a><p class="wp-caption-text">CAD Assembly</p></div>
]]></content:encoded>
			<wfw:commentRss>http://robotguy.net/blog/2009/07/11/steampunk-pda-again/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>#mazetrix video 1</title>
		<link>http://robotguy.net/blog/2009/06/25/mazetrix-video-1/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=mazetrix-video-1</link>
		<comments>http://robotguy.net/blog/2009/06/25/mazetrix-video-1/#comments</comments>
		<pubDate>Fri, 26 Jun 2009 04:03:08 +0000</pubDate>
		<dc:creator>Robotguy</dc:creator>
				<category><![CDATA[AVR]]></category>
		<category><![CDATA[Electronics]]></category>
		<category><![CDATA[mazetrix]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://robotguy.net/blog/?p=78</guid>
		<description><![CDATA[I spent about 4 hours programming last night trying to simulate the physics of a rolling ball on the AVR. I think it turned out pretty well: Here&#8217;s the timer interrupt that services the analog to digital converter and the multiplexing of the LEDs: ISR(TIMER2_OVF_vect){ static unsigned char activeLine=0; static unsigned char adcChannel=0; PORTC=0xFF; PORTA=0xFF; [...]]]></description>
			<content:encoded><![CDATA[<p>I spent about 4 hours programming last night trying to simulate the physics of a rolling ball on the AVR. I think it turned out pretty well:</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="275" height="226" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.youtube.com/v/a1ueQ7cmRw4" /><embed type="application/x-shockwave-flash" width="275" height="226" src="http://www.youtube.com/v/a1ueQ7cmRw4"></embed></object></p>
<p>Here&#8217;s the timer interrupt that services the analog to digital converter and the multiplexing of the LEDs:</p>
<blockquote><p>ISR(TIMER2_OVF_vect){<br />
static unsigned char activeLine=0;<br />
static unsigned char adcChannel=0;<br />
PORTC=0xFF;<br />
PORTA=0xFF;<br />
selectLine(activeLine);<br />
PORTC=~green_display[activeLine];<br />
PORTA=~red_display[activeLine];<br />
activeLine++;<br />
if(activeLine&gt;7){<br />
activeLine=0;<br />
}<br />
switch(adcChannel){<br />
case 0: x_accel=(ADCH-x_flat)/10;<br />
if((x_loc&lt;500)&amp;&amp;(x_accel&lt;0)){ 					x_accel=0; 				} 				if((x_loc&gt;7500)&amp;&amp;(x_accel&gt;0)){<br />
x_accel=0;<br />
}<br />
x_vel=limit(x_vel+x_accel,-MAXVELOCITY,MAXVELOCITY);<br />
ADMUX=0xE1;<br />
adcChannel=1;<br />
break;<br />
case 1: y_accel=(y_flat-ADCH)/10;<br />
if((y_loc&lt;500)&amp;&amp;(y_accel&lt;0)){ 					y_accel=0; 				} 				if((y_loc&gt;7500)&amp;&amp;(y_accel&gt;0)){<br />
y_accel=0;<br />
}<br />
//if((abs(y_accel)&gt;1)||(abs(y_vel)&gt;20)){<br />
y_vel=limit(y_vel+y_accel,-MAXVELOCITY,MAXVELOCITY);<br />
//}else{<br />
//	y_vel=0;<br />
//}<br />
ADMUX=0xE2;<br />
adcChannel=2;<br />
break;<br />
case 2: z_accel=(ADCH-125);<br />
ADMUX=0xE0;<br />
adcChannel=0;<br />
break;<br />
default: adcChannel=0;<br />
}</p>
<p>}</p></blockquote>
<p>And the main loop:</p>
<blockquote><p>while(1){</p>
<p>if((abs(x_vel)&gt;STICTION)||(abs(y_vel)&gt;STICTION)){<br />
x_vel=(int)((ELASTICNUMERATOR*(long int)x_vel)/ELASTICDENOMINATOR);<br />
x_loc+=x_vel;<br />
y_vel=(int)((ELASTICNUMERATOR*(long int)y_vel)/ELASTICDENOMINATOR);<br />
y_loc+=y_vel;<br />
}<br />
if(x_loc&lt;0){ 			x_loc=-x_loc; 			x_vel=-x_vel; 		} 		if(x_loc&gt;7999){<br />
x_loc=7999;<br />
x_vel=-x_vel;<br />
}<br />
if(y_loc&lt;0){ 			y_loc=-y_loc; 			y_vel=-y_vel; 		} 		if(y_loc&gt;7999){<br />
y_loc=7999;<br />
y_vel=-y_vel;<br />
}<br />
x_pos=(unsigned char)(x_loc/1000);<br />
y_pos=(unsigned char)(y_loc/1000);<br />
plotBall(x_pos,y_pos);<br />
_delay_ms(50);</p>
<p>}</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://robotguy.net/blog/2009/06/25/mazetrix-video-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mazetrix Update</title>
		<link>http://robotguy.net/blog/2009/06/22/mazetrix-update/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=mazetrix-update</link>
		<comments>http://robotguy.net/blog/2009/06/22/mazetrix-update/#comments</comments>
		<pubDate>Tue, 23 Jun 2009 02:01:14 +0000</pubDate>
		<dc:creator>Robotguy</dc:creator>
				<category><![CDATA[AVR]]></category>
		<category><![CDATA[Electronics]]></category>
		<category><![CDATA[mazetrix]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://robotguy.net/blog/?p=73</guid>
		<description><![CDATA[I received the pcbs for Mazetrix and started the build. After 4 1/2 hours of troubleshooting I realized that I connected the SCK line to the wrong pin and finally managed to get AVR Studio to recognize the processor. Then I wrote enough code to verify the LEDs would all light up.  However I then [...]]]></description>
			<content:encoded><![CDATA[<p>I received the pcbs for Mazetrix and started the build. After 4 1/2 hours of troubleshooting I realized that I connected the SCK line to the wrong pin and finally managed to get AVR Studio to recognize the processor. Then I wrote enough code to verify the LEDs would all light up.  However I then started having problems with the firmware. Finally, during my 15 minute lunch today, I found the problem was the fuse settings in the ATMEGA128 (either 103 comaptibility mode or JTAG enabled).</p>
<p>I just added the 3-axis accelerometer, but haven&#8217;t soldered on the supporting components. Also I still need to add the Li-Po charge IC. I am currently using the STK500 both to power and program the board.</p>
<p>So without further ado, here are some pics&#8230;</p>
<div class="wp-caption alignnone" style="width: 260px"><a href="http://robotguy.net/mazetrix1.jpg"><img title="Mazetrix1" src="http://robotguy.net/tn_mazetrix1.jpg" alt="Mazetrix project" width="250" height="255" /></a><p class="wp-caption-text">Mazetrix project</p></div>
<div class="wp-caption alignnone" style="width: 260px"><a href="http://robotguy.net/mazetrix2.jpg"><img title="Mazetrix2" src="http://robotguy.net/tn_mazetrix2.jpg" alt="Mazetrix Bottom" width="250" height="255" /></a><p class="wp-caption-text">Mazetrix Bottom</p></div>
<div class="wp-caption alignnone" style="width: 340px"><a href="http://robotguy.net/mazetrix3.jpg"><img title="Mazetrix3" src="http://robotguy.net/mazetrix3.jpg" alt="Mazetrix Top" width="330" height="200" /></a><p class="wp-caption-text">Mazetrix Top</p></div>
]]></content:encoded>
			<wfw:commentRss>http://robotguy.net/blog/2009/06/22/mazetrix-update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Welcome to the Mazetrix</title>
		<link>http://robotguy.net/blog/2009/06/17/welcome-to-the-mazetrix/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=welcome-to-the-mazetrix</link>
		<comments>http://robotguy.net/blog/2009/06/17/welcome-to-the-mazetrix/#comments</comments>
		<pubDate>Thu, 18 Jun 2009 04:55:24 +0000</pubDate>
		<dc:creator>Robotguy</dc:creator>
				<category><![CDATA[AVR]]></category>
		<category><![CDATA[Electronics]]></category>
		<category><![CDATA[mazetrix]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://robotguy.net/blog/?p=64</guid>
		<description><![CDATA[So, I just got an email from BatchPCB that my board has been shipped, so it looks like I&#8217;m switching gears again. My board is for a project based on the Tiletoy, and incidentally not unlike the Space Invaders Button, the Awesome and 64Pixels. Many moons ago I managed to score several 8&#215;64 Red-Green matrix [...]]]></description>
			<content:encoded><![CDATA[<p>So, I just got an email from BatchPCB that my board has been shipped, so it looks like I&#8217;m switching gears again.</p>
<p>My board is for a project based on the <a title="Tiletoy" href="http://www.tiletoy.org/" target="_blank">Tiletoy</a>, and incidentally not unlike the <a title="Space Invaders Button" href="http://interactive-matter.org/2009/04/space-invaders-button/" target="_blank">Space Invaders Button</a>, the <a title="Awesome" href="http://bringtheawesome.tumblr.com/page/1" target="_blank">Awesome</a> and <a title="64Pixels" href="http://tinkerlog.com/2009/03/21/64pixels-are-enough/" target="_blank">64Pixels</a>.</p>
<p>Many moons ago I managed to score several 8&#215;64 Red-Green matrix displays salvaged, evidently, from a casino display. Even though I had managed to reverse engineer them and figure out how to display nifty messages, they were just too large and too <a title="COTS" href="http://en.wikipedia.org/wiki/Commercial_off-the-shelf" target="_blank">COTS</a> for me. I removed the 8&#215;8 LED matrices (matrixes?) and designed a small board to run them. The display is run directly from an ATMega128, using a half-H bridge on each column so I can <a title="LEDSensor" href="http://cs.nyu.edu/~jhan/ledtouch/index.html" target="_blank">use the entire matrix as a sensor</a>. Additionally, I have added a <a title="Accelerometer" href="http://www.sparkfun.com/commerce/product_info.php?products_id=308" target="_blank">MMA7260 triple axis accelerometer</a>. Last but not least is an IR LED pointed in each of the cardinal directions, also connected to be<a title="LEDComms" href="http://www.merl.com/papers/docs/TR2003-35.pdf" target="_blank"> used as an input and an output, for communicating to neighbor modules</a>(PDF link).</p>
<p>The ultimate goal is to create tiles with a red maze and a green &#8220;ball&#8221; than you can manipulate by tilting, just like the good old <a title="labyrinth" href="http://www.amazon.com/Brio-34000-Labyrinth/dp/B000XQ4VE2/" target="_blank">labyrinth game</a>. When you get to the edge of a tile, you can connect another, which will attach magnetically, and the maze will continue on the new tile.</p>
<p>I&#8217;ll add more updates when I start building.</p>
<p>Here&#8217;s a few images to satisfy the curious:</p>
<div class="wp-caption alignnone" style="width: 260px"><a href="http://robotguy.net/Mazetrix-schematic.jpg"><img title="schematic" src="http://robotguy.net/tn_Mazetrix-schematic.jpg" alt="schematic" width="250" height="135" /></a><p class="wp-caption-text">schematic</p></div>
<div class="wp-caption alignnone" style="width: 138px"><a href="http://robotguy.net/mazetrix-top.png"><img title="Mazetrix Layout" src="http://robotguy.net/tn_mazetrix-top.png" alt="Mazetrix Layout" width="128" height="128" /></a><p class="wp-caption-text">Mazetrix Layout</p></div>
]]></content:encoded>
			<wfw:commentRss>http://robotguy.net/blog/2009/06/17/welcome-to-the-mazetrix/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

