martes, 12 de mayo de 2015

Robot 4x4

ROBOT 4x4 


En esta entrada os hablamos un poco de como se ha ido montando el robot 4x4, los componentes que se han ido utilizando, y algún vídeo donde se mostrará una vez terminado de cablear y con el código puesto y de  haber jugado con el código, si el robot sigue la linea negra y se diferencia del fondo blanco.



El primer paso es comprar las piezas para formar el robot, las piezas se pueden encontrar en cualquier tienda de electrónica. 
Una vez compradas las piezas ir conectando los motores, la placa arduino siguiendo el esquema que tenemos a continuación..
   








Una vez se haya terminado de conectar todo, se comenzará a montar el robot, al finalizar todo el robot debe quedar de esta forma, con todo los cables en su sitio como muestra el esquema, conectado ya con el sensor de lineas conectados a los pines del arduino, etc.





Una vez terminado el montaje de este pequeño robot, nos metemos de lleno ya a la programación, 
Os dejo aquí el código que hemos estado utilizando jugando con el en la programación etc. 


#include<QTRSensors.h>
#define NUM_SENSORS 6
#define TIMEOUT 2500
#define QTR_NO_EMITTER_PIN

QTRSensorsRC qtrrc((unsigned char[]){2,3,4,5,6,7}, NUM_SENSORS, TIMEOUT);
unsigned int sensorValues[NUM_SENSORS]; 

int dirA = 9;
int dirB = 10;
int speedA = 11;
int speedB = 12;

  
void setup()
{

pinMode(dirA, OUTPUT);
pinMode(dirB, OUTPUT);
pinMode(speedA, OUTPUT);
pinMode(speedB, OUTPUT);

//delay(500); // comenzamos con 500ms de espera

int i;
pinMode(13,OUTPUT);
digitalWrite(13, HIGH);

for(i=0;i<400;i++) // hace que la calibración dure unos 10 segundos
{
  qtrrc.calibrate(); //los sensores realizan 10 lecturas de 2500us
}
digitalWrite(13, LOW);

// Serial.begin(9600);
}

void loop()
{
unsigned int position = qtrrc.readLine(sensorValues);

if(position>2400&position<2600)
{
  Serial.println("arranca");
analogWrite(speedA,255);
analogWrite(speedB,255);
digitalWrite(dirA,HIGH);
digitalWrite(dirB,HIGH);
}

if(position<2400)
{
Serial.println("izquierda");
analogWrite(speedA,255);
analogWrite(speedB,255);
digitalWrite(dirA,LOW);
digitalWrite(dirB,HIGH);
}

if(position>2600)
{
 Serial.println("derecha");
analogWrite(speedA,255);
analogWrite(speedB,255);
digitalWrite(dirA,HIGH);
digitalWrite(dirB,LOW);
}
}

Una vez terminado todo el montaje y todo lo que es la programación comprobamos que el robot funciona, si vemos que el robot se va de la linea negra tendremos que volver al código y ponerle menos velocidad cuando el robot vaya a girar.
Una vez que funcione perfectamente el robot sigue la linea negra el robot estará listo para competir o para todo aquello que se quiera utilizar.  




No hay comentarios:

Publicar un comentario