7.c. Collision-detecting sumo robot
This example extends the simple border-detecting sumo robot example described in the previous section, making use of the accelerometer in the Zumo Shield’s LSM303 3-axis compass module (described in section Section 3.d) to detect collisions. With the Zumo Shield Arduino Libraries installed, the sketch file can be opened in Arduino by selecting File > Examples > ZumoExamples > SumoCollisionDetect. This example also requires the LSM303 library to be installed.
This program uses the X and Y components of the acceleration measured by the LSM303 to determine when it has made contact with an adversary robot in a sumo competition. When it detects contact, the Zumo speeds up, which should allow it to either more effectively push the opponent out of the ring or to escape the opponent if it collided at an undesired angle (from the rear or side). To read more about how this program works, please see the comments contained in SumoCollisionDetect.ino.