<?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>swan tron dot com &#187; HoF</title>
	<atom:link href="http://swantron.com/category/hall-of-fame/feed/" rel="self" type="application/rss+xml" />
	<link>http://swantron.com</link>
	<description>Gadgetery, Consumer Electronics, &#38; Robots FTW</description>
	<lastBuildDate>Tue, 07 Feb 2012 00:32:15 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Android IOIO Project &#124; IOIOSeek</title>
		<link>http://swantron.com/android-ioio-project-ioioseek/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=android-ioio-project-ioioseek</link>
		<comments>http://swantron.com/android-ioio-project-ioioseek/#comments</comments>
		<pubDate>Tue, 11 Oct 2011 11:01:05 +0000</pubDate>
		<dc:creator>Joseph Swanson</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[HoF]]></category>
		<category><![CDATA[Amazing]]></category>
		<category><![CDATA[Buttons]]></category>
		<category><![CDATA[Droid 2]]></category>
		<category><![CDATA[IOIO]]></category>
		<category><![CDATA[IOIO Project]]></category>
		<category><![CDATA[LED]]></category>
		<category><![CDATA[LEDs]]></category>
		<category><![CDATA[Pretty Awesome]]></category>
		<category><![CDATA[Prototype]]></category>
		<category><![CDATA[Prototyping]]></category>
		<category><![CDATA[Servo]]></category>
		<category><![CDATA[Slider Bar]]></category>
		<category><![CDATA[Solar Cell]]></category>
		<category><![CDATA[Solar Panel]]></category>

		<guid isPermaLink="false">http://swantron.com/?p=3886</guid>
		<description><![CDATA[I hope you don&#8217;t mind, but I went ahead and stepped it up a few notches. My newest project brings my end-goal a few steps closer. I now have the pieces in place to put together an actual robotic implementation &#8230; <a href="http://swantron.com/android-ioio-project-ioioseek/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I hope you don&#8217;t mind, but I went ahead and stepped it up a few notches. </p>
<p>My newest project brings my end-goal a few steps closer.  I now have the pieces in place to put together an actual robotic implementation with the IOIO&#8230;since things have officially reached the cool stage, I decided to drop this as a stand-alone project.  Complete with pics, a vid, and an app.  </p>
<p>IOIOSeek:  </p>
<div id="attachment_3887" class="wp-caption aligncenter" style="width: 580px"><a href="http://swantron.com/wp-content/uploads/2011/10/IOIO-Android-Seek.jpg"><img src="http://swantron.com/wp-content/uploads/2011/10/IOIO-Android-Seek-570x320.jpg" alt="IOIO android servo seek" title="IOIO-Android-Seek" width="570" height="320" class="size-medium wp-image-3887" /></a><p class="wp-caption-text">dig the lighting</p></div>
<p>What I have here are two slider bar controlled servos, an analog input-read solar panel, and some LEDs toggled via a button.  The control is via the IOIO / Android.  </p>
<div id="attachment_3888" class="wp-caption aligncenter" style="width: 580px"><a href="http://swantron.com/wp-content/uploads/2011/10/Android-IOIO-Seek.jpg"><img src="http://swantron.com/wp-content/uploads/2011/10/Android-IOIO-Seek-570x320.jpg" alt="servos and solar panels on ioio android" title="Android-IOIO-Seek" width="570" height="320" class="size-medium wp-image-3888" /></a><p class="wp-caption-text">dig the wires</p></div>
<p>The pictures, however nice, don&#8217;t really tell the story.  Take a look at the video to see this thing in action:</p>
<p><iframe width="570" height="416" src="http://www.youtube.com/embed/elzgLYu-ngQ" frameborder="0" allowfullscreen></iframe></p>
<p>As the video alludes to, I am going to run with this concept.  The automation (robotics) lies in the analog reading with respect to the servo positions.  I plan to &#8216;scan&#8217; the panel&#8230;that is the piece that is missing.  Once I can implement that mess, I will have a tracking system.  Implementations will fall out of that.  </p>
<div id="attachment_3889" class="wp-caption aligncenter" style="width: 580px"><a href="http://swantron.com/wp-content/uploads/2011/10/IOIO-Project-Seek-Android.jpg"><img src="http://swantron.com/wp-content/uploads/2011/10/IOIO-Project-Seek-Android-570x320.jpg" alt="analog input ioio" title="IOIO-Project-Seek-Android" width="570" height="320" class="size-medium wp-image-3889" /></a><p class="wp-caption-text">+1 tape</p></div>
<p>As with the last few projects, I have dumped <a href="https://market.android.com/details?id=swantron.project.seek">the app on the Android Market</a> for general perusal.  The app&#8217;s description provides the details of the pin configuration, which is straight forward.  I have two PWM outputs, a pure 3.3V digital toggle, and a pin configured for analog input.  That is that.  </p>
<p>I will push my code to GitHub as well eventually, and provide a link therein.  I still need to polish my generic servo code, since my latency was borderline awful in retrospect.  Look for that in the near future as well.  </p>
<p>As always, drop any questions to joe[at]swantron[dot]com.  Feel free to share your IOIO projects with me&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://swantron.com/android-ioio-project-ioioseek/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>IOIO Servo Controller</title>
		<link>http://swantron.com/ioio-servo-controller/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=ioio-servo-controller</link>
		<comments>http://swantron.com/ioio-servo-controller/#comments</comments>
		<pubDate>Sat, 24 Sep 2011 23:30:27 +0000</pubDate>
		<dc:creator>Joseph Swanson</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[HoF]]></category>
		<category><![CDATA[Android Market]]></category>
		<category><![CDATA[Awesome]]></category>
		<category><![CDATA[Breakout Board]]></category>
		<category><![CDATA[Droid]]></category>
		<category><![CDATA[Droid 2]]></category>
		<category><![CDATA[GitHub]]></category>
		<category><![CDATA[IOIO]]></category>
		<category><![CDATA[Project]]></category>
		<category><![CDATA[PWM]]></category>
		<category><![CDATA[Servo]]></category>

		<guid isPermaLink="false">http://swantron.com/?p=3851</guid>
		<description><![CDATA[I just doubled my Android Market presence with one fell swoop. IOIO project number two is in the books: IOIO Servo Controller. This project is a one-off of the PowerSwitch Tail relay project I have out in the wild. I &#8230; <a href="http://swantron.com/ioio-servo-controller/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I just doubled my Android Market presence with one fell swoop.  IOIO project number two is in the books:  IOIO Servo Controller.  </p>
<div id="attachment_3852" class="wp-caption aligncenter" style="width: 580px"><a href="http://swantron.com/wp-content/uploads/2011/09/IOIO-Servo-Controller.jpg"><img src="http://swantron.com/wp-content/uploads/2011/09/IOIO-Servo-Controller-570x320.jpg" alt="IOIO Servo Controller" title="IOIO Servo Controller" width="570" height="320" class="size-medium wp-image-3852" /></a><p class="wp-caption-text">servo in altoids can smells like altoids</p></div>
<p>This project is a one-off of the PowerSwitch Tail relay project I have out in the wild.  I took the button out of the mix and implemented a slider bar&#8230;removed the relay and am now driving a hobby servo.<br />
<div id="attachment_3856" class="wp-caption aligncenter" style="width: 580px"><a href="http://swantron.com/wp-content/uploads/2011/09/IOIOServo_horiz1.png"><img src="http://swantron.com/wp-content/uploads/2011/09/IOIOServo_horiz1-570x342.png" alt="IOIO Android app" title="IOIOServo_horiz" width="570" height="342" class="size-medium wp-image-3856" /></a><p class="wp-caption-text">brand placement</p></div></p>
<p>Displayed is the relative level (zero to one) of the slider, the slider itself, and a shameless plug.  The onboard LED also fires with a brightness relative to the slider position&#8230;which I implemented in the coding and sort of left in there.  </p>
<p>The basic concept was to get the PWM output configured correctly, in order to control the servo positioning&#8230;the slider function is pretty much just the stock slider from the Android Development docs, widened a bit for the sake of video capture.  The rest was just mashing around the code I had out there&#8230;not too bad.  </p>
<p>Check the thing in action:<br />
<iframe width="420" height="315" src="http://www.youtube.com/embed/DI3v3_E448U" frameborder="0" allowfullscreen></iframe><br />
This project is available for download in app form on the Android Market.  Right next to my other guy&#8230;search for IOIO.  I will toss the code on my GitHub account as well.  Fun project&#8230;I may branch and see If I can do anything cool with a few servos.  We&#8217;ll see.  </p>
<p>Shoot any comments to joe(at)swantron(dot)com.  I can help with any setup issues, if they may arise.  Good luck&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://swantron.com/ioio-servo-controller/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>IOIO PowerSwitch Project</title>
		<link>http://swantron.com/ioio-powerswitch-project/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=ioio-powerswitch-project</link>
		<comments>http://swantron.com/ioio-powerswitch-project/#comments</comments>
		<pubDate>Tue, 06 Sep 2011 00:52:09 +0000</pubDate>
		<dc:creator>Joseph Swanson</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[HoF]]></category>
		<category><![CDATA[Amazing Inventions]]></category>
		<category><![CDATA[Android Market]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[GitHub]]></category>
		<category><![CDATA[IOIO]]></category>
		<category><![CDATA[IOIO Example]]></category>
		<category><![CDATA[IOIO Project]]></category>
		<category><![CDATA[Open Drain]]></category>
		<category><![CDATA[Open-Source]]></category>
		<category><![CDATA[Plus One Awesome]]></category>
		<category><![CDATA[swantron]]></category>
		<category><![CDATA[Vids]]></category>

		<guid isPermaLink="false">http://swantron.com/?p=3791</guid>
		<description><![CDATA[I can finally report a conclusion of sorts on the IOIO / PowerSwitch Tail project. The &#8216;of sorts&#8217; disclaimer is in regards to my Android App, which is pretty much a working beta. I have some issues with my onResume &#8230; <a href="http://swantron.com/ioio-powerswitch-project/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I can finally report a conclusion of sorts on the IOIO / PowerSwitch Tail project.  The &#8216;of sorts&#8217; disclaimer is in regards to my Android App, which is pretty much a working beta.  I have some issues with my onResume code, and want to put some polish on the UI.  That said, I have released the code to the interwebs, so had better provide a write-up.  </p>
<p>The setup is the same as I have been posting.  Dual open drain pins with a 10K pull to 5V do the lifting&#8230;triggering of pins is handled via my IOIO board&#8230;Android app providing a UI to do the switching.</p>
<div id="attachment_3792" class="wp-caption aligncenter" style="width: 580px"><a href="http://swantron.com/wp-content/uploads/2011/09/ioio-example.jpg"><img src="http://swantron.com/wp-content/uploads/2011/09/ioio-example.jpg" alt="ioio-example-project" title="ioio-example" width="570" height="320" class="size-full wp-image-3792" /></a><p class="wp-caption-text">beta version:  check.</p></div>
<p>I went ahead and published my app on the Android Market.  It will pop for sure by searching for IOIO.</p>
<div id="attachment_3793" class="wp-caption aligncenter" style="width: 580px"><a href="http://swantron.com/wp-content/uploads/2011/09/android-market.png"><img src="http://swantron.com/wp-content/uploads/2011/09/android-market-570x351.png" alt="android market app" title="android-market" width="570" height="351" class="size-medium wp-image-3793" /></a><p class="wp-caption-text">apptastic</p></div>
<p>Price:  free ninety nine.  Can&#8217;t beat that.  </p>
<p>I also tossed this code up on GitHub.  Go nuts.</p>
<div id="attachment_3794" class="wp-caption aligncenter" style="width: 580px"><a href="http://swantron.com/wp-content/uploads/2011/09/github.png"><img src="http://swantron.com/wp-content/uploads/2011/09/github-570x394.png" alt="github example" title="github" width="570" height="394" class="size-medium wp-image-3794" /></a><p class="wp-caption-text">/swantron</p></div>
<p>Video time:  see this in action.  </p>
<p><iframe width="420" height="345" src="http://www.youtube.com/embed/iQ_Bonhnt4Y" frameborder="0" allowfullscreen></iframe></p>
<p>Basically, between all of the shaky camera work, I download my app from the Android Market, connect via USB, and control the 120V relay via my Droid 2.  I will shoot a better video once I clean up my code a bit.  </p>
<p>Stay tuned.  The README on GitHub and the app details section should have all of the connection information.  I can provide any further details via email / comments / @swantron.  Have fun with this one&#8230;</p>
<p><a href="http://market.android.com/details?id=swantron.project.power">Link to android market</a><br />
<a href="http://github.com/swantron/IOIOPowerSwitch">Link to project code at GitHub</a></p>
]]></content:encoded>
			<wfw:commentRss>http://swantron.com/ioio-powerswitch-project/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>HTML to Python to Arduino to LCD</title>
		<link>http://swantron.com/html-to-python-to-arduino-to-lcd/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=html-to-python-to-arduino-to-lcd</link>
		<comments>http://swantron.com/html-to-python-to-arduino-to-lcd/#comments</comments>
		<pubDate>Thu, 02 Jun 2011 04:42:07 +0000</pubDate>
		<dc:creator>Joseph Swanson</dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[HoF]]></category>
		<category><![CDATA[how2]]></category>
		<category><![CDATA[Awesome]]></category>
		<category><![CDATA[CLI]]></category>
		<category><![CDATA[DIY]]></category>
		<category><![CDATA[LCD]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[pix]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Scripting]]></category>
		<category><![CDATA[This is Unix I Know This]]></category>
		<category><![CDATA[Video]]></category>
		<category><![CDATA[Vids]]></category>

		<guid isPermaLink="false">http://swantron.com/?p=3536</guid>
		<description><![CDATA[Last week found me standing tall upon my shell script soapbox, shouting command line praises to all who would listen. Thou ought direct thine output aftways, to-wards thine USB port of thee. And that is well and righteous. Well, that &#8230; <a href="http://swantron.com/html-to-python-to-arduino-to-lcd/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Last week found me standing tall upon my shell script soapbox, shouting command line praises to all who would listen. </p>
<p><em>Thou ought direct thine output aftways, to-wards thine USB port of thee.  And that is well and righteous.  </em></p>
<p>Well, that still is the case.  My latest project has made it glaringly obvious that sometimes a little Python script will render a whole bunch of shell scripting moot.  Namely, parsing HTML.  Let&#8217;s see a picture&#8230;</p>
<div id="attachment_3537" class="wp-caption aligncenter" style="width: 580px"><a href="http://swantron.com/wp-content/uploads/2011/06/outdoor-computer.jpg"><img src="http://swantron.com/wp-content/uploads/2011/06/outdoor-computer.jpg" alt="outdoor hacking" title="outdoor-computer" width="570" height="320" class="size-full wp-image-3537" /></a><p class="wp-caption-text">bad lab mobile</p></div>
<p>Lunch hour project:  <strong>parse the comments from swantron.com; feed said comments to an LCD screen.</strong>  </p>
<p>I was horsing around with wget from a CLI a few days ago.  I found myself trying to smash through the resultant file via pure regular expressions&#8230;which is incredibly clumsy.  Well, as luck would have it, my go-to after my main go-to is Python, and this type of thing has been issue enough to warrant a library.  BeautifulSoup.  It acts to parse the HTML info into items, that can be smashed around as I see(med) fit.  </p>
<p>My setup was simple: py script to snag my comments and write serial, Arduino sketch to drive a LCD and read/write serial.  And a source of shade.  And a WiFi signal to snag.  </p>
<div id="attachment_3538" class="wp-caption aligncenter" style="width: 580px"><a href="http://swantron.com/wp-content/uploads/2011/06/outdoor-hacking.jpg"><img src="http://swantron.com/wp-content/uploads/2011/06/outdoor-hacking.jpg" alt="mobile mobile" title="outdoor-hacking" width="570" height="320" class="size-full wp-image-3538" /></a><p class="wp-caption-text">bad lab mobile-mobile</p></div>
<p>Check, check, check, etc.  Video time:</p>
<p><iframe width="569" height="427" src="http://www.youtube.com/embed/4nyInt_5HHU" frameborder="0" allowfullscreen></iframe></p>
<p>Pretty slick&#8230;hit the fold for the code, as promised, and a summary.<br />
<span id="more-3536"></span><br />
Python parser / serial writer </p>
<blockquote><p>#!/usr/bin/python<br />
# http://swantron.com<br />
# htlm grab / parse&#8230;<br />
# &#8230;write to serial out<br />
# 2011</p>
<p>admin = [ 'Joseph Swanson' ]<br />
total = True</p>
<p>import urllib2, time, serial, sys<br />
from BeautifulSoup import BeautifulSoup</p>
<p># disregard spammers | disregard identical posts | create spam zone</p>
<p>spam = []</p>
<p># initialize serial write to Arduino</p>
<p>ser = serial.Serial(&#8216;/dev/ttyUSB0&#8242;, 9600)</p>
<p>time.sleep(5)</p>
<p># work section </p>
<p>while True:</p>
<p>  # snag html</p>
<p>  html = urllib2.urlopen(&#8220;http://swantron.com/comments/feed&#8221;).read()</p>
<p>  # parse</p>
<p>  soup = BeautifulSoup(html)</p>
<p>  # inspect parsed results</p>
<p>  for item in soup(&#8216;item&#8217;):<br />
      badGuy = item(&#8216;guid&#8217;)[0].string.split(&#8216;comment-&#8217;)[1]</p>
<p>      if badGuy not in spam:</p>
<p>              # spammer jail</p>
<p>              spam.append(badGuy)</p>
<p>              # time modification</p>
<p>              postTime = item(&#8216;pubdate&#8217;)[0].string<br />
              parsedTime = time.strptime(postTime, &#8220;%a, %d %b %Y %H:%M:%S +0000&#8243;)<br />
              offsetTime = time.mktime(parsedTime) &#8211; time.timezone<br />
              localPostTime = time.strftime(&#8220;%m/%d/%y %H:%M&#8221;, time.localtime(offsetTime))</p>
<p>              # identify me</p>
<p>              author = item(&#8216;dc:creator&#8217;)[0].string<br />
              if author in admin:<br />
                  print &#8220;(&#8221; + localPostTime + &#8220;) I, &#8221; + author + &#8220;, just posted a comment&#8221;<br />
                  print &#8221;    &#8221; + item(&#8216;guid&#8217;)[0].string<br />
                  print &#8221;    &#8221; + item(&#8216;description&#8217;)[0].string<br />
                  ser.write(item(&#8216;description&#8217;)[0].string)<br />
		  time.sleep(1)<br />
              elif total:<br />
                  print &#8220;(&#8221; + localPostTime + &#8220;) background noise ~~ &#8221; + author<br />
                  print &#8221;    &#8221; + item(&#8216;guid&#8217;)[0].string<br />
                  print &#8221;    &#8221; + item(&#8216;description&#8217;)[0].string<br />
                  ser.write(item(&#8216;description&#8217;)[0].string)</p>
<p>  time.sleep(10)</p></blockquote>
<p>Arduino LCD driver</p>
<blockquote><p>
// LCD Driver<br />
// http://swantron.com<br />
// basic serial in > LCD display<br />
// 2011</p>
<p>#include <LiquidCrystal.h></p>
<p>// **Define pins**<br />
// LCD RS &#8211; pin 12<br />
// LCD R/W &#8211; pin 11<br />
// LCD ENABLE &#8211; pin 10<br />
// LCD BACK+ &#8211; pin 13<br />
// LCD DATA4 &#8211; pin 5<br />
// LCD DATA5 &#8211; pin 4<br />
// LCD DATA6 &#8211; pin 3<br />
// LCD DATA7 &#8211; pin 2<br />
// LCD VSS, CONTRAST,  BACK- &#8211; ground</p>
<p>LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2);</p>
<p>int backLight = 13;    // Define pin for backlight</p>
<p>void setup()<br />
{<br />
  pinMode(backLight, OUTPUT);<br />
  digitalWrite(backLight, HIGH); // Backlight level (LOW / HIGH)<br />
  lcd.begin(20,4);               // (Columns, Rows)<br />
  Serial.begin(9600);<br />
}</p>
<p>void loop()<br />
{<br />
  // when characters arrive over the serial port&#8230;<br />
  if (Serial.available()) {<br />
    // wait a bit for the entire message to arrive<br />
    delay(100);<br />
    // clear the screen<br />
    lcd.clear();<br />
    // read all the available characters<br />
    while (Serial.available() > 0) {<br />
      // display each character to the LCD<br />
      lcd.write(Serial.read());<br />
    }<br />
  }<br />
}</p></blockquote>
<p>I&#8217;m excited about this project.  Even though this deal is in gen 3, I still have some crazy take-off ideas.  Create a secure page on swantron to hold a few values&#8230;hook up my old notebook as a base station&#8230;home automation on the cheap.  Replace that LCD with a sketch to search for a particular string, i.e. &#8220;open garage door&#8221; and boom, there you go.  This could be very cool.  Introduce twitter to remove my server from the equation&#8230;awesome.  </p>
<p>Hit the comments with any improvements or project ideas you can conjure.  This one has me excited&#8230;feel free to challenge me with something cool.  As always, thanks for reading, yadda yadda, stay tuned, etc.  </p>
]]></content:encoded>
			<wfw:commentRss>http://swantron.com/html-to-python-to-arduino-to-lcd/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>How to Use a Ladder</title>
		<link>http://swantron.com/how-to-use-a-ladder/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=how-to-use-a-ladder</link>
		<comments>http://swantron.com/how-to-use-a-ladder/#comments</comments>
		<pubDate>Mon, 02 May 2011 00:26:34 +0000</pubDate>
		<dc:creator>Joseph Swanson</dc:creator>
				<category><![CDATA[HoF]]></category>
		<category><![CDATA[how2]]></category>
		<category><![CDATA[Danger]]></category>

		<guid isPermaLink="false">http://swantron.com/?p=3445</guid>
		<description><![CDATA[Ladder safety is a must in my book. Before tackling that weekend project around the house, take a look at these ladder tips I have collected. * Ensure the roof of the vehicle you are using is obstruction free * &#8230; <a href="http://swantron.com/how-to-use-a-ladder/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Ladder safety is a must in my book.  Before tackling that weekend project around the house, take a look at these ladder tips I have collected.</p>
<p>* Ensure the roof of the vehicle you are using is obstruction free<br />
* Make sure the ladder is fully opened, with both supports extended to their maximums<br />
* Look for and remove any dangerous/pointy objects from around the vehicle<br />
* Take note of any overhead power lines  and or cables</p>
<div id="attachment_3446" class="wp-caption aligncenter" style="width: 580px"><a href="http://swantron.com/wp-content/uploads/2011/05/bad-idea.jpg"><img src="http://swantron.com/wp-content/uploads/2011/05/bad-idea.jpg" alt="dangerous ladder setup" title="bad-idea" width="570" height="839" class="size-full wp-image-3446" /></a><p class="wp-caption-text">plus one dangerous</p></div>
<p>Here, I have safely used a ladder to open this second-story window that had been painted shut.  Safely used a ladder <strong><em>like a baller.  </em></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://swantron.com/how-to-use-a-ladder/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>DIY Minority Report</title>
		<link>http://swantron.com/diy-minority-report/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=diy-minority-report</link>
		<comments>http://swantron.com/diy-minority-report/#comments</comments>
		<pubDate>Tue, 19 Apr 2011 18:34:48 +0000</pubDate>
		<dc:creator>Joseph Swanson</dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[HoF]]></category>
		<category><![CDATA[how2]]></category>
		<category><![CDATA[Awesome]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Duemilanove]]></category>
		<category><![CDATA[Home Automation]]></category>
		<category><![CDATA[How-To]]></category>
		<category><![CDATA[Minority Report]]></category>
		<category><![CDATA[Ping)))]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Project]]></category>
		<category><![CDATA[Snippet]]></category>
		<category><![CDATA[Ultrasonic]]></category>
		<category><![CDATA[Video]]></category>
		<category><![CDATA[Vids]]></category>

		<guid isPermaLink="false">http://swantron.com/?p=3405</guid>
		<description><![CDATA[Spoiler1: This is awesome. Spoiler2: I&#8217;ve never seen Minority Report. I do know that there is some sort of hands free interface, and that is what I have put together. Long story short, I have extended upon my PING))) project &#8230; <a href="http://swantron.com/diy-minority-report/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Spoiler1:  This is awesome.<br />
Spoiler2:  I&#8217;ve never seen Minority Report.  </p>
<p>I do know that there is some sort of hands free interface, and that is what I have put together. </p>
<div id="attachment_3406" class="wp-caption aligncenter" style="width: 580px"><a href="http://swantron.com/wp-content/uploads/2011/04/minority-report.jpg"><img src="http://swantron.com/wp-content/uploads/2011/04/minority-report.jpg" alt="minority report" title="minority-report" width="570" height="320" class="size-full wp-image-3406" /></a><p class="wp-caption-text">+1 dizzy</p></div>
<p>Long story short, I have extended upon my PING))) project to include some sweet touchless home automation.  I have the ultrasonic sensor interfacing with my garage door and a lamp, utilizing a servo and a PowerSwitch Tail, respectively.</p>
<p>Hit the bump for an awesome video of this thing in action, and for my spippet.</p>
<p><span id="more-3405"></span> </p>
<p>*Video contains a rare thumbs up from the author*</p>
<p><iframe title="YouTube video player" width="570" height="458" src="http://www.youtube.com/embed/sdRrRXs33wo" frameborder="0" allowfullscreen></iframe></p>
<p>Snippet?  Oh, INDEED&#8230;</p>
<blockquote><p>//DIY Minority Report</p>
<p>// Joseph Swanson | 2011<br />
// http://swantron.com</p>
<p>// Setup<br />
// LEDs connected to pins 11, 2-5<br />
// Ping))) sensor signal to pin 7<br />
// Servo signal to pin 10<br />
// PowerSwitch Tail to pin 13<br />
// Ping))) +, servo + to 5V<br />
// Ground the shit out of everything</p>
<p>#include <Servo.h></p>
<p>Servo myservo; </p>
<p>int pos = 0;</p>
<p>// Pin assignment<br />
const int ledPin1 =  11;<br />
const int ledPin2 =  2;<br />
const int ledPin3 =  3;<br />
const int ledPin4 =  4;<br />
const int ledPin5 =  5;<br />
const int pingPin =  7;<br />
const int lampPin = 13;</p>
<p>// Create variables to store LED states / lamp state<br />
int ledState1 = LOW;<br />
int ledState2 = LOW;<br />
int ledState3 = LOW;<br />
int ledState4 = LOW;<br />
int ledState5 = LOW;<br />
int lampState = LOW;<br />
void setup() {</p>
<p>// Servo pin definition<br />
myservo.attach(10);</p>
<p>//Define pins 1-5, lamp pin as output<br />
pinMode(ledPin1, OUTPUT);<br />
pinMode(ledPin2, OUTPUT);<br />
pinMode(ledPin3, OUTPUT);<br />
pinMode(ledPin4, OUTPUT);<br />
pinMode(ledPin5, OUTPUT);<br />
pinMode(lampPin, OUTPUT);<br />
}<br />
void loop()<br />
{<br />
// Reset LEDs levels to low to begin loop<br />
  ledState1 = LOW;<br />
  ledState2 = LOW;<br />
  ledState3 = LOW;<br />
  ledState4 = LOW;<br />
  ledState5 = LOW;<br />
// Reset Servo position to initial location<br />
  pos = 0;</p>
<p>// Set duration variable<br />
  long duration, cm;</p>
<p>// Loop section for ping signal pin&#8230;start as output<br />
  pinMode(pingPin, OUTPUT);<br />
  digitalWrite(pingPin, LOW);<br />
  delayMicroseconds(2);<br />
  digitalWrite(pingPin, HIGH);<br />
  delayMicroseconds(5);<br />
  digitalWrite(pingPin, LOW);</p>
<p>// Listen with same pin<br />
  pinMode(pingPin, INPUT);<br />
  duration = pulseIn(pingPin, HIGH);</p>
<p>// Convert time to a distance<br />
  cm = microsecondsToCentimeters(duration);</p>
<p>// Configure this for LED sensitivity<br />
  delay(100); </p>
<p>// March through cm values&#8230;set levels where appropriate<br />
  if (cm < 95) {<br />
    ledState1 = HIGH;}</p>
<p>  if (cm < 60) {<br />
    ledState2 = HIGH;}  </p>
<p>  if (cm < 40) {<br />
    ledState3 = HIGH;}</p>
<p>  if (cm < 25) {<br />
    ledState4 = HIGH;}   </p>
<p>  if (cm < 10) {<br />
    ledState5 = HIGH;}</p>
<p>  if (cm < 40 &#038;&#038; cm >= 30 ) {<br />
    lampState = HIGH;}</p>
<p>  if (cm < 25 &#038;&#038; cm >= 15 ) {<br />
    lampState = LOW; }</p>
<p>  if (cm < 10) {<br />
    pos =( pos + 14 ); }</p>
<p>// fire all LED values...fire servo...fire lamp<br />
    digitalWrite(ledPin1, ledState1);<br />
    digitalWrite(ledPin2, ledState2);<br />
    digitalWrite(ledPin3, ledState3);<br />
    digitalWrite(ledPin4, ledState4);<br />
    digitalWrite(ledPin5, ledState5);<br />
    digitalWrite(lampPin, lampState);<br />
    myservo.write(pos);</p>
<p>  delay(100);    </p>
<p>}<br />
long microsecondsToCentimeters(long microseconds)<br />
{<br />
  // 340 meters per second...do some math<br />
  return microseconds / 29 / 2;<br />
}
</p></blockquote>
<p>As the code implies, I have set this thing up to look for pings in particular regions.  The LEDs indicate where I am at, and the rest sort of plays out from there.  The lamp is set up as a switch, with ON and OFF having separate regions.  The servo/g-door opener is a simple ON when the region is occupied&#8230;similar to my previous setup.  </p>
<p>Pretty flipping sweet.  As usual, send any feedback my way.  This is still in the proof-of-concept mode, and will likely get scrapped for parts soon.  Not to mention, Katie will probably want to be able to use the garage door opener, which I disconnected to string that wire that I have running manually to the servo.  Be prompt.  </p>
]]></content:encoded>
			<wfw:commentRss>http://swantron.com/diy-minority-report/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Garage Door Hack</title>
		<link>http://swantron.com/garage-door-hack/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=garage-door-hack</link>
		<comments>http://swantron.com/garage-door-hack/#comments</comments>
		<pubDate>Thu, 14 Apr 2011 04:19:53 +0000</pubDate>
		<dc:creator>Joseph Swanson</dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[HoF]]></category>
		<category><![CDATA[100% Awesome]]></category>
		<category><![CDATA[Awesome]]></category>
		<category><![CDATA[Duemilanove]]></category>
		<category><![CDATA[LED]]></category>
		<category><![CDATA[LEDs]]></category>
		<category><![CDATA[Ping)))]]></category>
		<category><![CDATA[Project]]></category>
		<category><![CDATA[Sensor]]></category>
		<category><![CDATA[Servo]]></category>
		<category><![CDATA[Ultrasonic]]></category>

		<guid isPermaLink="false">http://swantron.com/?p=3401</guid>
		<description><![CDATA[Introducing Open-er-o-matic 3000. OOM3K. My finest project to date. I have my Arduino poking around with a PING))) sensor, a servo, some LEDs, and best of all&#8230;my garage door opener. End result: some Star Trek-ass shit. Check this footage of &#8230; <a href="http://swantron.com/garage-door-hack/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Introducing Open-er-o-matic 3000.  OOM3K.  My finest project to date.  I have my Arduino poking around with a PING))) sensor, a servo, some LEDs, and best of all&#8230;my garage door opener.  End result:  some Star Trek-ass shit.  </p>
