Arduino is open-source, but it doesn't fall into the typical open-source model in that it includes a hardware component in addition to a software element. Several different ones, in fact. What I have gotten my hands on is one of the more popular and powerful models, the Mega 2540, but that isn't important right now...
I wanted to just touch briefly on the possibilities and complexities of programming with Arduino. Suppose you'd like to use an Arduino board to power a prosthetic hand - how can that be done? I intend to explore this question in very deed, but here I'll just outline a couple of concepts.
INPUTS AND OUTPUTS
The Arduino board accepts a variety of low voltage inputs and has the ability to measure them incrementally. For example, an input might be "instructed" to measure an ON or OFF, HIGH or LOW input to trigger a switch, or the same input might receive a series of incremental values between a set of minimum and maximum values to control a variable speed motor.
If a sensor were properly placed on the amputee's wrist, or perhaps even an elbow or bicep, the sensor could detect muscular movements to generate voltages. These voltages could then be processed by the Arduino board to output a signal to a variable speed servo that controlled a prosthetic finger. Pressure sensors on the fingertips could then be used to send data back to the Arduino board to represent "grip pressure". This data can be further processed by Arduino to output a signal to a small device at the amputation point that would simulate the pressure directly to the wearer so that (s)he would be able to physically sense the grip pressure and make physical adjustments that would, in turn, be read and interpreted by Arduino to stop the squeezing process while still maintaining the grip.
These are the challenges that make programming not only fun, but rewarding. The idea creating something that would enable a child to receive a prosthetic arm that his own dad built for him with parts and components purchased online or at the local hardware store is really compelling. It's more than a dream. It's something that is currently on my plate. Progress reports will be forthcoming. It will be a slow process, but I am excited to get started!
Until then, happy computing!