[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”
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”
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”
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”
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”
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.
This video game gives your thumbs a rest while stretching those vocal chords. The pair of microphones seen above control the video game on the LCD display. Saying “Biu” will launch a projectile while “ahh” adjusts the flight path. The system was developed by [Tian Gao] as a final project for his ECE 4760 course at Cornell University.
The inputs are common computer microphones connected to some processing circuitry which he built on a piece of protoboard. This consists of some RC filtering and an LM358 opamp to get the signal ready for use with the ATmega1284. There is only one ADC on that chip so [Tian] alternates sampling from the microphones by using the multiplexer built into the chip. The video signal itself is an NTSC composite signal. To facilitate a reasonable frame rate he uses graphics that are packed in multiples of 8-bits. All in all this allows him to create a 160×200 pixel display.
All of this makes the game sound a little dry, but we dare you to listen to the video clip after the break without cracking a smile.
Continue reading “Voice controlled video game uses “Biu” and “ahh” for control”