This little board demonstrates the capabilities of the MMA2260 +/- 1.5g X-Axis Micromachined Accelerometer. As you tip it back and forth, LEDs light up to show the magnitude and direction of the G force.
The MMA2260 is the fat SOIC 16 in the upper left, isolated so it could be cut off of the board and used as a breakout, keeping only a pin header and the recommended decoupling and output RC filter.
The microcontroller is a PIC16F628, which is entirely unsuited to this application, having no ADC. I failed to notice that, being quick to note “AN0″ on PORTA and slow to note that it was for a comparator, not an ADC. However, there is a builtin programmable voltage reference which was sufficiently accurate for lighting up 8 LEDs. I’m trying to get away from PICs, as AVRs have spoiled me with their GCC support, many registers and sane memory organization. Even on this project, which is only about 30 lines of C, most of the work was fighting SDCC bugs (failure to banksel, in this case). I’ve discovered a perverse pleasure in soldering down ICs to counteract my packrat nature. It did force me to put an ICSP header on, however.
MMA2260 Accelerometer Demo - [Link]
Robot System Description :
- 2 mobile phone vibrator
- AVR ATtiny45 Microcontroller
- IR RC5 Receiver for remote control
- NiMH rechargeable battery
- LED status indicator
- Dimensions 12mm x 10mm x 18mm
Wheels less smallest Robot “ROBO-BijanMortazavi” - [Link]
Blondihacks has developed a breadboard programming header for 8-Pin AVR microcontrollers called the Bread Head. [via]
This little guy was easy to make, and has been a real time saver when iterating on a breadboard. The trick is upside-down protoboard, and longer-than-usual headers! Read on to see how it’s built.
Bread Head - [Link]
This is a project I did a couple of years back for a business friend of mine to automatically log all his phone calls into his computer. The hardware (pictured above) uses an microprocessor to monitor the phone calls (incoming and outgoing) and send the data out the serial port to be read by the computer.
The hardware is controlled by an Atmel AVR ATmega32 microprocessor. The processor uses optoisolators to see if the phone is off-hook and to check if the incoming line is ringing. If the phone is off-hook a DTMF decoding chip CM8870CP is used to decode the number that is dialed. If it is an incoming call an FSK decoding chip XR2211 is used to decode the Caller ID data.
Phone Call Logging Project - [Link]
TUTORIAL: Arduino Hacks -Burning bootloader chips using an Arduino.
A lot of people start learning about microcontrollers with an Arduino but then want to build their own projects without having to sacrifice their dev board. Or maybe they want to make their own Arduino variant, that is compatible with the IDE. Either way, a common problem is how to burn the bootloader onto the fresh AVR chip. Since AVRs come blank, they need to be set up to be Arduino IDE compatible but to do that you need an AVR programmer (like the USBtinyISP).
The good news is that you can burn bootloader using your existing Arduino with only a little bit of work. There’s even a minitutorial on the arduino.cc site
This tutorial is an extention of that tutorial. First we’ll show how you can make a permanent bootloader-burner by soldering a 28-pin ZIF socket to a proto shield and use the PWM output line of the Arduino to generate a clock. This will let you ‘rescue’ many chips that have been set to the wrong type of oscillator, or change ones that are set from external oscillator (most Arduino bootloaders) to internal (such as the lilypad).
Arduino Hacks -Burning bootloader chips using an Arduino - [Link]
This is just a quick video showing that you can power an AVR project from a fried servo or an old emergency cell phone charger.
Arduino Project Alternative Power Sources - [Link]
About two months ago, Atmel announced a smart new set of AVR development boards, the XPlained series. One of these boards (which I’ve just recently purchased for $30) boasts a shiny new AVR XMega microcontroller. What? An XMega you say? Why yes, haven’t you heard? Come now, they’ve been around for fully three years at this point. Well, don’t worry if this is fresh news, you’re not alone. For some reason, adoption of the powerful new XMega MCU has been slow amongst hobbyists.
Explaining the XMega XPlained (Dev. Board) - [Link]
Pulse Width Modulation (PWM) is a technique widely used in modern switching circuit to control the amount of power given to the electrical device. This method simply switches ON and OFF the power supplied to the electrical device rapidly. The average amount of energy received by the electrical device is corresponding to the ON and OFF period (duty cycle); therefore by varying the ON period i.e. longer or shorter, we could easily control the amount of energy received by the electrical device. The Light Emitting Diode (LED) will respond to this pulse by dimming or brighten its light while the electrical motor will respond to this pulse by turning its rotor slow or fast.
Working with Atmel AVR Microcontroller Basic Pulse Width Modulation (PWM) Peripheral – [Link]
The rapid penetration of the internet networks into many of today’s modern homes and personal gadgets (e.g. smart phone and smart pads) opening a tremendous useful and interesting embedded system application that could be integrated into our house or known as the intelligent house. For example by putting a small embedded system web server in our house, we could easily monitor such as alarm, temperature or even turn on/off the lamp or the garden’s water sprinkle; eventually from any remote location through the wireless personal gadget; Or perhaps you just want to impress your relative or friend with a very accurate digital clock which automatically synchronized the time through the Network Time Protocol (NTP) over the internet at your home or office.
Integrating Wiznet W5100, WIZ811MJ network module with Atmel AVR Microcontroller – [Link]
Sometimes we need to extend or add more I/O ports to our microcontroller based project. Because usually we only have a limited I/O port left than the logical choice is to use the serial data transfer method; which usually only requires from one up to four ports for doing the data transfer. Currently there are few types of modern embedded system serial data transfer interface widely supported by most of the chip’s manufactures such as I2C (read as I square C), SPI (Serial Peripheral Interface), 1-Wire (One Wire), Controller Area Network (CAN), USB (Universal Serial Bus) and the RS-232 families (RS-423, RS-422 and RS-485). The last three interface types is used for long connection between the microcontroller and the devices, up to 1200 meters for the RS-485 specification, while the first three is used for short range connection.
Using Serial Peripheral Interface (SPI) Master and Slave with Atmel AVR Microcontroller – [Link]