I was looking for a simple and easy to programming microcontroller for fun when I came across this amazing board, Arduino Duemilanove. This palm size board has 6 analog inputs (these can be used as digital I/O, too) and 13 digital I/O channels with the USB connectivity and provides easy-to-use programming environment.
Their website introduces Arduino as following.
Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software. It’s intended for artists, designers, hobbyists, and anyone interested in creating interactive objects or environments.
Arduino can sense the environment by receiving input from a variety of sensors and can affect its surroundings by controlling lights, motors, and other actuators. The microcontroller on the board is programmed using the Arduino programming language (based on Wiring) and the Arduino development environment (based on Processing). Arduino projects can be stand-alone or they can communicate with software on running on a computer (e.g. Flash, Processing, MaxMSP).
You can find a lot of applications from internet by keyword, Arduino. There are thousands of tiny to big projects out there you can get a good hint for your own projects. The first example you will encounter is ‘Blink‘ which blinks an LED (either built-in LED connected to pin #13 or one you can connect any of digital pins) every one second. So simple that you might think ‘why do I need this?’. Imagine you need an indicator for your project such as robot arm controllers. You can use this inexpensive (less than $30) Arduino board for both controlling stepper motors, servo motors (Arduino has PWM pins as well), relay switches, various sensors and indicators.
I will show some examples what I have used this board for and how to simplify and minimize the board and even cheaper.