Hola estoy haciedno un robot sumo para una competencia, con los siguientes materiales,
- Arduino UNO
- Base acrílica o chasis de carro(plataforma doble nivel)
- 2 moto reductores
- 2 llantas
- 1 rueda loca
- Puente H
- Sensor de ultrasonido
- 4 sensor de línea (Infrarrojo)
- Cables
- Portapilas 18650
- 2 Baterías 18650
- Cargador de baterías 18650
- Swiche balancín pequeño
- 20 cables macho hembra
- 20 cables macho macho
- Tornillos, bujes y soportes
Características del robot
- El robot deberá ser de tipo autónomo.
- El robot debe de ser diseñado para iniciar el combate 5 segundos
después que el concursante presione un botón de reset. - El robot de sumo no debe exceder las dimensiones de 29,5cmx31cm,
altura libre. - No debe ser expandible o modular.
Además me han dado un codigo base, pero no se como empezar a programar, porque este tiene que prenderse antes de los 5 segundos, detectar el color negro para andar y el blanco para retroceder, aqui el codigo base
//Nombramos los pines a utilizar.
//Pines para los sensores de infrarrojo
#define delIzq 2 //IR delantero izquierdo
#define delDer 3 //IR delantero derecha
#define traIzq 4 //IR trasero izquierdo
#define traDer 5 //IR trasero derecho
//Pines para el sensor ultrasonido
#define echo 7
#define triger 6
//Pines para puente H (motor A - Motor B)
#define adelante1 12 //in1
#define atras1 11 //in2
#define adelante2 10 //in3
#define atras2 9 //in4
//Creamos las variables necesarias
float tiempo=0;
float distancia=0;
int ir1=0; //Delantero izquierda
int ir2=0; //Delantero derecha
int ir3=0; //Trasero izquierda
int ir4=0; //Trasero derecha
void setup() {
//Configuracion de los pines
pinMode(delDer,INPUT);
pinMode(delIzq,INPUT);
pinMode(traDer,INPUT);
pinMode(traIzq,INPUT);
pinMode(echo,INPUT);
pinMode(triger,OUTPUT);
pinMode(adelante1,OUTPUT);
pinMode(atras1,OUTPUT);
pinMode(adelante2,OUTPUT);
pinMode(atras2,OUTPUT);
Serial.begin(9600);
//Iniciamos con ambos motores apagados
digitalWrite(adelante1,LOW);
digitalWrite(adelante2,LOW);
digitalWrite(atras1,LOW);
digitalWrite(atras2,LOW);
delay(5000);
}
void loop() {
//Iniciamos con la funcion para medir la distancia con el ultrasonido
digitalWrite(triger,LOW);
delayMicroseconds(4);
digitalWrite(triger,HIGH);
delayMicroseconds(10);
digitalWrite(triger,LOW);
tiempo=pulseIn(echo,HIGH);
distancia=tiempo/58; //Lugar donde se almacena la distancia medida en cm
//Hacemos la lectura de cada uno de los sensores infrarrojos
ir1=digitalRead(delIzq);
ir2=digitalRead(delDer);
ir3=digitalRead(traIzq);
ir4=digitalRead(traDer);
//Codigo principal del robot sumo
//Condicion en la que los 4 sensores de infrarrojo estan sobre la pista negra
if (ir1==0 && ir2==0 && ir3==0 && ir4==0){
if (distancia<30.0){ //Condicion que evalua la distancia del otro robot sumo
digitalWrite(adelante1,HIGH);
digitalWrite(adelante2,HIGH);
digitalWrite(atras1,LOW);
digitalWrite(atras2,LOW);
}
else{
digitalWrite(adelante1,LOW); //Si no tiene un objetivo en la distancia que le definimos da vueltas para encontrarlo
analogWrite(adelante2,255/3);
digitalWrite(atras1,LOW);
digitalWrite(atras2,LOW);
}
}
else if(ir1==1 && ir2==1 && ir3==0 && ir4==0){
digitalWrite(adelante1,LOW);
digitalWrite(adelante2,LOW);
digitalWrite(atras1,HIGH);
digitalWrite(atras2,HIGH);
delay(700);
}
else if(ir1==0 && ir2==0 && ir3==1 && ir4==1){
digitalWrite(adelante1,HIGH);
digitalWrite(adelante2,HIGH);
digitalWrite(atras1,LOW);
digitalWrite(atras2,LOW);
delay(700);
}
}
si alguien me puede ayudarporfavor
