«Web-Robótica I» Robot explorador del taller de Web-Robótica

Os presentamos el Robot explorador «Web-Robótica I«, el primer proyecto del taller de Web-Robótica.

Se trata de un vehiculo robotizado controlado por una placa ARDUINO UNO capaz de moverse libremente por el entorno, evitando obstaculos mediante sensores de infrarojos.

Componentes del Robot «Web-Robótica I»

  • 1 X Placa ARDUINO UNO
  • 1 X Puente H
  • 2 X Sensor de infrarojos
  • 1 X Twin-Motor Gearbox TAMIYA
  • 2 X Bateria 9 V
  • 3 X Ruedas
  • 1 X Chapa metálica
  • Cables para las conexiones

Características técnicas  de «Web-Robótica I»

«Web-Robótica I» está controlado por una placa ARDUINO UNO.

Configuramos dos de sus pines como entradas y los conectamos a cada uno de los sensores de infrarojos. Cuatro de los pines estan configurados como salida y controlan el Puente H para la dirección de cada rueda motriz.

Arduino Uno R3

La placa controla los movimientos de las ruedas dependiendo de la señal que le llega de los sensores de infrarojos.

Sensor de infrarojos

El Puente H permite controlar la polaridad de los motores, permitiendo que giren en el sentido que queramos.

El Robot está propulsado por el motor Twin-Motor Gearbox de TAMIYA alimentado por una bateria de 9 V.

Twin-Motor Gearbox de TAMIYA

Sketch Arduino del Robot «Web-Robótica I»

/*
  Web-Robótica I (WR-I)
  Primer prototipo del taller www.web-robotica.com
 
  Este sketch es de dominio público.
 */
 
// Los pines 12 y 13 controlan el motor derecho adelante y atras.
// Los pines 10 y 11 controlan el motor izquierdo adelante y atras.
// Los pines 6 y 7 reciben la señal de los sensores de infrarojos.

  int D2 = 13;
  int D1 = 12;
  int I2 = 11;
  int I1 = 10;
  int IRD = 7;
  int IRI = 6;
  boolean running = false;


void setup() 
{                
// Inicializamos los pines 6 y 7 como entradas
// y los pines 10, 11, 12 y 13 como salidas
  
  pinMode(D2, OUTPUT);   
  pinMode(D1, OUTPUT);
  pinMode(I2, OUTPUT);
  pinMode(I1, OUTPUT);
  pinMode(IRD, INPUT);
  pinMode(IRI, INPUT);
}

// Iniciamos el proceso, que se repite continuamente:
void loop(){
  if (digitalRead(IRD) == LOW && digitalRead(IRI) == HIGH)
{
  digitalWrite(D2, HIGH);  
  digitalWrite(D1, LOW);
  digitalWrite(I2, LOW);
  digitalWrite(I1, LOW);
  delay(100);  
  
  digitalWrite(D2, LOW);   
  digitalWrite(D1, LOW);
  digitalWrite(I2, LOW);
  digitalWrite(I1, LOW);
  delay(500);    
}
else if (digitalRead(IRI) == LOW && digitalRead(IRD) == HIGH)
{
  digitalWrite(D2, LOW); 
  digitalWrite(D1, LOW);
  digitalWrite(I2, HIGH);
  digitalWrite(I1, LOW);
  delay(100);    
  digitalWrite(D2, LOW);   
  digitalWrite(D1, LOW);
  digitalWrite(I2, LOW);
  digitalWrite(I1, LOW);
  delay(500);    
}
else if (digitalRead(IRD) == LOW && digitalRead(IRI) == LOW)
{
   digitalWrite(D2, LOW);   
  digitalWrite(D1, HIGH);
  digitalWrite(I2, LOW);
  digitalWrite(I1, HIGH);
  delay(100);   
 
  digitalWrite(D2, LOW);  
  digitalWrite(D1, LOW);
  digitalWrite(I2, LOW);
  digitalWrite(I1, LOW);
  delay(500);    
}
else
{
  digitalWrite(D2, HIGH);
  digitalWrite(D1, LOW);
  digitalWrite(I2, HIGH);
  digitalWrite(I1, LOW);
  delay(100);   
 
  digitalWrite(D2, LOW);
  digitalWrite(D1, LOW);
  digitalWrite(I2, LOW);
  digitalWrite(I1, LOW);
  delay(500);    
}
    
}

 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.