Arduino Sumo Robot

About: Software Engineer

Before we start ..

What is the sumo robot?

It is a self-controlled robots with specific dimensions and features, it is also designed in a Hostile shapes which qualify it to participate in the contests and competitions with other robots.

The name “sumo” came from an old Japanese sport, which is two opponents fighting in a ring, each of them trying to push the other opponent out of it, And this is what should robots also do in the sumo robotics competitions, where two robots placed in the ring and each other trying to push out its opponent.

The idea:

Build a robot with a certain specifications and commensurate with the laws of that competition (Sumo), this robot must be in exact dimensions to fight and survive to not be cross out of ring any way.

So let’s have a look to The Sumo robot competition laws:

I will explain some important roles you should consider while building your own SUMO it also might help you Imagine and innovation your own Idea without going in deep details.

1. Dimensions: Max Width 20 cm, Max Length 20 cm, Height not specified.

2. Shape: the robot shape can be changeable after starting the race, but without the inseparable parts to maintain being one central Object.

3. Weight: does not exceed 3 kg.

4. Robot must be self-controlling.

Step 1: Components

1 Arduino Ano3

2 DC Motor

1 L298N Dual H Bridge for Arduino

1 Ultrasonic sensor

2 IR TCRT5000

1 Battery 9v

AA battery 4 * 1.5 v pieces + Battery house

4 Robot Wheels

jumper wires

Step 2: Uses for Each Component

Now we have the required components, so let’s go in details to know what is used for ..

1- Arduino Ano3

It is a main board that control all the parts and link it together

2- DC Motor

Which help robot to maneuver and move within the ring of COMPETING

4- L298N Dual H Bridge for Arduino

It is a small panel that provides constant voltage to the motors, as well as the support of the Arduino plate with good control of movement and voltage.

5- Ultrasonic sensor

The ultrasonic sensor is used to locate the opponent's robot and is usually placed at the top of the robot.

6- IR TCRT5000

As we have already mentioned, the contest ring designed in a certain size and it have two colors, filling is black and frame is white. The contestant should not go out. Therefore, we use the IR sensor to make sure that the robot will not be out of the ring. This sensor has the ability to distinguish between the colors of the ring).

7- Battery 9v

It support the main board (Arduino) with the important voltage.

8- AA battery 4 * 1.5 v pieces + Battery house

It support the two motors (DC Motor) with the important voltage and it must be separated to give the full force for the wheels.

9- Jumper wires

Step 3: Design

I’ve made two sumo robot designs using Google 3D sketch-up because I like to create paper models of my robots before I cut parts out of acrylic on the laser cutter. To verify that all the parts will fit together properly, it’s important that the paper models are printed at the exact size of drawings.

And I take into consideration to be in specific measuring with competition laws, so try to think in a more creative designs and do your own model.

In order to be more sensitive to the robot weight in submitted or then put the batteries in the front of the robot with the front shield at a 45 degree angle to the form of the robot.

Download the design 1 from here

Download the design 2 from here

You may also Download Paper model template

Open the PDF file with Adobe Acrobat Reader (recommended software)

Step 4: ​Play Strategy

As we mentioned before that the robot must have its own ability to control it self, so it gives us the ability to programmed it in more than one way, it depending on how you want the robot to play on the ring just as any opponent in real want to win the game.

Play strategy (1):

· We will make the robot around itself continuously.

· The robot is always measuring the distance continuously during the rotation.

· If the opponent distance measured is lower than (10cm for example), that means the opponent is in front of robot us directly.

· The robot must stop rotating and then starts the attack (move forward with full force quickly).

· The robot must take the readings from the IR sensors always to be sure that we didn’t cross the ring border.

· If Read of IR presence of white color, it must move the robot directly in the opposite direction of the sensor (for example: If the front sensor, which gave an indication of the white color of the robot moves backward)!

Play strategy (2):

· At the start robot measure the distance in front.

· Robot move back the same measured distance.

· Robot stop rotating and then starts attack suddenly (move forward with full force).

· In case of opponent attach robot must rotate 45 degrees while to survive itself if falling out of the ring.

· The robot must take the readings from the IR sensors always to be sure that we didn’t cross the ring border.

· If Read of IR presence of white color, it must move the robot directly in the opposite direction of the sensor (for example: If the front sensor, which gave an indication of the white color of the robot moves backward)!

Step 5: Programming

please check the circuit and code

*Note
The project is under construction and I will share the actual photos once it get finished.

