(article continued from previous page)
PCB for sumo robot with Freescale HC08 microcontroller. Underneath: Floor edge sensors and a li-poly battery.
Believe it or not, the motherboard on the No.2 robot is the exact same board as Jet uses. Yet, Jet is an entirely different robot -- it is an ultra-fast line-follower.
I’ve switched to Atmel RISC AVR microcontrollers because of their low price, availability at DigiKey, availability in hobbyist-friendly DIP packages, and local friends that also use them. However, at the time I built No.2, I used a Freescale (formerly Motorola) HC08 CISC microcontroller. Specifically, the MC68HC908GP32.
The robot runs on a pair of lithium-polymer rechargeable batteries located underneath. The total voltage is around 8.2 when fully charged. These batteries can put out a lot of current and they’re compact.
A red LED and phototransistor form a reflective pair to sense the white edge of the mini-sumo ring.
Obviously the robot shouldn’t just drive off the board. So, the No.2 sumo robot has three sensors to detect the edge of the sumo ring.
The sensors are beneath the robot. Intense light from the red LED reflects off the sumo ring surface and into the phototransistor. When the robot is within the main boundaries, the black surface reflects very little light. But, when the robot approaches the edge, the white surface reflects a lot of light, thus changing the voltage of the phototransistor.
I’ve chosen to use red LEDs instead of infrared LEDs because it is easier for me to see where they’re pointed. Also, red looks cooler. Red cannot be perceived as easily by the phototransistor, as phototransistors and photodiodes are usually designed for infrared. However, with the high output of a modern ultra-bright red LED, it works just fine for detecting the reflectivity of the sumo surface.
The No.2 robot has two sensors in the front to allow the robot to determine if it needs to do a 180 turn (both sensors lit up) or if it simply needs to turn another direction (the shortest turn is opposite the direction of the one sensor that lit up).
The robot also has one rear sensor for the occasions that turning and backing away from the edge actually backs the robot into another nearby edge. Unfortunately for me, I never bothered programming the code to read this sensor, which caused the only round loss for No.2 when it backed out of the ring by accident. Oops!
And now the moment you’ve been waiting for...