top of page
Inicio Sumo
Robot Sumo.png
Quick Manual Sumo
Quick Manual
Instalar Mblock y Drivers Sumo
Instalar Mblock y Drivers

Paso 1. Descargar e instalar Programa Mblock para programar por bloques el robot Seguidor de líneas.

Descarga de carpeta con código en Mblock y circuito eléctrico en fritzing

Utilizar driver CH340 solo en caso de que el Arduino Uno no se pueda programar con los drivers ya instalados por default en la computadora

Programar en Mblock Sumo
Programar en Mblock
Codigo para Arduino IDE

#include <Arduino.h>

#include <Wire.h>

#include <SoftwareSerial.h>

 

float MotorDerechoA = 0;

float MotorIzquierdoA = 0;

float MotorIzquierdoB = 0;

float MotorDerechoB = 0;

float VelMotorDer = 0;

float VelMotorIzq = 0;

float SensorDerecho = 0;

float SensorIzquierdo = 0;

float BotonInicio = 0;

float LED = 0;

 

float getDistance(int trig,int echo){

pinMode(trig,OUTPUT);

digitalWrite(trig,LOW);

delayMicroseconds(2);

digitalWrite(trig,HIGH);

delayMicroseconds(10);

digitalWrite(trig,LOW);

pinMode(echo, INPUT);

return pulseIn(echo,HIGH,30000)/58.0;

}

void Retroceder (){

digitalWrite(MotorDerechoA,0);

analogWrite(MotorDerechoB,VelMotorDer);

digitalWrite(MotorIzquierdoA,0);

analogWrite(MotorIzquierdoB,VelMotorIzq);

 

}

 

void Variables (){

BotonInicio = 19;

LED = 3;

MotorDerechoA = 5;

MotorDerechoB = 6;

MotorIzquierdoA = 9;

MotorIzquierdoB = 10;

SensorDerecho = 0;

SensorIzquierdo = 0;

VelMotorDer = 200;

VelMotorIzq = 200;

digitalWrite(LED,1);

 

}

void GirarDerecha (){

analogWrite(MotorDerechoA,VelMotorDer);

digitalWrite(MotorDerechoB,0);

digitalWrite(MotorIzquierdoA,0);

analogWrite(MotorIzquierdoB,VelMotorIzq);

 

}

void GirarIzquierda (){

digitalWrite(MotorDerechoA,0);

analogWrite(MotorDerechoB,VelMotorDer);

analogWrite(MotorIzquierdoA,VelMotorIzq);

digitalWrite(MotorIzquierdoB,0);

 

}

void RutinaInicio (){

while(!(digitalRead(BotonInicio) == 0.000000))

{

_loop();

}

for(int count=0;count<5;count++){

digitalWrite(LED,0);

_delay(0.5);

digitalWrite(LED,1);

_delay(0.5);

}

 

}

void Detenerse (){

digitalWrite(MotorDerechoA,0);

digitalWrite(MotorDerechoB,0);

digitalWrite(MotorIzquierdoA,0);

digitalWrite(MotorIzquierdoB,0);

 

}

void Avanzar (){

analogWrite(MotorDerechoA,VelMotorDer);

digitalWrite(MotorDerechoB,0);

analogWrite(MotorIzquierdoA,VelMotorIzq);

digitalWrite(MotorIzquierdoB,0);

 

}

 

void _delay(float seconds) {

long endTime = millis() + seconds * 1000;

while(millis() < endTime) _loop();

}

 

void setup() {

pinMode(MotorDerechoA,OUTPUT);

pinMode(MotorDerechoB,OUTPUT);

pinMode(MotorIzquierdoA,OUTPUT);

pinMode(MotorIzquierdoB,OUTPUT);

pinMode(LED,OUTPUT);

pinMode(BotonInicio,INPUT);

Variables();

Detenerse();

RutinaInicio();

GirarDerecha();

_delay(2);

while(1) {

SensorIzquierdo = getDistance(17,16);

SensorDerecho = getDistance(15,14);

_delay(0.2);

if(((SensorIzquierdo < 50) && (SensorIzquierdo > 0)) && ((SensorDerecho < 50) && (SensorDerecho > 0))){

Avanzar();

_delay(1);

 

}

if((((SensorIzquierdo > 50) || (SensorIzquierdo == 0.000000))) && ((SensorDerecho < 50) && (SensorDerecho > 0))){

GirarDerecha();

_delay(0.2);

Avanzar();

_delay(0.2);

 

}

if(((SensorIzquierdo < 50) && (SensorIzquierdo > 0)) && (((SensorDerecho > 50) || (SensorDerecho == 0.000000)))){

GirarIzquierda();

_delay(0.2);

Avanzar();

_delay(0.2);

 

}

if(((SensorIzquierdo < 1) && (SensorDerecho < 1)) || ((SensorIzquierdo > 100) && (SensorDerecho > 100))){

GirarDerecha();

_delay(0.2);

GirarIzquierda();

_delay(0.2);

 

}

 

_loop();

}

 

}

 

void _loop() {

}

 

void loop() {

_loop();

}

Control Bluetooth Sumo
Controlar Robot con APP Bluetooth
Imagen10.png
Imagen11.png
Imagen12.png
bottom of page