robot seguidor de línea con software y hardware

21
ROBOT SEGUIDOR DE LÍNEA CON SOFTWARE Y HARDWARE LIBRE July Paola Chitiva Ortiz Jhosman Alfonso Lizarazo Universidad Distrital Francisco José de Caldas Facultad Tecnológica Tecnología en Sistematización de Datos

Upload: namsohj-ozarazil

Post on 29-Nov-2014

5.788 views

Category:

Documents


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Robot seguidor de línea con software y hardware

ROBOT SEGUIDOR DE

LÍNEA CON SOFTWARE Y

HARDWARE LIBREJuly Paola Chitiva Ortiz

Jhosman Alfonso Lizarazo

Universidad Distrital Francisco José de Caldas

Facultad Tecnológica

Tecnología en Sistematización de Datos

Page 2: Robot seguidor de línea con software y hardware

PROBLEMA PLANTEADO

Vehículo Controlado Mediante un Computador: se podría

controlar un “vehículo” (Robot pequeño de ruedas) que

avance, retroceda o gire mediante instrucciones que se

impartan desde el computador, o se podría hacer que este

vehículo en vez de seguir instrucciones desde el PC, siga una

ruta determinada mediante sensores infrarrojos. Este será

constituido por ruedas, motores, fuente de energía, y tarjeta de

control (micro controlador Arduino ATmega168) programado en

lenguaje Arduino.

Page 3: Robot seguidor de línea con software y hardware

FASE DE DISEÑO

ELECTRÓNICOEl robot actuará como un móvil seguidor de línea

negra haciendo uso de sensores infrarrojos, los

cuales detectan la línea y envían una señal al resto

del circuito del robot. Allí, de acuerdo a la

programación realizada, se tomará una decisión

respecto a las acciones que el robot debe realizar

para mantenerse en el camino y llegar a la meta.

Este diseño electrónico cuenta con dos sistemas:

percepción y potencia.

Page 4: Robot seguidor de línea con software y hardware

PERCEPCIÓN

En el sensor infrarojo lo que hace es enviar y recibir unaseñal muy pequeña que determina la transmisión deluz infraroja que dependiendo de las condiciones delespacio puede darnos varios valores, estos vanconectados a unas resistencias R2 y R4 controlan elflujo de corriente, la cual desbloqueará su base ypermitirá la amplificación de la señal. Las resistenciasR1 y R3 actúan como protección de los leddisminuyendo el flujo de corriente hacia éstos.

Page 5: Robot seguidor de línea con software y hardware

CNY70

Es importante tener presente que el sensor infrarrojotambién es sensible a la luz ambiente, razón por la cualtanto el led infrarrojo como el fotodiodo debenrecubrirse con cinta aislante negra (u otro materialoscuro), formando una especie de conducto quelimita la incidencia de esta luz y facilita que el haz deluz infrarroja se emita en una sola dirección. Oreprogramar la sensibilidad de los sensores CNY70dentro de la programación.

Page 6: Robot seguidor de línea con software y hardware

POTENCIA

La señal de salida obtenida de los sensores infrarrojosse convierte en la señal de entrada a la fase deprogramación, en la que interviene un móduloelectrónico (Arduino) para el control del robot. Paraello se utilizará un componente (SN754410NE) o elcomponente (L293D) quienes realizarán la función deindicar a los motores que actividad realizardependiendo del momento

Page 7: Robot seguidor de línea con software y hardware

FUNCIONAMIENTO DEL PUENTE H

S1 S2 S3 S4 Resultado

1 0 0 1 El motor gira en avance

0 1 1 0 El motor gira en retroceso

0 0 0 0El motor se detiene bajo su

inercia

1 0 1 0 El motor frena (fast-stop)

Page 8: Robot seguidor de línea con software y hardware
Page 9: Robot seguidor de línea con software y hardware

DISEÑO MECANICOEl robot cuenta con tracción diferencial, ya

que utiliza dos ruedas que son controladas

de manera individual y soportadas en un eje

central común (rueda loca) para el balance.

Las dos ruedas tienen un recubrimiento de

caucho que permite mayor adhesión a la

superficie plana del entorno; la rueda loca

además facilita el movimiento del robot al

contar con un giro libre de 360 grados. Las

dos ruedas principales son controladas por

un motor de corriente continua que cuenta

con un sistema de engranajes que ayuda a

aumentar la potencia en el movimiento.

Page 10: Robot seguidor de línea con software y hardware

UBICACIÓN DE LAS RUEDAS DEL

ROBOT

En la figura 7 se observa la ubicación de las ruedas en el robot;

la rueda loca se encuentra en la parte posterior de éste. Las

formas de avance con las que cuenta robot son hacia adelante,

girar a la izquierda y girar a la derecha y hacia atrás si así serequiere. En la figura 8 se indica la posición en el robot de los

sensores para el avance del seguimiento de línea:

Page 11: Robot seguidor de línea con software y hardware

DISEÑO DE PROGRAMACIÓN

Como ya se ha descrito en la fase de diseño mecánico la

tracción de los robots es diferencial, pero se hace necesario

controlar su movimiento (detenerse, avanzar, girar) y además

garantizar el correcto funcionamiento de los sensores para seguir

un camino. Para solucionar esto se propone hacerlo a través de

un entorno de programación, teniendo en cuenta la población principal a la cual va dirigida la actividad, por lo que es

importante que sea de fácil acceso y uso.

