Arduino

Arduino is the official name for an open-source micro-controller hardware technology developed in Italy. The boards (manufactured, kits or do-it-yourself plans) are available fairly cheaply and there are sensor, motor, communication and other hardware add-ons available. They have been adapted for many purposes. See the handout from an Arduino training course from http://www.sparkfun.com for some great references.

Tcl/Tk seems ideally-suited as a programming languages for this technology as the interface to deliver code and i/o to the microcontroller boards. What a great new future for tcl as a Tool Command Language for actual tools as well as software tools. (But wait! According to Linuxcnc.org , Tcl/Tk was used for the interface to early CNC equipment at NIST . It is still used as an interface to EMC2 in a software called Axis .)

The Hardware

Arduino is the not the only type of hardware out there. An incomplete overview of the landscape:

Arduino
a specific set of Arduino-approved devices. The makers and sellers of these boards support the Arduino project financially. Check out the hardware comparison guide at sparkfun.com
'duino
spin-off technologies which are not specifically authorized by Arduino, but are often closely compatible. Examples: pcDuino
Raspberry Pi
Credit-card-sized complete computer. Runs Linux.
Android
Android computer boards and USB-keys are now available. An Example .
IOIO-OTG
Buy it here
ARM
This is actually a type of microcontroller chip, and has been used in a variety of products (An Arduino variant, MAPLE , Electric IMP - an processor in an SD card!, etc.)
AVR
BeagleBoard
An open source board initiated by Texas Instruments.
PandaBoard
.NetGadgeteer
Buy it from here .

To do: separate this list into self-contained computers and micro-controllers.

The "buy it here" links are not intended to promote any particular product or reseller but attempt to show links to show real examples available from all over the web. Please add others for more diversity.

Tcl Projects

There are a few projects noted around the web:

Tcl Binding to Firmata
a GSoC project proposal, based on the Firmata protocol which has the intent of controlling an Arduino with Tcl scripts.

Arduino functions in Tcl

2014-05-18: My son wanted the Arduino map function in Tcl. The C code is provided in the documentation, so porting it is a breeze. Note that the calculation uses integer math: this is as specified.

proc map {x inMin inMax outMin outMax} {
    expr {($x - $inMin) * ($outMax - $outMin) / ($inMax - $inMin) + $outMin}
}

References