Chasis hecho con madera MDF. 2 Llantas. 2 Motor reductores. 1 Arduino UNO. 1 Modulo Bluetooth. 1 Rueda loca. 1 Puente H. 1 Portapilas. 1 Cable tipo Dupont. 1 Protoboard. Programación y ensamblaje listos para su uso. Toda la tornilleria necesaria. Todo el cableado necesario. Manual físico de ensamblaje CD con la programación necesaria.
La programación que incluye es la siguiente:
//Programa realizado por Titans Technology para el robot evita obstaculos
//Declaracion de variables y pines
int EnA=10;
int In1=9;
int In2=8;
int In3=7;
int In4=6;
int EnB=5;
int TRIG1 = 13;
int ECHO1 = 11;
int TRIG2 = 2;
int ECHO2 = 3;
int obstaculo = 6;
int i = 0;
int duracion1;
int distancia1;
int duracion2;
int distancia2;
int velocidad2 = 130;
int velocidad1 = 106;
int cm1;
int cm2;
//La funcion de configuracion se ejecuta al restablecer o encender la placa.
void setup() {
pinMode (ECHO1, INPUT);
pinMode (TRIG1, OUTPUT);
pinMode (ECHO2, INPUT);
pinMode (TRIG2, OUTPUT);
pinMode (In1, OUTPUT);
pinMode (In2, OUTPUT);
pinMode (In3, OUTPUT);
pinMode (In4, OUTPUT);
pinMode (EnA, OUTPUT);
pinMode (EnB, OUTPUT);
}
//La funcion de repeticion se ejecuta despues del void setup()
void loop() {
//Valores que toman las variables
cm2 = distanciacm2 ();
cm1 = distanciacm1 ();
delay (100);
adelantar ();
if (cm2 > 20)
{
delay (100);
adelantar ();
}
else if (cm2 < 23) {
detener ();
delay (100);
girar_der ();
delay (100);
adelantar ();
}
}
void detener () {
digitalWrite (In1, LOW);
digitalWrite (In2, LOW);
digitalWrite (In3, LOW);
digitalWrite (In4, LOW);
}
void girar_der () {
analogWrite (EnA, velocidad1);
digitalWrite (In1, HIGH);
digitalWrite (In2, LOW);
analogWrite (EnB, velocidad2);
digitalWrite (In3, HIGH);
digitalWrite (In4, LOW);
}
void girar_izq () {
digitalWrite (In1, LOW);
digitalWrite (In2, HIGH);
digitalWrite (In3, LOW);
digitalWrite (In4, HIGH);
analogWrite (EnA, velocidad1);
analogWrite (EnB, velocidad2);
}
void adelantar (){
analogWrite (EnA, velocidad1);
digitalWrite (In1, LOW);
digitalWrite (In2, HIGH);
analogWrite (EnB, velocidad2);
digitalWrite (In3, HIGH);
digitalWrite (In4, LOW);
}
void retroceder () {
analogWrite (EnA, velocidad1);
digitalWrite (In1, HIGH);
digitalWrite (In2, LOW);
analogWrite (EnB, velocidad2);
digitalWrite (In3, LOW);
digitalWrite (In4, HIGH);
}
int distanciacm1 () {
digitalWrite (TRIG1, LOW);
delayMicroseconds (4);
digitalWrite (TRIG1, HIGH);
delayMicroseconds (10);
digitalWrite (TRIG1, LOW);
duracion1 = pulseIn (ECHO1, HIGH);
distancia1 = (float (duracion1))/59;
return distancia1;
}
int distanciacm2 () {
digitalWrite (TRIG2, LOW);
delayMicroseconds (4);
digitalWrite (TRIG2, HIGH);
delayMicroseconds (10);
digitalWrite (TRIG2, LOW);
duracion2 = pulseIn (ECHO2, HIGH);
distancia2 = (float (duracion2))/59;
return distancia2;
}