<p>// by ahmed farag www.ahmedazouz.com</p><p>// http://arduino.ahmedazouz.com/downloads/SUMO Robot1.rar</p><p>// http://arduino.ahmedazouz.com/downloads/SUMO Robot1.rar</p><p>#include "Ultrasonic.h"
Ultrasonic ultrasonic(4,3);
const int IN1=5;
const int IN2=6;
const int IN3=9;
const int IN4=10;
#define IR_sensor_front A0 // front sensor
#define IR_sensor_back A1 // rear senson
int distance ;</p><p>void setup() 
{
Serial.begin(9600);
delay (5000); // as per sumo compat roles
}</p><p>void loop()
{
  
 int IR_front = analogRead(IR_sensor_front);
 int IR_back = analogRead(IR_sensor_back);
 distance = ultrasonic.Ranging(CM) ;
 ROTATE(200); // start rotete</p><p> if (distance < 20){
    Stop();
    while (distance < 20 ) {
    FORWARD(255); 
    distance = ultrasonic.Ranging(CM);
    IR_front = analogRead(IR_sensor_front);
    IR_back = analogRead(IR_sensor_back);
    if ( IR_front > 650 || IR_back > 650 ) { break;}
    delay(10); }
  }
  
 if (IR_front < 650 )  // < 650 means white line
   {
   Stop();
   delay (50);
   BACKWARD(255);
   delay (500);
   } 
   
 if (IR_back < 650 )  //
   {
   Stop();
   delay (50);
   FORWARD(255);
   delay (500);
   }</p><p>/* ----------- debugging ----------------
  Serial.print(ultrasonic.Ranging(CM));
  Serial.println("cm");
  Serial.println("IR front :");
  Serial.println(IR_front); 
  Serial.println("IR back :");
  Serial.println(IR_back);  
*/ --------------------------------------  </p><p>}</p><p>//--------------------------------------------
void FORWARD (int Speed){
  //When we want to let Motor To move forward,
  // just void this part on the loop section .
  analogWrite(IN1,Speed);
  analogWrite(IN2,0);
  analogWrite(IN3,0);
  analogWrite(IN4,Speed);
}</p><p>//--------------------------------------------
void BACKWARD (int Speed){
  //When we want to let Motor To move forward,
  // just void this part on the loop section .
  analogWrite(IN1,0);
  analogWrite(IN2,Speed);
  analogWrite(IN3,Speed);
  analogWrite(IN4,0);
}</p><p>//--------------------------------------------
void ROTATE (int Speed){
  //When we want to let Motor To Rotate ,
  // just void this part on the loop section .
  analogWrite(IN1,Speed);
  analogWrite(IN2,0);
  analogWrite(IN3,Speed);
  analogWrite(IN4,0);
}</p><p>//--------------------------------------------
void Stop(){
  //When we want to  Motor To stop ,
  // just void this part on the loop section .
  analogWrite(IN1,0);
  analogWrite(IN2,0);
  analogWrite(IN3,0);
  analogWrite(IN4,0);
}</p>

Share

    Recommendations

    • Plastics Contest

      Plastics Contest
    • Make it Glow Contest 2018

      Make it Glow Contest 2018
    • Optics Contest

      Optics Contest

    14 Discussions

    0
    None
    FatihahR1

    Question 10 days ago

    hi, i want to ask about the 3d car template. i have a bit problem in designing the 3d car. can you help me?

    0
    None
    wiltonjrahmedazouz

    Reply 7 weeks ago

    Good Morning

    Do you have PDF Design of the robot two wheels

    0
    None
    ahmedazouzwiltonjr

    Reply 7 weeks ago

    Good morning,
    Sure I will upload it so soon

    0
    None
    LêL27

    Question 7 weeks ago

    First I thank you for your contribution, but I have questions about the first line #include "Ultrasonic.h"
    Ultrasonic ultrasonic (4,3); When I load the program always error this line. thank you very much!

    2 more answers
    0
    None
    LêL27ahmedazouz

    Reply 7 weeks ago

    I'm sorry ! But the Ultrasonic-HC-SR04 library does not work for the arduino Uno, how do I fix it?

    0
    None
    BEDM1

    Question 3 months ago

    hi, firstly i`d thank you for all information above

    but you said we have always take the reading from IR sensor,

    now , why we put ultrasonic sensor ?

    please explain to me

    what i want to say , we can take reading from ultrasonic to move in front , but when our robot come to the edge of the ring we will take the reading from IR sensor to move back .

    is that right ?

    1 more answer
    0
    None
    ahmedazouzBEDM1

    Reply 2 months ago

    At first sorry for late.
    Second.. we need the ultrasonic sensor to read the distance continuously, because the target (opponent) is not in a fixed place , so your robot must read more inputs to an action in time.

    0
    None
    N_imah

    Question 9 months ago on Step 5

    I want to ask about it where I should but it because in the circuit it's not found also how I can compare between the Altra Sonic sensor circuit and bridge circuit and how I can bute the it with them ?

    0
    None
    N_imah

    9 months ago

    I want to ask about it where I should but it because in the circuit it's not found also how I can compare between the Altra Sonic sensor circuit and bridge circuit and how I can bute the it with them ?

    0
    None
    FaragA

    10 months ago

    Excellent job .. Excellent achievement and performance .. The idea .. steps .. teaching style and professional vocabulary are really great .. God bless you .. and wish you bright future.