Facebook Twitter RSS Reset

Hice un robot que esquiva obstaculos y te lo muestro

Hice un robot que esquiva obstaculos y te lo muestro

bienvenidos a mi nuevo post, hoy les queria contar sobre un proyecto que hice con Arduino, un simple auto/robot autonomo que esquiva obstaculos. Lo arme y programe yo mismo desde 0 y sin ninguna guia. (todas las fotos son mias)

Hice un robot que esquiva obstaculos y te lo muestro

MATERIALES

Arduino UNO R3

Hice un robot que esquiva obstaculos y te lo muestro



Driver l298n

Hice un robot que esquiva obstaculos y te lo muestro

2 Motores 3-6v

Hice un robot que esquiva obstaculos y te lo muestro

Sensor de distancia GP2Y0A21



Hice un robot que esquiva obstaculos y te lo muestro

Bateria 9v



Hice un robot que esquiva obstaculos y te lo muestro

Chasis

 (Lo hice con la tapa de un disco duro viejo y un pedazo de la caja de un cassette como aislante)



Hice un robot que esquiva obstaculos y te lo muestro


Hice un robot que esquiva obstaculos y te lo muestro

FUNCIONAMIENTO

El funcionamiento es simple, el sensor de distancia esta conectado a un pin digital del Arduino y cuando detecta un objeto emite una señal analogica que es interpretada por el Arduino, quien le da la señal a los motores (a traves del driver) para que giren en sentido contrario y den la vuelta.

¿Por que conecto una señal analogica a un pin digital?

porque para ete proyecto no necesitaba medir la distancia del objeto sino, si habia uno o no, y una lectura digital facilitaba las cosas porque, en vez de devolver un numero de 3 cifras que dependia de la distancia del objeto, devolvia un 1 o un 0 dependiendo de si habia un objeto enfrente o no.

auto

CONEXIONES

Hice un robot que esquiva obstaculos y te lo muestro
obstaculos

CODIGO

int sensor = 0;



void  setup() {

   pinMode(9, INPUT);

}



void loop() {

  sensor = digitalRead(9);

  if (sensor == 1) //si hay un obstaculo

  {

    bkw(); //moverse atras

    der(); //girar a la derecha

  }

  else //si no hay obstaculo

  {

    fwd(); // moverse adelante

  }

}



void fwd() { //moverse adelante

  //motor 1

  digitalWrite (5, HIGH);

  digitalWrite (4, LOW);

  //motor 2

  digitalWrite (6, HIGH);

  digitalWrite (7, LOW);

}



void der() { //girar a la derecha

  //motor 1

  digitalWrite (4, HIGH);

  digitalWrite (5, LOW);

  //motor 2

  digitalWrite (6, HIGH);

  digitalWrite (7, LOW);

  //esperar

  delay(1000);

}



void bkw() { //ir para atras

  //motor 1

  digitalWrite (4, HIGH);

  digitalWrite (5, LOW);

  //motor 2

  digitalWrite (7, HIGH);

  digitalWrite (6, LOW);

  //esperar

  delay(500);

}

robot

PRUEBA

pequeño video del auto funcionando