IR communication between multiple platforms
Once you have many platforms rolling, walking, bouncing and sliding around your premises, chaos begins to rule quite quickly.
In short, obstacle avoidance becomes a nightmare as platforms of various weights, sizes and speeds all start avoiding each other.
Additionally, it becomes advantageous to be able to transmit and receive short messages and use the communication "beam" to determine directions -- as in the case of "beacons" and charging "nests".
In any case, we developed a simple infrared transmission protocol that uses the same emitters/detectors in use by television remotes and the like.
Our bit lengths, message framing and other parameters were chosen so that:
- in-house messages would not be confused with regular remote control messages and vice versa
- sending to and from specific addresses would be supported
- highly immunized against noise
- would allow for same emitter/detector setup on a given platform to be used for obstacle detection as well.
In short, a 13 bit message is sent via IR pulses:
1 start bit
4 recipient address bits
4 sender address bits
4 message bits
Address 0x0 is reserved as "broadcast all" -- all platforms will accept messages to that recipient address. Otherwise, platforms only accept and parse messages addressed to themselves.
In practice, two messages frames are counted out -- i.e., the message is sent twice and a message is "listened for" twice -- then the system sends out brief pulses for obstacle detection.
Lastly, my own in-house protocol requires that any platform receiving a message from a platform with a LOWER address than itself must HALT. Careful address assignments means that smaller, slower platforms "freeze" in the presence of their heavier, faster siblings. Essentially, the smaller platforms become static obstacles, which are much easier to avoid without them becoming crushed.
In the case of the Twins, they are both programmed to seek each other out, and when they find each other, they both stop and sing a song to each other -- for a while -- before roaming off again. It's very cute.
See the attached PDF for a full description of the protocol itself.
Download PDF describing IR communication protocol »