One of GeorgePatterson's other hobbies is “piloting” a plane on a Flight Simulator called FlightGear. He is currently building a physical simulator cockpit using an Arduino to interface with the hardware an talk to the PC. There is some glue code to interpret the serial stream and send it to the Flight Simulator, the same steps are performed for going the other way.
There are three main parts:
I am using a earlier version of Arduino Duemilanove which uses an Atmel MEGA 168 but due to the lack of pins, I might be upgrading it to a Arduino Mega 1280 or bigger. The other alternative is to create a bridge such as EIA-485 Haven't been able to figure this one out as yet.
See http://itp.nyu.edu/physcomp/Tutorials/ArduinoBreadboard for details on a custom build of the Arduino onto a breadboard.
Flight has a user definable protocol called Generic I/O. This allows you to specify which parameters of the plane that you are interested in. I am defining two ports, one for output, the other for input data.
Flight Console is the glue code that translates the data stream that is being sent from Arduino and parses it to a string that the flight simulator. As I am more comfortable with writing code in python, i have chosen that for my project. However, as the protocols being used are fairly straight forward so you should be able to use the same protocol in your preferred language, such as Ruby, Perl or C.