Monday, May 17, 2010

My Current Project


Okay so here is the first project post I am trying on this blog. And it isn't a robot. Its a human interface device. Okay not just any human it is a parental interface device. Its not for interfacing with your parents, but its so my parents can turn their TV on.



Years ago I set my parents up with an AV system where all the components were linked and talked to each other. If you put a VHS tape in the VCR it would turn on the TV and stereo and switch to the correct inputs. If you put in a DVD it would turn on the TV and stereo and switch to the correct inputs. If you turned the stereo off the TV, VCR, and DVD players would all shut off.



Recently they have replaced the last of all those components, and I've seen them fight with it on more than one occasion. There wedding anniversary is coming up soon so I decided to go old school and make them a gift this year. My gift...... a custom remote that takes care configuration and controls. They will only need one controller.



My goal is to set the whole thing up with a oled touch screen interface. I'll have a few physical switches, you want to change channels without looking at a screen to figure out what button to press. I've already specked out the major components and I'll post some links on that when I get organized.



For now I'm going to introduce you to the development cycle. The first step as been completed. I need to determine what protocols are used by my parents remotes. I built a quick little test rig with a battery and a IR detector. I handed the rig to my brother along with my saleae logic prob and had him covertly capture codes from my parents.



I've included a sample of the captured image. Let me help you interpret the image. IR codes are carried over a 38khz signal. The decoders filter for 38khz signals so you don't get interference from other IR sources. The Decoder inverts the results. A Low logic state indicates IR and a High logic state indicates the absents of IR. The particular protocol you are looking at has a start pulse then a slight pause. Then it sends another pulse. This is where we start getting the data. There are a series of about .5ms pulses. Between them there is a rest period of 1.2ms and .6ms. 1.2ms indicates a 1 and .6ms indicates a 0.


If you look at the image it is easy to spot 1s and 0s. So I'm ready for my next step. Now I can start working on code to detect and transmit codes.