Program an AVR microcontroller in GNU/Linux is a tutorial for programing the AVR ATMega microcontroller.
The tutorial here is written for ATMega8 microcontroller. But still you can program an ATMega series microcontroller using this method.
READ THE TUTORIAL
http://jeffrey.co.in/wiki/doku.php/program_atmega_micro_controllers_in_gnu_linux
This page is a wiki. If you find any missing portions, please edit the wiki if you can… Every content, even the circuit diagram is drawn using FREE SOFTWARE
After a single day work of writing this tutorial, I just googled about my tutorial. The funniest thing I found was that a tutorial similar to mine is in The Linux Documentation Project. One day work full of waste ! I could have just googled it before writting this tutorial… Also he is a student of Pramode Sir.
See this TLDP link..
http://tldp.org/HOWTO/html_single/Avr-Microcontrollers-in-Linux-Howto/
In my opinion you should understand and learn. Byhearting tons of equation doesn’t make a good professional. Especially in engineering subjects there are a large number of equations. Even conrolling a robot’s path uses a large number of equations.Byhearting these wont be of any use. Try to understand and then learn.
I am sure that if students are given knowledge about the practicle side, they will have more interst to learn and also the will perform well.
One of our best example is of teaching computer languages ( c++ ) in our higher secondary schools. A “HELLO WORLD” program wont make a student happy. Just seeing the “HELLO WORLD” on the screen will just make him bored. Imagine of blinking an LED program .This can be easily done through parallel port interface.Seeing those the student will be more happy and he will try to learn more about that. Even for loops, if else condition, functions, pointers can be taugth using this same technique.For example using for loops, a LED can be made to blink.
These educational methods are used in our country. Its high time to change those old teaching methods. We have to adopt the new method of learn while playing . Western countries have adopted this and has gained a great success. Even MIT has implemented this. See this link .
I was inspired to write this small scrap while I read the book Interfacing with C++ Programming Real-World Applications by Jayantha Katupitiya and Kim Bentley.
I have completed reading a part of the book. I found it so intresting that I havent learned C++ this well even in my higher secondary class. I think it should be used by teacher for teaching C++. Even The Object-Oriented Approach has been well described through real life problems.
If I were a teacher I will use this book.

See a similar post here How To Teach Computer Science - The MIT Way!
I had never tought of having an CCD camera in my optical mouse.
But now after reading this site (http://spritesmods.com/) I was suprised.
Actually the optical mouse contains two chips inside: the optical sensor and a chip for the usb/ps2-interfacing. The optical sensor is a tiny 18×18 CCD. Using this sensor we can see small images. The author has written a small app to see the images on the screen through the parallel port.
See this link to find more about this here.
Check his site for more hacks http://spritesmods.com/