Palette:Firmata

From Derivative
Jump to: navigation, search

Firmata is described and accessed through here: http://www.firmata.org/

See the TouchDesigner forum discussion thread: http://www.derivative.ca/Forum/viewtopic.php?f=22&t=6576

See also Arduino.

Summary

Firmata is essentially an Arduino sketch which lets you configure and control the Arduino using messages formatted as MIDI. A good introduction for whoever is interested can be found here: http://www.firmata.org/wiki/Protocol

So what does it let you do? Well, first:

  • hook up your Arduino
  • upload the StandardFirmata Sketch from the Examples/Firmata folder
  • after successful upload start the attached TouchDesigner toe and go into /project1/firmata and select the right COM Port on the serial1 DAT
  • toggle thee Active Parameter of the serial1 DAT off and on --> you should be seeing messages coming into the serial1 DAT
  • now go one level up to /project1, here you find:
    • a pinCapabilities DAT telling you what each pin of your Board can act as
    • a pinSettings DAT telling you what each pin is currently set to
    • a firmataVersion DAT informing you off the Firmata Sketch and Version uploaded to the Arduino as well as
    • an analogValues and digitalValues CHOP, showing you the pins output
  • on the input side to the firmata COMP you find:
    • a constant CHOP called values to set pins to certain values
    • a constant CHOP called mode to tell the pin what it should act as (there is a Table DAT called modes docked to the firmata COMP informing you of what value maps to what mode)
    • as well as a Report Analog and a Report Digital Button which enable feedback from the Arduino to TouchDesigner.

Not yet implemented are the I2C and Shift Modes, if anybody has information on how to do that best, I'd be really interested to see this working Also I ran into a problem with my Arduino Mega, not all pins would report correctly, wonder if my mega somehow is faulty? Further when connecting a servo I had sitting here for a long time, the Arduino would reset, so the servo functionality is not fully tested yet.

If you like to further develop the extension or this patch, the Firmata class sits in firmata/local/modules/firmata

Firmata seems to be great to get a quickstart in using the Arduino as a pure input/output converter for all kinds of Sensors and Devices and keep all the logic inside TouchDesigner.

An Operator Family that manipulates text strings: multi-line text or tables. Multi-line text is often a command Script, but can be any multi-line text. Tables are rows and columns of cells, each containing a text string.

An Operator Family which operate on Channels (a series of numbers) which are used for animation, audio, mathematics, simulation, logic, UI construction, and many other applications.

An Operator Family that contains its own Network inside. There are twelve 3D Object Component and eight 2D Panel Component types. See also Network Path.

A form of DATs (Data Operators) that is structured as rows and columns of text strings.