The CodaChrome system consists of hardware components and a desktop software currently written in Java, and firmware and software on the Foundation itself. The application communicates with the Tower through the serial port in order to obtain the ID’s of the connected Tricolor modules and to send color sequences and transition times to be stored and played on the Tower. The Tower can then be disconnected from the computer and can reproduce the stored patterns on its own. |
The core of the CodaChrome's hardware is the Tower System, a modular electronics design environment that allows easy snap-together design of complex electronics systems. The Tower is comprised of a Foundation module with the core processor on it, and other boards that stack on top of it, providing a wide range of functionality including sensing, actuation, data storage, and communication. | |
|
The CodaChrome system uses a particular extension of the Tower system, the "Tricolor" module. The Tricolor module has a single full-spectrum LED capable of displaying million of colors, and its small size makes it easy to embed in a variety of materials. Each Tricolor module has four connectors to connect to other tricolor modules and on the Tower itself, allowing for the creation of interesting chains and three-dimensional topologies. |
In addition to the Tricolor modules, the CodaChrome system also uses the Tower’s preexisting Sensor and EEPROM data storage layers. |
I have created an early prototype of the CodaChrome software environment in order to use it in the preliminary studies. This application handles the end-user interface to the system and the visual programming of the LEDs. | |
In this version two color palettes are used for the LED programming, one with
discrete colors and the other with a continuous spectrum. The overall
color changing speed can be set by the user on a scale from slower
transition to a faster one.
The first one produces a combined definition of color sequence and transition time in one gesture by dragging the mouse on the palette. The color sequence is defined by the palette color gradations along the mouse trace. The transition time between two colors is defined by the speed of the gesture. The discrete color palette is used for entering a number of specific colors where the order of selection specifies the color sequence with equal time intervals of transition between colors. |
Software Application: New version
In the new version of the CodaChrome environment there are more widgets for the creation of the color patterns. On the lower part of the screen is the timeline component for sequencing and synchronizing the color patterns that are dragged on it. Each of the layers on the timeline component represents the tricolor LED modules connected to the attached Tower system. |
Software Application: Logo program and connection to the Tower
public
int[] getLEDIDs();; public int
getLightSensorValue(byte num); public void
stopPlay(); |
The
Tower Foundation runs a Virtual Machine (VM) that interprets a variant of
the Logo language, using simple libraries to communicate with attached
layers. On this platform, a Logo program manages the communication with
the desktop in order to identify the connected Tricolor modules and store
and play color sequences.
For the purposes of communication an interface to the CodaChrome Application (written in Java) was written to separate and abstract the application from the program in Logo running on the Tower. Some of the methods of this interface are shown here. |