by DIRKGRAPPENDORF
A very good platform for physical computing is Arduino. It is a controller board built around the Atmel ATmega microcontroller and an accompanying development environment (Java/avr-gcc). Various version of the controller board exist and it is also possible to build your own version by just connecting a FT232 USB to RS232 adapter to a ATmega168 CPU. Lots of libraries are provided by the Arduino community, that help with interfacing to various hardware devices like sensors and displays.
I also advocate to take a look at Processing. This Java based development environment provides many library functions making it very simple to create programs with which you can conroll your Arduino appliance from your workstation.
If you're interested in the field of physical computing and want to learn the basics, you should consider reading the book Making Things Talk. By presenting a series of simple projects, this book provides an introduction to Arduino and Processing.
On the following pages I will present my own Arduino/Processing projects and will provide my own extensions for these frameworks.
In addition to the vast amount of already provided libraries, i have written some libraries during my projects. I am publishing the library code under the LGPL. Click on the following links for further information and downloads.
Code to read one or more SRF02 ultrasonic distance sensors (I2C/TWI interface). More...
Code to read a CMPS03 compass sensor (I2C/TWI interface). More...
In this picture you can see that it's very easy to build an Arduino board. Essentially you need only a USB to RS232 breakout bord, a ATmega168 CPU and a crystal oscillator (besides some passive components). I also added a 5V regulator, some LEDs, buttons and pin headers for all digital and analog pins to this board.