Project tutorial
How to Make Arduino Sumo Robot

How to Make Arduino Sumo Robot © LGPL

A self-controlled robot with specific dimensions and features. It is also designed in hostile shapes which qualify it to fight.

  • 7,330 views
  • 0 comments
  • 19 respects

Components and supplies

Necessary tools and machines

Lasercutter
Laser cutter (generic)

Apps and online services

About this project

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 didth 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.

Overview

Uses for Each Component

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

1- Arduino Uno

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

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.

the files are available to download in the files section.

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)!

Programming

Project code is available to download.

Accurate ultrasonic sensor library.

https://github.com/ErickSimoes/Ultrasonic/blob/master/examples/UltrasonicSimple/UltrasonicSimple.ino

Code

Arduino CodeArduino
/*

 by ahmed Azouz
  https://www.instructables.com/id/How-to-Make-Ardu...

 Download the lib from here first
  https://github.com/ErickSimoes/Ultrasonic/blob/ma...

*/
#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 ;

void setup() 
{
Serial.begin(9600);
delay (5000); // as per sumo compat roles
}
void loop()
{
  
 int IR_front = analogRead(IR_sensor_front);
 int IR_back = analogRead(IR_sensor_back);
 distance = ultrasonic.read();
 ROTATE(200); // start rotete if (distance < 20){
    Stop();
    while (distance < 20 ) {
    FORWARD(255); 
    distance = ultrasonic.read();
    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);
   }
   
   /* ----------- 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);  
*/ 

} //--------------------------------------------
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);
}//--------------------------------------------
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);
}//--------------------------------------------
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);
}//--------------------------------------------
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);
}

Custom parts and enclosures

Sumo Robot Laser Cut
sketch-up file for the robot design
new_sumo2019_xWpH53v71m.skp

Schematics

Motors wiring
L298n dual h bridge for arduino fnpwydumx7

Comments

Similar projects you might like

MeArm Robot Arm - Your Robot - V1.0

Project tutorial by Benjamin Gray

  • 22,138 views
  • 4 comments
  • 42 respects

Otto DIY+ Arduino Bluetooth Robot Easy to 3D Print

Project tutorial by Team Otto builders

  • 57,803 views
  • 122 comments
  • 187 respects

Smart Face Tracking Robot Car

Project tutorial by Sebastian Hernandez

  • 7,042 views
  • 5 comments
  • 39 respects

Make your first Arduino robot - The best beginners guide!

Project tutorial by Muhammed Azhar

  • 54,812 views
  • 17 comments
  • 127 respects

Swarm Robot Using NRF Chat Application

Project tutorial by 3 developers

  • 2,898 views
  • 2 comments
  • 16 respects

3D Printed and Expandable Robot for Arduino

Project showcase by Matthew Hallberg

  • 3,073 views
  • 3 comments
  • 17 respects
Add projectSign up / Login