Thursday, May 19, 2011

Wave Player with MMC card

This projects gives you a simple wav player with help of the MMC card connected to ATmega32. You can use any AVR microcontroller.

The MMC card works on 3.3v so a 3.3v regulator is used and the 5v to 3.3v level conversion is done by the combination of resistors. The LF33CV is used for the 3.3v regualtor.

The code is written for 1GB card and if you want to change then you need to change the line number 98 in the program. Now the line is "Test = 512 * 7800" you need to change this 7800 for other value of MMC card.

An 11.05Mhz crystal is used so you have to select the external high frequency crystal at the fuse bits.

The LM386 forms an audio amplifier which amplifies the audio signal. There are 3 buttons on the circuit and they are S1 for start/stop, S2 for Forward and S3 for reverse.

Circuit Diagram


Downloads
Bascom Code

Tuesday, May 17, 2011

Optical Mouse Sensor

Mouse imaging 3-pt text
Full-size image download
Mouse imaging 3-pt text
Close-up of hacked mouse
Full-size image download
Close-up of hacked mouse
I had a cheap optical mouse sitting around where one of the wires had broken, and wanted to do something with it.
The vast majority of the sensor chips in optical mice are made by Avago. The chip in my particular mouse was labeled A1610. Looking at the other datasheets on their site, I found that the ADNS-2610 sensor had a similar pinout and features to my mystery device. The sensor is an 18x18 pixel device, with 6-bit (64-level) greyscale output. Each pixel is 1/200" and images are acquired at 1500 frames per second.
Optical mice have a low-resolution high-speed greyscale camera in them. The sensor chip contains this camera, along with a processor. This processor acquires images and determines in what direction the micro-scale features beneath the mouse are moving. It passes this data off to another processor which periodically produces the signals necessary to communicate the updates back to the computer it is plugged in to.
To tap in to the sensor chip, I cut through the data traces connecting the sensor to the interface processor. This allowed me to solder wires directly on to the pins of the sensor device. I then connected the sensor to an Atmel AVR microcontroller. I then wrote AVR code which talked to the sensor directly, extracting the raw sensor pixel and movement data and sending it back to a computer via serial port.
This particular sensor is a very low-end model. The frame rate back to the PC is on the order of 5 frames per second. Also, each pixel has to come from an individual frame, and thus a large amount of motion blur is introduced. Combining the image data with offsets returned from the actual mouse functions of the device produces a crude handheld scanner, but the lag and blur make it very difficult to use. With a higher-end sensor, much better performance should be easily obtainable.
Hacked mouse and AVR circuit
Full-size image download
Hacked mouse and AVR circuit
Crude handheld scanner
Full-size image download
Crude handheld scanner
  • Optical Mouse Sensor

RFID Tags Detector, RFID sniffer

This simple analog electronic circuit can detect the presence of 13.56 MHz RFID tags that used by all plastic cards like access badges, bank cards, library cards, loyalty cards. Also many other objects like books, toys, or clothing that may carry RFID tags without you knowing it.

Carrying tagged objects with you can show your identity or whereabouts to anyone equipped with the appropriate tools to read RFID tags. RFID sniffer helps you to find out whether an object is tagged or not. The circuit is easy to build. No MCU is needed, just op-amp, transistor and passive components.
RFID sniffer is available as open-source. If you want to build it, you can download schematic (eagle) and gerber file here

AVR Sketch Board

The project is an electronic version of an Etch-A-Sketch toy for kids. It can electronically emulate every function of the original. The system use Hyundai HG225504 LCD as screen which displays 256 pixels wide and 128 pixels high. Instead of a complex mechanical rail and pulley system to control the X and Y movement, Etch-A(vr)-Sketch uses 10-turn potentiometers. To erase any text and drawing on the screen, user need to shake the device. The system has been equipped with piezoelectric accelerometer to accomplished this task.


The heart of system uses AVR ATmega16 Microcontroller. This includes digital IO for use with the LCD control and data busses, a 16-bit timer used to pace the system, the internal oscillator used to clock the system, and the A to D converters used to monitor the 10-turn potentiometers and the accelerometer. Even the hardware multiplier was used to speed up some calculations. The firmware was developed in C using WinAVR compiler. The Etch-AVR-Sketch project is designed by Greg Cloutier for US.

AVR Based Basic Calculator

The purpose of the project is to build a basic calculator based on microcontroller ATMEGA32. It uses 4×4 matrix keyboard as input device with a 74C922 decoder. This decoder generates an interrupt through External Interrupt INT0 every time a key is pressed. The result of calculation displayed on 16×2 LCD.
math calculator schematic

MCU firmware is written in C language and is compiled using WinAVR. Basic math calculator project is designed by Jaime Andres Arteaga. Download : source code

Monday, May 16, 2011

ATtiny2313

  • High-performance and Low-power RISC Architecture
  • 120 Powerful Instructions – Most Single Clock Cycle Execution
  • 32 x 8 General Purpose Working Registers
  • Data and Non-volatile Program and Data Memories
  • 2K Bytes of In-System Self Programmable Flash
  • 128 Bytes In-System Programmable EEPROM
  • 128 Bytes Internal SRAM
  • Programming Lock for Flash Program and EEPROM Data Security
  • One 8-bit Timer/Counter with Separate Prescaler and Compare Mode
  • One 16-bit Timer/Counter with Separate Prescaler, Compare and Capture Modes
  • Four PWM Channels
  • On-chip Analog Comparator
  • Programmable Watchdog Timer with On-chip Oscillator
  • Universal Serial Interface
  • Full Duplex USART
  • In-System Programmable via SPI Port
  • External and Internal Interrupt Sources
  • Low-power Idle, Power-down, and Standby Modes
  • Enhanced Power-on Reset Circuit
  • Programmable Brown-out Detection Circuit
  • Internal Calibrated Oscillator
  • 18 Programmable I/O Lines
  • 20-pin PDIP, 20-pin SOIC, 20-pad QFN/MLF


Details can be found
http://www.atmel.com/dyn/resources/prod_documents/doc2543.pdf

Inertial GPS with an ATMega 128


  • This project was conducted by the student of Cornell University.

  • This project's goal is to determine the user's position with a commercial GPS system aided by MEMS accelerometers and gyroscopes.

  • The additional MEMS sensors allow for prediction of the user's movement in between and in absence of the absolute GPS updates.

  • The primary use of this system would be for in-car GPS where velocities are relatively high (>~1 m/s).


  • Details can be found
    http://courses.cit.cornell.edu/ee476/FinalProjects/s2005/amn32/476final/index.htm

    Using the AVR Analog-Digital Converter

    • This tutorial will show on how to do an analog-digital conversion with AVR microcontroller.
    • AVR will receive data from the it's serial port.
    • Then the AVR does a Analogue to digital conversion on channel 0.
    • Then transmits the results back via the serial port in ascii hex.
         Details can be found
        http://www.opend.co.za/tutorials/avrtut5.htm

    USB programmer for Atmel AVR controllers (USBasp)

    • One of simple design that most wanted by microcontroller player nowdays especially students.
    • It is a USB in-circuit programmer for Atmel AVR controllers.
    • It simply consists of an ATMega48 or an ATMega8 and a couple of passive components.
    • The programmer uses a firmware-only USB driver.
    • No special USB controller is needed.
    Features :
    • No special controllers or smd components are needed.
    • Programming speed is up to 5kBytes/sec.
    • SCK option to support targets with low clock speed (< 1,5MHz).
    Details can be found.
    http://www.fischl.de/usbasp/