The Sense Bus is a system for collaboration among interactive artworks. The system is based upon the core idea expressed by the three words: sense / transform / express. The Sense Bus is very simple and can be implemented with a minimum of resources (the target implementation platform is the Basic Stamp micro-controller from Parallax). The bus allows the sharing of sense experience amoung a small group of interconnected peers.
Sense / Transform / Express
Sense Bus: Implementation
SenseBus: Using
SenseBus Hub
Activities on the Network
Sample Basic Stamp Implementation
Sense Bus Internet Bridge
The flow of information in an interactive artwork can be modeled by the phrase sense / transform / express. The artwork gathers information from the outside world using various types of sensors (like video cameras, motion detectors, thermometers, etc) and transforms this raw information (with a computer perhaps) so that in turn it can, in some way, be expressed (the turning on/off of video monitors, the playing of music, etc). By defining boundaries between these stages it becomes possible for one artwork to share the sense information it gathers with other artworks. It is possible to allow the sharing of information at the sense/transform and transform/express boundaries but this is not practical for very simple systems. The Sense Bus limits the sharing of information to the sense/transform boundary:
The sense bus protocol requires that all sense types be assigned an ID (which range from 1 to 254) and that the values for those senses be expressable by a number which ranges from 1 to 254, ie:
ID # | Description | Value Meaning |
01 | temperature | 1= -10 degrees; 254 = 40 degrees |
02 | sound volume | 1 = quiet; 254 = loud |
03 | sound direction | 1 = north; 2 = ne; 3 = e; 4 = se; 5 = s etc |
etc |
The SenseBus uses standard four wire telephone cable (red, black, green and yellow wires). The peers are connected with a central hub which provides a synchronizing timing signal. The hub time slices, giving each peer 5 milliseconds to write to the network each cycle. There is no negotiation or token passing, all signals on the network are content.
The SenseBus uses standard four wire telephone cable (red, black, green and yellow wires). The peers are connected with a central hub which provides a synchronizing timing signal. The hub time slices, giving each peer 5 milliseconds to write to the network each cycle. There is no negotiation or token passing, all signals on the network are content.
The wiring of the four wires is as follows:
When a peer is given the write enable, it sends 12 bytes onto the network at 38.4k baud. The peer writes 2 zero bytes then 10 bytes. The 10 bytes form a SenseBus packet:
Byte # | Meaning |
0 | unused (should be 0) |
1 | peer ID (each peer is given a unique ID #) |
2 | sense ID |
3 | sense value |
4 | sense ID |
5 | sense value |
6 | sense ID |
7 | sense value |
8 | sense ID |
9 | sense value |
Using the SenseBus is easy. There are only three functions:
A typical program would have a main loop similar to this (download
the sense bus code):
start: gosub ReadPacket if sensePacket[0] = 0 then doSomethingWithPacket gosub MakePacket gosub WritePacket goto start
The SenseBus hub that I am working on will facilitate up to eight peers with full read/write privileges. In addition, it will provide eight listening ports that will allow network observers.
The Sense Bus Internet Bridge is a program that allows two Sense Bus networks
to be connected across the Internet, sharing sense information. The bridge
program acts as a peer on the network, storing all of the sense packets
that have been sent since the last time the program held the token. When
the bridge gets the token it sends all of its stored sense packets across
the internet to its companion on the other sense network. If the companion
computer has sent sense packets to the bridge, it transmits these (on the
local sense network) at the same time. The bridge program runs on a computer
running Windows NT or Windows 95.