htmaa MAS 863
Victor Vina
Fab Lab Bcn

<- Home

Final project -> i0 kit

Simple framework to sketch distributed networks of devices and quickly prototype interactive systems. Based on internet 0, systems will easily be set up and configured through a tangible interface and a web application.

The framework will simplify the following actions:

-Packet sniffer/generator
-Visualization of nodes' state in real time
-Sensing and actuating through nodes
-Setting and checking nodes' IPs
-Setting and clearing nodes' links

The systems developed will still be distributed in nature and will not need the central application to run once set up. This hybrid architecture will be used, among other things, as a platform for architecture students to prototype responsive informational environments at IaaC. The framework could also be used to quickly prototype machines and devices.

The project builds up on my recent experience setting up a network of i0 nodes within the Hyperhabitat project, and a research on distributed system I developed at Interaction Ivrea back in 2003, Box: Ubicomp paper

The system

So far I have prototyped 8 modules, which alllow either input or output into the system (led, mic, ldr, speaker) or which perform different behaviors (blinking, pulsing), already allowing different configurations. Inspired by research done at the Tangible Media group, the system uses a rear projection to create an interactive surface where you can manipulate blocks in order to freely play with the modules. 3 vynil strips across the surface conduct VCC, GND, and i0 DATA. The modules are simple acrylic cubes with a double side FR2 boards, in which vias were made to provide connectivity from the IC to the tracks.

The nodes have been programmed in assembly, adapting code provided by David Kopp, whom I thank for support throughout the summer for Hyperhabitat project.

Top and botton sample design for led module, featuring also step response for proximity detection:

Possible module list, based on the ATtiny44 running at 20Mhz:

-> DC motor
-> Step motor with rotatory encoder
-> Step motor
-> Servo
-> Light
-> Speaker
-> LCD
-> LED
-> LED Matrix
-> Relay

-> Proximity (Capacitive step-response)
-> Piezo
-> Light
-> Magnetic
-> Temperature
-> Sound (Amplitude, Frequency)
-> Switch
-> Potentiometer (lineal)
-> Potentiometer (circular)
-> Distance (ultrasound) (lab version)
-> Acceleration (accelerometer)
-> Presence, movement (infrared)
-> Orientation (digital compass)
-> PS/2 keyboard
-> PS/2 mouse

Next... adding collision detection, bigger scales...


Many small simple independent elements can interact with each other to perform useful outcomes. By examining distributed systems we will change the way we think about design problems. But there is a trade off between efficiency and robust adaptability. Simple machines can be efficient, but complex distributed systems are often not.

Looking at complete systems changes the problems for design often in a favorable ways. The emergent complexity of decentralized systems is achieved through the interaction dynamics of multiple simple components all acting in parallel, each with their own set of simple rules.

The goal for architects and designers in creating distributed and/or decentralized types of systems is to be able to create spaces for possible activities and experiences. The best way to develop and understanding and new intuitions about decentralized phenomena is to try to construct their own models and simulations of open systems.