Mini Sumo Robot with Proximity Sensors

The new semester is approaching fast! And I’m under pressure to get everything lined up and ready. This time, I want the students of the INTRO (Infotronic) course at the Lucerne University of Applied Sciences and Arts to have some fun with building and programming Mini-Sumo Robots 🙂

Opponent View

No chance to escape!

INTRO Zumo Robot V2.9

From the earlier revision 2.1 things have been evolved a bit. On the right bottom the first Zumo robot, top Rev 2.1 and left the new Rev 2.9:

Three different Zumo Robots

Three different Zumo Robots

The new one is Rev 2.9 and has new features, and things are better arranged:

INTRO Zumo Robot V2.9

INTRO Zumo Robot V2.9 without the FRDM-KL25Z

The above picture has the Pololu part numbers listed.

It is using a modular concept, where different sensors and modules can be added:

Otherwise, standard Pololu part items are used: the chassis, motors, H-Bridge, 5V Step-Up/Step-Down and 9V DC/DC converters, reflectance sensor array and the Zumo blade.

As a special feature, multiple wireless modules can be plugged into the board:

INTRO Zumo Robot with FRDM-KL25Z detached

INTRO Zumo Robot with FRDM-KL25Z detached

INTRO Zumo Robot Side View

INTRO Zumo Robot Side View, two proximity sensors on each side

Schematics and Layout

Compared to the earlier version, the INTRO Robot V2.9 Motherboard Schematic and INTRO Robot V2.9 Motherboard PCB Layout has been improved:

Intro Zumo Robot V2.9 Layout

Intro Zumo Robot V2.9 Layout

Positive Effect of Proximity Sensors

The plus of the new robot is the usage of proximity sensors. If the proximity sensors on the side detect the opponent, the robot is turning toward the other robot. The code doing this in the Sumo task is very simple:

if (DIST_10cmLeftOn() || DIST_5cmLeftOn()) { /* sensors on the left detected something */
  SUMU_TurnAngle(-90); /* turn left */
} else if (DIST_10cmRightOn() || DIST_5cmRightOn()) { /* sensors on the right detected something */
  SUMU_TurnAngle(90); /* turn right */
}

In the following video, one robot uses the proximity sensors on the side:

As you can see in the video, the strategy might not succeed in the first attempt, but gives an advantage to win the combat 🙂

I’m using the front ultrasonic sensor to find the other robot, but that algorithm is not solid yet.

Summary

I’m very happy with the new robot :-). V3.0 will have some minor improvements:

  1. Moving the headers for the wireless modules so the reset button of the FRDM-KL25Z is easier accessible.
  2. Removing unused pins on the header for the Bluetooth module.
  3. Moving the headers for the Ultrasonic and I2C to the outer side of the board for better accessibility
  4. Moving user LED and push buttons so they are better accessible with the USB cable connected to the FRDM board.

Students will be able to build and assembly the robots hopefully without issues, and the SMD components are as such that things are not that hard to populate.

Rev. 3.0 is planned to put into production soon, and this time the PCB will be manufactured outside. That way it will have nice PCB silkscreen and solderstop mask :-).

PS: Many thanks to Andreas Albisser who worked hard to make the new INTRO Zumo Robot hardware possible!

Happy PCBing 🙂

11 thoughts on “Mini Sumo Robot with Proximity Sensors

  1. Erich,
    Excellent job. We have a similar system (larger) that we gave away to a group of educators for teaching programming, motion and course planning. The list of uses is almost endless.

    Like

    • Bill,
      thanks! Yes, I think these systems are an ideal playground for many fundamental aspects of embedded systems: real time aspects, multiple things the same time (reentrancy), sensors (calibration, oversampling, …), design patterns (state machines, handshaking, client/server, …) and most important: something which blinks, sounds and makes moves is always fun 🙂

      Like

  2. Pingback: Zumo Robot Chassis PCB arrived! | MCU on Eclipse

    • The side sensors have two purposes for me: I’m using that robot as well for ‘maze solving inside walls’: here it helps me to follow the side walls (the wall is within 10-5 cm).
      For the Sumo competition it does not help much if pointing to the side: it helps to detect an opponent approaching from the side, but 5 or 10 cm are too close: I need the 38 kHz high brightness Pololu IR sensors instead. Still working on the setup, but that’s my strategy 🙂

      Like

        • Yes, I have them too, but not used them in a ‘battle’ yet. I saw better results with the ‘high brightness’ version of the sensor. You mean they were affected by the ruber band tracks? I would not have expected this. But you could use a black electrical tape or something to shield it?

          Like

  3. Hello Erich!
    I’m looking for instructions to use a ultrasonic sensor with FDRM KL25Z. Could you to indicate me some tutorial?
    Thank you so much

    Like

What do you think?

This site uses Akismet to reduce spam. Learn how your comment data is processed.