Modularity Part Two: Creating Complex Behaviors from Simple Systems
Simple Distributed Networks: Capaccio, Place, Kansu, Zeng, Jones (Fall 2014)
We began this project from the core of one of our other modular systems. We wanted to create a network of simply programmed nodes that in turn would create complex behavior. We also wanted to capture some input from the outside environment on each node that would in turn affect the entire system because the nodes communicate with one another.
We took the system we had built, and attached teensy boards to certain pieces to act as individually programmed “nodes”. These nodes were then connected together using jumper wires and able to communicate over serial. Each teensy had 3 LEDs connected for output and was able to connect to up to 3 total neighbors to send and receive communications. Only one teensy in our set-up had any inputs, and those were an IR-distance sensor and a light sensor.
System in Action
Below you can see a video of an example of the behaviors that can be created by this iteration of the system. Depending on which input triggered the system, the teensy that received that data forwarded a particular message to its neighbors. Each neighbor then performed an action based on that message and sent another message to its neighbors. This then would create a cascading effect through the system. In the video :
- When there is something detected near the distance sensor, that node sends a message to light up green and tells its neighbors to light up blue. If a node received a blue message, then it told its neighbors to light up red. When any node receives a red message, it sends no further communication.
- When there is not enough light detected by the light sensor, each node is programmed to pulse their green LED and tell all their neighbors to pulse the green LED. This is to attempt to create enough light for the sensor to not need to send that message again.
After diving deeply into this idea of simple distributed networks, we all learned a great deal of how to create complex behaviors from simple instructions.