<div id="attachment_3402" class="wp-caption aligncenter" style="width: 580px"><a href="http://swantron.com/wp-content/uploads/2011/04/ghetto-fabulus.jpg"><img src="http://swantron.com/wp-content/uploads/2011/04/ghetto-fabulus.jpg" alt="hit the vid" title="ghetto-fabulus" width="570" height="333" class="size-full wp-image-3402" /></a><p class="wp-caption-text">Ronco alert</p></div>
<p>Check this footage of the OOM3K in action.  Here, I had it configured to open the door when the ultrasonic sensor echoes off of something within 8 cm&#8230;</p>
<p>After the bump, of course</p>
<p><span id="more-3401"></span><br />
<iframe title="YouTube video player" width="570" height="458" src="http://www.youtube.com/embed/vNHdoPARyLs" frameborder="0" allowfullscreen></iframe></p>
<p>Not only is this thing awesome, but you can get all sorts of clear looks at my trusty Ronco Showtime rotisserie oven.  Yard bird is a big hit at the old Swanson place.  </p>
<p>There is not much to this code&#8230;I built it on top of the LED binary project code.  Prepare for a bitchin&#8217; snippet.  </p>
<blockquote><p>//Open-er-o-matic 3000</p>
<p>// Joseph Swanson | 2011<br />
// http://swantron.com</p>
<p>// Setup<br />
// LEDs connected to pins 11, 2-5<br />
// Ping))) sensor signal to pin 7<br />
// Servo signal to pin 10<br />
// Ping))) +, servo + to 5V<br />
// Ground the shit out of everything</p>
<p>#include <Servo.h></p>
<p>Servo myservo; </p>
<p>int pos = 0;</p>
<p>// Pin assignment<br />
const int ledPin1 =  11;<br />
const int ledPin2 =  2;<br />
const int ledPin3 =  3;<br />
const int ledPin4 =  4;<br />
const int ledPin5 =  5;<br />
const int pingPin = 7;</p>
<p>// Create variables to store LED states<br />
int ledState1 = LOW;<br />
int ledState2 = LOW;<br />
int ledState3 = LOW;<br />
int ledState4 = LOW;<br />
int ledState5 = LOW;</p>
<p>void setup() {</p>
<p>myservo.attach(10);</p>
<p>//Define pins 1-5 as output<br />
pinMode(ledPin1, OUTPUT);<br />
pinMode(ledPin2, OUTPUT);<br />
pinMode(ledPin3, OUTPUT);<br />
pinMode(ledPin4, OUTPUT);<br />
pinMode(ledPin5, OUTPUT);<br />
}<br />
void loop()<br />
{<br />
 // Reset LEDs levels to low to begin loop<br />
  ledState1 = LOW;<br />
  ledState2 = LOW;<br />
  ledState3 = LOW;<br />
  ledState4 = LOW;<br />
  ledState5 = LOW;<br />
  pos = 0;</p>
<p>// Set duration variable<br />
  long duration, inches, cm;</p>
<p>// Loop section for ping signal pin&#8230;start as output<br />
  pinMode(pingPin, OUTPUT);<br />
  digitalWrite(pingPin, LOW);<br />
  delayMicroseconds(2);<br />
  digitalWrite(pingPin, HIGH);<br />
  delayMicroseconds(5);<br />
  digitalWrite(pingPin, LOW);</p>
<p>// Listen with same pin<br />
  pinMode(pingPin, INPUT);<br />
  duration = pulseIn(pingPin, HIGH);</p>
<p>// Convert time to a distance<br />
  inches = microsecondsToInches(duration);<br />
  cm = microsecondsToCentimeters(duration);</p>
<p>// Configure this for LED sensitivity<br />
  delay(500); </p>
<p>// March through cm values&#8230;output LEDs an servo<br />
  if (cm < 80) {<br />
    ledState1 = HIGH;}</p>
<p>  if (cm < 64) {<br />
    ledState2 = HIGH;}   </p>
<p>  if (cm < 48) {<br />
    ledState3 = HIGH;}</p>
<p>  if (cm < 32) {<br />
    ledState4 = HIGH;}</p>
<p>  if (cm < 16) {<br />
    ledState5 = HIGH; }</p>
<p>  if (cm < 16) {<br />
    pos =( pos + 14 ); }</p>
<p>// fire all LED values...fire servo<br />
    digitalWrite(ledPin1, ledState1);<br />
    digitalWrite(ledPin2, ledState2);<br />
    digitalWrite(ledPin3, ledState3);<br />
    digitalWrite(ledPin4, ledState4);<br />
    digitalWrite(ledPin5, ledState5);<br />
    myservo.write(pos);</p>
<p>  delay(100);    </p>
<p>}<br />
long microsecondsToInches(long microseconds)<br />
{<br />
  // 1130 feet per second...transofrm inches<br />
  return microseconds / 74 / 2;<br />
}<br />
long microsecondsToCentimeters(long microseconds)<br />
{<br />
  // 340 meters per second...transform cm<br />
  return microseconds / 29 / 2;<br />
}
</p></blockquote>
<p>I hope you enjoyed this one.  I had a fun time with this piece of crap.  Plus, it has given me some ideas of how to extend this setup into something more refined.  Spoiler:  more awesome.  </p>
]]></content:encoded>
			<wfw:commentRss>http://swantron.com/garage-door-hack/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>How to Fix a Paper Cutter</title>
		<link>http://swantron.com/how-to-fix-a-paper-cutter/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=how-to-fix-a-paper-cutter</link>
		<comments>http://swantron.com/how-to-fix-a-paper-cutter/#comments</comments>
		<pubDate>Thu, 13 May 2010 00:55:12 +0000</pubDate>
		<dc:creator>Joseph Swanson</dc:creator>
				<category><![CDATA[HoF]]></category>
		<category><![CDATA[how2]]></category>
		<category><![CDATA[lulz]]></category>
		<category><![CDATA[DIY]]></category>
		<category><![CDATA[Fixin Crap]]></category>
		<category><![CDATA[Paper Cutter]]></category>
		<category><![CDATA[Workin' for the Weekend]]></category>

		<guid isPermaLink="false">http://swantron.com/?p=2130</guid>
		<description><![CDATA[I walked into my designated printer room at work today to find the paper cutter broken. What a tragedy, right? I have absolutely no idea why we need a paper cutter, let alone several paper cutters, at our software shop &#8230; <a href="http://swantron.com/how-to-fix-a-paper-cutter/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I walked into my designated printer room at work today to find the paper cutter broken.  What a tragedy, right?  I have absolutely no idea why we need a paper cutter, let alone several paper cutters, at our software shop FWIW.  Regardless, I took it upon myself to remedy the problem.  Sleep tight, thy co-workers&#8230;rest assured that you can again transform 8.5&#8243; x 11&#8243; paper sheets into 8.25&#8243; x 11&#8243; paper sheets, thanks to my pro bono paper cutter fixing skills.  Observe.  </p>
<p><strong>What You&#8217;ll Need:</strong></p>
<p>*Broken Paper Cutter<br />
*Tape (Scotch)</p>
<p><strong>Steps:</strong></p>
<p>1) Locate Point of Failure</p>
<p>You can see that this particular cutter has malfunctioned due to a broken cutting arm.  </p>
<div id="attachment_2131" class="wp-caption aligncenter" style="width: 610px"><a href="http://swantron.com/wp-content/uploads/2010/05/papercutter1.jpg"><img src="http://swantron.com/wp-content/uploads/2010/05/papercutter1.jpg" alt="paper cutter" title="papercutter1" width="600" height="450" class="size-full wp-image-2131" /></a><p class="wp-caption-text">brokos</p></div>
<p>2) Procure a section of tape</p>
<p><em>(If you are unsure with what to do with the tape at this point, don&#8217;t worry&#8230;this will come into play in step 3)</em></p>
<div id="attachment_2132" class="wp-caption aligncenter" style="width: 610px"><a href="http://swantron.com/wp-content/uploads/2010/05/papercutter2.jpg"><img src="http://swantron.com/wp-content/uploads/2010/05/papercutter2.jpg" alt="paper cutter" title="papercutter2" width="600" height="450" class="size-full wp-image-2132" /></a><p class="wp-caption-text">tapos</p></div>
<p>3) Place tape section on the displaced cutting arm</p>
<div id="attachment_2133" class="wp-caption aligncenter" style="width: 610px"><a href="http://swantron.com/wp-content/uploads/2010/05/papercutter3.jpg"><img src="http://swantron.com/wp-content/uploads/2010/05/papercutter3.jpg" alt="fix" title="papercutter3" width="600" height="450" class="size-full wp-image-2133" /></a><p class="wp-caption-text">applyum</p></div>
<p>4) Place displaced cutting arm on cutting arm articulating housing; secure tape</p>
<div id="attachment_2134" class="wp-caption aligncenter" style="width: 610px"><a href="http://swantron.com/wp-content/uploads/2010/05/papercutter4.jpg"><img src="http://swantron.com/wp-content/uploads/2010/05/papercutter4.jpg" alt="paper cutter" title="papercutter4" width="600" height="450" class="size-full wp-image-2134" /></a><p class="wp-caption-text">fixdos</p></div>
<p>That&#8217;s that.  Leave it in the printer room for the next idiot who actually uses a paper cutter&#8230;I bet bewilderment will ensue</p>
]]></content:encoded>
			<wfw:commentRss>http://swantron.com/how-to-fix-a-paper-cutter/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>How to Make Breakfast Burgers</title>
		<link>http://swantron.com/how-to-make-breakfast-burgers/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=how-to-make-breakfast-burgers</link>
		<comments>http://swantron.com/how-to-make-breakfast-burgers/#comments</comments>
		<pubDate>Wed, 28 Apr 2010 14:45:34 +0000</pubDate>
		<dc:creator>Joseph Swanson</dc:creator>
				<category><![CDATA[HoF]]></category>
		<category><![CDATA[how2]]></category>
		<category><![CDATA[lulz]]></category>
		<category><![CDATA[Breakfast Burgers]]></category>
		<category><![CDATA[delicious]]></category>
		<category><![CDATA[Hamburger Penis]]></category>
		<category><![CDATA[NOM NOM NOM]]></category>
		<category><![CDATA[Retarded]]></category>
		<category><![CDATA[Yum-o]]></category>

		<guid isPermaLink="false">http://swantron.com/?p=2060</guid>
		<description><![CDATA[Trying to spice things up around the breakfast table? Here is something new and interesting: breakfast burgers! Boy Howdy! Not only are these breakfast burgers nutricious and delicious, they are uber easy to make. Follow these easy steps. 1) Make &#8230; <a href="http://swantron.com/how-to-make-breakfast-burgers/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Trying to spice things up around the breakfast table?  Here is something new and interesting:  breakfast burgers!  Boy Howdy!</p>
<div id="attachment_2061" class="wp-caption aligncenter" style="width: 749px"><a href="http://swantron.com/wp-content/uploads/2010/04/breakfast-burger.jpg"><img src="http://swantron.com/wp-content/uploads/2010/04/breakfast-burger.jpg" alt="breakfast burger" title="breakfast-burger" width="739" height="599" class="size-full wp-image-2061" /></a><p class="wp-caption-text">too many noms to count.  there are countlessly many noms here.  </p></div>
<p>Not only are these breakfast burgers nutricious and delicious, they are uber easy to make.  Follow these easy steps. </p>
<p>1) Make two too many bacon turkey burgers for dinner<br />
2) Place said bonus burgers in a Rubbermaid container (here, I went for a 1L with rounded square edges)<br />
3) Bring to work<br />
4) Open container<br />
5) Eat breakfast burgers at work, in the morning</p>
<p>***Note:  breakfast burgers are best when enjoyed with multi-vitamin and coffee***</p>
]]></content:encoded>
			<wfw:commentRss>http://swantron.com/how-to-make-breakfast-burgers/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Gangsta Bloggin</title>
		<link>http://swantron.com/gangsta-bloggin/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=gangsta-bloggin</link>
		<comments>http://swantron.com/gangsta-bloggin/#comments</comments>
		<pubDate>Sat, 17 Apr 2010 00:43:32 +0000</pubDate>
		<dc:creator>Joseph Swanson</dc:creator>
				<category><![CDATA[Gnrl Bckt]]></category>
		<category><![CDATA[HoF]]></category>
		<category><![CDATA[20 inch rims]]></category>
		<category><![CDATA[406]]></category>
		<category><![CDATA[Blogging]]></category>
		<category><![CDATA[FTW]]></category>
		<category><![CDATA[Gangsta]]></category>
		<category><![CDATA[Ruger]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://swantron.com/?p=1985</guid>
		<description><![CDATA[MY AMBITIONZ AZ A BLOGGAH]]></description>
			<content:encoded><![CDATA[<div id="attachment_1986" class="wp-caption aligncenter" style="width: 810px"><a href="http://swantron.com/wp-content/uploads/2010/04/blogging.jpg"><img src="http://swantron.com/wp-content/uploads/2010/04/blogging.jpg" alt="boo yeah" title="blogging" width="800" height="600" class="size-full wp-image-1986" /></a><p class="wp-caption-text">Represent.</p></div>
<p>MY AMBITIONZ AZ A BLOGGAH</p>
]]></content:encoded>
			<wfw:commentRss>http://swantron.com/gangsta-bloggin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

