Introduction: Track Liner

Picture of Track Liner

Este es la construcción de mi proyecto de un Line Tracker, como puede ver en la imagen es la edición final de mi proyecto y les adjunto un video del mismos funcionando, esta construcción es relativamente sencilla y no es muy compleja.

NOTA 1:

Yo utilice como cerebro de nuestro robot, un LaunchPad MSP430F5529 pero para la única función que realiza es facilmente reemplazable por un OPAM en configuración comparador de voltaje, esto es una alternativa por si no cuentan con un Arduino, Launchpad, Spark Core, Rasp Berry , etc.

NOTA 2:

También los para los ojos de mi robot utilice 2 sensores infra rojos, que poseen una mejor sensibilidad a los cambios de color de una superficie, y no necesita una iluminación externa.

Pero al igual que la nota 1 estos puede ser remplazados por 2 foto resistores y 2 led's ultra bright blancos, el código los reconoce de la misma manera sin ninguna variación al igual que si solo se fuera a trabajar con OPAMS

Step 1: Materiales

Picture of Materiales

MATERIALES:

1 Puente H (Integrado L283D)

2 motores DC con caja reductora

2 Ruedas de juguete

1 ruedita loca

2 Sensores Infra rojos

1 Breadboard

1 Launchpad MSP430F5529

Cable para protoboard

Resistencias

En caso de la Nota 1:

1 circuito integrado TL082 (este posee 2 opams internamente)

En caso de la Nota 2:

2 foto resistores

2 led's Ultra bright blancos

Step 2: Ensamblajes

Picture of Ensamblajes

Como puede ver en la fotografía podemos ver el puente H y los motores ensamblados a una base y listos para operar

Para gente que me preguntara por el diagrama esquemático se los adjunto, con todo el proyecto armado y esto es basicamente lo que tiene que armar ustedes, donde van los 2 sensores infra rojos los pueden cambiar por foto resistores como mencione antes funcionan de la misma manera y para el código no nos afectara. También en vez de agregar un launchpad puede agregar los opams y suministrar el voltaje por medio de una batería externa .

Step 3: CODIGO

Picture of CODIGO

// set BUZZER as P1.3 alias

int LMOTOR = P1_3; // set LMOTOR as P2.1 alias

int RMOTOR = P1_2; // set RMOTOR as P1.2 alias

const int RLPHOTO = A2;

const int RRPHOTO = A3;

int MICINP = A5; // set MICINP as A5 alias

int LPHOTO = 0;

int RPHOTO = 0;

int MPOW = 225; // set motors to use 50% PWM (possible values 0-255)

int MICTHRESH = 600; // set microphone trigger threshold (possible values 0-1023)

int i;

int val;

int maxval;

int mid = 0;

int mn = 0;

int mx = 0;

void setup()

{

// put your setup code here, to run once:

// set outputs

pinMode(LMOTOR, OUTPUT);

pinMode(RMOTOR, OUTPUT);

Serial.begin(9600);

int val = 0;

for(int j=0; j<=5; j++)//Calibrating the sensor, finding max and

{ //min reflectance values.

val = analogRead(j);

if(val >= mx)

mx = val;

if(val <= mn)

mn = val;

}

delay(1);

mid = ((mx + mn)/2);

}

void loop()

{

// put your main code here, to run repeatedly:

//analogWrite(RMOTOR, MPOW);

// analogWrite(LMOTOR, MPOW);

RPHOTO = analogRead(RRPHOTO);

LPHOTO = analogRead(RLPHOTO);

Serial.println("R ");

Serial.println(RPHOTO);

Serial.println("L ");

Serial.println(LPHOTO);

// analogWrite(RMOTOR, 200);

// analogWrite(LMOTOR, 200);

delay(1);

if((RPHOTO > mid)&&(LPHOTO > mid)){

analogWrite(LMOTOR,0); // turn off both motors

analogWrite(RMOTOR,0);

MPOW = 0;

}else{

if((RPHOTO > LPHOTO))//Move left

{

analogWrite(RMOTOR, 255);

analogWrite(LMOTOR, 0);

}else if((RPHOTO < LPHOTO)){

analogWrite(LMOTOR, 255);

analogWrite(RMOTOR, 0 );

}else if((RPHOTO == LPHOTO)){

analogWrite(LMOTOR, 0);

analogWrite(RMOTOR, 0);

}

}

}

//Nota este carro sigue una linea Blanca, para variar estos parametros usar un multimetro o el serial monitor

//para comprobar el valor de lectura y que este vaya de acuerdo a sus condiciones

Step 4: Final

Picture of Final

Como pueden ver diseñe una base y una carrocería con un material llamado Flex Glass y yo mismo corte cada pieza

para que tuviera forma más de carro imprimí las partes de un pick-up y se las pegue a los lados.

Ahora el link Para acceder a un video de funcionamiento de Youtube

Comments

tomatoskins (author)2015-05-07

I love a good line following robot!