Está en la página 1de 5

Robot Minisumo

Terminado
Samuel David Freire Juan Camilo Brito Andrade Luis Fernando Zuñiga
Agudelo Garzon

Samuel.fra@outlook.com juancamilobritoandrade@gm
luiszugarzon975@gmail.com
ail.com

Abstract— In the following report we will show the


sumo robot with its finished physical structure and
the respective programming code to control it by
means of bluetooth with the corresponding Materiales
application
- Un carrete de 10 cm de diámetro
- Dos motores de 3.5 v
- Un arduino UNO
I. INTRODUCCION - Puente H
- Jumpers de conexión
En el siguiente informe mostraremos el robot sumo con su - Banco de 3 baterías de 4.2 v a 3.800mA
estructura física terminada y el respectivo código de - Una rueda loca
programación para controlarlo por medio de bluetooth - Modulo bluetooth HC-05

II. MARCO TEORICO Procedimiento:


Objetivos Lo primero que hacemos Es ensamblar los motores a
los extremos del carrete después agregamos una rueda
General: llevar a cabo la creacion del codigo que loca en frente para darles una orientación al robot.
permita manejar al robot por medio de bluetooth y
que pueda tener cualquier direccion deseada Después ensamblamos el puente H al armazón con
tornillos y conectamos los motores a las dos salidas
Especificos: que tiene el puente H.
• Ensamblar correctamente el robot con su A continuación conectamos las entradas del puente
parte de alimentación H con los pines 6. 7, 8, 9 del arduino, y usamos los
pines de control de velocidad del puente H para
• hacer las conexiones entre el arduino, el conectarlos con los pines 10 y 11 del arduino que
controlador de motores o puente H y los tenemos salidas PWM.
motores
Para alimentar todo conectamos el positivo y el
negativo del banco de las baterías con la entrada de
12v y la tierra del puente H respectivamente, con lo
que en el puente H
CODIGOS
Para que el robot haga un círculo:
Para que el robot haga un cuadrado:
void setup()
{
void setup() pinMode(6, OUTPUT);
{ pinMode(7, OUTPUT);
pinMode(6, OUTPUT); pinMode(8, OUTPUT);
pinMode(7, OUTPUT); pinMode(9, OUTPUT);
pinMode(8, OUTPUT); pinMode(10, OUTPUT);
pinMode(9, OUTPUT);
pinMode(11, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
Serial.begin(9600);
Serial.begin(9600);
} }
void loop()
{ void loop()
adelante(); {
delay(2000); digitalWrite(6, HIGH);
derecha(); digitalWrite(7, LOW);
delay(650); analogWrite(10, 80);
adelante();
digitalWrite(8, HIGH);
delay(2000);
digitalWrite(9, LOW);
derecha();
delay(650); analogWrite(11, 255);
adelante();
delay(2000);
derecha(); }
delay(650);
adelante();
delay(2000); Los anteriores códigos fueron usados para hacer las
} pruebas sin el modulo bluetooth
void adelante()
{
analogWrite(10, 255);
analogWrite(11, 255);
digitalWrite(6, HIGH); Aplicación usada para el respectivo movimiento
digitalWrite(7, LOW); del robot
digitalWrite(8, HIGH);
digitalWrite(9, LOW);
}
void derecha()
{
analogWrite(10, 255);
analogWrite(11, 0);
digitalWrite(6, HIGH);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(9, HIGH);
}
Código para el modulo bluetooth if (flag1 != 1)
{
// ESTOS HARAN QUE VAYA PARA ADELANTE EL
//robotsumo
CARRITO.
// CARRO CONTROLADO POR VIA BLUETOOTH.
flag1 = 1;
digitalWrite( Motor1A, HIGH);
analogWrite( Motor1B, 0 );
#include <SoftwareSerial.h>
digitalWrite( Motor2A, HIGH);
#include <Servo.h>
analogWrite( Motor2B, 0 );
}
// CONEXIONES PARA EL BLUETOOTH.
}
if(toSend == 'B' || toSend == 'H' || toSend == 'J')
int bluetoothTx = 2;
{
int bluetoothRx = 3;
if(flag1 != 2)
{
SoftwareSerial bluetooth(bluetoothTx, bluetoothRx);
// ESTOS HARAN LA REVERSA DEL CARRITO.
// MOTOR 1.
flag1 = 2;
digitalWrite( Motor1B, HIGH);
int Motor1A = 5;
analogWrite( Motor1A, 0 );
int Motor1B = 6;
digitalWrite( Motor2B, HIGH);
analogWrite( Motor2A, 0 );
// MOTOR 2.
}
}
int Motor2A = 9;
if(toSend == 'L' || toSend == 'G' || toSend == 'H')
int Motor2B = 10;
{
if(flag2 != 1)
void setup ()
{
{
bluetooth.begin(115200);
// ESTOS HARAN QUE GIRE HACIA LA IZQUIERDA.
bluetooth.print("$$$");
flag2 = 1;
delay(100);
digitalWrite( Motor2B, HIGH);
bluetooth.println("U,9600,N");
analogWrite( Motor2A, 0 );
bluetooth.begin(9600);
digitalWrite( Motor1A, HIGH);
analogWrite( Motor1B, 0 );
pinMode( Motor1A, OUTPUT );
}
pinMode( Motor2A, OUTPUT );
}
pinMode( Motor1B, OUTPUT );
else
pinMode( Motor2B, OUTPUT );
if(toSend == 'R' || toSend == 'I' || toSend == 'J')
{
digitalWrite( Motor1A, LOW );
if(flag2 != 2)
digitalWrite( Motor2A, LOW );
{
digitalWrite( Motor1B, LOW );
digitalWrite( Motor2B, LOW );
// ESTOS HARAN QUE GIRE HACIA LA DERECHA.
}
flag2 = 2;
digitalWrite( Motor1B, HIGH);
int flag1 = -1;
analogWrite( Motor1A, 0 );
int flag2 = -1;
digitalWrite( Motor2A, HIGH);
analogWrite( Motor2B, 0 );
void loop()
}
{
}
if(bluetooth.available())
else
{
{
char toSend = (char)bluetooth.read();
if(flag2 != 3)
if(toSend == 'S')
{
{
flag2 = 3;
flag1 = 0; digitalWrite ( Motor2A, LOW);
flag2 = 0; analogWrite ( Motor2B, LOW);
digitalWrite ( Motor2B, LOW);
digitalWrite( Motor1A, LOW); analogWrite ( Motor2A, LOW);
analogWrite( Motor1B, LOW); }
}
digitalWrite( Motor2A, LOW), }
analogWrite( Motor2B, LOW); }
//robotsumofin
}
if( toSend == 'F' || toSend == 'G' || toSend == 'I') Conclusión
{
Al final nuestra prueba podemos observar el buen
funcionamiento de los componentes y podemos evidenciar
como el robot responde a los códigos usados y ya
anteriormente probados en simulaciones, teniendo como
resultado un robot que responde a cualquier movimiento
de manera eficiente y rápida.

ANEXOS

Primera prueba realizada con el modulo bluetooth


usando un arduino NANO como primera instancia

Robot con arduino uno, alimentación correctamente


ensamblada, modulo bluetooth y su respectiva
aplicación

También podría gustarte