De esta manera, el control de los robots se realiza a través el IDE

de programación de Arduino www.arduino.cc.

Page 12: Robot seguidor de línea con software y hardware

DISEÑO DE PROGRAMACIÓN

Para que sea posible la programación de la placa en el entorno

Arduino, primero debe descargarse el software Arduino y el

firmware que hará posible el reconocimiento de dicha placa por

el entorno. En la página principal de Arduino se encuentran las

especificaciones de instalación de acuerdo al tipo y versión del

sistema operativo con el que se cuente. En este proyecto se

utilizó la versión de Arduino para Ubuntu, el cual se puede encontrar en el centro de Software para

Ubuntu: https://apps.ubuntu.com/cat/applications/arduino/

Page 13: Robot seguidor de línea con software y hardware

PROGRAMACION

Programación:

1) Instalar Arduino (sudo apt-get install arduino)

2) Conectar Arduino por USB

3) Abrir Arduino

Page 14: Robot seguidor de línea con software y hardware

PROGRAMACION

4) Seleccionar tarjeta (Herramientas/Tarjeta/Arduino Diecimila or

Duemileanve w/ Atmega168

Page 15: Robot seguidor de línea con software y hardware

PROGRAMACION

5) Verificar permisos USB (~$ ls -l /dev/tty*)

Page 16: Robot seguidor de línea con software y hardware

PROGRAMACION

6) Visualizar cual fue el puerto asignado ~$ dmesg

Page 17: Robot seguidor de línea con software y hardware

PROGRAMACION

7) Si no tiene permisos asignar permisos al puerto USB que se

asignó a la placa (crwxrwxrwx 1 root dialout 188, 0 may 24 10:33

ttyUSB0)

~$chmod 777 ttyUSB0

Page 18: Robot seguidor de línea con software y hardware

PROGRAMACION

Este es un ejemplo del Hola Mundo para arduino

Page 19: Robot seguidor de línea con software y hardware

PROGRAMACIONCódigo para nuestro robot seguidor de línea con Arduino:

#define M1A 19 //Motor 1A

#define M1B 18 //Motor 1B

#define M2A 17 //Motor 2A

#define M2B 16 //Motor 2B

#define PIN_PWM 11 //Modulacion por ancho de pulso - Emular salida analogicacon salida digital

#define VEL 100 //Velocidad

#define S1 0 //IZQ

#define S2 1 //DER

#define _UMBRAL_ 200 //Umbral de los sensores

unsigned long timeserial;

void setup (){

Serial.begin(9600);

timeserial = millis();

pinMode(M1A, OUTPUT);

pinMode(M1B, OUTPUT);

pinMode(M2A, OUTPUT);

pinMode(M2B, OUTPUT);

STOP(10000);

analogWrite(PIN_PWM, VEL);

}

void loop()

{

byte SDER = (analogRead(S1)> _UMBRAL_ )?0:1;

byte SIZQ = (analogRead(S2)> _UMBRAL_ )?0:1;

if(SDER && SIZQ)

STOP(0);

else if (!SDER && SIZQ)

DER(0);

else if (SDER && !SIZQ)

IZQ(0);

else

ADE(0);

if(millis() - timeserial > 500){

timeserial = millis();

Serial.print("Sensor1: ");

//Serial.print(SDER);

Serial.print(analogRead(S1));

Serial.print(" Sensor2: ");

//Serial.println(SIZQ);

Serial.println(analogRead(S2));

}

}

void ATR(uint16_t time){

digitalWrite(M1A, HIGH);

digitalWrite(M1B, LOW);

digitalWrite(M2A, HIGH);

digitalWrite(M2B, LOW);

delay(time);

}

void ADE(uint16_t time){

digitalWrite(M1A, LOW);

digitalWrite(M1B, HIGH);

digitalWrite(M2A, LOW);

digitalWrite(M2B, HIGH);

delay(time);

}

void DER(uint16_t time){

//Llanta Izquierda

digitalWrite(M1A, HIGH);

digitalWrite(M1B, LOW);

//llanta Derecha

digitalWrite(M2A, LOW);

digitalWrite(M2B, HIGH);

delay(time);

}

void IZQ(uint16_t time){

//Llanta Izquierda

digitalWrite(M1A, LOW);

digitalWrite(M1B, HIGH);

//Llanta Derecha

digitalWrite(M2A, HIGH);

digitalWrite(M2B, LOW);

delay(time);

}

void STOP(uint16_t time){

digitalWrite(M1A, LOW);

digitalWrite(M1B, LOW);

digitalWrite(M2A, LOW);

digitalWrite(M2B, LOW);

delay(time);

}

Page 20: Robot seguidor de línea con software y hardware

ELEMENTOS NECESARIOS

Cantidad Componente

2 Led infrarrojo CNY70

2 Resistencias 220

2 Resistencias 47K

1 Driver para motor L293 B ó

SN754410NE

2 Secciones de acrílico de

12x12 cms de 10 mm. de

ancho para las partes

superior e inferior.

Tornillos y Tuercas

2 Ruedas de 8 cm de

diámetro

1 Rueda loca

1 Twin Motor GrearBox

1 Placa Arduino ATMega168

1 Protoboard

Cables para conexiones

5 Condensadores

Agradecimientos:

Laura Romero

Leonardo Urrego

Documentación arduino.cc

Google y Wikipedia

Texas Instruments

Page 21: Robot seguidor de línea con software y hardware

FOTOGRAFIAS