As a project for a class of my master’s degree (I’m pursuing a master’s degree in IT), I want to show the data that is sent over the IR signal the remote control of my TV outputs (Daewoo CRT flat-screen TV). I basically want to explain how IR remote controls work and how the data is transmitted asynchronously. Actually, that’s the main point, to explain asyncronous communication and give an example of it.
I was given the option to use something like Matlab to perform a simulation, do the same in a custom app or use some hardware to present the project. I picked the last option because it was easier, more interesting and had everything I needed on hand.
To perform the project I’m using one of those IR sensors with integrated filtering (38 KHz band), I’m adding a regulated power supply and connecting one oscilloscope channel to the output of the sensor.
My TV is a Daewoo, so I searched a little and I was able to find the format of the data output by the remote.
I performed a little test by hooking everything together. Looked at a sample captured by my digital oscilloscope and it seemed to match with the described format, as expected.
I may also add something more to my little project. I’m planning to add a USB to TTL converter along with a PIC MCU (to modulate and the carrier wave) to send data (just like a remote control) by using a PC as a terminal. That will happen if I have enough time… I have to present it early in the morning on next Saturday.
Working with this simple “project” makes think about doing something related in the future
I was able to work on my lil’ project, YasPOV. The current status is almost finished! and it really works!
I swing the thing in the air and you can see a message “printed” on the air, in red. The device works best with low amounts of ambient light. I was going to use green leds because the human eye is more sensitive to green light, but I only had red ones with transparent epoxy.
I made a little app (C# / .NET 3.5, I’m a software Architect/Developer so it is acceptable that I use this stuff ) to design the characters the device outputs. Basically each character is made of a matrix 4×8 (rows x columns) bits. In other words, each character is made of 4 bytes or 32 bits. I’m making only alphanumeric characters and a few others like punctuation (we don’t need the full ASCII char set). Basically the app is composed of a matrix made of checkboxes (ok, somewhat cheap but it really works!), so you check and uncheck these checkboxes to set and unset each bit in the matrix. The app then gives you as result an array of values to copy and insert in the source code of the firmware. For example, the array “{0xFF,0xFF,0xFF,0xFF}” would represent a filled rectangle, supposing that was a valid character. The characters are represented as a constant array of arrays that are stored in the MCU’s Flash memory. You could quickly fill up RAM space if you stored it there, so program memory is best.
I experimented for a little while with timing… delays that should happen between each character (empty space between characters) and also each of its columns while being printed. By trial and error, I found acceptable values to use with the integrated 8-bit timer, TMR0. Actually, I didn’t bother to calculate the exact time in seconds of each of the two delays I need, and it doesn’t matter, because I don’t really need to know… it just works!
Some time ago I was playing with an AVR ATTiny2313 MCU. It all went like this… I connected my AVR Dragon programmer, opened AVR studio and mounted the IC on the ZIF socket. Then I created a new project, and went to configure the device’s fuses. I started to uncheck and check the options that I wanted but after changing to another tab to see other configuration options, I started to receive an error related to ISP (serial programming). After I while, I realized that I set the fuses incorrectly. I asked my self… how could that happen? Well, no one could be possibly blamed for that but me! I wanted to recover that little ATTiny, specially because that was my last piece of AVR MCUs (in contrast with PICs, I have a lot of them). So the only way to save it was to use Parallel Programming and reset the fuses. That requiered a lot of time and wiring because I didn’t have a circuit and cable to perform that… but I was willing to do it no matter what… So I just did it! Checked my wiring and all connections then connected everything and kept my fingers crossed… it worked! yoohoo! I was able to recover that poor little thing
I’ve been very busy lately… and some people think they own my time… well that’s another subject.
But finally, I found a day to work on my project YasPOV. These are the updates:
Advances in the firmware
Mounted the final circuit (almost completed now)
Added some items to the design, like an EEPROM to store data
The circuit is based on a 8-bit PIC MCU. I’m using the integrated ICSP capabilities of the MCU to update the firmware, so a few extra components have to be used. I could have used a bootloader, but that would take program space and you wouldn’t be able to debug. I added two NPN transistors as part of the isolation needed to use ICSP.
I will post the final schematic diagram next time, more details and hopefully a working version of the device
I found that my antivirus was reporing malicious code trying to get executed everytime I visited this blog.
At the beginning, I thought the theme I’m using contained the nasty directives… but a quick investigation revealed that the problem was happening in other blogs too and the possible reason was a bug present in WordPress. Maybe they used a webbot to look for WordPress sites and try to exploit them automatically… This method of distribution could lead to a massive infection of malware and the users at risk would be those using obsolete versions of software, software with bad security (IE) and no protection at the OS-level like an antivirus/firewall.
I highly recommend you use Firefox and its great security plugins like NoScript, the latest versions, a good antivirus and to keep your OS patched and up to date.
I upgraded the blog to the latest version of WordPress and thightened security to prevent other intrusions.
YasPOV(Yet Another Small POV), is the name of my latest project. It’s a POV (Persistence Of Vision) toy.
I know there are quite a few out there in different shapes and flavors, but I need to make one myself, my own design and features
Don’t know what is POV and what it can do for you (or at least how it can amuse you)? I’ll give you some info in the next update, very soon… Just google for “pov microcontroller” and I believe you will find enough of similar projects.
The project is based around a PIC16F876 microcontroller… There are various reasons for this, including the fact that I have a lot of them, it has enough pins, enough memory, a single port can source/sink enough current needed for all LEDs, etc.
I will give all the details soon. I will also release everything: explanations, schematics, source code, etc. This way you may see how I’m implementing it, make your own, learn, play and everything else! I may evolve this project over time based on input from other people and my own findings.
I’ve built a small regulator board for powering my breadboard for the next projects I’m working in. I will get a more professional, low cost bench top power supply when I have time and the money to invest. Everyone doing experiments and prototypes frequently should have a regulator board like this one. I think it’s better to mount the circuit in a permanent board because it gives you mobility and frees your breadboard of extra components.
I built this thing in aboult half hour. I had to salvage some parts from an old linksys router I had in a storage box (could be labeled: “Things to salvage”). So here’s a tip for newcomers to electronics and early experimenters: save those old appliances and gadgets you have and don’t use anymore and store them somewhere. You will find a lot of useful things inside them. You could even store them in a categorized fashion (maybe by dominant type of component). Some SMD parts are hard to remove with standard tools, so you’ll have to get specialized tools and use different techniques. In this subject, I’ve found many cool techniques that require only inexpensive tools or things you already have and some tricks. The info is out there… maybe I’ll put some info here about this topic, after researching more because to tell the truth I have little experience with it.
I created this project to write and test some LCD control routines. I wrote this in C.
I’m using this LCD in 4-bit mode, to save I/O lines. The breadboard holds the PIC16F690, the Brain. There’s a small header segment for ICSP (In-Circuit Serial Programming), as it should be. I’ll talk about ICSP later.
The LCD displays 2 centered messages “Systems Online” (first line) and “Kike Roxz” (second line) in an alternating fashion.
I will be using these routines for my next project… what will it be…?!
P.S. I really have to get a new camera this one sucks!
Hello there. My real name is Enrique Compañ (a.k.a. Kike). I currently live in the city of Monterrey in northern Mexico.
I am an engineer, love tech and science in general… another geek in the crowd. I currently work as a Software Architect/Engineer for a big company and on my own.
Here you will find information mostly about technology, but I’ll also include important/cool/fun stuff and news in general that don’t fall into the tech category.
You’ll be seeing here stuff about technology, software and electronics constantly (geek geek geek). These topics certainly are fun!
The blog’s content will be mostly (if not completely) in English and the reason for that is that I want to reach as much as people as possible around the globe.