<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3873299861723550653</id><updated>2012-01-26T11:16:42.782-08:00</updated><title type='text'>My Projects</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://pscmpf.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3873299861723550653/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://pscmpf.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>pscmpf</name><uri>http://www.blogger.com/profile/17183919000008793560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>33</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3873299861723550653.post-7285439783253188371</id><published>2011-10-30T15:18:00.000-07:00</published><updated>2011-10-31T13:01:13.351-07:00</updated><title type='text'>Recent LCD Discovery</title><content type='html'>&lt;div style="text-align: left;"&gt;I recently visited an &lt;a href="http://www.abcelectronicsmn.com/"&gt;electronics surplus store&lt;/a&gt; while working in Minneapolis. This place was packed with electronic components. Bin after bin of switches, connectors, components and everything else you can imagine. I came across a bin full of LCDs that were not identified. $4.50 later, I was the proud owner of an unidentified LCD display. I knew it was new because a thin piece of protective plastic was still stuck to the front of the LCD display. :)&lt;br /&gt;&lt;br /&gt;After getting to my hotel room that night, I started doing a little research online.  I was disappointed to find very little information about the display - this is what I knew:&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;1.  Manufacturer:  &lt;a href="http://www.optrex.com/"&gt;Optrex&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;2.  ID:  PWB50244A-CEM printed on the display&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;3.  Pin header has 15 pins&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;The only thing I could find was &lt;a href="http://www.optrex.com/SiteImages/LitCentral/Dmcman_full.pdf"&gt;this data sheet&lt;/a&gt;, and it only identified a "DMC 50244".  It also showed the display having a 4x20 display layout.  In the data sheet, I found a pinout listing and decided to take a chance and see if it worked.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-ImT9-sv_uL8/Tq7yQV1G_JI/AAAAAAAAAUw/DCFdS_Sf6L0/s1600/Pinout.GIF" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="293" src="http://4.bp.blogspot.com/-ImT9-sv_uL8/Tq7yQV1G_JI/AAAAAAAAAUw/DCFdS_Sf6L0/s320/Pinout.GIF" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span class="Apple-style-span"&gt;&amp;nbsp;Here's the implementation using an &lt;a href="http://www.arduino.cc/"&gt;Arduino &lt;/a&gt;&lt;a href="http://arduino.cc/en/Main/ArduinoBoardDuemilanove"&gt;Duemilanove&lt;/a&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-MttVb2OFScU/Tq3aT2P91gI/AAAAAAAAAUs/KalmBglIBUI/s1600/IMG_2708.JPG" style="text-align: left;"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5669427540444173826" src="http://4.bp.blogspot.com/-MttVb2OFScU/Tq3aT2P91gI/AAAAAAAAAUs/KalmBglIBUI/s400/IMG_2708.JPG" style="cursor: pointer; display: block; height: 300px; margin-bottom: 10px; margin-left: auto; margin-right: auto; margin-top: 0px; text-align: center; width: 400px;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span"&gt;Here is how I wired the display to the Arduino.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;Display   Arduino&lt;br /&gt;1         GND&lt;br /&gt;2         5V&lt;br /&gt;3         Variable Resistor Sweeper (10K)&lt;br /&gt;4         12&lt;br /&gt;5         GND&lt;br /&gt;6         11&lt;br /&gt;7         NC&lt;br /&gt;8         NC&lt;br /&gt;9         NC&lt;br /&gt;10        NC&lt;br /&gt;11        5&lt;br /&gt;12        4&lt;br /&gt;13        3&lt;br /&gt;14        2&lt;br /&gt;15        NC&lt;br /&gt;&lt;/pre&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span"&gt;I had trouble at first, nothing was showing up and I decided to look closer at the Vee pin specifications.  I found very little from Optrex but did discover I needed to use a 10k variable resistor and dial in a proper contrast setting.  This worked and the display came to life!&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;a href="http://1.bp.blogspot.com/-hrg3qd2LIPk/Tq3UqVMI3mI/AAAAAAAAAUc/c65gff14kSc/s1600/IMG_2710.JPG"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5669421329636974178" src="http://1.bp.blogspot.com/-hrg3qd2LIPk/Tq3UqVMI3mI/AAAAAAAAAUc/c65gff14kSc/s400/IMG_2710.JPG" style="cursor: pointer; display: block; height: 300px; margin-bottom: 10px; margin-left: auto; margin-right: auto; margin-top: 0px; text-align: center; width: 400px;" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;Here is the code I used to run this program.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;pre&gt;#include &amp;lt;liquidcrystal.h&amp;gt;&lt;br /&gt;&lt;br /&gt;LiquidCrystal lcd(12, 11, 5, 4, 3, 2);&lt;br /&gt;&lt;br /&gt;void setup() &lt;br /&gt;{&lt;br /&gt;  lcd.begin(20, 4);&lt;br /&gt;  lcd.print("Optex PWB-50244-A");&lt;br /&gt;  lcd.setCursor(32,0);&lt;br /&gt;  lcd.print("LCD Display Example");&lt;br /&gt;  lcd.setCursor(0,1);&lt;br /&gt;  lcd.print("Arduino Duemilanove");&lt;br /&gt;  lcd.setCursor(32,1);&lt;br /&gt;  lcd.print("Mark Was Here!");&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void loop() &lt;br /&gt;{&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;You'll notice I use "lcd.setCursor(32,0)" to position the cursor on the first column in the second line.  That's because the LCD controller treats this display as a 2 line display (as far as I can tell) and requires you to treat the first column of the second line as the 32nd column of the first line.  Odd.  But it works.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;I have not been able to figure out what pin 15 is for - I did try connecting it through a 1K resistor to both Vcc and Gnd.  I was hoping there may be a back-light...but I discovered nothing.  A little tracing on the board didn't seem to illuminate it's purpose either.  Oh well - maybe one of you will know the answer! :)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;Good luck finding unmarked parts and making them come to life!  Let me know how it goes for you!&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3873299861723550653-7285439783253188371?l=pscmpf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pscmpf.blogspot.com/feeds/7285439783253188371/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3873299861723550653&amp;postID=7285439783253188371' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3873299861723550653/posts/default/7285439783253188371'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3873299861723550653/posts/default/7285439783253188371'/><link rel='alternate' type='text/html' href='http://pscmpf.blogspot.com/2011/10/recent-lcd-discovery.html' title='Recent LCD Discovery'/><author><name>pscmpf</name><uri>http://www.blogger.com/profile/17183919000008793560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-ImT9-sv_uL8/Tq7yQV1G_JI/AAAAAAAAAUw/DCFdS_Sf6L0/s72-c/Pinout.GIF' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3873299861723550653.post-8637666276385280506</id><published>2011-06-04T08:22:00.000-07:00</published><updated>2011-06-04T08:56:07.905-07:00</updated><title type='text'>Transmitting IR Data</title><content type='html'>Some time ago, I wanted to see if I could control my &lt;a href="http://pscmpf.blogspot.com/2008/12/entertainment-cabinet.html"&gt;Westinghouse TV&lt;/a&gt; using an &lt;a href="http://www.arduino.cc/"&gt;Arduino&lt;/a&gt; micro-controller platform.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;When I started, I didn't know what communication protocol was being used by my TV, so I used the same approach described earlier in &lt;a href="http://pscmpf.blogspot.com/2009/12/decoding-ir-remote-control.html"&gt;this post&lt;/a&gt;, to look at the data being transmitted from my remote control.  After analyzing the output, I matched it's protocol signature to the already&lt;a href="http://picprojects.org.uk/projects/sirc/sonysirc.pdf"&gt; well defined&lt;/a&gt; and commonly used Sony SIRC standard.  &lt;a href="http://www.sbprojects.com/knowledge/ir/sirc.php"&gt;This website&lt;/a&gt; was extremely helpful in doing that analysis.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I then began the process of implementing the protocol in the Arduino language.  I broke the protocol definition into three simple transmission parts:&lt;/div&gt;&lt;div&gt; - sending the header&lt;/div&gt;&lt;div&gt; - sending a 0 bit&lt;/div&gt;&lt;div&gt; - sending a 1 bit&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here's some code to help you get started - a method for each part of the protocol:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  &gt;//send message header&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  &gt;void sendHeader()&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  &gt;{&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  &gt;  int i = 0;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  &gt;  while(i &amp;lt; T_HEADER)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  &gt;  {&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  &gt;    digitalWrite(LED_PIN, HIGH);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  &gt;    delayMicroseconds(T_CARRIER);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  &gt;    digitalWrite(LED_PIN, LOW);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  &gt;    delayMicroseconds(T_CARRIER);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  &gt;    i+=(2 * T_CARRIER);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  &gt;  }&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  &gt;  delayMicroseconds(T_SHORT);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  &gt;}&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  &gt;//send an On Bit&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  &gt;void sendOneBit()&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  &gt;{&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  &gt;  int i = 0;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  &gt;  while(i &amp;lt; T_LONG)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  &gt;  {&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  &gt;    digitalWrite(LED_PIN, HIGH);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  &gt;    delayMicroseconds(T_CARRIER);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  &gt;    digitalWrite(LED_PIN, LOW);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  &gt;    delayMicroseconds(T_CARRIER);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  &gt;    i+=(2 * T_CARRIER);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  &gt;  }&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  &gt;  delayMicroseconds(T_SHORT);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  &gt;}&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  &gt;//send an Off Bit&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  &gt;void sendZeroBit()&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  &gt;{&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  &gt;  int i = 0;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  &gt;  while(i &amp;lt; T_SHORT)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  &gt;  {&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  &gt;    digitalWrite(LED_PIN, HIGH);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  &gt;    delayMicroseconds(T_CARRIER);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  &gt;    digitalWrite(LED_PIN, LOW);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  &gt;    delayMicroseconds(T_CARRIER);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  &gt;    i+=(2 * T_CARRIER);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  &gt;  }&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  &gt;  delayMicroseconds(T_SHORT);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  &gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I then assembled those into the proper sequence to produce the IR blast required to control the TV.  Here is a simple explanation of the sequence used to control the TV:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1.  Send header&lt;/div&gt;&lt;div&gt;2.  Send command (this is info like raise the volume, channel up or mute...etc.)&lt;/div&gt;&lt;div&gt;3.  Send device ID (this is like TV, DVD, Tuner...etc.)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This needs to be repeated a minimum of 3 times for the receiver to verify that it indeed is a correct message being sent.  Here is a brief video showing a simple looping program that sends commands to my TV.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;iframe width="425" height="349" src="http://www.youtube.com/embed/5C1tc0AtLPQ" frameborder="0" allowfullscreen=""&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;More to come...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3873299861723550653-8637666276385280506?l=pscmpf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pscmpf.blogspot.com/feeds/8637666276385280506/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3873299861723550653&amp;postID=8637666276385280506' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3873299861723550653/posts/default/8637666276385280506'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3873299861723550653/posts/default/8637666276385280506'/><link rel='alternate' type='text/html' href='http://pscmpf.blogspot.com/2011/06/transmitting-ir-data.html' title='Transmitting IR Data'/><author><name>pscmpf</name><uri>http://www.blogger.com/profile/17183919000008793560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/5C1tc0AtLPQ/default.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3873299861723550653.post-2871027281976608914</id><published>2010-07-30T10:21:00.001-07:00</published><updated>2010-07-30T14:58:52.884-07:00</updated><title type='text'>Arduino Stepper Motor Control</title><content type='html'>&lt;span class="Apple-style-span"   style="font-family:arial;font-size:85%;"&gt;&lt;span class="Apple-style-span"&gt;I've had a number of &lt;a href="http://en.wikipedia.org/wiki/Stepper_motor"&gt;stepper motors&lt;/a&gt; sitting in my shop for years.  If we really want to do anything fun with our &lt;a href="http://www.arduino.cc/"&gt;Arduino&lt;/a&gt;, we are eventually going to have to run a stepper motor.  So, here we go!&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:arial;font-size:85%;"&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:arial;font-size:85%;"&gt;&lt;span class="Apple-style-span"&gt;A little background on stepper motors and how they are different compared to a typical electric motor.  Unlike a conventional electric motor that spins when power is applied, stepper motors incrementally spin (step), allowing control over exactly how far the motor's shaft spins, even to the degree.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:arial;font-size:85%;"&gt;&lt;span class="Apple-style-span"&gt;Stepper motors have a series of electromagnets that encircle an armature containing a magnet.  Think of a compass with a shaft attached to the center of the needle.  That needle becomes like the armature of the motor.  To spin the armature, electromagnets are turned on and off around the outside of the compass, causing the needle to "step" (or point) from one electromagnet to the next.  This &lt;a href="http://en.wikipedia.org/wiki/File:StepperMotor.gif"&gt;picture &lt;/a&gt;may help illustrate the movement within a stepper motor.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:arial;font-size:85%;"&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:arial;font-size:85%;"&gt;&lt;span class="Apple-style-span"&gt;There are two common types of stepper motors:  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"   style="font-family:arial;font-size:85%;"&gt;Bipolar and&lt;/span&gt;&lt;span class="Apple-style-span"   style="font-family:arial;font-size:85%;"&gt; Unipolar  See this &lt;a href="http://mechatronics.mech.northwestern.edu/design_ref/actuators/stepper_intro.html"&gt;article &lt;/a&gt;to help explain the differences.  I've chosen to use a bipolar stepper motor in this project.  It can be somewhat more difficult to use because of the need to reverse polarity on the stepper motor electromagnets to provide the proper stepping.  Here's a couple pictures of the motor I used:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_IrQ3pWfzbLQ/TFNDwNyG6II/AAAAAAAAASQ/8efqO7lQQ2g/s1600/IMG_9059.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="http://4.bp.blogspot.com/_IrQ3pWfzbLQ/TFNDwNyG6II/AAAAAAAAASQ/8efqO7lQQ2g/s320/IMG_9059.JPG" alt="" id="BLOGGER_PHOTO_ID_5499814065562118274" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_IrQ3pWfzbLQ/TFNEPdVR9VI/AAAAAAAAASg/4f3RgP3Q_WM/s1600/IMG_9060.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 200px; height: 68px;" src="http://4.bp.blogspot.com/_IrQ3pWfzbLQ/TFNEPdVR9VI/AAAAAAAAASg/4f3RgP3Q_WM/s200/IMG_9060.JPG" alt="" id="BLOGGER_PHOTO_ID_5499814602312119634" border="0" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;span class="Apple-style-span"   style="font-family:arial;font-size:85%;"&gt;A bipolar stepper motor has two electromagnetic winding sets.  Because of this, it's necessary to use some circuit to reverse the polarity of the winding.  A common way to do this is through the use of an &lt;a href="http://en.wikipedia.org/wiki/H-bridge"&gt;H-Bridge circuit&lt;/a&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:arial;font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:arial;font-size:85%;"&gt;I used this circuit to create my H-Bridge controller:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:arial;font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt; &lt;div&gt;&lt;span style="font-size:85%;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_IrQ3pWfzbLQ/TFNBeJVXhQI/AAAAAAAAARo/uhEiyYCGgZA/s1600/HBridge.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 298px; height: 250px;" src="http://1.bp.blogspot.com/_IrQ3pWfzbLQ/TFNBeJVXhQI/AAAAAAAAARo/uhEiyYCGgZA/s400/HBridge.JPG" alt="" id="BLOGGER_PHOTO_ID_5499811556106929410" border="0" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt; &lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:arial;font-size:85%;"&gt;I implemented the circuit on a perf board with a small 6 pin 90 degree header.  I also added some LEDs to the circuit, just because everyone likes blinking lights, and I'm no exceptions.  After all, that's what got me into this as a child ... blinking lights.  Here's a picture of the H-Bridge:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_IrQ3pWfzbLQ/TFNCn_NIFKI/AAAAAAAAAR4/2c8dznZNVws/s1600/IMG_9055.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_IrQ3pWfzbLQ/TFNCn_NIFKI/AAAAAAAAAR4/2c8dznZNVws/s400/IMG_9055.JPG" alt="" id="BLOGGER_PHOTO_ID_5499812824698328226" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_IrQ3pWfzbLQ/TFNCoJGU42I/AAAAAAAAASA/G_SUY4QPysw/s1600/IMG_9056.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_IrQ3pWfzbLQ/TFNCoJGU42I/AAAAAAAAASA/G_SUY4QPysw/s400/IMG_9056.JPG" alt="" id="BLOGGER_PHOTO_ID_5499812827354162018" border="0" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;span class="Apple-style-span"   style="font-family:arial;font-size:85%;"&gt;I used the following diagram to pull the whole circuit together.  There is an &lt;a href="http://www.makingthings.com/teleo/teleo/cookbook/ir_interruptor.htm"&gt;Inferred LED Interrupt sensor&lt;/a&gt; in this diagram.  I'll talk about that in a subsequent post, so disregard for now.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_IrQ3pWfzbLQ/TFNHvd8iUkI/AAAAAAAAASo/q3Ynhwgb06k/s1600/Stepper+Circuit.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 357px;" src="http://1.bp.blogspot.com/_IrQ3pWfzbLQ/TFNHvd8iUkI/AAAAAAAAASo/q3Ynhwgb06k/s400/Stepper+Circuit.JPG" alt="" id="BLOGGER_PHOTO_ID_5499818450767467074" border="0" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;span class="Apple-style-span"   style="font-family:arial;font-size:85%;"&gt;I loaded the following very simple circuit onto the Arduino.  It sets the speed of the motor to 10 RPM.  Also, it turns the motor one revolution and then waits 2 seconds before looping.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;#include &lt;stepper.h&gt;&lt;/stepper.h&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;//create an instance of a stepper motor object&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Stepper stepper(96, 8, 9, 10, 11);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;void setup()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  // set the speed of the motor to 10 RPMs&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  stepper.setSpeed(10);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;void loop()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  stepper.step(96);  //on revolution&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  delay(2000);  //wait 2 seconds&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Lastly, here's a video to show this program in action with the whole circuit:&lt;br /&gt;&lt;br /&gt;&lt;object height="385" width="480"&gt;&lt;param name="movie" value="http://www.youtube.com/v/64sNnSjfrSs&amp;amp;hl=en_US&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/64sNnSjfrSs&amp;amp;hl=en_US&amp;amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="385" width="480"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:arial;font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:arial;font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:arial;font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3873299861723550653-2871027281976608914?l=pscmpf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pscmpf.blogspot.com/feeds/2871027281976608914/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3873299861723550653&amp;postID=2871027281976608914' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3873299861723550653/posts/default/2871027281976608914'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3873299861723550653/posts/default/2871027281976608914'/><link rel='alternate' type='text/html' href='http://pscmpf.blogspot.com/2010/07/arduino-stepper-motor-control.html' title='Arduino Stepper Motor Control'/><author><name>pscmpf</name><uri>http://www.blogger.com/profile/17183919000008793560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_IrQ3pWfzbLQ/TFNDwNyG6II/AAAAAAAAASQ/8efqO7lQQ2g/s72-c/IMG_9059.JPG' height='72' width='72'/><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3873299861723550653.post-4391574381388032175</id><published>2010-03-21T15:04:00.000-07:00</published><updated>2010-03-21T15:07:07.269-07:00</updated><title type='text'>Platinum Arts Sandbox Tutorial 8</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: 'trebuchet ms'; "&gt;Hi, this is Paul. Mark is my dad. I'm making a series of Platinum Arts Sandbox Tutorials and posting them on here. Platinum Arts Sandbox is a 3D game creator and world builder. It's quite easy to use. These tutorials will only need knowledge such as movement (arrow keys for movement and mouse for aiming), selecting (click and drag&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; or&lt;/span&gt; click and right click for other corner), and opening a new map (E + Esc + New Map). Besides that everything will be taught to you. Note that some of these entries may require info presented in other tutorials.&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'trebuchet ms'; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'trebuchet ms'; "&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;How To Import a Mapmodel&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1.Select where you would like to import your mapmodel at&lt;/div&gt;&lt;div&gt;2.Open the Main Menu (Esc)&lt;/div&gt;&lt;div&gt;3.Choose “New Mapmodel”&lt;/div&gt;&lt;div&gt;4.Choose the mapmodel of your choice&lt;/div&gt;&lt;div&gt;5.You can copy (Ctrl + C) and paste (Ctrl + V) as many as you want&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3873299861723550653-4391574381388032175?l=pscmpf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pscmpf.blogspot.com/feeds/4391574381388032175/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3873299861723550653&amp;postID=4391574381388032175' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3873299861723550653/posts/default/4391574381388032175'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3873299861723550653/posts/default/4391574381388032175'/><link rel='alternate' type='text/html' href='http://pscmpf.blogspot.com/2010/03/platinum-arts-sandbox-tutorial-8_21.html' title='Platinum Arts Sandbox Tutorial 8'/><author><name>pscmpf</name><uri>http://www.blogger.com/profile/17183919000008793560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3873299861723550653.post-4818150417137972749</id><published>2010-03-21T13:39:00.000-07:00</published><updated>2010-03-21T15:01:39.671-07:00</updated><title type='text'>Platinum Arts Sandbox Tutorial 7</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span"  style=" ;font-family:'trebuchet ms';"&gt;Hi, this is Paul. Mark is my dad. I'm making a series of Platinum Arts Sandbox Tutorials and posting them on here. Platinum Arts Sandbox is a 3D game creator and world builder. It's quite easy to use. These tutorials will only need knowledge such as movement (arrow keys for movement and mouse for aiming), selecting (click and drag&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; or&lt;/span&gt; click and right click for other corner), and opening a new map (E + Esc + New Map). Besides that everything will be taught to you. Note that some of these entries may require info presented in other tutorials.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" ;font-family:'trebuchet ms';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" ;font-family:'trebuchet ms';"&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;How To Make Hills/Valleys&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1.Select the area you would like to make into a hill or valley&lt;/div&gt;&lt;div&gt;2.Press the H key&lt;/div&gt;&lt;div&gt;3.Scroll to make hills or valleys (scrolling away from you makes valleys and scrolling towards you makes hills)&lt;/div&gt;&lt;div&gt;4.Fill them will water to make a lake and fill them with lava to make a lava pit&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3873299861723550653-4818150417137972749?l=pscmpf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pscmpf.blogspot.com/feeds/4818150417137972749/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3873299861723550653&amp;postID=4818150417137972749' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3873299861723550653/posts/default/4818150417137972749'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3873299861723550653/posts/default/4818150417137972749'/><link rel='alternate' type='text/html' href='http://pscmpf.blogspot.com/2010/03/platinum-arts-sandbox-tutorial-7.html' title='Platinum Arts Sandbox Tutorial 7'/><author><name>pscmpf</name><uri>http://www.blogger.com/profile/17183919000008793560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3873299861723550653.post-2994150406718934925</id><published>2010-03-21T13:38:00.000-07:00</published><updated>2010-03-21T13:39:50.827-07:00</updated><title type='text'>Platinum Arts Sandbox Tutorial 6</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: 'trebuchet ms'; "&gt;Hi, this is Paul. Mark is my dad. I'm making a series of Platinum Arts Sandbox Tutorials and posting them on here. Platinum Arts Sandbox is a 3D game creator and world builder. It's quite easy to use. These tutorials will only need knowledge such as movement (arrow keys for movement and mouse for aiming), selecting (click and drag&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; or&lt;/span&gt; click and right click for other corner), and opening a new map (E + Esc + New Map). Besides that everything will be taught to you. Note that some of these entries may require info presented in other tutorials.&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'trebuchet ms'; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'trebuchet ms'; "&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;How To Make a Basic Water/Lava Pit&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1.Select the area that you want the water pit to cover (first I'll show you how to make a water pit, because lava and water pits are very similar)&lt;/div&gt;&lt;div&gt;2.Scroll away from you until you get the depth you would like&lt;/div&gt;&lt;div&gt;3.Select one whole side of the pit&lt;/div&gt;&lt;div&gt;4.Right-click on the opposite side of the pit once your selecting square appears&lt;/div&gt;&lt;div&gt;5.Open the Materials window (F3)&lt;/div&gt;&lt;div&gt;6.Switch to the “Materials” tab&lt;/div&gt;&lt;div&gt;7.Click “Water”&lt;/div&gt;&lt;div&gt;8.Switch to player mode and go swimming in it&lt;/div&gt;&lt;div&gt;9.To make a lava pit do the exact same thing, except choose “Lava” at the Materials screen instead of “Water” (if you fall in a lava pit you die)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3873299861723550653-2994150406718934925?l=pscmpf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pscmpf.blogspot.com/feeds/2994150406718934925/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3873299861723550653&amp;postID=2994150406718934925' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3873299861723550653/posts/default/2994150406718934925'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3873299861723550653/posts/default/2994150406718934925'/><link rel='alternate' type='text/html' href='http://pscmpf.blogspot.com/2010/03/platinum-arts-sandbox-tutorial-6.html' title='Platinum Arts Sandbox Tutorial 6'/><author><name>pscmpf</name><uri>http://www.blogger.com/profile/17183919000008793560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3873299861723550653.post-2174728521979254258</id><published>2010-03-21T13:37:00.002-07:00</published><updated>2010-03-21T13:38:41.623-07:00</updated><title type='text'>Platinum Arts Sandbox Tutorial 5</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: 'trebuchet ms'; "&gt;Hi, this is Paul. Mark is my dad. I'm making a series of Platinum Arts Sandbox Tutorials and posting them on here. Platinum Arts Sandbox is a 3D game creator and world builder. It's quite easy to use. These tutorials will only need knowledge such as movement (arrow keys for movement and mouse for aiming), selecting (click and drag&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; or&lt;/span&gt; click and right click for other corner), and opening a new map (E + Esc + New Map). Besides that everything will be taught to you. Note that some of these entries may require info presented in other tutorials.&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'trebuchet ms'; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'trebuchet ms'; "&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;How To Make 3D Grass&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1.Select the entire map area&lt;/div&gt;&lt;div&gt;2.Open the Materials window (F2)&lt;/div&gt;&lt;div&gt;3.Choose the one with these coordinates: 3rd Page, 2nd Row, 5th From the Left&lt;/div&gt;&lt;div&gt;4.Press the question mark key&lt;/div&gt;&lt;div&gt;5.Type “grass 1”&lt;/div&gt;&lt;div&gt;6.You should see 3D grass&lt;/div&gt;&lt;div&gt;7.Press the question mark key again&lt;/div&gt;&lt;div&gt;8.Type “grass 0”&lt;/div&gt;&lt;div&gt;9.The 3D grass should have disappeared (you can turn grass on and off in player mode or edit mode)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3873299861723550653-2174728521979254258?l=pscmpf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pscmpf.blogspot.com/feeds/2174728521979254258/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3873299861723550653&amp;postID=2174728521979254258' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3873299861723550653/posts/default/2174728521979254258'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3873299861723550653/posts/default/2174728521979254258'/><link rel='alternate' type='text/html' href='http://pscmpf.blogspot.com/2010/03/platinum-arts-sandbox-tutorial-5.html' title='Platinum Arts Sandbox Tutorial 5'/><author><name>pscmpf</name><uri>http://www.blogger.com/profile/17183919000008793560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3873299861723550653.post-8214166035902809188</id><published>2010-03-21T13:37:00.001-07:00</published><updated>2010-03-21T13:37:51.331-07:00</updated><title type='text'>Platinum Arts Sandbox Tutorial 4</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: 'trebuchet ms'; "&gt;Hi, this is Paul. Mark is my dad. I'm making a series of Platinum Arts Sandbox Tutorials and posting them on here. Platinum Arts Sandbox is a 3D game creator and world builder. It's quite easy to use. These tutorials will only need knowledge such as movement (arrow keys for movement and mouse for aiming), selecting (click and drag&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; or&lt;/span&gt; click and right click for other corner), and opening a new map (E + Esc + New Map). Besides that everything will be taught to you. Note that some of these entries may require info presented in other tutorials.&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'trebuchet ms'; "&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;How To Change Textures&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1.Select the area you would like to change the texture of&lt;/div&gt;&lt;div&gt;2.Open the Texture Window (F2)&lt;/div&gt;&lt;div&gt;3.Choose the texture of your choice&lt;/div&gt;&lt;div&gt;4.Press F2 to close the window&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3873299861723550653-8214166035902809188?l=pscmpf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pscmpf.blogspot.com/feeds/8214166035902809188/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3873299861723550653&amp;postID=8214166035902809188' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3873299861723550653/posts/default/8214166035902809188'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3873299861723550653/posts/default/8214166035902809188'/><link rel='alternate' type='text/html' href='http://pscmpf.blogspot.com/2010/03/platinum-arts-sandbox-tutorial-4.html' title='Platinum Arts Sandbox Tutorial 4'/><author><name>pscmpf</name><uri>http://www.blogger.com/profile/17183919000008793560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3873299861723550653.post-5348956009858265798</id><published>2010-03-21T13:34:00.000-07:00</published><updated>2010-03-21T13:37:02.710-07:00</updated><title type='text'>Platinum Arts Sandbox Tutorial 3</title><content type='html'>&lt;span class="Apple-style-span"  style=" ;font-family:'trebuchet ms';"&gt;Hi, this is Paul. Mark is my dad. I'm making a series of Platinum Arts Sandbox Tutorials and posting them on here. Platinum Arts Sandbox is a 3D game creator and world builder. It's quite easy to use. These tutorials will only need knowledge such as movement (arrow keys for movement and mouse for aiming), selecting (click and drag&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; or&lt;/span&gt; click and right click for other corner), and opening a new map (E + Esc + New Map). Besides that everything will be taught to you. Note that some of these entries may require info presented in other tutorials.&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" ;font-family:'trebuchet ms';"&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;How To Make a Simple Creature Game&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1.Create the creature(s) of your choice (this does not work with butterflies or dragons)&lt;/div&gt;&lt;div&gt;2.Create a long, river-like lava pit with the creature(s) on one side (not on the end)&lt;/div&gt;&lt;div&gt;3.Make sure the lava pit is skinny enough that you can jump over it in player mode&lt;/div&gt;&lt;div&gt;4.In player mode, get near the creatures so they start chasing you&lt;/div&gt;&lt;div&gt;5.Jump over the lava pit when they are chasing you&lt;/div&gt;&lt;div&gt;6.They will attempt to follow you&lt;/div&gt;&lt;div&gt;7.They should fall into the lava pit&lt;/div&gt;&lt;div&gt;8.It will either say you won or you cleared the game&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3873299861723550653-5348956009858265798?l=pscmpf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pscmpf.blogspot.com/feeds/5348956009858265798/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3873299861723550653&amp;postID=5348956009858265798' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3873299861723550653/posts/default/5348956009858265798'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3873299861723550653/posts/default/5348956009858265798'/><link rel='alternate' type='text/html' href='http://pscmpf.blogspot.com/2010/03/hi-this-is-paul.html' title='Platinum Arts Sandbox Tutorial 3'/><author><name>pscmpf</name><uri>http://www.blogger.com/profile/17183919000008793560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3873299861723550653.post-2875785666021787378</id><published>2010-03-21T13:29:00.000-07:00</published><updated>2010-03-21T13:34:05.471-07:00</updated><title type='text'>Platinum Arts Sandbox Tutorial 2</title><content type='html'>&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;Hi, this is Paul. Mark is my dad. I'm making a series of Platinum Arts Sandbox Tutorials and posting them on here. Platinum Arts Sandbox is a 3D game creator and world builder. It's quite easy to use. These tutorials will only need knowledge such as movement (arrow keys for movement and mouse for aiming), selecting (click and drag&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; or&lt;/span&gt; click and right click for other corner), and opening a new map (E + Esc + New Map). Besides that everything will be taught to you. Note that some of these entries may require info presented in other tutorials.&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;How To Make Creatures &lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1.Select a square you would like your creature to be located in&lt;/div&gt;&lt;div&gt;2.Open the Main Menu (Esc)&lt;/div&gt;&lt;div&gt;3.Choose “Editing GUI”&lt;/div&gt;&lt;div&gt;4.Switch to the “Ents” tab&lt;/div&gt;&lt;div&gt;5.Choose “New creature Entity” from the list&lt;/div&gt;&lt;div&gt;6.Press the period key&lt;/div&gt;&lt;div&gt;7.Backspace until you get to the second number (it should be a zero)&lt;/div&gt;&lt;div&gt;8.Replace this number accordingly to the chart below&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;0 - Butterfly&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;1 - Dragon&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;2 – Golem (Rock Monster)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;3 - Bear&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;4 - Rat&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;5 - Snake&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;6 – Wolf&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;9.Press Enter&lt;/div&gt;&lt;div&gt;10.Switch to player mode and try it out (all creatures will start chasing you if you get near them)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3873299861723550653-2875785666021787378?l=pscmpf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pscmpf.blogspot.com/feeds/2875785666021787378/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3873299861723550653&amp;postID=2875785666021787378' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3873299861723550653/posts/default/2875785666021787378'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3873299861723550653/posts/default/2875785666021787378'/><link rel='alternate' type='text/html' href='http://pscmpf.blogspot.com/2010/03/platinum-arts-sandbox-tutorial-2.html' title='Platinum Arts Sandbox Tutorial 2'/><author><name>pscmpf</name><uri>http://www.blogger.com/profile/17183919000008793560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3873299861723550653.post-1066701970158489546</id><published>2010-03-21T13:14:00.000-07:00</published><updated>2010-03-21T15:10:05.409-07:00</updated><title type='text'>Platinum Arts Sandbox Tutorial 1</title><content type='html'>&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;Hi, this is Paul.  Mark is my dad.  I'm making a series of Platinum Arts Sandbox Tutorials and posting them on here.  &lt;a href="http://platinum-arts-sandbox.en.softonic.com/"&gt;Platinum Arts Sandbox&lt;/a&gt; is a 3D game creator and world builder.  It's quite easy to use.  These tutorials will only need knowledge such as movement (arrow keys for movement and mouse for aiming), selecting (click and drag&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; or&lt;/span&gt; click and right click for other corner), and opening a new map (E + Esc + New Map).  Besides that everything will be taught to you.  Note that some of these entries may require info presented in other tutorials.&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;How To Make a Bouncepad &lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1.Select a square that you would like you bouncepad to be placed (you can always move it)&lt;/div&gt;&lt;div&gt;2.Open the Main Menu (Esc)&lt;/div&gt;&lt;div&gt;3.Choose “Editing GUI”&lt;/div&gt;&lt;div&gt;4.Switch to the “Ents” tab&lt;/div&gt;&lt;div&gt;5.Choose “New jumppad Entity” from the list&lt;/div&gt;&lt;div&gt;6.Press the period key&lt;/div&gt;&lt;div&gt;7.Backspace until you get to the first 0&lt;/div&gt;&lt;div&gt;8.Replace it with a 50 (this number is the intensity of the jump, so you can change it as you like)&lt;/div&gt;&lt;div&gt;9.Press Enter&lt;/div&gt;&lt;div&gt;10.Select the square underneath the bouncepad (the bouncepad should now be a sparkling thing that you cannot see in player mode)&lt;/div&gt;&lt;div&gt;11.Import the jumppad2 mapmodel&lt;/div&gt;&lt;div&gt;12.The mapmodel should be on top of the sparkling bouncepad module (if it's not drag the mapmodel over it)&lt;/div&gt;&lt;div&gt;13.Switch to player mode and try it out&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3873299861723550653-1066701970158489546?l=pscmpf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pscmpf.blogspot.com/feeds/1066701970158489546/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3873299861723550653&amp;postID=1066701970158489546' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3873299861723550653/posts/default/1066701970158489546'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3873299861723550653/posts/default/1066701970158489546'/><link rel='alternate' type='text/html' href='http://pscmpf.blogspot.com/2010/03/platinum-arts-sandbox-tutorial-1.html' title='Platinum Arts Sandbox Tutorial 1'/><author><name>pscmpf</name><uri>http://www.blogger.com/profile/17183919000008793560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3873299861723550653.post-5407878388106321796</id><published>2010-01-02T06:48:00.000-08:00</published><updated>2010-01-02T12:23:18.767-08:00</updated><title type='text'>Arduino and IR Receiver</title><content type='html'>&lt;span style="font-family:arial;"&gt;In my &lt;a href="http://pscmpf.blogspot.com/2009/12/decoding-ir-remote-control.html"&gt;last post&lt;/a&gt;, I used my &lt;a href="http://www.parallax.com/StoreSearchResults/tabid/768/txtSearch/oscilloscope/List/0/SortField/4/ProductID/46/Default.aspx"&gt;USB oscilloscope&lt;/a&gt; to decode a discarded remote control's IR output. My next goal was to see if I could get my &lt;a href="http://www.arduino.cc/"&gt;Arduino &lt;/a&gt;to read the data coming from the remote I had decoded.&lt;br /&gt;&lt;br /&gt;The first challenge was finding an IR receiver.  IR receivers are different from a typical IR transistor in that they are tuned to a certain carrier frequency - also called a "center frequency".&lt;br /&gt;&lt;br /&gt;The boys and I dismantled &lt;/span&gt;&lt;span style="font-family:arial;"&gt;retired DVD player from a company called &lt;a href="http://ecx.images-amazon.com/images/I/31CCYSEC5TL._SS500_.jpg"&gt;CyberHome&lt;/a&gt;.  It was a cheap and junk - it really only lasted a year or so (maybe we watch too many DVDs). :) We had dismantled &lt;/span&gt;&lt;span style="font-family:arial;"&gt; it and a few circuit boards were left for me to scavenge through.  One had a IR receiver that I decided to use for this project.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_IrQ3pWfzbLQ/Sz9nbDGx5JI/AAAAAAAAARQ/yw9EjG0AydQ/s1600-h/Zi6_0114.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 162px; height: 346px;" src="http://3.bp.blogspot.com/_IrQ3pWfzbLQ/Sz9nbDGx5JI/AAAAAAAAARQ/yw9EjG0AydQ/s400/Zi6_0114.JPG" alt="" id="BLOGGER_PHOTO_ID_5422166190765237394" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;I used my &lt;a href="http://media.digikey.com/photos/Paladin%20Tools%20Photos/PA1700.jpg"&gt;desoldering &lt;/a&gt;tool and soldering iron to remove the component from the circuit board, and also did a little reverse engineering to see how it was wired.  I discovered that careful attention had been placed to create adequate filter capacitors and a small current limiting resistor in series with it's power.&lt;br /&gt;&lt;br /&gt;I wired it with this circuit on a breadboard and was pleased to find out that the LED flickered each time I pressed a key on the Insignia remote control.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_IrQ3pWfzbLQ/Sz9kupRfS8I/AAAAAAAAAQ4/NLIDAUkb0v4/s1600-h/IR_Receiver.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 147px;" src="http://3.bp.blogspot.com/_IrQ3pWfzbLQ/Sz9kupRfS8I/AAAAAAAAAQ4/NLIDAUkb0v4/s400/IR_Receiver.png" alt="" id="BLOGGER_PHOTO_ID_5422163228893334466" border="0" /&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;IR1  - unknown (CyberHome DVD player)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;C1   - 470uf 16V&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;C2   - 0.02uf&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;R1   - 100 ohms&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;R2   - 1k ohms&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;LED1 - small green&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I then transferred the circuit to a small &lt;a href="http://en.wikipedia.org/wiki/Perfboard"&gt;perf-board&lt;/a&gt; and built a small shield to fit onto the Arduino that will allow me to read the output. I used a piece of yellow stranded wire and a single header pin to allow me to connect the output of the IR receiver to whichever I/O pin I wanted to use on the Arduino.  Here's some pictures of the completed shield attached to an &lt;a href="http://www.sparkfun.com/commerce/product_info.php?products_id=666"&gt;Arduino Duemilanova 328 from SparkFun&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_IrQ3pWfzbLQ/Sz9nacqj3dI/AAAAAAAAARA/LpHr6KBocc4/s1600-h/IMG_8152.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_IrQ3pWfzbLQ/Sz9nacqj3dI/AAAAAAAAARA/LpHr6KBocc4/s400/IMG_8152.JPG" alt="" id="BLOGGER_PHOTO_ID_5422166180446330322" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_IrQ3pWfzbLQ/Sz9na-1ZvDI/AAAAAAAAARI/Tuqb854X_KE/s1600-h/IMG_8155.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 300px; height: 400px;" src="http://2.bp.blogspot.com/_IrQ3pWfzbLQ/Sz9na-1ZvDI/AAAAAAAAARI/Tuqb854X_KE/s400/IMG_8155.JPG" alt="" id="BLOGGER_PHOTO_ID_5422166189618609202" border="0" /&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;I then wrote a program to read the data from the IR receiver, first detecting the header and later walking through each of the pulses that I discovered in my last blog entry.  Here's a code snippet that shows the basics of reading the data:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;lengthHeader = pulseIn(pinData, LOW);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  if(lengthHeader &gt; 5000)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    //step through each of the 32 bits that streams from the remote&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    byteValue = 0;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    for(int i = 1; i &lt;= 32; i++)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      bit = pulseIn(pinData, HIGH);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      //read the 8 bits that are specifically the key code&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      //use bitwise operations to convert binary to decimal&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      if (i &gt; 16 &amp;amp;&amp;amp; i &lt;= 24)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        if(bit &gt; 1000)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;          byteValue = byteValue + (1 &lt;&lt; (i - 17)); &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    }&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You may have noticed three important things about this code:&lt;br /&gt;&lt;br /&gt;1.  I used the "&lt;a href="http://arduino.cc/en/Reference/PulseIn"&gt;pulseIn&lt;/a&gt;" function.  This function allows me to measure the length of a pulse coming from the I/O pin in microseconds.  This allowed me to differentiate between a long pause or short pause in the signal stream - producing for me 1's and 0's.&lt;br /&gt;&lt;br /&gt;2.  I used bitwise shift "&lt;a href="http://arduino.cc/en/Reference/Bitshift"&gt;&lt;&lt;&lt;/a&gt;" to convert the binary data into decimal data.  I had first used the "pow" function but was disappointed with it's performance, and it didn't seem to accurate report that x to the 0 power equals 1, it was reporting zero.  I may have done something wrong - not sure.&lt;br /&gt;&lt;br /&gt;3. I only deal with bits 17 through 24.  That's because the first two 8-bit bytes are not relevant, so I just want to skip them.&lt;br /&gt;&lt;br /&gt;I then returned the results of the decimal data to a &lt;a href="http://arduino.cc/en/Reference/Serial"&gt;serial connection&lt;/a&gt; so I could see it on my computer.  Sure enough - after a little messing around with setting proper "bounds" and &lt;a href="http://arduino.cc/en/Serial/Flush"&gt;flushing&lt;/a&gt; the serial buffer explicitly, I saw great results.&lt;br /&gt;&lt;br /&gt;Lastly, I wanted to do something fun with the data results.  So, I decided to make a Processing program that would show which button on the remote was being pressed.  Here's a screen shot of the resulting UI.  As you'll see by the following picture of the remote - they are relatively close in appearance.  When the button is pressed, the UI illustrates it by turning the button red.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_IrQ3pWfzbLQ/Sz9qDfvhliI/AAAAAAAAARY/-EF2kA-4C8k/s1600-h/remote.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 216px; height: 349px;" src="http://4.bp.blogspot.com/_IrQ3pWfzbLQ/Sz9qDfvhliI/AAAAAAAAARY/-EF2kA-4C8k/s400/remote.jpg" alt="" id="BLOGGER_PHOTO_ID_5422169084670350882" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_IrQ3pWfzbLQ/SzrR9pxYcxI/AAAAAAAAAP4/EcsYnf20mLs/s400/IMG_8090.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 206px; height: 352px;" src="http://3.bp.blogspot.com/_IrQ3pWfzbLQ/SzrR9pxYcxI/AAAAAAAAAP4/EcsYnf20mLs/s400/IMG_8090.JPG" alt="" border="0" /&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;Here's a short video showing it working!&lt;br /&gt;&lt;br /&gt;[coming...]&lt;br /&gt;&lt;br /&gt;Here are the code listings.  If you do something sim&lt;/span&gt;&lt;span style="font-family:arial;"&gt;ilar, be sure to let me know - I would love to hear about your projects too!  Thanks for reading!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;ARDUINO CODE&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;//setup variables&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;int pinData= 12;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;unsigned long lengthHeader;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;unsigned long bit;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;int byteValue;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;void setup()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  pinMode(pinData, INPUT);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   Serial.begin(9600);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;void loop()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  //look for a header pulse from the IR Receiver&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  lengthHeader = pulseIn(pinData, LOW);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  if(lengthHeader &gt; 5000)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       //step through each of the 32 bits that streams from the remote&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    byteValue = 0;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       for(int i = 1; i &lt;= 32; i++)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;           bit = pulseIn(pinData, HIGH);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      //read the 8 bits that are specifically the key code&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      //use bitwise operations to convert binary to decimal&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      if (i &gt; 16 &amp;amp;&amp;amp; i &lt;= 24)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        if(bit &gt; 1000)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;          byteValue = byteValue + (1 &lt;&lt; (i - 17)); &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    //send the key code to the processing.org program&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    Serial.print(byteValue);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    Serial.flush();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  delay(100);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;PROCESSING CODE&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;import processing.serial.*;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;//define variables used thourghout the program&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Serial arduinoPort;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;int rowPressed = 0;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;int colPressed = 0;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;int code = 0;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;String codeText;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;PFont font;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;void setup()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  //create the window&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  size(210, 325);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  background(220,220,220);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  //write the brand name at the bottom of the window&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  smooth();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  font = loadFont("Calibri-Bold-16.vlw");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  textAlign(CENTER);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  textFont(font);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  fill(0,0,255);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  text("I N S I G N I A", 105, 310);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  //draw the silk screen colors on the remote&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  translate(-10, -15);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  stroke(0,0,255);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  ellipse(184,80,34,34);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  ellipse(184,120,34,34);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  ellipse(92,120,70,70);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  ellipse(46,120,34,34);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  ellipse(138,120,34,34);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  ellipse(92,80,34,34);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  ellipse(92,160,34,34);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  rect(167,80,34,40);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  rect(75,80,34,80);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  rect(46,103,88,34);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  //prepare for serial communication&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  String portName = Serial.list()[1];&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  arduinoPort = new Serial(this, portName, 9600);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;void draw()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  //initialize a few things each time.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  rowPressed = 0;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  colPressed = 0;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  translate(-10, -15);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  smooth();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  //see if there is a serial message from the arduino&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  if (arduinoPort.available() &gt; 0)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    codeText = arduinoPort.readString();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    code = int(codeText);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    findPressed(code);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  //use loops to draw the buttons on the remote&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  for(int col = 1; col &lt;= 4; col++)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    for(int row = 1; row &lt;= 7; row++)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      //draw the buttons different colors&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      if(row == rowPressed &amp;amp;&amp;amp; col == colPressed) //red if pressed&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        fill(255, 0, 0);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      else if((row == 4 &amp;amp;&amp;amp; col == 1) || (row &gt;= 5 &amp;amp;&amp;amp; col &lt;= 3)) //silk screened blue buttons&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        fill(0, 0, 255);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      else //unpressed buttons&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        fill(240, 240, 240);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      ellipse(col * 46, row * 40, 30, 30);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    } &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  delay(100); //delay to leave the button lit a moment  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;//use the code id from the arduino to map to a button on the remote&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;void findPressed(int code)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  switch(code)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    case 28:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      rowPressed = 1;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      colPressed = 1;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      break;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    case 4:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      rowPressed = 1;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      colPressed = 2;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      break;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    case 17:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      rowPressed = 1;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      colPressed = 3;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      break;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    case 12:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      rowPressed = 1;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      colPressed = 4;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      break;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    case 80:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      rowPressed = 2;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      colPressed = 1;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      break;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    case 20:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      rowPressed = 2;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      colPressed = 2;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      break;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    case 81:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      rowPressed = 2;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      colPressed = 3;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      break;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    case 30:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      rowPressed = 2;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      colPressed = 4;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      break;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    case 84:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      rowPressed = 3;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      colPressed = 1;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      break;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    case 26:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      rowPressed = 3;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      colPressed = 2;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      break;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    case 85:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      rowPressed = 3;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      colPressed = 3;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      break;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    case 31:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      rowPressed = 3;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      colPressed = 4;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      break;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    case 18:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      rowPressed = 4;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      colPressed = 1;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      break;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    case 23:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      rowPressed = 4;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      colPressed = 2;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      break;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    case 73:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      rowPressed = 4;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      colPressed = 3;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      break;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    case 27:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      rowPressed = 4;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      colPressed = 4;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      break;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    case 5:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      rowPressed = 5;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      colPressed = 1;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      break;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    case 6:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      rowPressed = 5;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      colPressed = 2;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      break;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    case 7:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      rowPressed = 5;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      colPressed = 3;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      break;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    case 16:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      rowPressed = 5;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      colPressed = 4;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      break;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    case 9:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      rowPressed = 6;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      colPressed = 1;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      break;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    case 10:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      rowPressed = 6;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      colPressed = 2;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      break;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    case 11:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      rowPressed = 6;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      colPressed = 3;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      break;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    case 72:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      rowPressed = 6;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      colPressed = 4;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      break;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    case 13:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      rowPressed = 7;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      colPressed = 1;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      break;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    case 14:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      rowPressed = 7;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      colPressed = 2;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      break;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    case 15:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      rowPressed = 7;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      colPressed = 3;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      break;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    case 88:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      rowPressed = 7;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      colPressed = 4;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      break;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  default:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;     rowPressed = 0;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;     colPressed = 0;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3873299861723550653-5407878388106321796?l=pscmpf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pscmpf.blogspot.com/feeds/5407878388106321796/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3873299861723550653&amp;postID=5407878388106321796' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3873299861723550653/posts/default/5407878388106321796'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3873299861723550653/posts/default/5407878388106321796'/><link rel='alternate' type='text/html' href='http://pscmpf.blogspot.com/2010/01/arduino-and-ir-receiver.html' title='Arduino and IR Receiver'/><author><name>pscmpf</name><uri>http://www.blogger.com/profile/17183919000008793560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_IrQ3pWfzbLQ/Sz9nbDGx5JI/AAAAAAAAARQ/yw9EjG0AydQ/s72-c/Zi6_0114.JPG' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3873299861723550653.post-8434299534501851134</id><published>2009-12-29T20:03:00.000-08:00</published><updated>2009-12-30T12:24:20.766-08:00</updated><title type='text'>Decoding IR Remote Control</title><content type='html'>&lt;span style="font-family:arial;"&gt;Another Christmas vacation meant spending time at my in-law's dining room table working on a project.  This year, I decided to try to figure out the &lt;a href="http://en.wikipedia.org/wiki/Remote_control#Consumer_electronics_infrared_protocols"&gt;IR communication protocol&lt;/a&gt; being used by this retired &lt;a href="http://insigniaproducts.com/home.html"&gt;Insignia&lt;/a&gt; portable DVD player remote control.  The kids never really used the remote control and it still looks like new.  My heart for re-purposing electronics wouldn't allow me to throw it away.  Here's what the button layout looks like on the front of the remote.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_IrQ3pWfzbLQ/SzrR9pxYcxI/AAAAAAAAAP4/EcsYnf20mLs/s1600-h/IMG_8090.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 234px; height: 400px;" src="http://3.bp.blogspot.com/_IrQ3pWfzbLQ/SzrR9pxYcxI/AAAAAAAAAP4/EcsYnf20mLs/s400/IMG_8090.JPG" alt="" id="BLOGGER_PHOTO_ID_5420875958609015570" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;I decided to use my USB &lt;a href="http://en.wikipedia.org/wiki/Oscilloscope"&gt;Oscilloscope &lt;/a&gt;to read the data coming out of the remote control. &lt;a href="http://www.parallax.com/StoreSearchResults/tabid/768/txtSearch/oscilloscope/List/0/SortField/4/ProductID/46/Default.aspx"&gt;My oscilloscope&lt;/a&gt; is made by &lt;a href="http://www.parallax.com/"&gt;Parallax&lt;/a&gt; and has two channels along with a very nice &lt;a href="http://www.parallax.com/Portals/0/Images/Product%20Information/Downloads/Oscilloscope5.jpg"&gt;user interface&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_IrQ3pWfzbLQ/Szt9Rm_3o1I/AAAAAAAAAQw/BowUvhl83XQ/s1600-h/28014-L.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 242px;" src="http://3.bp.blogspot.com/_IrQ3pWfzbLQ/Szt9Rm_3o1I/AAAAAAAAAQw/BowUvhl83XQ/s400/28014-L.jpg" alt="" id="BLOGGER_PHOTO_ID_5421064317950206802" border="0" /&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;I attached an IR LED to the Oscilloscope leads as follows:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_IrQ3pWfzbLQ/SzrXSpbmMnI/AAAAAAAAAQo/sQsHauFsKBw/s1600-h/IR+Remote.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 96px;" src="http://1.bp.blogspot.com/_IrQ3pWfzbLQ/SzrXSpbmMnI/AAAAAAAAAQo/sQsHauFsKBw/s400/IR+Remote.png" alt="" id="BLOGGER_PHOTO_ID_5420881816853033586" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;I don't really know why using an IR LED works so well to capture IR signals, but it definitely works.  I tried using an IR Transistor first to no avail - so this really did work best with the LED.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;After the typical fiddling that goes along with grabbing new signals on an oscilloscope, I was able to capture this IR burst of data using the trigger capabilities of my oscilloscope.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_IrQ3pWfzbLQ/SzrSI8Wgp3I/AAAAAAAAAQg/U_4R4bGGGPY/s1600-h/IRoutput.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 392px;" src="http://4.bp.blogspot.com/_IrQ3pWfzbLQ/SzrSI8Wgp3I/AAAAAAAAAQg/U_4R4bGGGPY/s400/IRoutput.JPG" alt="" id="BLOGGER_PHOTO_ID_5420876152575141746" border="0" /&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;I was able to zoom in on the header to figure out the carrier signal.  As you can see in the lower right hand corner of my oscilloscope UI, there's a box called "Cursors".  I was able to use cursors (or markers) to measure the length of a signal wave and discovered that it's approximately 35.7KHz.  A little internet research will show that the typical commercial remote control uses a carrier signal of 36 to 38 KHz - so my measurements weren't too far off.  This carrier signal is sometimes referred to as the "Center Frequency".&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_IrQ3pWfzbLQ/SzrR99k1ZsI/AAAAAAAAAQA/d8rdMjn4-hc/s1600-h/IRCarriert.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 392px;" src="http://1.bp.blogspot.com/_IrQ3pWfzbLQ/SzrR99k1ZsI/AAAAAAAAAQA/d8rdMjn4-hc/s400/IRCarriert.JPG" alt="" id="BLOGGER_PHOTO_ID_5420875963925096130" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Next, I decided to measure the header signal along with the following break in the signal.  This is used to indicate the beginning of a message or stream of data to the receiver.  It appears the header is approximately 9 ms (milliseconds) or rather 9000 us (microseconds).  This is followed by a 4500 us pause before the first bit appears.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_IrQ3pWfzbLQ/SzrR-G9HBZI/AAAAAAAAAQI/ZHF0OzkaVGk/s1600-h/IRHeadert.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 392px;" src="http://4.bp.blogspot.com/_IrQ3pWfzbLQ/SzrR-G9HBZI/AAAAAAAAAQI/ZHF0OzkaVGk/s400/IRHeadert.JPG" alt="" id="BLOGGER_PHOTO_ID_5420875966442833298" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Now we only need to understand what a bit is, and how to measure a "1" from a "0".  I was able to discover that a "0" is a 55 us high followed by a 55 us low.  The "1" is a 55 us high followed by a 165 us low.  Either way, each bit is either 110 or 220 us long.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_IrQ3pWfzbLQ/SzrR-qIiXYI/AAAAAAAAAQY/haHl-eaEAW8/s1600-h/IRZero.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 392px;" src="http://1.bp.blogspot.com/_IrQ3pWfzbLQ/SzrR-qIiXYI/AAAAAAAAAQY/haHl-eaEAW8/s400/IRZero.JPG" alt="" id="BLOGGER_PHOTO_ID_5420875975886003586" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_IrQ3pWfzbLQ/SzrR-XOcDmI/AAAAAAAAAQQ/HsB-2II_Be0/s1600-h/IROne.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 392px;" src="http://2.bp.blogspot.com/_IrQ3pWfzbLQ/SzrR-XOcDmI/AAAAAAAAAQQ/HsB-2II_Be0/s400/IROne.JPG" alt="" id="BLOGGER_PHOTO_ID_5420875970810482274" border="0" /&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;I then started counting bits and found out that the data transmitted from the IR remote control is 4 bytes long, with each byte being 8 bits long, adding up to 32 bits of data being sent each time a button is pressed.  Here's a summary of my findings (I only analyzed number buttons 0 .. 9 on the remote control).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Carrier Signal = 36Kh&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Header = 9000 us&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Break = 4500 us&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;Off Bit = 1100 us&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;On Bit = 2200 us&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;"1" = 01000000 11111111 &lt;span style="color: rgb(0, 204, 204);"&gt;10100000&lt;/span&gt; 01011111 = &lt;span style="color: rgb(102, 204, 204);"&gt;5&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;"2" = 01000000 11111111 01100000 10011111 = 6&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;"3" = 01000000 11111111 11100000 00011111 = 7&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;"4" = 01000000 11111111 10010000 01101111 = 9&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;"5" = 01000000 11111111 01010000 10101111 = 10&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;"6" = 01000000 11111111 11010000 00101111 = 11&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;"7" = 01000000 11111111 10110000 01001111 = 13&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;"8" = 01000000 11111111 01110000 10001111 = 14&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;"9" = 01000000 11111111 11110000 00001111 = 15&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;"0" = 01000000 11111111 01001000 10110111 = 18&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;I figured out that the 3rd byte contains the data and the 4th byte has the "not", presumably for error checking the data.  So, for example, pressing the "1" key on the remote control sends the data stream &lt;/span&gt;&lt;span style="font-family:arial;"&gt;01000000 11111111 &lt;span style="color: rgb(0, 204, 204);"&gt;10100000&lt;/span&gt; 01011111 where 10100000 equals 5 in decimal. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;I hope this is helpful to you.  If you take time to decode your remote control - let me know how it goes for you!  :)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3873299861723550653-8434299534501851134?l=pscmpf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pscmpf.blogspot.com/feeds/8434299534501851134/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3873299861723550653&amp;postID=8434299534501851134' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3873299861723550653/posts/default/8434299534501851134'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3873299861723550653/posts/default/8434299534501851134'/><link rel='alternate' type='text/html' href='http://pscmpf.blogspot.com/2009/12/decoding-ir-remote-control.html' title='Decoding IR Remote Control'/><author><name>pscmpf</name><uri>http://www.blogger.com/profile/17183919000008793560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_IrQ3pWfzbLQ/SzrR9pxYcxI/AAAAAAAAAP4/EcsYnf20mLs/s72-c/IMG_8090.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3873299861723550653.post-5121639957614300187</id><published>2009-12-17T17:56:00.000-08:00</published><updated>2009-12-17T18:54:40.945-08:00</updated><title type='text'>Re-purposed Cool Blue Light</title><content type='html'>&lt;div style="text-align: center;"&gt;Hi, this is Paul.  Mark is my dad.  Here's a project we made.  It works great.&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;img src="http://1.bp.blogspot.com/_IrQ3pWfzbLQ/Syrn2L70C3I/AAAAAAAAAPo/hSENaajVgBk/s400/IMG_7956.JPG" style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5416396419969059698" /&gt;&lt;img src="http://4.bp.blogspot.com/_IrQ3pWfzbLQ/Syrn119swLI/AAAAAAAAAPg/ib493cWEWlc/s400/IMG_7955.JPG" style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5416396414071390386" /&gt;&lt;img src="http://3.bp.blogspot.com/_IrQ3pWfzbLQ/Syrn1iYQweI/AAAAAAAAAPY/K5SKYHVzY8g/s400/IMG_7954.JPG" style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5416396408814092770" /&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://3.bp.blogspot.com/_IrQ3pWfzbLQ/Syrn1c9JJcI/AAAAAAAAAPQ/Or4K60C4nxQ/s400/IMG_7952.JPG" style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5416396407358170562" /&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="http://1.bp.blogspot.com/_IrQ3pWfzbLQ/Syrn08LFJpI/AAAAAAAAAPI/FgJ4lWnnwAU/s400/IMG_7949.JPG" style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5416396398558258834" /&gt;&lt;img src="http://2.bp.blogspot.com/_IrQ3pWfzbLQ/SyrnbQPUyWI/AAAAAAAAAPA/2eN1fGGE530/s400/IMG_7948.JPG" style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5416395957268171106" /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;What we did was take apart something and found a circuit board with an LCD.  We took off the LCD and found its back light.  It was a really cool-looking blue color.  We figured out how to hook it up to a battery.  We cut off the rest of the circuit board in the wood shop so we just had a little more than the part with the back light.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Then we needed a way to hold the circuit board.  We used the back of a &lt;a href="http://en.wikipedia.org/wiki/Inverter_(electrical)"&gt;power inverter &lt;/a&gt;my dad blew up.  It looked really cool because it had a lot of holes.  It also had one end bent over so it will stand up better.  We used a metal clip we found as a base for the opposite side so it stands up good.  We found a switch that just happened to fit perfectly in one of the holes.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We soldered everything together with &lt;a href="http://en.wikipedia.org/wiki/Wire_wrap"&gt;wire-wrap&lt;/a&gt; wire (super thin wire).  We hot-glued the circuit board to the top of the power inverter part.  We wired together two AAA batteries and then glued them to the base.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I really like taking junk and turning it into something useful.  My dad said it's called re-purposing (hence the name of the blog entry).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Tell us about it if you make your own.  Hope it works.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/4gVJ6uky1fY&amp;hl=en&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/4gVJ6uky1fY&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3873299861723550653-5121639957614300187?l=pscmpf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pscmpf.blogspot.com/feeds/5121639957614300187/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3873299861723550653&amp;postID=5121639957614300187' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3873299861723550653/posts/default/5121639957614300187'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3873299861723550653/posts/default/5121639957614300187'/><link rel='alternate' type='text/html' href='http://pscmpf.blogspot.com/2009/12/re-purposed-cool-blue-light.html' title='Re-purposed Cool Blue Light'/><author><name>pscmpf</name><uri>http://www.blogger.com/profile/17183919000008793560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_IrQ3pWfzbLQ/Syrn2L70C3I/AAAAAAAAAPo/hSENaajVgBk/s72-c/IMG_7956.JPG' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3873299861723550653.post-7283671831760361950</id><published>2009-12-13T12:27:00.001-08:00</published><updated>2009-12-13T13:52:16.089-08:00</updated><title type='text'>Tricorder Sound Circuit</title><content type='html'>&lt;a style="font-family: arial;" href="http://en.wikipedia.org/wiki/StarTrek"&gt;Star Trek&lt;/a&gt;&lt;span style="font-family:arial;"&gt; fans have likely heard the whirling whistle of the &lt;/span&gt;&lt;a style="font-family: arial;" href="http://en.wikipedia.org/wiki/Tricorder"&gt;Tricorder&lt;/a&gt;&lt;span style="font-family:arial;"&gt;.  After talking with my son Paul about the challenge of designing a circuit to reproduce the sound, I came up with this implementation using three &lt;a href="http://en.wikipedia.org/wiki/555_timer_IC"&gt;555&lt;/a&gt; timer chips.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;The circuit has three &lt;a href="http://en.wikipedia.org/wiki/Multivibrator"&gt;astable multivibrator&lt;/a&gt; circuits (oscillators).  Two of them have a high enough frequency to create tones, and the other is used to give the wobble sound.&lt;br /&gt;&lt;br /&gt;The transistor and capacitor work together with the tone oscillator to make a voltage to frequency converter, allowing the lower frequency pulse generator to raise and lower the frequency of the second tone oscillator circuit.  The remaining tone oscillator creates an additional high-pitched background tone heard in the original Tricorders.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/FzW5i9W6cVM&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/FzW5i9W6cVM&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Here's the circuit:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a style="font-family: arial;" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_IrQ3pWfzbLQ/SyVQUPEgWwI/AAAAAAAAAO4/Dz2A2uUo6jg/s1600-h/TricorderSound.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 199px;" src="http://4.bp.blogspot.com/_IrQ3pWfzbLQ/SyVQUPEgWwI/AAAAAAAAAO4/Dz2A2uUo6jg/s400/TricorderSound.jpg" alt="" id="BLOGGER_PHOTO_ID_5414822435555924738" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Here's the parts list:&lt;br /&gt;&lt;br /&gt;R1 - 100k&lt;br /&gt;R2 - 1k&lt;br /&gt;R3 - 10k&lt;br /&gt;R4 - 1k&lt;br /&gt;R5 - 1k&lt;br /&gt;R6 - 56k&lt;br /&gt;R7 - 82 &lt;/span&gt;&lt;span style="font-family:arial;"&gt; (modify for proper volume with your speaker)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;R8 - 56k&lt;br /&gt;R9 - 47k&lt;br /&gt;R10 - 1k&lt;br /&gt;R11 - 100 (modify to proper volume with your speaker)&lt;br /&gt;&lt;br /&gt;C1 - 0.01 mf&lt;br /&gt;C2 - 6.8 mf&lt;br /&gt;C3 - 4.7 mf&lt;br /&gt;C4 - 0.01 mf&lt;br /&gt;C5 - 1.0 mf&lt;br /&gt;C6 - 220 mf (power filter capacitor)&lt;br /&gt;&lt;br /&gt;D1 - N4148&lt;br /&gt;&lt;br /&gt;S1 - SPDT&lt;br /&gt;S2 - SPDT or SPST&lt;br /&gt;&lt;br /&gt;BAT1 - 3.7V Li-ion (tone will change with higher voltages - this circuit performed best at this voltage for me)&lt;br /&gt;&lt;br /&gt;SPK1 - small 8 ohm speaker&lt;br /&gt;&lt;br /&gt;Q1 - 2N3904 NPN bipolar transistor&lt;br /&gt;&lt;br /&gt;IC1, IC2, IC3 - NE555 (could be modified to use NE556 dual-timer or NE558 quad-timer)&lt;br /&gt;&lt;br /&gt;If you build this circuit - please let me know, I would love to know if it worked correctly for you too!  :)&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3873299861723550653-7283671831760361950?l=pscmpf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pscmpf.blogspot.com/feeds/7283671831760361950/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3873299861723550653&amp;postID=7283671831760361950' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3873299861723550653/posts/default/7283671831760361950'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3873299861723550653/posts/default/7283671831760361950'/><link rel='alternate' type='text/html' href='http://pscmpf.blogspot.com/2009/12/tricorder-sound-circuit.html' title='Tricorder Sound Circuit'/><author><name>pscmpf</name><uri>http://www.blogger.com/profile/17183919000008793560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_IrQ3pWfzbLQ/SyVQUPEgWwI/AAAAAAAAAO4/Dz2A2uUo6jg/s72-c/TricorderSound.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3873299861723550653.post-8268918490776735680</id><published>2009-07-05T14:13:00.000-07:00</published><updated>2009-07-05T14:17:52.899-07:00</updated><title type='text'>Arduino VFD Hardware Interface Complete</title><content type='html'>&lt;span style="font-family:arial;"&gt;The VFD is now connected to the protoshield and a test program shows all of the number segments operational. Here's some pictures of the finished shield mounted to an Arduino.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_IrQ3pWfzbLQ/SlEYMQlzMgI/AAAAAAAAAOw/BamyuEjX-wo/s1600-h/IMG_6343.JPG"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_IrQ3pWfzbLQ/SlEYMQlzMgI/AAAAAAAAAOw/BamyuEjX-wo/s400/IMG_6343.JPG" alt="" id="BLOGGER_PHOTO_ID_5355088030811238914" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_IrQ3pWfzbLQ/SlEYHRv5RwI/AAAAAAAAAOo/CC-eRKJwv_o/s1600-h/IMG_6342.JPG"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_IrQ3pWfzbLQ/SlEYHRv5RwI/AAAAAAAAAOo/CC-eRKJwv_o/s400/IMG_6342.JPG" alt="" id="BLOGGER_PHOTO_ID_5355087945222670082" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_IrQ3pWfzbLQ/SlEX8mDb6TI/AAAAAAAAAOg/8rgZtpVAzkw/s1600-h/IMG_6341.JPG"&gt;&lt;img style="cursor: pointer; width: 285px; height: 400px;" src="http://1.bp.blogspot.com/_IrQ3pWfzbLQ/SlEX8mDb6TI/AAAAAAAAAOg/8rgZtpVAzkw/s400/IMG_6341.JPG" alt="" id="BLOGGER_PHOTO_ID_5355087761694779698" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;Next is writing the driver and encapsulating it into an Arduino library.  :)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3873299861723550653-8268918490776735680?l=pscmpf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pscmpf.blogspot.com/feeds/8268918490776735680/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3873299861723550653&amp;postID=8268918490776735680' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3873299861723550653/posts/default/8268918490776735680'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3873299861723550653/posts/default/8268918490776735680'/><link rel='alternate' type='text/html' href='http://pscmpf.blogspot.com/2009/07/arduino-vfd-hardware-interface-complete.html' title='Arduino VFD Hardware Interface Complete'/><author><name>pscmpf</name><uri>http://www.blogger.com/profile/17183919000008793560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_IrQ3pWfzbLQ/SlEYMQlzMgI/AAAAAAAAAOw/BamyuEjX-wo/s72-c/IMG_6343.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3873299861723550653.post-6684938377239702766</id><published>2009-07-03T20:54:00.001-07:00</published><updated>2009-07-03T20:59:31.483-07:00</updated><title type='text'>VFD Circuit Diagram</title><content type='html'>&lt;span style="font-family: arial;"&gt;I did some tests and discovered that the plates (segments in each display) will need to be driven by the full 12 volts while the grids can be supplied by the Arduino's typical 5 volt digital output.  This requires me to use a transistor to drive each plate along with a resistor driving the base of each transistor.  The circuit (minus the resistors driving the transistors) should look something like this.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a style="font-family: arial;" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_IrQ3pWfzbLQ/Sk7SlJKDYOI/AAAAAAAAAOY/t0ILs4PuT8g/s1600-h/VFD+hookup.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 244px;" src="http://4.bp.blogspot.com/_IrQ3pWfzbLQ/Sk7SlJKDYOI/AAAAAAAAAOY/t0ILs4PuT8g/s400/VFD+hookup.jpg" alt="" id="BLOGGER_PHOTO_ID_5354448542545174754" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;It appears I will be using 11 (7 plates + 4 grids) to drive the VFD.  This just squeezes into the IO ports available on my Arduino.&lt;br /&gt;&lt;br /&gt;Next step will be to get the VFD attached to my protoshield, along with the transistors and resistors so that I can begin writing code...  :)  Can't wait...&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3873299861723550653-6684938377239702766?l=pscmpf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pscmpf.blogspot.com/feeds/6684938377239702766/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3873299861723550653&amp;postID=6684938377239702766' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3873299861723550653/posts/default/6684938377239702766'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3873299861723550653/posts/default/6684938377239702766'/><link rel='alternate' type='text/html' href='http://pscmpf.blogspot.com/2009/07/vfd-circuit-diagram.html' title='VFD Circuit Diagram'/><author><name>pscmpf</name><uri>http://www.blogger.com/profile/17183919000008793560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_IrQ3pWfzbLQ/Sk7SlJKDYOI/AAAAAAAAAOY/t0ILs4PuT8g/s72-c/VFD+hookup.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3873299861723550653.post-161869998987667178</id><published>2009-07-03T17:11:00.001-07:00</published><updated>2009-07-03T17:34:15.336-07:00</updated><title type='text'>Vacuum Fluorescent Display (continued)</title><content type='html'>&lt;span style="font-family:arial;"&gt;I've continued to work with the display I referred to in my last entry.  It may seem like a small step, but I carefully calculated what resistor I would need to properly power the VFD filament from a 12 volt power supply.  I did indeed power the &lt;/span&gt;&lt;span style="font-family:arial;"&gt;filament and saw in a dark room the soft glow of the orange heaters.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_IrQ3pWfzbLQ/Sk6jL6PFrVI/AAAAAAAAAOI/wYqZuTp_Bfg/s1600-h/VFD+back.JPG"&gt;&lt;img style="cursor: pointer; width: 400px; height: 118px;" src="http://1.bp.blogspot.com/_IrQ3pWfzbLQ/Sk6jL6PFrVI/AAAAAAAAAOI/wYqZuTp_Bfg/s400/VFD+back.JPG" alt="" id="BLOGGER_PHOTO_ID_5354396431996530002" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;Next, I decided to power the act&lt;/span&gt;&lt;span style="font-family:arial;"&gt;ual grids and plates to see the display light it's blue display elements.  Here is a picture of the &lt;/span&gt;&lt;span style="font-family:arial;"&gt;display I am using.  It's a &lt;a href="http://futaba.com/products/displays/general_info/introduction/index.asp"&gt;Futaba &lt;/a&gt;6-BT-65ZK (Part Number 4230782).  I know very little about Futaba part numbers, but I did find that most followed this format.  I was unable to find a reference sheet on this actual display.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_IrQ3pWfzbLQ/Sk6jTMi623I/AAAAAAAAAOQ/PwV42x6LOSY/s1600-h/VFD+Pinout.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 169px;" src="http://3.bp.blogspot.com/_IrQ3pWfzbLQ/Sk6jTMi623I/AAAAAAAAAOQ/PwV42x6LOSY/s400/VFD+Pinout.jpg" alt="" id="BLOGGER_PHOTO_ID_5354396557170629490" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;I attached 12 volts to each grid and tested each plat to see which elements lit up.  After &lt;/span&gt;&lt;span style="font-family:arial;"&gt;documenting the display connections, I arrived at this pin out for my display.  As you can see, there are not many elements and it's geared towards a clock radio in a car.&lt;br /&gt;&lt;br /&gt;Letters A - G apply to the segments in the 7-segment display characters.  For more information on which element corresponds with which letter, see this Wikipedia &lt;a href="http://en.wikipedia.org/wiki/File:7_segment_display_labeled.svg"&gt;image&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Next, I will be trying to figure out how to drive the display using a multiplexer circuit in conjunction with an Arduino.  I'll keep you posted on what I discover along the way.  :)&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3873299861723550653-161869998987667178?l=pscmpf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pscmpf.blogspot.com/feeds/161869998987667178/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3873299861723550653&amp;postID=161869998987667178' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3873299861723550653/posts/default/161869998987667178'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3873299861723550653/posts/default/161869998987667178'/><link rel='alternate' type='text/html' href='http://pscmpf.blogspot.com/2009/07/vacuum-fluorescent-display-continued.html' title='Vacuum Fluorescent Display (continued)'/><author><name>pscmpf</name><uri>http://www.blogger.com/profile/17183919000008793560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_IrQ3pWfzbLQ/Sk6jL6PFrVI/AAAAAAAAAOI/wYqZuTp_Bfg/s72-c/VFD+back.JPG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3873299861723550653.post-3211732964717423034</id><published>2009-06-26T08:51:00.000-07:00</published><updated>2009-07-03T15:36:22.504-07:00</updated><title type='text'>Vacuum Fluorescent Display</title><content type='html'>Years ago, I saved a car radio from a Chrysler that had a digital display.  I estimate 20 years later, I've finally taken time to tear it apart and scrounge parts from it.  Inside I found a &lt;a href="http://en.wikipedia.org/wiki/Vacuum_fluorescent_display"&gt;Vacuum Fluorescent Display&lt;/a&gt; (VFD).  I didn't realize it was in there and found its glass package an immediate draw.&lt;br /&gt;&lt;br /&gt;This is an example picture - my dis&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_IrQ3pWfzbLQ/SkT51xJWEaI/AAAAAAAAANo/bQkPD39WC7g/s1600-h/Vacuum_fluorescent_1.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 167px;" src="http://4.bp.blogspot.com/_IrQ3pWfzbLQ/SkT51xJWEaI/AAAAAAAAANo/bQkPD39WC7g/s320/Vacuum_fluorescent_1.jpg" alt="" id="BLOGGER_PHOTO_ID_5351676959343907234" border="0" /&gt;&lt;/a&gt;play has less elements.  :)&lt;br /&gt;&lt;br /&gt;I wanted to do a little investigating about VFDs and found this &lt;a href="http://www.hpfriedrichs.com/rr-vfd.htm"&gt;website&lt;/a&gt;.    Much to my surprise, there were a number of online examples of people using them to amplify audio signals since they have the basic structure of a &lt;a href="http://en.wikipedia.org/wiki/Triode"&gt;Triode&lt;/a&gt; vacuum tube.  Apart from the unique implementation of the device, I did find the theory information helpful at this site.&lt;br /&gt;&lt;br /&gt;My plan is to use this display in conjunction with an &lt;a href="http://www.arduino.cc/"&gt;Arduino&lt;/a&gt;.  My first challenge was to figure out how to run the filament.  I chose 12 volts as my available input voltage and have estimated that the required voltage is 2.5 volts.  With that in mind, I needed to figure out exactly what resistor would be needed to provide that voltage.&lt;br /&gt;&lt;br /&gt;Here are the only input parameters to my problem:&lt;br /&gt;Input voltage: 12 VDC&lt;br /&gt;Filament voltage: 2.5 VDC (this was determined through tests)&lt;br /&gt;Filament current: 75 mA (this was determined through tests)&lt;br /&gt;&lt;br /&gt;Here is what I want to figure out:  Ohms of the resistor I need in series with the filament to achieve the 2.5 VDC across the filament.  Here is a good &lt;a href="http://www.play-hookey.com/dc_theory/series_resistors.html"&gt;source &lt;/a&gt;I used to figure out my series resistor values.&lt;br /&gt;&lt;br /&gt;E = I * R&lt;br /&gt;&lt;br /&gt;E = voltage (volts)&lt;br /&gt;I = current (amps)&lt;br /&gt;R = resistance (ohms)&lt;br /&gt;&lt;br /&gt;We know that current is constant across the series circuit, so using this equation, we find that the resistance of the filament is .&lt;br /&gt;&lt;br /&gt;3 = .075 * R&lt;br /&gt;R = 40 ohms&lt;br /&gt;&lt;br /&gt;Expanding our equation, we can say that:&lt;br /&gt;&lt;br /&gt;E = I * (R1 + R2) where R2 is our filament resistance.  Substituting what we know, our equation looks like this:&lt;br /&gt;&lt;br /&gt;12 = .075 * (R1 + 40)&lt;br /&gt;&lt;br /&gt;solving to: R1 = 120 ohms&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3873299861723550653-3211732964717423034?l=pscmpf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pscmpf.blogspot.com/feeds/3211732964717423034/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3873299861723550653&amp;postID=3211732964717423034' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3873299861723550653/posts/default/3211732964717423034'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3873299861723550653/posts/default/3211732964717423034'/><link rel='alternate' type='text/html' href='http://pscmpf.blogspot.com/2009/06/vacuum-fluorescent-display.html' title='Vacuum Fluorescent Display'/><author><name>pscmpf</name><uri>http://www.blogger.com/profile/17183919000008793560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_IrQ3pWfzbLQ/SkT51xJWEaI/AAAAAAAAANo/bQkPD39WC7g/s72-c/Vacuum_fluorescent_1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3873299861723550653.post-7939158139485223975</id><published>2008-12-27T15:04:00.001-08:00</published><updated>2008-12-27T15:09:34.137-08:00</updated><title type='text'>Entertainment Cabinet</title><content type='html'>&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: arial;"&gt;After getting a LCD TV, we realized our over-sized entertainment cabinet needed to be replaced with a smaller and more contemporary cabinet.  We drew the cabinet on Sketchup first, then created the cabinet using a construction technique using lamination.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a style="font-family: arial;" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_IrQ3pWfzbLQ/SVa1bommw6I/AAAAAAAAANI/SdZHsWhfZG8/s1600-h/TV+Stand+Sketchup.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 247px;" src="http://1.bp.blogspot.com/_IrQ3pWfzbLQ/SVa1bommw6I/AAAAAAAAANI/SdZHsWhfZG8/s320/TV+Stand+Sketchup.jpg" alt="" id="BLOGGER_PHOTO_ID_5284610699126293410" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;The sides, top and shelves are 1 1/4 thick and appear to be solid oak.  They are actually laminated as follows:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;1/4 inch plywood top&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;3/4 inch filler stock in a frame shape (pine)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;1/4 inch plywood bottom&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;Adhesive backed edge banding (heat applied)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;Here's the finished product.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a style="font-family: arial;" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_IrQ3pWfzbLQ/SVa1j_lk7JI/AAAAAAAAANQ/WfWQKpWonNs/s1600-h/TV+Stand.JPG"&gt;&lt;img style="cursor: pointer; width: 240px; height: 320px;" src="http://4.bp.blogspot.com/_IrQ3pWfzbLQ/SVa1j_lk7JI/AAAAAAAAANQ/WfWQKpWonNs/s320/TV+Stand.JPG" alt="" id="BLOGGER_PHOTO_ID_5284610842734947474" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3873299861723550653-7939158139485223975?l=pscmpf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pscmpf.blogspot.com/feeds/7939158139485223975/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3873299861723550653&amp;postID=7939158139485223975' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3873299861723550653/posts/default/7939158139485223975'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3873299861723550653/posts/default/7939158139485223975'/><link rel='alternate' type='text/html' href='http://pscmpf.blogspot.com/2008/12/entertainment-cabinet.html' title='Entertainment Cabinet'/><author><name>pscmpf</name><uri>http://www.blogger.com/profile/17183919000008793560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_IrQ3pWfzbLQ/SVa1bommw6I/AAAAAAAAANI/SdZHsWhfZG8/s72-c/TV+Stand+Sketchup.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3873299861723550653.post-2451422950659447979</id><published>2008-12-27T12:14:00.000-08:00</published><updated>2008-12-27T17:03:35.254-08:00</updated><title type='text'>Arduino LM35 Sensor</title><content type='html'>&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:arial;"&gt;My son Paul and I recently finished a project using the &lt;/span&gt;&lt;a style="font-family: arial;" href="http://www.arduino.cc/"&gt;Arduino&lt;/a&gt;&lt;span style="font-family:arial;"&gt; &lt;/span&gt;&lt;a style="font-family: arial;" href="http://arduino.cc/en/Main/ArduinoBoardDiecimila"&gt;Diecimila&lt;/a&gt;&lt;span style="font-family:arial;"&gt; &lt;/span&gt;&lt;a style="font-family: arial;" href="http://en.wikipedia.org/wiki/Microcontroller"&gt;microcontroller&lt;/a&gt;&lt;span style="font-family:arial;"&gt; in conjunction with the &lt;/span&gt;&lt;a style="font-family: arial;" href="http://processing.org/"&gt;Processing&lt;/a&gt;&lt;span style="font-family:arial;"&gt; open source programming environment to monitor  temperature.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;The project contains 3 parts:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;1.  The Arduino board with sensor circuit.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;2.  The Arduino program.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;3.  The Processing program.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-family:arial;font-size:85%;"  &gt;The Arduino Board with Sensor Circuit&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;The Arduino circuit board is connected to the &lt;/span&gt;&lt;a style="font-family: arial;" href="http://www.national.com/an/AN/AN-460.pdf"&gt;LM35&lt;/a&gt;&lt;span style="font-family:arial;"&gt; Celsius Temperature sensor.  Here is a picture of the project circuit with illustrated wires connected to the temperature sensor.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a style="font-family: arial;" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_IrQ3pWfzbLQ/SVaNtYXhE6I/AAAAAAAAAMg/Y05nusxah1s/s1600-h/arduinocircuit.JPG"&gt;&lt;img style="cursor: pointer; width: 316px; height: 194px;" src="http://3.bp.blogspot.com/_IrQ3pWfzbLQ/SVaNtYXhE6I/AAAAAAAAAMg/Y05nusxah1s/s320/arduinocircuit.JPG" alt="" id="BLOGGER_PHOTO_ID_5284567023540573090" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;We used the on board power source (5v and Gnd) to power the LM35 and analog pin 0 (zero) to read the analog output from the sensor.  Here's a picture of the circuit wired on a &lt;/span&gt;&lt;a style="font-family: arial;" href="http://en.wikipedia.org/wiki/Breadboard"&gt;breadboard&lt;/a&gt;&lt;span style="font-family:arial;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a style="font-family: arial;" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_IrQ3pWfzbLQ/SVaOO5hg3gI/AAAAAAAAAMw/UN-2VLvHlGg/s1600-h/IMG_5524.JPG"&gt;&lt;img style="cursor: pointer; width: 320px; height: 240px;" src="http://4.bp.blogspot.com/_IrQ3pWfzbLQ/SVaOO5hg3gI/AAAAAAAAAMw/UN-2VLvHlGg/s320/IMG_5524.JPG" alt="" id="BLOGGER_PHOTO_ID_5284567599376555522" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;The LM35 temperature sensor's pin-out and package information is as follows:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a style="font-family: arial;" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_IrQ3pWfzbLQ/SVaSmoIn6bI/AAAAAAAAAM4/onrhZ11NaOI/s1600-h/LM35Detail.jpg"&gt;&lt;img style="cursor: pointer; width: 247px; height: 320px;" src="http://2.bp.blogspot.com/_IrQ3pWfzbLQ/SVaSmoIn6bI/AAAAAAAAAM4/onrhZ11NaOI/s320/LM35Detail.jpg" alt="" id="BLOGGER_PHOTO_ID_5284572405072128434" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-family:arial;font-size:85%;"  &gt;The Arduino Program&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;The open-source Arduino environment allows us to write code and load it onto the Arduino board's memory.  The development environment is written in Java and based on Processing, avr-gcc, and other open source software.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;The Arduino code loops every second to read output from the LM35, converting the analog output into Celsius and sending the data to the computer via a serial communication connection (USB).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Here's the code used to run the Arduino board:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;&lt;span&gt;&lt;br /&gt;//declare variables&lt;br /&gt;float tempC;&lt;br /&gt;int tempPin = 0;&lt;br /&gt;&lt;br /&gt;void setup()&lt;br /&gt;{&lt;br /&gt;Serial.begin(9600); //opens serial port, sets data rate to 9600 bps&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void loop()&lt;br /&gt;{&lt;br /&gt;tempC = analogRead(tempPin);           //read the value from the sensor&lt;br /&gt;tempC = (5.0 * tempC * 100.0)/1024.0;  //convert the analog data to temperature&lt;br /&gt;Serial.print((byte)tempC);             //send the data to the computer&lt;br /&gt;delay(1000);                           //wait one second before sending new data&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;&lt;span style="font-family:arial;"&gt;The Processing Program&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;The software client portion of this project runs on a PC and is written in Processing.  Processing is a language and development environment similar to Arduino and designed for creating visual effects programs.  We used Processing to create a small client that can read the serial data from the Arduino board and display the temperature on a slider and in both Celsius and Fahrenheit. We also added a rolling 100 data point graph to display historical temperature data.  Here's a screen shot of the Processing application:&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_IrQ3pWfzbLQ/SVbP9Bkdk3I/AAAAAAAAANg/i3C9eYxRyXc/s1600-h/screenshot2.jpg"&gt;&lt;img style="cursor: pointer; width: 216px; height: 224px;" src="http://2.bp.blogspot.com/_IrQ3pWfzbLQ/SVbP9Bkdk3I/AAAAAAAAANg/i3C9eYxRyXc/s320/screenshot2.jpg" alt="" id="BLOGGER_PHOTO_ID_5284639860066194290" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:arial;"&gt;Here is the code used for the visual portion of the project:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;&lt;br /&gt;//import Serial communication library&lt;br /&gt;import processing.serial.*;&lt;br /&gt;&lt;br /&gt;//init variables&lt;br /&gt;Serial commPort;&lt;br /&gt;float tempC;&lt;br /&gt;float tempF;&lt;br /&gt;int yDist;&lt;br /&gt;PFont font12;&lt;br /&gt;PFont font24;&lt;br /&gt;float[] tempHistory = new float[100];&lt;br /&gt;&lt;br /&gt;void setup()&lt;br /&gt;{&lt;br /&gt;  //setup fonts for use throughout the application&lt;br /&gt;  font12 = loadFont("Verdana-12.vlw"); &lt;br /&gt;  font24 = loadFont("Verdana-24.vlw"); &lt;br /&gt;  &lt;br /&gt;  //set the size of the window&lt;br /&gt;  size(210, 200);&lt;br /&gt;  &lt;br /&gt;  //init serial communication port&lt;br /&gt;  commPort = new Serial(this, "COM10", 9600);&lt;br /&gt;  &lt;br /&gt;  //fill tempHistory with default temps&lt;br /&gt;  for(int index = 0; index&lt;100; index++)&lt;br /&gt;    tempHistory[index] = 0;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void draw()&lt;br /&gt;{&lt;br /&gt;  //get the temp from the serial port&lt;br /&gt;  while (commPort.available() &gt; 0) &lt;br /&gt;  {&lt;br /&gt;    tempC = commPort.read();&lt;br /&gt;  &lt;br /&gt;    //refresh the background to clear old data&lt;br /&gt;    background(123);&lt;br /&gt;&lt;br /&gt;    //draw the temp rectangle&lt;br /&gt;    colorMode(RGB, 160);  //use color mode sized for fading&lt;br /&gt;    stroke (0);&lt;br /&gt;    rect (49,19,22,162);&lt;br /&gt;    //fade red and blue within the rectangle&lt;br /&gt;    for (int colorIndex = 0; colorIndex &lt;= 160; colorIndex++) &lt;br /&gt;    {&lt;br /&gt;      stroke(160 - colorIndex, 0, colorIndex);&lt;br /&gt;      line(50, colorIndex + 20, 70, colorIndex + 20);&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    //draw graph&lt;br /&gt;    stroke(0);&lt;br /&gt;    fill(255,255,255);&lt;br /&gt;    rect(90,80,100,100);&lt;br /&gt;    for (int index = 0; index&lt;100; index++)&lt;br /&gt;    {  &lt;br /&gt;      if(index == 99)&lt;br /&gt;        tempHistory[index] = tempC;&lt;br /&gt;      else&lt;br /&gt;        tempHistory[index] = tempHistory[index + 1];&lt;br /&gt;      point(90 + index, 180 - tempHistory[index]); &lt;br /&gt;    }&lt;br /&gt;  &lt;br /&gt;    //write reference values&lt;br /&gt;    fill(0,0,0);&lt;br /&gt;    textFont(font12); &lt;br /&gt;    textAlign(RIGHT);&lt;br /&gt;    text("212 F", 45, 25); &lt;br /&gt;    text("32 F", 45, 187);&lt;br /&gt;  &lt;br /&gt;    //draw triangle pointer&lt;br /&gt;    yDist = int(160 - (160 * (tempC * 0.01)));&lt;br /&gt;    stroke(0);&lt;br /&gt;    triangle(75, yDist + 20, 85, yDist + 15, 85, yDist + 25);&lt;br /&gt;  &lt;br /&gt;    //write the temp in C and F&lt;br /&gt;    fill(0,0,0);&lt;br /&gt;    textFont(font24); &lt;br /&gt;    textAlign(LEFT);&lt;br /&gt;    text(str(int(tempC)) + " C", 115, 37);&lt;br /&gt;    tempF = ((tempC*9)/5) + 32;&lt;br /&gt;    text(str(int(tempF)) + " F", 115, 65);&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;End.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3873299861723550653-2451422950659447979?l=pscmpf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pscmpf.blogspot.com/feeds/2451422950659447979/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3873299861723550653&amp;postID=2451422950659447979' title='32 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3873299861723550653/posts/default/2451422950659447979'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3873299861723550653/posts/default/2451422950659447979'/><link rel='alternate' type='text/html' href='http://pscmpf.blogspot.com/2008/12/arduino-lm35-sensor.html' title='Arduino LM35 Sensor'/><author><name>pscmpf</name><uri>http://www.blogger.com/profile/17183919000008793560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_IrQ3pWfzbLQ/SVaNtYXhE6I/AAAAAAAAAMg/Y05nusxah1s/s72-c/arduinocircuit.JPG' height='72' width='72'/><thr:total>32</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3873299861723550653.post-8708851683028632069</id><published>2008-09-23T19:32:00.000-07:00</published><updated>2008-09-23T19:42:12.178-07:00</updated><title type='text'>Wooden Deck Table</title><content type='html'>&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;Our deck has a nice place for a table and chairs. This summer I finally took time to make a cedar table that fit nicely into it's awaiting spot on the deck.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_IrQ3pWfzbLQ/SNmoJqSKc2I/AAAAAAAAAIc/2ziHHGNBNi8/s1600-h/IMG_3652.JPG"&gt;&lt;span style="font-family:arial;"&gt;&lt;img id="BLOGGER_PHOTO_ID_5249411724599784290" style="CURSOR: hand" alt="" src="http://4.bp.blogspot.com/_IrQ3pWfzbLQ/SNmoJqSKc2I/AAAAAAAAAIc/2ziHHGNBNi8/s400/IMG_3652.JPG" border="0" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/_IrQ3pWfzbLQ/SNmoE-0_6XI/AAAAAAAAAIU/wYr6g1t8u0Q/s1600-h/IMG_3649.JPG"&gt;&lt;span style="font-family:arial;"&gt;&lt;img id="BLOGGER_PHOTO_ID_5249411644215257458" style="CURSOR: hand" alt="" src="http://2.bp.blogspot.com/_IrQ3pWfzbLQ/SNmoE-0_6XI/AAAAAAAAAIU/wYr6g1t8u0Q/s400/IMG_3649.JPG" border="0" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;I made the top first in the shop, rounding over the edges of each slat with the router.  In all, the top is made of 23 individual boards.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/_IrQ3pWfzbLQ/SNmn7s0dMOI/AAAAAAAAAIM/G5hVefUBp74/s1600-h/IMG_3646.JPG"&gt;&lt;span style="font-family:arial;"&gt;&lt;img id="BLOGGER_PHOTO_ID_5249411484762321122" style="CURSOR: hand" alt="" src="http://3.bp.blogspot.com/_IrQ3pWfzbLQ/SNmn7s0dMOI/AAAAAAAAAIM/G5hVefUBp74/s400/IMG_3646.JPG" border="0" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;Best of all, as you can see, it works!  :)&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;"&gt;&lt;div&gt;&lt;br /&gt;&lt;/span&gt;&lt;a href="http://1.bp.blogspot.com/_IrQ3pWfzbLQ/SNmoOvc37GI/AAAAAAAAAIk/7UV15cwtGYo/s1600-h/IMG_4668.JPG"&gt;&lt;span style="font-family:arial;"&gt;&lt;img id="BLOGGER_PHOTO_ID_5249411811886230626" style="CURSOR: hand" alt="" src="http://1.bp.blogspot.com/_IrQ3pWfzbLQ/SNmoOvc37GI/AAAAAAAAAIk/7UV15cwtGYo/s400/IMG_4668.JPG" border="0" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3873299861723550653-8708851683028632069?l=pscmpf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pscmpf.blogspot.com/feeds/8708851683028632069/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3873299861723550653&amp;postID=8708851683028632069' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3873299861723550653/posts/default/8708851683028632069'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3873299861723550653/posts/default/8708851683028632069'/><link rel='alternate' type='text/html' href='http://pscmpf.blogspot.com/2008/09/wooden-deck-table.html' title='Wooden Deck Table'/><author><name>pscmpf</name><uri>http://www.blogger.com/profile/17183919000008793560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_IrQ3pWfzbLQ/SNmoJqSKc2I/AAAAAAAAAIc/2ziHHGNBNi8/s72-c/IMG_3652.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3873299861723550653.post-5131899368873843092</id><published>2008-01-05T07:25:00.000-08:00</published><updated>2008-01-05T13:26:40.679-08:00</updated><title type='text'>Pummer</title><content type='html'>&lt;a href="http://bp3.blogger.com/_IrQ3pWfzbLQ/R3-laFQO4aI/AAAAAAAAAGo/xfmrKM_kqjc/s1600-h/Pummer+006.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5152018366240580002" style="CURSOR: hand" alt="" src="http://bp3.blogger.com/_IrQ3pWfzbLQ/R3-laFQO4aI/AAAAAAAAAGo/xfmrKM_kqjc/s320/Pummer+006.jpg" border="0" /&gt;&lt;/a&gt; &lt;a href="http://bp1.blogger.com/_IrQ3pWfzbLQ/R3-nIlQO4dI/AAAAAAAAAHA/X6me15ynel0/s1600-h/Pummer+011.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5152020264616124882" style="CURSOR: hand" alt="" src="http://bp1.blogger.com/_IrQ3pWfzbLQ/R3-nIlQO4dI/AAAAAAAAAHA/X6me15ynel0/s320/Pummer+011.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Here's some information on the pummer I built over Christmas break. I decided to take a few components and breadboard a flashing circuit. After looking on the Internet and trying some different things, I found a very low current 2 LED flashing transistor circuit. The circuit alternates the LEDs and gives a nice brisk attention grabbing look.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;a href="http://bp0.blogger.com/_IrQ3pWfzbLQ/R3-msVQO4bI/AAAAAAAAAGw/imNywkvBFWs/s1600-h/Pummer+008.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5152019779284820402" style="CURSOR: hand" alt="" src="http://bp0.blogger.com/_IrQ3pWfzbLQ/R3-msVQO4bI/AAAAAAAAAGw/imNywkvBFWs/s320/Pummer+008.jpg" border="0" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;I also created a sensor circuit using an IR detector transistor and a switching transistor that disables the flashing circuit in the presence of light. Interestingly enough, florescent light bulbs (of which are common place in our home's lamps now) don't seem to emit enough IR to keep the flashing circuit disabled. So, evenings finding this pummer flashing away even with the lights are on in our home. Just a touch of sunlight seems to shut it off.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;a href="http://bp0.blogger.com/_IrQ3pWfzbLQ/R3-m6VQO4cI/AAAAAAAAAG4/cvt61ekNTD8/s1600-h/Pummer+009.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5152020019802988994" style="CURSOR: hand" alt="" src="http://bp0.blogger.com/_IrQ3pWfzbLQ/R3-m6VQO4cI/AAAAAAAAAG4/cvt61ekNTD8/s320/Pummer+009.jpg" border="0" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;For power storage I've gone outside the bounds of true BEAMing by using two &lt;a href="http://en.wikipedia.org/wiki/NiMH"&gt;NiMH&lt;/a&gt; AAA batteries. These are charged by the 4.5 volt solar panel, so there is plenty of charging potential during the day. I use a diode to prevent leakage back through the solar panel which could prematurely discharge the batteries.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;a href="http://bp0.blogger.com/_IrQ3pWfzbLQ/R3-lSVQO4ZI/AAAAAAAAAGg/bqDOQGW8acc/s1600-h/Pummer+003.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5152018233096593810" style="CURSOR: hand" alt="" src="http://bp0.blogger.com/_IrQ3pWfzbLQ/R3-lSVQO4ZI/AAAAAAAAAGg/bqDOQGW8acc/s320/Pummer+003.jpg" border="0" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;"&gt;&lt;/span&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;The mast is a single piece of 14 guage copper wire used as the common conductor for the two LEDs. The LEDs are soldered directly to the mast and are connected through a thin 2-conductor ribbon cable back to the circuit.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;a href="http://bp2.blogger.com/_IrQ3pWfzbLQ/R3-lK1QO4YI/AAAAAAAAAGY/727Wv1T62IU/s1600-h/Pummer+002.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5152018104247574914" style="CURSOR: hand" alt="" src="http://bp2.blogger.com/_IrQ3pWfzbLQ/R3-lK1QO4YI/AAAAAAAAAGY/727Wv1T62IU/s320/Pummer+002.jpg" border="0" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;Here is a video demonstrating the flashing - sorry for the low light in the picture. Oh, yes, the spot lights in our kitchen are still the old fashion incandescent - so this demonstration worked well. :)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="355"&gt;&lt;param name="movie" value="http://www.youtube.com/v/NjWgBx7wvzM&amp;rel=1"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/NjWgBx7wvzM&amp;rel=1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3873299861723550653-5131899368873843092?l=pscmpf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pscmpf.blogspot.com/feeds/5131899368873843092/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3873299861723550653&amp;postID=5131899368873843092' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3873299861723550653/posts/default/5131899368873843092'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3873299861723550653/posts/default/5131899368873843092'/><link rel='alternate' type='text/html' href='http://pscmpf.blogspot.com/2008/01/heres-some-information-on-pummer-i.html' title='Pummer'/><author><name>pscmpf</name><uri>http://www.blogger.com/profile/17183919000008793560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_IrQ3pWfzbLQ/R3-laFQO4aI/AAAAAAAAAGo/xfmrKM_kqjc/s72-c/Pummer+006.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3873299861723550653.post-174199695129854454</id><published>2007-12-28T07:06:00.000-08:00</published><updated>2008-12-27T15:03:00.185-08:00</updated><title type='text'>BEAM Head (Version B)</title><content type='html'>&lt;span style=";font-family:arial;font-size:85%;"  &gt;I have completed (with the help of my friend Matt) the mechanical platform for my BEAM Head (Version B). It was milled by Matt on a &lt;a href="http://www.hurco.com/Hurco/English/"&gt;Hurco CNC Milling Machine&lt;/a&gt;. I showed up with my two gear motors and some ideas and Matt really took it from there. Here are pictures of what was created.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bp2.blogger.com/_IrQ3pWfzbLQ/R5gA4OM8NEI/AAAAAAAAAHQ/eb5xCthWMJs/s1600-h/Picture+005.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5158874339037951042" style="" alt="" src="http://bp2.blogger.com/_IrQ3pWfzbLQ/R5gA4OM8NEI/AAAAAAAAAHQ/eb5xCthWMJs/s320/Picture+005.jpg" border="0" /&gt;&lt;/a&gt; &lt;a href="http://bp1.blogger.com/_IrQ3pWfzbLQ/R5gBB-M8NFI/AAAAAAAAAHY/MLYKdr8JIWU/s1600-h/Picture+002.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5158874506541675602" style="" alt="" src="http://bp1.blogger.com/_IrQ3pWfzbLQ/R5gBB-M8NFI/AAAAAAAAAHY/MLYKdr8JIWU/s320/Picture+002.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style=";font-family:arial;font-size:85%;"  &gt;&lt;br /&gt;The motor that I am using seems to be widely available. &lt;/span&gt;&lt;span style=";font-family:arial;font-size:85%;"  &gt;I got mine from &lt;/span&gt;&lt;span style=";font-family:arial;font-size:85%;"  &gt;BGMicro&lt;/span&gt;&lt;span style=";font-family:arial;font-size:85%;"  &gt;.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;The following driver and sensor circuit has been breadboarded - it contains 3 parts:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;signal sensing circuit&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;signal inverter&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;h-bridge&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="font-size:85%;"&gt;The final product is shown in this video.  It is fully autonomous and tracks the brightest object in the room.  If the light source contains enough energy, it will charge the onboard batteries.  There is a small on-off switch to shut down the system, still allowing charging.&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/uc1oPShY3XQ&amp;amp;hl=en&amp;amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/uc1oPShY3XQ&amp;amp;hl=en&amp;amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;p&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3873299861723550653-174199695129854454?l=pscmpf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pscmpf.blogspot.com/feeds/174199695129854454/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3873299861723550653&amp;postID=174199695129854454' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3873299861723550653/posts/default/174199695129854454'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3873299861723550653/posts/default/174199695129854454'/><link rel='alternate' type='text/html' href='http://pscmpf.blogspot.com/2007/12/beam-head-version-b.html' title='BEAM Head (Version B)'/><author><name>pscmpf</name><uri>http://www.blogger.com/profile/17183919000008793560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_IrQ3pWfzbLQ/R5gA4OM8NEI/AAAAAAAAAHQ/eb5xCthWMJs/s72-c/Picture+005.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3873299861723550653.post-26699968921146896</id><published>2007-12-24T08:53:00.001-08:00</published><updated>2007-12-24T09:04:02.861-08:00</updated><title type='text'>Chairs</title><content type='html'>&lt;a href="http://bp2.blogger.com/_IrQ3pWfzbLQ/R2_ks1QO4HI/AAAAAAAAAEQ/-vOQAmVkpE4/s1600-h/IMG_2773.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5147584357968306290" style="CURSOR: hand" alt="" src="http://bp2.blogger.com/_IrQ3pWfzbLQ/R2_ks1QO4HI/AAAAAAAAAEQ/-vOQAmVkpE4/s320/IMG_2773.JPG" border="0" /&gt;&lt;/a&gt;  &lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;I have enjoyed working with &lt;a href="http://www.thebrighterdaygroup.com/"&gt;The Brighter Day Group &lt;/a&gt;for the last two years making chairs. The Brighter Day Group works with volunteers to make furniture for the less fortunate for free. I enjoy making chairs and have done my part to contribute to their effort to make dining room sets.  My friend Donny (the founder of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;TBDG&lt;/span&gt;), has worked with me on much of the fabrication, assembly and finishing.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;&lt;/span&gt; &lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;&lt;a href="http://bp1.blogger.com/_IrQ3pWfzbLQ/R2_k5lQO4LI/AAAAAAAAAEw/L2D9QgRwX8c/s1600-h/IMG_2439.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5147584577011638450" style="CURSOR: hand" alt="" src="http://bp1.blogger.com/_IrQ3pWfzbLQ/R2_k5lQO4LI/AAAAAAAAAEw/L2D9QgRwX8c/s320/IMG_2439.JPG" border="0" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;&lt;/span&gt; &lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;All the construction is mortise and tenon and is of the highest heirloom quality.  Above a form is used to make curved backs for the mission style chairs shown in the first picture.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;/span&gt; &lt;/div&gt;&lt;div&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;a href="http://bp2.blogger.com/_IrQ3pWfzbLQ/R2_kw1QO4II/AAAAAAAAAEY/A--DQMDmsLQ/s1600-h/IMG_0528.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5147584426687783042" style="CURSOR: hand" alt="" src="http://bp2.blogger.com/_IrQ3pWfzbLQ/R2_kw1QO4II/AAAAAAAAAEY/A--DQMDmsLQ/s320/IMG_0528.JPG" border="0" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;/span&gt; &lt;/div&gt;&lt;div&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;A closeup of the front leg joining the cross members of the seat.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;/span&gt; &lt;/div&gt;&lt;div&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;a href="http://bp0.blogger.com/_IrQ3pWfzbLQ/R2_kzVQO4JI/AAAAAAAAAEg/8Pxj42SRcB4/s1600-h/IMG_0665.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5147584469637456018" style="CURSOR: hand" alt="" src="http://bp0.blogger.com/_IrQ3pWfzbLQ/R2_kzVQO4JI/AAAAAAAAAEg/8Pxj42SRcB4/s320/IMG_0665.JPG" border="0" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;/span&gt; &lt;/div&gt;&lt;div&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;A chair waiting to be finished with the Java colored stain and clear &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;polyurethane&lt;/span&gt; finish.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;/span&gt; &lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;&lt;a href="http://bp2.blogger.com/_IrQ3pWfzbLQ/R2_k11QO4KI/AAAAAAAAAEo/-kC-FjtVaaQ/s1600-h/IMG_1160.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5147584512587128994" style="CURSOR: hand" alt="" src="http://bp2.blogger.com/_IrQ3pWfzbLQ/R2_k11QO4KI/AAAAAAAAAEo/-kC-FjtVaaQ/s320/IMG_1160.JPG" border="0" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;/span&gt; &lt;/div&gt;&lt;div&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;Here is a closeup of the back of the chair and some chairs in my garage &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;receiving&lt;/span&gt; more &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_3"&gt;polyurethane&lt;/span&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;/span&gt; &lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;&lt;a href="http://bp0.blogger.com/_IrQ3pWfzbLQ/R2_k8VQO4MI/AAAAAAAAAE4/4UpYfS7Vqro/s1600-h/IMG_2742.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5147584624256278722" style="CURSOR: hand" alt="" src="http://bp0.blogger.com/_IrQ3pWfzbLQ/R2_k8VQO4MI/AAAAAAAAAE4/4UpYfS7Vqro/s320/IMG_2742.JPG" border="0" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3873299861723550653-26699968921146896?l=pscmpf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pscmpf.blogspot.com/feeds/26699968921146896/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3873299861723550653&amp;postID=26699968921146896' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3873299861723550653/posts/default/26699968921146896'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3873299861723550653/posts/default/26699968921146896'/><link rel='alternate' type='text/html' href='http://pscmpf.blogspot.com/2007/12/chairs.html' title='Chairs'/><author><name>pscmpf</name><uri>http://www.blogger.com/profile/17183919000008793560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_IrQ3pWfzbLQ/R2_ks1QO4HI/AAAAAAAAAEQ/-vOQAmVkpE4/s72-c/IMG_2773.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3873299861723550653.post-8275858597011404490</id><published>2007-12-24T08:10:00.000-08:00</published><updated>2007-12-24T08:42:53.278-08:00</updated><title type='text'>PIC Micro Programmer</title><content type='html'>&lt;span style="font-family:arial;font-size:85%;"&gt;The idea of programming small micro-controllers has been an interest of mine for a long time. &lt;a href="http://www.microchip.com/"&gt;Microchip &lt;/a&gt;makes a number of small &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;micro-controllers&lt;/span&gt;, and after some &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;studying&lt;/span&gt; on the topic, my target chip had become the 16F628A. This chip has 8 I/O pins, plenty of program memory for a guy like me and is in a small package (18-DIP). &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bp0.blogger.com/_IrQ3pWfzbLQ/R2_daVQO4EI/AAAAAAAAAD4/uWz4ybqghmY/s1600-h/topview.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5147576343559331906" style="CURSOR: hand" alt="" src="http://bp0.blogger.com/_IrQ3pWfzbLQ/R2_daVQO4EI/AAAAAAAAAD4/uWz4ybqghmY/s320/topview.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;After doing some research and a failed attempt to make a programmer kit that came with a book I purchased from Barnes and Noble, I decided it was time to make my own. I found a simple programmer developed by Byron Jeff - the &lt;a href="http://www.finitesite.com/d3jsys/"&gt;Trivial Low Voltage Programmer &lt;/a&gt;(&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;TLVP&lt;/span&gt;). Here is my version of that programmer (which works well).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bp2.blogger.com/_IrQ3pWfzbLQ/R2_gI1QO4FI/AAAAAAAAAEA/OUJGGtMV4o4/s1600-h/powerview.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5147579341446504530" style="CURSOR: hand" alt="" src="http://bp2.blogger.com/_IrQ3pWfzbLQ/R2_gI1QO4FI/AAAAAAAAAEA/OUJGGtMV4o4/s320/powerview.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;The programmer uses a 9V batter and a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;LM&lt;/span&gt;7805 voltage regulator as a supply power to the &lt;a href="http://www.fairchildsemi.com/pf/MM/MM74HCT573.html"&gt;74&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;HCT&lt;/span&gt;573 Octal D-Type Latch&lt;/a&gt;. This chip is used to buffer the data from the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;PC's&lt;/span&gt; parallel port to the target micro-controller chip. I put the components on a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;perf&lt;/span&gt;-board and added a switch to turn the power on and off.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bp2.blogger.com/_IrQ3pWfzbLQ/R2_gX1QO4GI/AAAAAAAAAEI/eX9gMhwT86M/s1600-h/frontview.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5147579599144542306" style="CURSOR: hand" alt="" src="http://bp2.blogger.com/_IrQ3pWfzbLQ/R2_gX1QO4GI/AAAAAAAAAEI/eX9gMhwT86M/s320/frontview.jpg" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3873299861723550653-8275858597011404490?l=pscmpf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pscmpf.blogspot.com/feeds/8275858597011404490/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3873299861723550653&amp;postID=8275858597011404490' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3873299861723550653/posts/default/8275858597011404490'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3873299861723550653/posts/default/8275858597011404490'/><link rel='alternate' type='text/html' href='http://pscmpf.blogspot.com/2007/12/pic-micro-programmer.html' title='PIC Micro Programmer'/><author><name>pscmpf</name><uri>http://www.blogger.com/profile/17183919000008793560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_IrQ3pWfzbLQ/R2_daVQO4EI/AAAAAAAAAD4/uWz4ybqghmY/s72-c/topview.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3873299861723550653.post-1640830564843418318</id><published>2007-12-23T18:08:00.000-08:00</published><updated>2007-12-23T19:00:21.490-08:00</updated><title type='text'>Pinewood Derby Car</title><content type='html'>&lt;a href="http://bp3.blogger.com/_IrQ3pWfzbLQ/R28ZwFQO4CI/AAAAAAAAADo/3QVSMBKvPrc/s1600-h/IMG_1369.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5147361212942442530" style="CURSOR: hand" alt="" src="http://bp3.blogger.com/_IrQ3pWfzbLQ/R28ZwFQO4CI/AAAAAAAAADo/3QVSMBKvPrc/s320/IMG_1369.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;My son attends &lt;a href="http://www.awana.org/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;AWANA&lt;/span&gt; &lt;/a&gt;at our &lt;a href="http://www.valleychurch.info/"&gt;church&lt;/a&gt;. Each year the kids have a &lt;a href="http://en.wikipedia.org/wiki/Pinewood_derby"&gt;pinewood derby &lt;/a&gt;race where they compete for both the fastest race times and the best design. My son and I teamed up (as is encouraged by the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;AWANA&lt;/span&gt; organization *grin*). After discussing different options, he decided he wanted a sleek racing coup with headlights and tail lights.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a href="http://bp1.blogger.com/_IrQ3pWfzbLQ/R28ZylQO4DI/AAAAAAAAADw/jFlCv-qGE8I/s1600-h/IMG_1370.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5147361255892115506" style="CURSOR: hand" alt="" src="http://bp1.blogger.com/_IrQ3pWfzbLQ/R28ZylQO4DI/AAAAAAAAADw/jFlCv-qGE8I/s320/IMG_1370.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;We did some sketching and came up with a fast flat body, a canopy (made from the side of a liquid soap &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;dispenser&lt;/span&gt;), and some headlights and &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_3"&gt;taillights&lt;/span&gt; made from &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;LEDs&lt;/span&gt;. The two AA batteries are inset and housed under the canopy.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;a href="http://bp1.blogger.com/_IrQ3pWfzbLQ/R28ZmlQO3_I/AAAAAAAAADQ/9EOFbmOyh_o/s1600-h/IMG_1192.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5147361049733685234" style="CURSOR: hand" alt="" src="http://bp1.blogger.com/_IrQ3pWfzbLQ/R28ZmlQO3_I/AAAAAAAAADQ/9EOFbmOyh_o/s320/IMG_1192.JPG" border="0" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://bp3.blogger.com/_IrQ3pWfzbLQ/R28ZkFQO3-I/AAAAAAAAADI/chVv4rIzkDI/s1600-h/IMG_1189.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5147361006784012258" style="CURSOR: hand" alt="" src="http://bp3.blogger.com/_IrQ3pWfzbLQ/R28ZkFQO3-I/AAAAAAAAADI/chVv4rIzkDI/s320/IMG_1189.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;His car performed fairly well in the race and much to his joy it placed 1st in the Design Competition.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a href="http://bp1.blogger.com/_IrQ3pWfzbLQ/R28ZplQO4AI/AAAAAAAAADY/Q1xMOtVrEK4/s1600-h/IMG_1341.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5147361101273292802" style="CURSOR: hand" alt="" src="http://bp1.blogger.com/_IrQ3pWfzbLQ/R28ZplQO4AI/AAAAAAAAADY/Q1xMOtVrEK4/s320/IMG_1341.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bp2.blogger.com/_IrQ3pWfzbLQ/R28Zs1QO4BI/AAAAAAAAADg/NXoT1Q7Qqko/s1600-h/IMG_1368.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5147361157107867666" style="CURSOR: hand" alt="" src="http://bp2.blogger.com/_IrQ3pWfzbLQ/R28Zs1QO4BI/AAAAAAAAADg/NXoT1Q7Qqko/s320/IMG_1368.JPG" border="0" /&gt;&lt;/a&gt; &lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;A very proud Paul with his trophy and winning car!&lt;/span&gt; &lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3873299861723550653-1640830564843418318?l=pscmpf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pscmpf.blogspot.com/feeds/1640830564843418318/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3873299861723550653&amp;postID=1640830564843418318' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3873299861723550653/posts/default/1640830564843418318'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3873299861723550653/posts/default/1640830564843418318'/><link rel='alternate' type='text/html' href='http://pscmpf.blogspot.com/2007/12/pinewood-derby-car.html' title='Pinewood Derby Car'/><author><name>pscmpf</name><uri>http://www.blogger.com/profile/17183919000008793560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_IrQ3pWfzbLQ/R28ZwFQO4CI/AAAAAAAAADo/3QVSMBKvPrc/s72-c/IMG_1369.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3873299861723550653.post-526219691355974743</id><published>2007-12-23T17:43:00.000-08:00</published><updated>2007-12-23T17:55:32.291-08:00</updated><title type='text'>Floor Lamp</title><content type='html'>&lt;a href="http://bp2.blogger.com/_IrQ3pWfzbLQ/R28Qr1QO39I/AAAAAAAAADA/HWu_474aITQ/s1600-h/IMG_2882.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5147351244323348434" style="CURSOR: hand" alt="" src="http://bp2.blogger.com/_IrQ3pWfzbLQ/R28Qr1QO39I/AAAAAAAAADA/HWu_474aITQ/s320/IMG_2882.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;color:#000000;"&gt;My father-in-law could use a new floor lamp for Christmas, so with some persuasion from my wife, I decided to make one for him. Earlier in the year he had given to me (as a birthday gift) some rough cut hickory. This summer I planed it down and I was just waiting for the right project. After buying a lamp shade at Target and some electrical supplies from Lowe's, I had everything I needed to build the lamp.&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;a href="http://bp1.blogger.com/_IrQ3pWfzbLQ/R28QmlQO37I/AAAAAAAAACw/pOpbt9drB6w/s1600-h/IMG_2865.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5147351154129035186" style="CURSOR: hand" alt="" src="http://bp1.blogger.com/_IrQ3pWfzbLQ/R28QmlQO37I/AAAAAAAAACw/pOpbt9drB6w/s320/IMG_2865.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;It has a wooden handle connected to the pull chain of the light fixture to make turning the light on a bit easier and a little more unique.&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;a href="http://bp0.blogger.com/_IrQ3pWfzbLQ/R28QpVQO38I/AAAAAAAAAC4/n5g8J42cJ1Q/s1600-h/IMG_2880.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5147351201373675458" style="CURSOR: hand" alt="" src="http://bp0.blogger.com/_IrQ3pWfzbLQ/R28QpVQO38I/AAAAAAAAAC4/n5g8J42cJ1Q/s320/IMG_2880.JPG" border="0" /&gt;&lt;/a&gt; &lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3873299861723550653-526219691355974743?l=pscmpf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pscmpf.blogspot.com/feeds/526219691355974743/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3873299861723550653&amp;postID=526219691355974743' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3873299861723550653/posts/default/526219691355974743'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3873299861723550653/posts/default/526219691355974743'/><link rel='alternate' type='text/html' href='http://pscmpf.blogspot.com/2007/12/floor-lamp.html' title='Floor Lamp'/><author><name>pscmpf</name><uri>http://www.blogger.com/profile/17183919000008793560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_IrQ3pWfzbLQ/R28Qr1QO39I/AAAAAAAAADA/HWu_474aITQ/s72-c/IMG_2882.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3873299861723550653.post-6622183498046911410</id><published>2007-12-23T17:17:00.000-08:00</published><updated>2008-01-17T11:02:41.145-08:00</updated><title type='text'>Sump Pump Monitor</title><content type='html'>&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;We have have an extremely active sump system. At times during strong rainfall, our pump may actually stay on as it pumps the water out as fast as it comes into our sump pit. I found myself forever going down to the basement to look into the pit and see how deep the water was. Also, after installing a backup pump (yes, I learned the need for that the hard way), I also was forever checking to see which pump was running.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;Eventually after growing tired of peeking about my sump pit, I decided to create a monitor that would both determining the depth of the water in the sump pit and indicate which (if either) pump was running. My first challenge was to create the depth sensor.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://bp0.blogger.com/_IrQ3pWfzbLQ/R28LGVQO35I/AAAAAAAAACg/anSjfeyB95o/s1600-h/IMG_0541.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5147345102520115090" style="CURSOR: hand" alt="" src="http://bp0.blogger.com/_IrQ3pWfzbLQ/R28LGVQO35I/AAAAAAAAACg/anSjfeyB95o/s320/IMG_0541.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bp0.blogger.com/_IrQ3pWfzbLQ/R28LDVQO34I/AAAAAAAAACY/oBdhSwpkMiA/s1600-h/IMG_0537.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5147345050980507522" style="CURSOR: hand" alt="" src="http://bp0.blogger.com/_IrQ3pWfzbLQ/R28LDVQO34I/AAAAAAAAACY/oBdhSwpkMiA/s320/IMG_0537.JPG" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;I used a capped piece of PVC pipe with stainless steel bolts spaced every 2 inches. I then wired those from the inside of the pipe to a DB-9 connector.&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;a href="http://bp1.blogger.com/_IrQ3pWfzbLQ/R28LLlQO36I/AAAAAAAAACo/Lbqu556qHtw/s1600-h/IMG_0545.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5147345192714428322" style="CURSOR: hand" alt="" src="http://bp1.blogger.com/_IrQ3pWfzbLQ/R28LLlQO36I/AAAAAAAAACo/Lbqu556qHtw/s320/IMG_0545.JPG" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Transistors amplify the signal from each sensor in the pipe. Those signals are then used to light LEDs on a monitoring panel.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;/span&gt;&lt;a href="http://bp3.blogger.com/_IrQ3pWfzbLQ/R4-mFFQO4eI/AAAAAAAAAHI/H0NESRgTo0w/s1600-h/depth+sensor.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5156522704602325474" style="CURSOR: hand" alt="" src="http://bp3.blogger.com/_IrQ3pWfzbLQ/R4-mFFQO4eI/AAAAAAAAAHI/H0NESRgTo0w/s320/depth+sensor.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;I also built a current sensor by wrapping 12 gauge shielded wire around a 1/2 steel core (I cute the head of a lag bolt). Then, I attached a small &lt;a href="http://en.wikipedia.org/wiki/Hall_effect"&gt;hall effect device &lt;/a&gt;to the end of the core to sense a magnetic field. Each time a pump draws current through the coil, it produces a 60Hz magnetic field that is sensed by the hall effect device. That signal is then filtered using a filter capacitor and then used to light an LED. Here is a video of the prototype current sensor.&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;object height="355" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/7WYsr6_T_jw&amp;amp;rel=1"&gt;&lt;param name="wmode" value="transparent"&gt;&lt;br /&gt;&lt;embed src="http://www.youtube.com/v/7WYsr6_T_jw&amp;rel=1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Here is a video of the finished monitor panel working. It is both monitoring the depth of the sump pit and also monitoring the pumps.&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;object height="355" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/fPAJ-huvtuA&amp;amp;rel=1"&gt;&lt;param name="wmode" value="transparent"&gt;&lt;br /&gt;&lt;embed src="http://www.youtube.com/v/fPAJ-huvtuA&amp;rel=1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3873299861723550653-6622183498046911410?l=pscmpf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pscmpf.blogspot.com/feeds/6622183498046911410/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3873299861723550653&amp;postID=6622183498046911410' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3873299861723550653/posts/default/6622183498046911410'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3873299861723550653/posts/default/6622183498046911410'/><link rel='alternate' type='text/html' href='http://pscmpf.blogspot.com/2007/12/sump-pump-monitor.html' title='Sump Pump Monitor'/><author><name>pscmpf</name><uri>http://www.blogger.com/profile/17183919000008793560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_IrQ3pWfzbLQ/R28LGVQO35I/AAAAAAAAACg/anSjfeyB95o/s72-c/IMG_0541.JPG' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3873299861723550653.post-8105685055162598348</id><published>2007-12-23T14:48:00.000-08:00</published><updated>2007-12-23T14:55:36.335-08:00</updated><title type='text'>Curved Ceiling</title><content type='html'>&lt;a href="http://bp3.blogger.com/_IrQ3pWfzbLQ/R27mxVQO32I/AAAAAAAAACE/0trMnyxLS9I/s1600-h/IMG_2658.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5147305159324262242" style="CURSOR: hand" alt="" src="http://bp3.blogger.com/_IrQ3pWfzbLQ/R27mxVQO32I/AAAAAAAAACE/0trMnyxLS9I/s320/IMG_2658.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;After deciding to finish a room in our basement, we thought it would be an opportunity to be creative and make a curved ceiling. We created a form in the cieling that looked a bit like an upside down boat, then applied plywood to it to create the curved surface.&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;a href="http://bp1.blogger.com/_IrQ3pWfzbLQ/R27m71QO33I/AAAAAAAAACM/O590_BnP63c/s1600-h/IMG_0624.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5147305339712888690" style="CURSOR: hand" alt="" src="http://bp1.blogger.com/_IrQ3pWfzbLQ/R27m71QO33I/AAAAAAAAACM/O590_BnP63c/s320/IMG_0624.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;Some crown molding and rope lights created a nice look, espcially at night. The room is 16x11 and is framed with steel studs, drywall, oak trim to match the rest of the house and modular carpet in case we ever have water problems. Everything turned out well and we've been pleased with the results.&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;a href="http://bp3.blogger.com/_IrQ3pWfzbLQ/R27mlVQO30I/AAAAAAAAAB0/m0r7q-kQqmE/s1600-h/IMG_2655.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5147304953165832002" style="CURSOR: hand" alt="" src="http://bp3.blogger.com/_IrQ3pWfzbLQ/R27mlVQO30I/AAAAAAAAAB0/m0r7q-kQqmE/s320/IMG_2655.JPG" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3873299861723550653-8105685055162598348?l=pscmpf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pscmpf.blogspot.com/feeds/8105685055162598348/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3873299861723550653&amp;postID=8105685055162598348' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3873299861723550653/posts/default/8105685055162598348'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3873299861723550653/posts/default/8105685055162598348'/><link rel='alternate' type='text/html' href='http://pscmpf.blogspot.com/2007/12/after-deciding-to-finish-room-in-our.html' title='Curved Ceiling'/><author><name>pscmpf</name><uri>http://www.blogger.com/profile/17183919000008793560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_IrQ3pWfzbLQ/R27mxVQO32I/AAAAAAAAACE/0trMnyxLS9I/s72-c/IMG_2658.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3873299861723550653.post-5899368915526341895</id><published>2007-12-23T14:15:00.000-08:00</published><updated>2007-12-23T17:13:47.538-08:00</updated><title type='text'>Automated Nightstand</title><content type='html'>&lt;span style="font-family:arial;font-size:85%;"&gt;This was an attempt to &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;declutter&lt;/span&gt; our bedroom. I had grown weary of the clutter next to the bed and decided to make a nightstand that matched the &lt;a href="http://www.alf.it/start.html"&gt;ALF Group&lt;/a&gt; bedroom set we purchased from Italy. In this hybrid project, I combined woodworking, mechanics and electronics to create a nightstand that hid away our clock, &lt;a href="http://en.wikipedia.org/wiki/X10_%28industry_standard%29"&gt;X10 light control &lt;/a&gt;and any other clutter that potentially could pile up.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;Microswitches&lt;/span&gt; inside the front panel of the nightstand control the raising and lowering of the hidden compartment. A relay is used to electronically lock into the raise and lower modes even after the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;microswitches&lt;/span&gt; are released. The top is mounted in a break-away fashion for safety (we don't want anyone to lose a finger). The &lt;a href="http://en.wikipedia.org/wiki/Linear_actuator"&gt;linear actuator &lt;/a&gt;installed in the rear of the nightstand raises the top with its overrated 500 lbs capacity. The linear actuator uses internal &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;microswitches&lt;/span&gt; to control the start and stop positions of the top. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;Here are some videos of the nightstand during construction and the finished product.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;object height="355" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/hdmX8Ja9tik&amp;amp;rel=1"&gt;&lt;param name="wmode" value="transparent"&gt;&lt;embed src="http://www.youtube.com/v/hdmX8Ja9tik&amp;rel=1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;object height="355" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/0-dHThSDEnU&amp;amp;rel=1"&gt;&lt;param name="wmode" value="transparent"&gt;&lt;embed src="http://www.youtube.com/v/0-dHThSDEnU&amp;rel=1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3873299861723550653-5899368915526341895?l=pscmpf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pscmpf.blogspot.com/feeds/5899368915526341895/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3873299861723550653&amp;postID=5899368915526341895' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3873299861723550653/posts/default/5899368915526341895'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3873299861723550653/posts/default/5899368915526341895'/><link rel='alternate' type='text/html' href='http://pscmpf.blogspot.com/2007/12/automated-nightstand.html' title='Automated Nightstand'/><author><name>pscmpf</name><uri>http://www.blogger.com/profile/17183919000008793560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3873299861723550653.post-3139471240587776830</id><published>2007-12-23T13:48:00.000-08:00</published><updated>2008-01-05T07:18:28.648-08:00</updated><title type='text'>BEAM Phototrope</title><content type='html'>&lt;div&gt;&lt;a href="http://bp0.blogger.com/_IrQ3pWfzbLQ/R27cclQO3yI/AAAAAAAAABk/Nt1NOaEp1v0/s1600-h/IMG_0914.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5147293807725698850" style="CURSOR: hand" alt="" src="http://bp0.blogger.com/_IrQ3pWfzbLQ/R27cclQO3yI/AAAAAAAAABk/Nt1NOaEp1v0/s320/IMG_0914.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;My second effort in BEAM Robotics has been the creation of a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Phototrope&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;Photophile&lt;/span&gt;. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;Phototropes&lt;/span&gt; are small BEAM-bots that respond to light and are mobile. This &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;phototrope&lt;/span&gt; is attracted to light, so it is a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;photophile&lt;/span&gt; (verses a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;photophobe&lt;/span&gt; which fears light).&lt;/span&gt; &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;/span&gt;&lt;a href="http://bp0.blogger.com/_IrQ3pWfzbLQ/R27chlQO3zI/AAAAAAAAABs/lh0s4-ISz74/s1600-h/IMG_0918.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5147293893625044786" style="CURSOR: hand" alt="" src="http://bp0.blogger.com/_IrQ3pWfzbLQ/R27chlQO3zI/AAAAAAAAABs/lh0s4-ISz74/s320/IMG_0918.JPG" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;This &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;photophile&lt;/span&gt; uses a two &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;photopopper&lt;/span&gt; circuits. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;Photopoppers&lt;/span&gt; are a store and release circuit that uses a capacitor to collect electricity gathered by the solar panel(s). A flashing LED (FLED) is used to determine the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_9"&gt;threshold&lt;/span&gt; at which the capacitor is discharged into the motor(s). &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;FLEDs&lt;/span&gt; have a unique attribute in that they function less &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_11"&gt;efficiently&lt;/span&gt; when exposed to light, allowing the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;photophile&lt;/span&gt; to respond directionally to light.&lt;/span&gt; &lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;a href="http://bp0.blogger.com/_IrQ3pWfzbLQ/R3-flVQO4XI/AAAAAAAAAGQ/JKLhBmcNymk/s1600-h/phototrope.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5152011962444341618" style="CURSOR: hand" alt="" src="http://bp0.blogger.com/_IrQ3pWfzbLQ/R3-flVQO4XI/AAAAAAAAAGQ/JKLhBmcNymk/s320/phototrope.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span style="font-family:Georgia;font-size:100%;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;a href="http://bp0.blogger.com/_IrQ3pWfzbLQ/R27cZlQO3xI/AAAAAAAAABc/TmIsNcIlLIs/s1600-h/IMG_0913.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5147293756186091282" style="CURSOR: hand" alt="" src="http://bp0.blogger.com/_IrQ3pWfzbLQ/R27cZlQO3xI/AAAAAAAAABc/TmIsNcIlLIs/s320/IMG_0913.JPG" border="0" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Here's a video of the little guy working his way across the tile entry in our house. This video is taking in late December - so the sun's angle is at it's lowest. I've bent his bottom down a bit to give him a better angle of attack towards the sun - it helps a bit but his is a somewhat slow mover (as you will see).&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;object height="355" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/74v4bDYJSrQ&amp;amp;rel=1"&gt;&lt;param name="wmode" value="transparent"&gt;&lt;br /&gt;&lt;embed src="http://www.youtube.com/v/74v4bDYJSrQ&amp;rel=1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3873299861723550653-3139471240587776830?l=pscmpf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pscmpf.blogspot.com/feeds/3139471240587776830/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3873299861723550653&amp;postID=3139471240587776830' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3873299861723550653/posts/default/3139471240587776830'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3873299861723550653/posts/default/3139471240587776830'/><link rel='alternate' type='text/html' href='http://pscmpf.blogspot.com/2007/12/my-second-effort-in-beam-robotics-has.html' title='BEAM Phototrope'/><author><name>pscmpf</name><uri>http://www.blogger.com/profile/17183919000008793560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_IrQ3pWfzbLQ/R27cclQO3yI/AAAAAAAAABk/Nt1NOaEp1v0/s72-c/IMG_0914.JPG' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3873299861723550653.post-8002170244110838314</id><published>2007-12-23T07:13:00.000-08:00</published><updated>2008-01-05T06:50:12.660-08:00</updated><title type='text'>BEAM Head (version A)</title><content type='html'>&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;I have been captivated by Mark Tilden's BEAM Robotics cult-like following and decided to join the many people that have built a BEAM-bot. My first BEAM project was a 1D Squirmer Head. For those of you that are not familiar with the BEAM movement, that may seem to be odd terminology. &lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Here are some links to help you learn more about BEAMing (if your interested): &lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/BEAM"&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Wikipedia BEAM Robotics&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;font-size:85%;"&gt; &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Mark_Tilden"&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Wikipedia Mark Tilden&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;font-size:85%;"&gt; &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.beam-wiki.org/wiki/index.php?title=Main_Page"&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;BEAM Wiki&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://smfr.org/robots/"&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Simon Fraser’s Inspiring BEAM Collection&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;font-size:85%;"&gt; &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Here are some pictures of my Squirmer Head: &lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;a href="http://bp0.blogger.com/_IrQ3pWfzbLQ/R26iMlQO3rI/AAAAAAAAAAs/cwI5nyg0zwQ/s1600-h/IMG_2717.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5147229761173380786" style="CURSOR: hand" alt="" src="http://bp0.blogger.com/_IrQ3pWfzbLQ/R26iMlQO3rI/AAAAAAAAAAs/cwI5nyg0zwQ/s320/IMG_2717.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Like all Squirmers, this BEAM-bot is stationary. The head is solar powered and requires no batteries. It's goal in life is to look for the Sun and track it. It has three basic parts: &lt;/span&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Motor that drives the head movement (this is the M (mechanical) of BEAM). &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;&lt;a href="http://www.solarbotics.net/library/circuits/pix/Tilden_Pos_Hbridge.gif"&gt;Tilden H-Bridge &lt;/a&gt;motor controller that changes signals into directional movement (this is the E (electronic) of BEAM). &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Solar panel and light sensors to power from and look for light (this is the B (biological) of BEAM). &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;&lt;a href="http://bp1.blogger.com/_IrQ3pWfzbLQ/R3PeWlQO4PI/AAAAAAAAAFQ/W9OumWfu58U/s1600-h/circuit.jpg"&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;a href="http://bp3.blogger.com/_IrQ3pWfzbLQ/R3Rla1QO4TI/AAAAAAAAAFw/OGF7nZ-8GgI/s1600-h/circuit.jpg"&gt;&lt;/a&gt;&lt;a href="http://bp1.blogger.com/_IrQ3pWfzbLQ/R3-YylQO4WI/AAAAAAAAAGI/KVWLRteWVrk/s1600-h/BeamHead.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5152004493496213858" style="CURSOR: hand" alt="" src="http://bp1.blogger.com/_IrQ3pWfzbLQ/R3-YylQO4WI/AAAAAAAAAGI/KVWLRteWVrk/s320/BeamHead.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Here is the circuit I used to build my version of the head. The design is actually quite inefficient - this is not a smoke-less H-Bridge design, so if both photo transistors allow current to pass through them, the circuit is effectively shorted out through both sides of the H-Bridge. I have come up with a design that is smokeless and hope to be putting that into a new head soon.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Also, t&lt;/span&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;he A of BEAM stands for "aesthetics". I hope you find this BEAM head to be handsome. :) Here are some additional pictures.&lt;/span&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;&lt;a href="http://bp3.blogger.com/_IrQ3pWfzbLQ/R26idVQO3tI/AAAAAAAAAA8/TGB6mQUhUVU/s1600-h/IMG_2719.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5147230048936189650" style="CURSOR: hand" alt="" src="http://bp3.blogger.com/_IrQ3pWfzbLQ/R26idVQO3tI/AAAAAAAAAA8/TGB6mQUhUVU/s320/IMG_2719.JPG" border="0" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://bp1.blogger.com/_IrQ3pWfzbLQ/R26ia1QO3sI/AAAAAAAAAA0/8wga2RF6xt8/s1600-h/IMG_2718.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5147230005986516674" style="CURSOR: hand" alt="" src="http://bp1.blogger.com/_IrQ3pWfzbLQ/R26ia1QO3sI/AAAAAAAAAA0/8wga2RF6xt8/s320/IMG_2718.JPG" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Would you like to see this little guy in action? Check out this YouTube video of him tracking a lamp.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;&lt;br /&gt;&lt;object height="355" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/jZn3rvRaRjo&amp;amp;rel=1"&gt;&lt;param name="wmode" value="transparent"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;embed src="http://www.youtube.com/v/jZn3rvRaRjo&amp;rel=1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3873299861723550653-8002170244110838314?l=pscmpf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pscmpf.blogspot.com/feeds/8002170244110838314/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3873299861723550653&amp;postID=8002170244110838314' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3873299861723550653/posts/default/8002170244110838314'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3873299861723550653/posts/default/8002170244110838314'/><link rel='alternate' type='text/html' href='http://pscmpf.blogspot.com/2007/12/beam-head-version.html' title='BEAM Head (version A)'/><author><name>pscmpf</name><uri>http://www.blogger.com/profile/17183919000008793560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_IrQ3pWfzbLQ/R26iMlQO3rI/AAAAAAAAAAs/cwI5nyg0zwQ/s72-c/IMG_2717.JPG' height='72' width='72'/><thr:total>5</thr:total></entry></feed>
