The Millibot's architecture and subsystems. We are considering two different implementations of inter-module communications. Currently, each main processor provides a set of dedicated slots that are capable of servicing up to six sensor or actuator modules. Each module is assigned slots on the main processor in which timing and information are shared. The choice of module and slot is made by the operator and configured in software.
All information is passed back and forth in the form of serial communications.
A second possible implementation that we are adopting for future generations of the Millibots is based on I2C. I2C is a bus design and communications protocol that allows multiple modules to be connected to a common two-wire bus. One wire provides a high speed, synchronous clock while the other provides a two way data line. All messages on the data line are pre-appended with an address header identifying the target module. This interface is less restrictive than the dedicated slot method because it allows more modules to be connected to the same processor without having to designate separate pins. Once the interface between the main processor and its modules has been defined, the necessary sub-systems can be iterated.