Will O' the Wisps is an experiment in self-sustained system dynamics using environmentally derived power sources. The project consists of eight modules (creatures) that operate independently, but coordinate their efforts to perform a common task. Each module implements a solar panel to collect the energy needed to operate (feeding) and communicates using radio transmissions. These mechanisms allow the system’s overall behavior to mimic the interactions of prairie dog and mongoose colonies. The project is located in upstate New York in the grass of the WAVE FARM.
PROJECT GOALS:
PROJECT GOALS:
This project focuses on utilizing technology with a style of function that is more flexible, structurally autonomous and can operate with reduced power needs. It also uses off the shelf products to test the limits of function using easily obtainable parts and techniques.
RATIONAL:
The functional space of most technological devices is now personalized instead of group oriented, causing a restructuring in the way we navigate life and create a sense of self. A good example is the change in typical phone usage. Phones originally were linked to a specific physical space (or group identity like an office) and not an individual person. Cell phones have changed this relationship causing the technological function to now be linked with individuals and not a space. This causes a change in the way we store power, create network functionality and personally think about what our self-identifying capabilities are. A quick summation of these changes in phone technology are also applicable to many new technological structures and are central to the Will O’ the Wisp project:
POWER STORAGE: technologies are now linked to people who need to function away from classical power sources (wall plugs). This creates a need to store or use less power to achieve the functionality we depend on.
GOAL: To create devices that can be powered by the environment they are intended to operate in. EG. A cell phone that could be powered by the hand that holds it or through sound vibrations.
NETWORK FUNCTIONALITY: networks that depend on people need to be flexible to function with the varying movement and use patterns of individuals.
GOAL: To create a system that can still function without a center node so redundancy is inherently built in. Allowing parts of the system to enter and exit the system at will without crashing the overall structure.
PERSONAL OPERATION: Our personal actions change with the abilities we posses whether it is the movement of our arms or talking to people with cell phones. Cell phones have changed our behavior with the way we make plans to meet people, what information we need to remember and how we feel secure.
GOAL: Will O’ the Wisp looks at how these systems can communicate and interact with people. It creates a small system to test if the technological behaviors/interactions resonate enough to change a persons behavior.
BEHAVIOR:
Just like small mammal groups the general task of Will O the Wisps is to keep predators confused and therefore unable to get near a single individual. The group interaction is based on the principles of swarm intelligence, where each module is a separate entity with its own guidelines of operation but coordinate to complete a larger task. The complexity and functionality of the system is created by the concurrent operation and interaction of these modules, producing complex behavior patterns from simple means.
THE systems overarching behavior is based on the expression of each individual modules programming. Each module is programmed to perform four primary tasks, which are:
1. Keep predators away from themselves.
2. Help other modules draw predators away from the first by making noise.
3. Store and gauge how much power is required to complete these two task
4. Communicate with the other modules to achieve the first three.
A simple example of the systems functionality would be as follows when one module detects a predator:
(1)First the module detects a predator, on detection it (2)wirelessly sends out a request to the group to make a noise to move the predator away from the first module. The modules then each check to see if they have the power to make a noise. If they do a (3)”OK” reply is sent and the second module makes a noise. If they do not a “NO” is sent back and the requesting module continues to request.
All modules transmit their reply not only to the requesting module but also to a gateway receiver, which is hooked up to the Internet. The module information is transmitted to a database and is graphed to show the shift in energy concentration across the group. In this way you can view the changes in solar energy availability at different times of day and seasons.
NETWORK FUNCTION:
One of the main goals of this project was to investigate the possibilities of linking up the new mesh technologies provided by the ZIGBEE protocol and hardware with the older idea of swarm intelligence and "self" organizing systems.
Overview of swarm intelligence:
“SI systems are typically made up of a population of simple agents interacting locally with one another and with their environment. The agents follow very simple rules, and although there is no centralized control structure dictating how individual agents should behave, local interactions between such agents lead to the emergence of complex global behavior. “
Beni, G., Wang, J. Swarm Intelligence in Cellular Robotic Systems, Proceed. NATO Advanced Workshop on Robots and Biological Systems, Tuscany, Italy, June 26–30 (1989)
The new XBEE modules support a range of low power operation linked with persistent routing tables and sleep modes. This allows the modules to be run off battery or intermittent power supplies, while keeping the integrity of the overall network. In this way you are able to create a functional system, which is not dependent on all of the parts being active at the same time. So modules can join or leave the network without changing the overall functioning of the system. These methods and interactions are what are needed in a functioning Swarm intelligence network.
In making the protocol the issue of missing modules due to temporary power loss had to be addressed. The protocol was created to achieve the maximum amount of flexibility and action from the system with the least amount of data transfer. To get this flexibility the protocol is onside dependent in case there is not another module to receive (due to temporary power loss) and incorporates a series of time/energy based limits to each modules actions.
THE CALL:
(a technique to display energy sonically)
The call of the modules has two functions one to draw a predator towards the module making the noise and two to sonically represent the “fittest” module in the group.The fitness is based on how much solar energy the module has stored over a specific time period.
Each module has a unique tone, and can be identified by it. The call that is played by each module is made up of these tones played in a sequence. The more “fit” a specific module is the longer their tone will sound in each modules call. In this way you can hear sonically the change in energy concentrations during the day. As the sun moves across the sky specific modules receive more or less power causing their fitness to change, this fluctuation creates the sonic shift in the call.
As you can see in the diagram the call represents all the modules by assigning each a different tone. The length of the tone represents the fitness level of the module as the fitness increases the tone becomes the dominate tone in the "call". The first tone in the call is always the tone of the current module.
Fitness is determined by how often a module was able to play based on the other modules. For instance if module A played 20 times, module B played 10 times and module C played 5 times, module A’s tone would play 4 times as long as module C and twice as long as module B.
The “fitness” level is created and maintained with the transfer of a request and answer sequence between modules. When a request is made, the reply contains the answer as well as the fitness level byte of the module that was queried. This fitness level is compared to the requesting modules fitness level and if it is greater (has played more often) than the requesting module’s fitness a change is made to the requesters "call". The change represents the percentage of difference between the more active or fit modules "call" and its own. In this way the systems call will change dynamically to reflect the most active well-energized modules at that time.
Below is the operational function of each module's programming.
This is a macro description of the each modules programming using their hardware.
RF ACTIVE FLOW
->1. If there is input from the XBEE module the microcontroller takes the DATA IN and parses it, if it is junk it returns back to the monitoring state.
->2. If there is uncorrupted data it will be in the form of a request to make a "call", the module then checks the available power stored in the bank of capacitors used for the speakers via a voltage divider.
->3. If there is enough power the micro-controller sends out an "OK" out the XBEE and proceeds to activate the speaker making the "call". If "NO" it returns to monitor mode.
PHOTO-RESISTOR ACTIVE FLOW
->1. IF the photo-resistors analogue level is sufficiently low the microcontroller triggers the sleep mode and pulls the XBEES sleep pin high and reduces the internal clock to conserve power.
->2. It then only monitors the photo-resistor to gauge when to wake up.
->3. IF the photo-resistors analogue level is sufficiently high it continues into monitor mode.
IR ACTIVE FLOW
->1.If the digital read pin connected to the IR detector is pulled high from a motion event the micro-controller sends out the XBEE a sound request message.
->2. The microcontroller waits for a response.
->3 A. if there is a "OK" reply the module looks at the fitness level that was sent in with the "OK" status message and changes its "call" appropriately.
->4 B. if a "NO" is returned or the module times out the micro-controller re-sends with a new address.