Taste the Rainbow One Color at a Time

It’s the end of another fall semester of Bruce Land’s ECE4760 class at Cornell, and that means a fresh crop of microcontroller-based student projects. For their project, [Alice, Jesse, and Mikhail] built a Skittle-sorting miniature factory that bags and seals same-colored candies into little pouches of flavor.

Their design is split into three stages, which are visually delineated within the all-cardboard housing. Skittles are loaded into a funnel at the top that leads to the color detection module. The color is determined here with an RGB LED and OPT101 photodiode driven by an ATMega1284.  Because the reflected RGB values of red and orange Skittles are so similar, the detector uses white light to make the final determination.

Once the matchmaking is over, a servo in the second stage rotates to the angle that corresponds with the color outcome. The Skittle then slides down a cardboard chute, passes through a hole in a cardboard disk, and drops into a hanging bag. Once the bags have reached the predetermined capacity, another servo moves the carousel of bags to a nichrome wire sealing rig. Lead factory worker [Jesse] must intervene at this point to pull the bags off the line. You can see the full walk-through and demonstration of this Skittle flavor separator after the break.

Continue reading “Taste the Rainbow One Color at a Time”

DUO Portable: A Homebrew Computer With Keyboard And Display

duo

[Jack] is famous ’round these parts for his modern reinterpretations of very early computers. He’s created a computer entirely out of logic chips, a microcontroller-powered multicore box, and even a very odd one-instruction computer. For his latest project, he’s stepped up his game and made something that’s actually fairly useful: a microcontroller-powered system with an integrated keyboard and display.

The DUO Portable, as [Jack] calls his new toy, is built around an ATMega1284P microcontroller. Also on this board is a serial EEPROM that acts as a very small drive, a 102×64 pixel graphic display, and enough tact switches to create a QWERTY keyboard.

The DUO Portable boots to a primitive operating system where files can be created, edited, and saved. The programming language for this computer  is called DCPL – the DUO Portable Command Language – and can be used to create anything from a simple ‘Hello World’ program to a block-building game.

Like all of [Jack]’s homebrew computer projects, he’s written an emulator that can be run in a browser. There’s also video of [Jack] playing around with the DUO Portable available below.

Continue reading “DUO Portable: A Homebrew Computer With Keyboard And Display”

GUI window manager on an AVR chip

avr-window-manager-gui

This project is reminiscent of the old days when window managers were an amazing new idea. The difference is that this window-based GUI is running on an ATmega1284 microcontroller. But the behavior and speed of the interface is pretty much exactly what you’d expect if working on an early 90’s home computer. It even uses a mouse as input.

So how is this even possible? The key to the project is a serial to VGA module which handles the heavy lifting involved with generating a VGA signal. We featured one of [Andrew’s] past projects which used an AVR chip to generate the VGA signal. But that doesn’t leave nearly enough cycles to implement something like a window manager, not to mention the fact that it got nowhere near the resolution shown here.

He uses a serial mouse with an RS-232 converter chip to interact with the windows. This is best shown in his video after the break. He’s able to generate and interact with new windows. He even implemented a set of rudimentary controls which allow him to adjust the theme of the windows and drive the audio playback feature included on that VGA controller he’s using.

Continue reading “GUI window manager on an AVR chip”

AVR VGA generator

avr-vga-generator

This simple circuitry makes up the hardware for [Andrew’s] AVR-based VGA generator. He managed to get an ATmega1284 to output a stable VGA signal. Anyone who’s looked into the VGA standard will know that this is quite an accomplishment. That’s because VGA is all about timing, and that presented him with a problem almost immediately.

The chip is meant to run at a top speed of 20 MHz. [Andrew] did manage to get code written that implemented the horizontal and vertical sync at this speed. But there weren’t enough clock cycles left to deal with frame buffering. His solution was to overclock the chip to 25 MHz. We assume he chose that because he had a crystal on hand, because we think it would have been easier to use a 25.174 MHz crystal which is one of the speeds listed in the specification.

Red, green, and blue each get their own two-bit range selected via a set of resistors for a total of 64 colors. As you can see in the video after the break, the 128×96 pixel video is up and running. [Andrew] plans to enlarge the scope of the project from here to make it more versatile than just showing standard images. The code (written in assembly) is available at his GitHub repository.

Continue reading “AVR VGA generator”

IFF system keeps you from shooting your friends

IMU

An IFF system – Identification of Friend or Foe – are used by military aircraft in battle situations to determine if another aircraft is being piloted by a fellow aviator or an enemy. For the boots on the ground, friendly fire is generally regarded as a very bad thing, so a few students in [Bruce Land]’s ECE 4760 class at Cornell decided to make a wearable version of an IFF for their final project.

[Wen Hao Lui] and [Aadeetya Shreedhar] broke their project down into two parts: an initiator unit and a receiver unit. The initiator unit sends an encryption key to the receiver unit which, in turn, replies back to say, ‘don’t shoot.’ [Wen] and [Aadeetya] needed to choose between using RF or laser-based communications for the initiator, but the difficulty in acquiring or building a radio antenna with the requisite directionality made a laser the obvious choice.

The receiver unit has eight phototransistors attached to a vest and will reply to the initiator unit via a Wi.232 radio module when the laser illuminates the phototransistors. In the event of an enemy acquiring one of these vests, the project includes a pulse detection circuit that will erase the encryption keys when the wearer’s pulse drops to zero. A bit morbid, but the video after the break sure makes it look cool.

Continue reading “IFF system keeps you from shooting your friends”

Virtual chess uses glove controllers

chess-using-glove-controllers

Check out the game of chess going on above. It’s a virtual game where each player uses a glove as the controller. Or course the game board and pieces are missing from this image. They’re displayed on a computer monitor which both players can see.

The hardware rather simple, and we think it would be a great project to challenge your microcontroller skills. Each glove has an accelerometer attached to it, as well as a ring of copper foil on the pointer finger and thumb. One ATmega1284 monitors both gloves. The accelerometer data is used to move the mouse cursor on the screen, while the contacts are used to grip or release a playing piece. The game board and pieces are displayed using MATLAB with controller commands fed to it via a USB connection.

If you’re more into building a mechanized game check out this pair of telepresence chess boards.

Continue reading “Virtual chess uses glove controllers”

Morse Code Transceiver Based on Gameboy Color Camera

Morse Code IR Transceivers

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.