For their final project in a microcontrollers course, [Trudy] and [Josh] designed a pair of morse code transceivers. To send the message, they used an array of IR LEDs. The message is received using a Gameboy Color Camera, which takes care of basic image processing. This allows a 8-bit ATMega1284p microcontroller to handle transmitting and receiving messages.
The transmission LEDs form a square pattern with one LED in the center. The four outside LEDs are used to help the receiver locate the center LED, and the center LED is used for transmitting the message.
The Gameboy Color Camera is based on a M64282FP image sensor. This sensor uses an SPI-like protocol, which they implemented on the ATMega. It allows them to grab frames from the camera, and get the value of specific pixels. From this data they find the center LED and process the message.
The result can transmit messages of 200 letters at a time, but the speed is limited by the frame rate of the camera. If you have a Gameboy Color Camera lying around, their detailed write up might provide some inspiration and information on how to use it in a hack.
Eh, it’s Gameboy Camera, without color :)
The original post on the Cornell site calls them “Gameboy Color cameras”. Does this mean we now have college kids who are too young to remember the Game Boy Camera?
I find most of the students around me don’t have a clue what early consoles and handhelds were like. I had a 20-something CS student ask me “What’s a GameGear?” the other day.
Does the rectangle really add anything to this setup? Since the cameras have no ability to move to track the rectangle I don’t see that it adds any functionality to the system, regardless of whether they can recognize it in software.
I imagine spacing the LEDs apart creates a large flare on the camera making positioning easier. These things are highly sensitive to infrared, a TV remote looks like a small flashlight through a Game Boy Camera.
I guess the LED frame is part of the protocol–they use it to negotiate transmit/receive status. Supposedly this is supposed to aid transmission, although I can’t see how this helps across longer distances (e.g. across a room) without turning off the frame (assuming the frame would wash-out the middle LED). I don’t see much for results–it’d be nice to see their maximum distance, signal-to-noise ratio, etc.
Update: After reading the article it turns out that they’re transmitting different data on the 5 LEDs simultaneously. The spacing might actually be to keep them separately readable.
How do you figure that when each pair of the four that make up the “frame” are connected in series?
Yeah sorry it’s actually just 2 sets of data, one on the frame (used for control signals) and one on the center (the actual data signal). The top ones are connected in series and the bottom ones are connected in series but the entire frame is controlled together, they used this setup for electrical reasons.
Spi protocol? Well there’s a sort of serial protocol plus some control lines and an analog voltage output for pixels. Would be interesting to push the bandwidth using more pixels and high fps.