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 edit
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 edit
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 edit
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 edit