33
Sistemas de Telecomunicación e Informática Curso 2011-2012 Clavero Carrascull, Carlos Rodríguez Grota, David ROBOT SEGUIDOR DE LINEA Sistemas de Telecomunicación e Informática Clavero Carrascull, Carlos Rodríguez Grota, David Curso 2011-2012

Robot seguidor de línea

Embed Size (px)

DESCRIPTION

Proyecto final de ciclo, en Sistema de Telecomunicaciones e Informáticos, de los alumnos Carlos Clavero ([email protected]) y David Rodríguez ([email protected]). Ver más en http://francescperez.net/html/proyectos/articulos/art_1_Robot_seguidor_de_linea.html

Citation preview

Page 1: Robot seguidor de línea

Sis temas de Te lecomun icac ión e In formát ica

Curso 2011-2012

Clavero Car rascu l l , Car los Rodr íguez Gro ta , Dav id

ROBOT

SEGUIDOR

DE LINEA Sistemas de Te lecomunicación e Informát ica

Clavero Car rascul l , Car los

Rodr íguez Grota, David

Curso 2011 -2012

Page 2: Robot seguidor de línea

Sis temas de Te lecomun icac ión e In formát ica

Curso 2011-2012

Clavero Car rascu l l , Car los Rodr íguez Gro ta , Dav id

Índice

1.- In troducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.1. - Presentación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.2. - Motivaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1 .3. - Objet ivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

2. - Desarrol lo de un robot seguidor de l ínea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-24

2.1. - Conceptos básicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-7

2.1.1 . - Introducción a Arduino . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-4

2.1.2 . - Introducción a la programación Arduino . . . . . . . . . . . . . . . . . 5-7

2.2. - Práct ica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-24

2.2.1 . - Componentes del chasis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-9

2.2.2 . - Componentes electrónicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-12

2.2.3 . - Pr imeros programas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-18

2.2.4 . - Seguimiento del proyecto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

2.2.5 . - Problemas y soluciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-24

3. - Resultados y estadíst icas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-28

3.1. - Robot f inal izado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-26

3.2. - Presupuesto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

3.3. - Mejoras futuras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

4. - Anexo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29-31

4.1. - Programa y conexiones f inales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29-30

4.2. - Web graf ía . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

Page 3: Robot seguidor de línea

Sis temas de Te lecomun icac ión e In formát ica

Curso 2011-2012

Clavero Car rascu l l , Car los Pág ina 1 de 33 Rodr íguez Gro ta , Dav id

1. Introducción

1.1. Presentación

El proyecto ha s ido real i zado por Ca r los Clavero Carrascul l y David Rodr íguez Grota,

del Centro de Estud ios STUCOM, de l segundo curso de CFGS de Sis temas de

Telecomunicaciones e Informát ica . Este consta de una par te práct ica, la cual es la

real izac ión de un robo t seguidor de l ínea , de un in f orme donde se expl i can todos los

pasos seguidos en e l proceso de cons trucc ión de l robot , de un CD que a lmacena v ideos,

fo tograf ías y datos de pruebas y procesos real izados y una presentac ión en PowerPoint

con una breve expl icac ión del desarro l lo de este p r oyecto.

1.2. Motivaciones

En pr imer lugar hemos decid ido real i zar este proyecto porque uno de los mot ivos por los

que empezamos es te curso de CFGS de Sis temas de Telecomunicaciones e Info rmát ica

es la rea l izac ión de un robot a l f i na l de curso .

En segundo lugar este proyecto nos permi t ía poner en práct ica a lgunos de los

conocimien tos adqu i r idos duran te este curso.

Otra de las mot ivac iones que nos impulsaron a c rear un robot , es ponernos a prueba a

nosotros mismos demost rando que somos capaces de entender y l levar a la práct i ca la

apl icac ión de d i feren tes e lementos e lec t rón icos .

F inalmente una presente mot ivac ión fue ver s i conseguíamos desarro l lar e l código de

programación necesar io , ya que, este era un aspecto bastan te comple jo por nuestra

par te deb ido a nuestros conocimientos.

1.3. Objetivos

Mínimos:

- Robot ras t reador de una l ínea (Placa Arduino, 2 LDR, 2 leds y 2 servomotores)

con e l mín imo presupues to pos ib le .

El robot d ispondrá de s ensores que deberán captar la in tens idad de luz , p r inc ipalmente

e l procesador in te rpre tara los es t ímu los de esta manera. Cuando del robo t este

encend ido deberá segui r o b ie n , una l ínea b lanca o negra en e l sue lo. El p rocesador de

a lguna manera deberá captar e in terp reta r por separado cada est imulo de luz .

Máximos:

A par te de la carac ter ís t ica anter ior , s i hay t iempo y p resupues to suf ic iente e l robot

deberá hacer también:

- Robot que in te rpre te un sonido .

- Robot rast reador luz (LDR).

- Conectar una panta l la que muestre cuando esta encendido o apagado.

Page 4: Robot seguidor de línea

Sis temas de Te lecomun icac ión e In formát ica

Curso 2011-2012

Clavero Car rascu l l , Car los Pág ina 2 de 33 Rodr íguez Gro ta , Dav id

2. Desarrollo de un robot seguidor de línea

2.1. Conceptos básicos

2.1.1. Introducción a Arduino:

¿Qué es Arduino?

Arduino es una p laca creada para e l aprendiza je y la in t roducción a la p rogramación e

implementac ión en le mundo f ís ico. Es una p la taforma de desar ro l lo de computac ió n

f ís ica de cód igo ab ier to, basada en una p laca con un senc i l lo m icro con tro lador y un

entorno de desarro l lo para crear so f tware para la p laca .

Puedes usar Arduino para crear obje tos in teract ivos, leyendo datos de una gran

var iedad de in ter rupto res y sens ores y cont ro la r mul t i tud de t ipos de luces, motores y

ot ros actuadores f ís icos. Los proyecto s de Arduino pueden ser autónomos o

comunicarse con un programa (so f tware) que se e jecute en tu ordenador . E l lengua je de

programación de Arduino es una implementa c ión de Wir ing, una p lataforma de

computac ión f ís ica parec ida, que a su vez se basa en Processing , un entorno de

programación mul t imed ia , este lenguaje de programación es parec ido a l lengua je C o

C++.

¿Por qué usar Arduino?

Arduino, además de s impl i f i car e l proceso de t rabajar con microcont ro ladores , o f rece

a lgunas venta jas respecto a o t ros s is temas a p rofesores , es tudiantes y amateurs :

Asequib le: Arduino UNO es asequib le en cuanto a prec io . La p laca con e l cable

USB esta en tre los 30 a 40 €. El sof tware necesar io para la programac ión es

gratu i to y se puede descargar desde la pagina of ic ia l

h t tp : / /arduino.cc /es/Main /Sof tware

Mult ip lata forma: El so f tware ut i l izado para Arduino es mul t ip lataforma, func iona

en los s is temas operat ivos Windows, Macintosh OSX y L inux .

Entorno de programac ión s imple y d i rec ta : El entorno de programac ión de

Arduino es fác i l de usar para pr inc ip iantes y lo suf ic ien temente f lex ib le para los

usuar ios avanzados .

Sof tware ampl iable y de código abier to: El so f tware Arduino esta publ i cado bajo

una l icencia l ibre y preparado para ser ampl iado por programadores

exper imentados .

Page 5: Robot seguidor de línea

Sis temas de Te lecomun icac ión e In formát ica

Curso 2011-2012

Clavero Car rascu l l , Car los Pág ina 3 de 33 Rodr íguez Gro ta , Dav id

Hardware ampl iable y de Código abier to: Los p l anos de los módu los están

publ icados bajo l i cencia Creat i ve Commons, por lo que d iseñadores de c i rcu i tos

con exper ienc ia pueden hacer su propia vers ión del módulo , ampl iándolo u

opt imizándolo.

Componentes de la placa Arduino UNO:

- AREF (Verde claro ): Terminal de refe renc ia analógica. Referencia de vol ta je

para las entradas analógicas.

- GND (Naranja ): Toma de t ier ra

- Pines 2-13 (Azul claro) : Termina les d ig i ta les

- Pines 0-1 (Amari l lo ) : Terminales d ig i ta les E/S ser ie - Tx/Rx . Estos p ines no se

pueden ut i l izar como e /s d ig i ta les s i se esta ut i l izando comunicación en ser ie.

- Reset (Blanco): Botón de re in ic io

- ICSP (Azul oscuro): " In-c i rcu i t Ser ia l Programmer" /Programador ser ie en

c i rcu i to

- ATMEGA328P-PU (Rojo) : Microcontro lador ATMEGA328P -PU

- Pines 0-5 (Gris oscuro) : Terminales de ent rada analóg ica

- Pines 3.3V, 5V, Vin ( Marrón): Terminales de a l imentac ión.

V in (a veces marcada como "9V") , es e l vo l ta je de entrada a la p laca Arduino

cuando se es tá ut i l izando una fuente de a l imentac ión externa (En comparación

con los 5 vo l t ios de la conexión USB o de ot ra fuente de a l imentac ión regulada) .

Puedes proporc ionar vo l ta je a t ravés de este p in.

Page 6: Robot seguidor de línea

Sis temas de Te lecomun icac ión e In formát ica

Curso 2011-2012

Clavero Car rascu l l , Car los Pág ina 4 de 33 Rodr íguez Gro ta , Dav id

- Pin Reset (Gris claro ): Se pone a LOW para resetear e l mic rocontro lador .

Ut i l izada t íp icamente para añadi r un botón de reset a shie lds qu e b loquean e l de

la p laca pr inc ipa l .

- Entrada de al imentación ( Rosa): En trada de a l imentac ión externa

- USB (Verde oscuro): En trada USB ut i l izada para subi r p rogramas a la p laca y

comunicaciones ser ie entre la p laca y e l ordenador ; puede ut i l izarse como

al imentac ión.

Page 7: Robot seguidor de línea

Sis temas de Te lecomun icac ión e In formát ica

Curso 2011-2012

Clavero Car rascu l l , Car los Pág ina 5 de 33 Rodr íguez Gro ta , Dav id

void setup() { estamentos; }

void loop(){ estamentos;

}

void setup(){ pinMode(pin, OUTPUT); // configura el 'pin' como salida }

void loop() { digitalWrite(pin, HIGH); // pone en uno (on, 5v) el ´pin´ delay(1000); // espera un segundo (1000 ms) digitalWrite(pin, LOW); // pone en cero (off, 0v.) el ´pin´ delay(1000); }

2.1.2. Introducción a la programación de Arduino

Este apar tado pre tende expl icar la programac ión más básica que se necesi tar ía saber

crear programas senci l l os en Arduino UNO .

Para empezar anal izaremos la es t ruc tura de un sketch (código de programación) . La

est ruc tura básica del lenguaje de programación de Arduino es bastan te s imple y se

compone de a l menos dos secto res. Estos dos son necesar ios ya que encier ran b loques

que cont ienen dec larac iones, estamentos o inst rucc iones.

En donde “se tup( ) ” es la par te encargada de recoger la

conf igurac ión y “ loop() ” es la que cont ienen e l programa que

se e jecutará c íc l icamente .Ambas func iones son necesar ias

para que e l p rograma t rabaje.

La func ión de con f igurac ión

( “se tup” ) debe contener la

declarac ión de las var iables. Es la p r imera func ión a

e jecu tar en e l programa, se e jecuta sólo una vez. Se

ut i l i za para in ic ia l izar los modos de t rabajo de los

p ines o del puer to ser ie .

La func ión buc le ( “ loop ” ) s iguien te con t iene e l código que se e jecu tara cont inuamente

( lectu ra de entradas,

act ivac ión de sal idas ,

e tc . ) Esta func ión es e l

núc leo de todos los

programas de Arduino y

la que real iza la mayor

par te del t rabajo .

Una vez comprend ida la

est ruc tura de la programación procedemos a estudiar las func iones básicas.

Una función es un b loque de cód igo que t iene un nom bre y un con junto de estamentos

que son e jecutados cuando se l lama a la func ión . Son func iones “setup() ” y “ loop() ” de

las que ya se ha hablado. Las func iones de usuar io pueden ser escr i tas para real izar

tareas repet i t ivas y para reduci r e l tamaño de un programa. Las func iones se declaran

asociadas a un t ipo de valor . Es te valor será e l que devo lverá la func ión , por e jemplo

“ in t ” , que se u t i l izará cuando la func ión devuelva un dato numér ico de t ipo entero . Si la

func ión no devue lve n ingún valor en tonces se colocará delan te la palabra “vo id” , que

s igni f ica func ión vacía . Después de decla rar e l t i po de dato que devuelve la func ión se

debe escr ib i r e l nombre de la func ión y entre paréntes is se escr ib i rán , s i es n ecesar io ,

los parámetros que se deben pasar a la func ión para que se e jecute .

Ahora pasaremos a expl icar las normas básicas de la programación en Arduino, que

s iempre se tendrán en cuenta para no ocas ionar e r rores de código.

Las l laves ( { } ) s i rven para de f in i r e l p r inc ip io y e l f ina l de un b loque de inst rucc iones.

Se ut i l izan para los b loques de programación “se tup() ” , “ loop() ” , “ i f ” , e tc .

Page 8: Robot seguidor de línea

Sis temas de Te lecomun icac ión e In formát ica

Curso 2011-2012

Clavero Car rascu l l , Car los Pág ina 6 de 33 Rodr íguez Gro ta , Dav id

int variableEntrada = 0; // declara una variable y le asigna el valor 0 variableEntrada = analogRead(2);

Una l lave de aper tura ( { ) s iempre debe i r seguida de una l lave de c ie r re ( } ) , s i no es así

e l programa dará erro res. E l entorno de p rogramación de Arduino inc luye una

herramienta de gran ut i l idad para comprobar e l to ta l de l laves. Sólo t ienes que

selecc ionar en e l punto de inserc ión de una l lave abier ta e inmed iatamente se marca e l

correspond iente c ier re de ese b loque ( l l ave cer rada) .

E l punto y coma ( ; ) se ut i l iza para separar inst rucc iones en e l lengua je de p rogramación

de Arduino . También se u t i l iza para separar e lementos en una inst rucc ión de t ipo bucle .

Olv idarse de poner f in a una l ínea con un punto y coma se t raduci rá en un error de

compi lac ión. El tex to de error puede ser obvio, y se re f er i rá a la fa l ta de una coma, o

puede que no. Si se produce un erro r raro y de d i f íc i l d etecc ión lo pr imero que debemos

hacer es comprobar que los pun tos y comas están co locados a l f ina l de las

inst rucc iones.

Los b loques de comentar ios, o mul t i - l ínea de comentar io s, son áreas de texto ignorados

por e l programa que se ut i l i zan para las descr ipc ion es del cód igo o comentar ios que

ayudan a comprender e l programa. Comienzan con “ / * ” y te rminan con “ * / ” y pueden

abarcar var ias l íneas.

Una l ínea de comentar io empieza con “ / / ” y terminan con l a s igu ien te l ínea de código. A l

igual que los comentar ios de b loque, los de l ínea son ignora das por e l p rograma y no

ocupan espacio en la memor ia.

Una vez entendido todo lo anter io r procedemos a hacer una expl i cac ión básica de las

var iab les y su dec larac ión.

Una var iab le es una manera de nombrar y a lmacena r un

valor numér ico para su uso poster ior por e l programa. Como

su nombre indica, l as var iables son números que se pueden

var iar cont inuamente en contra de lo que ocur r e con las

constantes cuyo valo r nunca cambia. Una var iable debe ser

declarada y, opc ionalmente, as ignar le un valo r .

Las var iab les deben tomar nombres descr ip t ivos , para hacer

e l cód igo más legib le, para ayudar a l programador y a cualquier ot ra persona a leer e l

código y entender lo que representa la var iable .

Todas las var iab les t ienen que declararse antes de que puedan ser ut i l izadas . Para

declarar una var iab le se comienza por def in i r su t i po como “ in t ” (ente ro) , “ long ” ( largo) ,

“ f loa t ” (coma f lo tan te) , e tc . a s ignándo les s iempre un nombre , y , opc ionalmente, un va lor

in ic ia l . Esto sólo debe hacerse una vez en un programa, pero e l va lor se puede cambiar

en cua lqu ier momento usando ar i tmét ica y reas ignaciones d iversas.

Una var iab le puede ser declarada en una ser ie de lugare s de l programa y en func ión del

lugar en donde se l l eve a cabo la def in ic ión esto determinará en que par tes de l

programa se podrá hacer uso de e l la .

Una var iable puede ser dec la rada a l in ic io de l programa antes de la par te de

conf igurac ión “setup() ” , a n ive l local dentro de las func iones, y , a veces , dent ro de un

Page 9: Robot seguidor de línea

Sis temas de Te lecomun icac ión e In formát ica

Curso 2011-2012

Clavero Car rascu l l , Car los Pág ina 7 de 33 Rodr íguez Gro ta , Dav id

int value; // 'value' es visible para cualquier función void setup() { // no es necesario configurar } void loop() { for (int i=0; i<20;) // 'i' solo es visible { // dentro del bucle for i++; } float f; // 'f' es visible solo } // dentro del bucle

bloque, como para los bucles del t ipo “ i f ” , “ for ” , e tc . En func ión del lugar de declarac ión

de la var iab le así se de terminara e l ámbi to de apl icac ión , o la capac idad de c ier tas

par tes de un programa para hacer uso de e l la .

Una var iable g lobal es aquel la que puede ser v is ta y u t i l i zada por cualqu ier func ión y

estamento de un programa. Esta var iable se decla ra a l comienzo del programa, antes de

“setup() ” .

Una var iable loca l es aquel la que se def ine dent ro de una func ión o como par te de un

bucle . Só lo es v is ib le y só lo puede ut i l iza rse dent ro de la func ión en la que se dec laró .

Por lo tanto , es pos ib le tener dos o

más var iables de l mismo nombre

en d i ferentes par tes del mismo

programa que pueden contener

va lores d i feren tes. La garan t ía de

que sólo una func ión t iene acceso

a sus var iables dentro de l

programa s imp l i f i ca y reduce e l

potenc ia l de erro res de

programación.

Page 10: Robot seguidor de línea

Sis temas de Te lecomun icac ión e In formát ica

Curso 2011-2012

Clavero Car rascu l l , Car los Pág ina 8 de 33 Rodr íguez Gro ta , Dav id

2.2.- Práctica

2.2.1.- Componentes del chasis

Placa de metacri la to

La p laca de metacr i la to se u t i l izará como base para e l

chasis de l robot y se t rata únicamente de una p laca

t ransparen te de p lást i co pero de gran dureza y grosor . Por

tanto , será per fecta para s ujetar todos los e lementos de l

robot a e l la aunque t rabajar la será a lgo mas compl i cado

debido a sus carac ter ís t i cas.

CD

Los CD los ut i l izaremos como las ruedas delan teras de l

robot y serán unos s imples CD que podr íamos ut i l izar para

grabar in fo rmación o pe l ícu las . Aunque también serv i r ían

unos d iscos t ransparente s iguales a los CD ta l y como

hemos ut i l izado noso t ros en nuest ro proyecto que

quedarán mejor con la p laca t ransparen te.

Rueda con base g iratoria

La rueda t rasera será una rueda con base g i rator ia que

permi t i rá a l robot desp lazarse s in d i f icu l tad en curvas del

recorr ido, ya que, la única func ión de ésta será obedecer a

las delan teras que l levarán la d i recc ión.

Bridas

Unas br idas de p lást ico normales serv i rán para f i jar los

e lementos e lect rónic os como servomotores o p lacas a l

chasis s in d i f icu l tad . Al u t i l izar br idas pequeñas y cor tar

en t rozo restante una vez puesta consegu imos que

queden más d iscretas en e l robo t y que no tengamos

que hacer agujeros demasiado grandes para pasar las.

Page 11: Robot seguidor de línea

Sis temas de Te lecomun icac ión e In formát ica

Curso 2011-2012

Clavero Car rascu l l , Car los Pág ina 9 de 33 Rodr íguez Gro ta , Dav id

Cinta de goma de doble cara auto -adhesiva

Se t rata de una c inta de goma que podemos

ut i l i zar para rodear las ruedas y as í consegui r que

no resba len las ruedas sobre una super f ic ie l isa.

Ésta goma es de dob le cara y fác i l de poner

debido a su e last ic idad y sus prop iedades

adhesivas.

Perf i l de si l icona

El per f i l de s i l icona hace la misma función que la

c inta de goma que es la de rodear la rueda y ev i tar

que no se adhiera sobre super f ic ies l i sas y es como

la goma de una b ic ic le ta pero de s i l icona y noso tros

podemos adaptar la a nuestra rueda.

Hemos puesto éste per f i l de s i l icona porque quedaba

mejor en cuanto a esté t ica pero cualquiera de las dos

opciones cumple con e l objet i vo.

Estaño

El estaño es un metal que se ut i l iza y durante e l

proyec to hemos ut i l izado para so ldar pequeños

e lementos e lect rónicos, pero también nos ha serv ido

en e l chas is para f i ja r los CD que a los servomotores

s implemente como elemento de un ión a t ravés de los

agujeros en lugar de un torn i l lo .

Page 12: Robot seguidor de línea

Sis temas de Te lecomun icac ión e In formát ica

Curso 2011-2012

Clavero Car rascu l l , Car los Pág ina 10 de 33 Rodr íguez Gro ta , Dav id

2.2.2.- Componentes electrónicos

Placa Arduino UNO: (m irar apar tado 1 .1)

Sensor de Luz o LDR (Light Dependent Resistor ) :

Un LDR es una res is tenc ia var iable, que var ía su valor

depend iendo de la can t idad de luz que inc ide sobre su

super f ic ie . Cuanta mas in tens idad de luz inc ide en la

super f ic ie de la LDR

menor será su

res is tencia y cuanto

menos luz inc ide mayor será la res is tenc ia. Sue len

ser u t i l izados como sensores de luz ambien ta l o

como una fotocélu la que act iva un determinado

proceso en ausencia o presencia de luz .

Los va lores que puede tomar una L DR en tota l

oscur idad y a p lena luz puede var iar un poco de un modelo a ot ro, en general osc i lan

entre unos 50 a 1000 ohmios cuando es tán i luminadas y valores comprendidos ent re

50K y var ios megohmios cuando está a oscuras.

Sensor CNY70

El CNY70 es un peq ueño d ispos i t ivo con forma de cubo y

cuatro p ines que t iene en su in ter io r un d iodo emisor de

in f rar ro jos y un fotot rans is tor en para le lo y apuntando ambos

en la misma di recc ión.

Con solo 2 res is tencias y un t rans is tor es fác i l conecta r un

CNY70 a una p laca Arduino, este sensor es muy usado en

robots seguidores de l íneas.

Protoboard

El protoboard es una especie de table ro con

or i f i c ios , en la cual se pueden inser ta r

componentes e lect rónicos y cables para a rmar

c i rcu i tos. Los or i f ic ios están in terconec tado s

entre s i por co lumnas como lo vemos en la fo to .

En a lgunas p lacas también hay f i las

in terconec tando los or i f ic ios, estas se encuentran

en los bordes de la p laca, como lo muestra la

segunda fo to.

Page 13: Robot seguidor de línea

Sis temas de Te lecomun icac ión e In formát ica

Curso 2011-2012

Clavero Car rascu l l , Car los Pág ina 11 de 33 Rodr íguez Gro ta , Dav id

Motor Servo

Un motor servo es un d ispos i t i vo actuador que t iene la capacidad de ubicarse en

cualqu ier pos ic ión dent ro de su rango de operac ión, y de mantenerse estable en d icha

posic ión.

Consta de un motor de corr iente cont inua, con una caja reducto ra y un c i rcu i to de

contro l , para su posic ionamiento.

Los servos es tándar l levan 3 cab les: tens ión , t ier ra y con tro l . Se mueven en func ión de

pulsos que le enviamos a t ravés del cab le de contro l y estos pu lsos que le enviamos

son los que establecen la posic ión de l servo. El servo espera pulsos cada 20

mi l isegundos para tener una idea correcta de la posic ión que ha de tener . En general

los servos g i ran unos 180 grados , aunque hay a lgunos que g i ran más. T ienen una

ampl i tud de pu lsos de en tre 0 .5 y 2.5 mi l isegundos para es tablecer la posic ión.

Para nues tro proyecto deb eremos u t i l izar e l servomotor para poder mover las ruedas

delan teras y deberá poder real izar g i ros de 360º cont inuos.

LED:

Los LED (L ight Emi t ing Diode) . Son d iodos que se i luminan cuando

pasa la e lect r ic idad.

Tienen dos “patas ”, una posi t i va más larga ( ánodo) y ot ra negat i va

(cátodo) .Se conectan a Arduino por med io de una res is tencia para

proteger e l LED y e l m icrocontro lador .

Resistencias

La res is tencia e léct r ica de un objeto es una medida de su

oposic ión a l paso de cor r iente. Una res is tencia ideal es u n

e lemento pasivo que d is ipa energía en forma de calor según

la ley de Jou le.

También establece una re lac ión de p roporc ional idad ent re

la in tensidad de corr ien te que la a t rav iesa y la tens ión

E j e d e

p o te n c i a

R e d u c to r d e ve l o c i d a d

Page 14: Robot seguidor de línea

Sis temas de Te lecomun icac ión e In formát ica

Curso 2011-2012

Clavero Car rascu l l , Car los Pág ina 12 de 33 Rodr íguez Gro ta , Dav id

medib le entre sus ext remos, re lac ión conocida como ley de Ohm. D e acuerdo con la ley

de Ohm. La res is tencia de un mater ia l puede def in i rse como la razón en tre la ca ída de

tens ión y la corr iente en d icha res is tencia, así : R = V / I Donde: R = Resis tencia V =

Vol ta je I= Cor r ien te.

Porta-p i las

El por ta-p i las es un e lemento que nos permi t i rá

a l imentar e l robot que construyamos de forma

independiente s in esta r su jeto a un cab le

conectado a l ordenador . E l por ta -p i las puede

ser de d i feren te tamaño, forma o cant idad de

p i las que puede a lbergar pero en nuestro

proyec to nos será suf i c iente con 4 espacios

para 4 p i las de 1 ,5V.

Conmutador de placa MSP1M1

Es un in ter ruptor para poder cor ta r la en trada de vol ta je a la

p laca Arduino . Este t iene t res p ines, pero noso tros so lo

conectaremos 2 de e l los , uno de los ext remos del conduc tor a

a lguno de los p ines pequeños y e l o t ro ext remo al p in cen tra l que

es más grande que los ot ros dos.

Cable unif i lar

El cable uni f i lar será e l conec tor en t re e lementos

e lect rónicos y p ines o para real izar las conex iones en la

protoboard de éstos.

Page 15: Robot seguidor de línea

Sis temas de Te lecomun icac ión e In formát ica

Curso 2011-2012

Clavero Car rascu l l , Car los Pág ina 13 de 33 Rodr íguez Gro ta , Dav id

2.2.3.- Primeros programas

Este apar tado mostrara func iones básicas de la p laca Ardu ino UNO, por las que es

recomendab le empezar a probar ya que de esta manera se van adqu i r iendo

conocimien tos básicos de su func ionamiento , programación y caracter ís t icas f ís i cas.

Algunos de los programas empleados están descr i tos en la pág ina web of i c ia l de

Arduino (h t tp : / /www.arduino.cc / ) .

Para real izar los esquemas v isuales de las conexiones hemos u t i l izado e l so f tware

gratu i to “Fr i t z ing ”.

Programa#1:

Esta func ión consis te en un led parpadeante . Dicho led estará conec tado a un p in (por

e jemplo e l 13) , y a la toma de t ier ra de Arduino (p in GND). E l cód igo o rdenará a l led

que se encienda y que se apague cada c ier to t iempo.

Como vemos en e l código lo pr imero que hacemos es declarar e l p in nº 13 como sal ida,

después le ordenamos con la func ión “d ig i ta lWr i te( ) ” que deje sal i r tens ión y con e l

“delay () ” e l t iempo en mi l isegundos que ha de estar encendido , ac to seguido decimos

que se pare también por t iempo l imi tado. Todo e l código escr i to en “vo id loop() ” se

repi te cont inuamente.

A par t i r de es te cód igo se puede i r exper imentando

in t roduciendo más leds, para que se apaguen y se

enciendan dependiendo de las ó rdenes que se le

dan.

El l e d s e c o nec ta

d i r ec t a me nt e a l a

p l ac a (p in 1 3 y

GND)

Page 16: Robot seguidor de línea

Sis temas de Te lecomun icac ión e In formát ica

Curso 2011-2012

Clavero Car rascu l l , Car los Pág ina 14 de 33 Rodr íguez Gro ta , Dav id

Programa#2:

El segundo programa consis t ía en tender e l func ionamiento de un sensor LDR.

Modi f i cando a lgunos aspectos del código expuesto en la página web of i c ia l ,

conseguimos iden t i f icar los valores dados por e l LDR y entender las conex iones

necesar ias (necesar ia res is tencia 10kΩ) . E jemplo de las conexiones y e l código:

Conectamos a l LDR a l p in de 5V y en e l

o t ro p in lo conectamos en ser ie a una

res is tencia de 10kΩ que i ra a l GND y a l

p in analógico de Arduino e l cual rec ib i rá

los datos de l sensor . En e l código hay func iones especí f icas para que los datos

rec ib idos por e l LDR se muestren por pan ta l la con la func ión Moni tor Ser ia l de l sof tware

Arduino 1.0.1 .

Page 17: Robot seguidor de línea

Sis temas de Te lecomun icac ión e In formát ica

Curso 2011-2012

Clavero Car rascu l l , Car los Pág ina 15 de 33 Rodr íguez Gro ta , Dav id

Programa#3:

Part iendo del programa anter ior , pasamos a ca l ibrar un LDR jun to con un led. E l LDR,

en la práct ica, lo tapamos de a lguna manera para que no d is tors ione los datos por e l

e fecto de la luz del led o la i l uminación ambienta l .

En la práct i ca comprobamos

los valores numér icos que

in terpreta e l LDR con una

hoja de papel b lanca y una

raya negar para ver i f i car

que d i ferencia a la

per fecc ión los dos colores.

Page 18: Robot seguidor de línea

Sis temas de Te lecomun icac ión e In formát ica

Curso 2011-2012

Clavero Car rascu l l , Car los Pág ina 16 de 33 Rodr íguez Gro ta , Dav id

Programa#4:

Este consis te en aprender a hacer func ionar un servomotor con Arduino. Consta de t res

conexiones ( ro jo -5V, negro -GND y amar i l lo -d ig i ta lPin) , con e l s igu iente código

comprobamos su func ionamiento.

Median te e l código,

conseguimos que e l

servomotor func ione

durante 5 segundos y este

parado durante 1 segundo

y así consecut ivamente .

Programa#5:

Probamos de con tro lar dos servomotores a la vez .

Page 19: Robot seguidor de línea

Sis temas de Te lecomun icac ión e In formát ica

Curso 2011-2012

Clavero Car rascu l l , Car los Pág ina 17 de 33 Rodr íguez Gro ta , Dav id

#include <Servo.h> Servo servo1; Servo servo2; int entrada_sensor; int entrada_sensor2; void setup(){ pinMode (12, OUTPUT); pinMode (13, OUTPUT); pinMode (0, INPUT); pinMode (1, INPUT); Serial.begin(9600); } void loop(){ digitalWrite (12, HIGH); digitalWrite (13, HIGH); entrada_sensor = analogRead (0); Serial.print("\n"); Serial.print("LDR = "); Serial.println(entrada_sensor); if (entrada_sensor < 450){ attach_servos(); } else { detach_servos2(); } entrada_sensor2 = analogRead (1); Serial.print("LDR2 = "); Serial.println(entrada_sensor2); delay(500); if (entrada_sensor2 < 450){ attach_servos2(); } else { detach_servos(); } } void detach_servos(){ servo1.detach(); } void detach_servos2(){ servo2.detach(); } void attach_servos(){ servo1.attach(9); } void attach_servos2(){ servo2.attach(10); }

Programa#6:

Este es e l ú l t imo programa real izado antes del código f ina l . Consis te en contro lar los

servomotores depend iendo de los datos captados por los LDR.

En este programa, por un lado vemos

funciones para con tro lar e l encend ido y

apagado de los servos, y por ot ro las

lecturas de los LDR por separado. En

cada lectura de los LDR, hay un

“ i f ( )…else( ) ” , l lamando a las func iones

de los servomotores (s i la lectura es

menos a un valor , que se encienda un

servomotor determinado, y v iceversa) .

Page 20: Robot seguidor de línea

Sis temas de Te lecomun icac ión e In formát ica

Curso 2011-2012

Clavero Car rascu l l , Car los Pág ina 18 de 33 Rodr íguez Gro ta , Dav id

Programa#7:

Una vez ya podemos contr o lar los servomotores dependiendo de los sensores LDR,

probamos los sensores CNY70 ya que presentan un mejor rendimiento y func ional idad

ya que son unos sensores compactos e in f ra r ro jos . El p r imer código ut i l izado es

senci l lo , s i rve para ver e l comportamie nto y los datos in terpretados por los dos

sensores.

Las conexiones necesar ias son

un poco compl icadas ya que e l

sensor t iene cuatro p ines, a uno

de en trada le l legan 5V, a l o t ro

le l legan 5V pasando por una

res is tencia de 220Ω, uno de los de sal ida se conecta con e l GND y e l o t ro de sal ida se

conecta en ser ia con una res is tenc ia conec tada a l GND y con e l p in analógico concreto.

Page 21: Robot seguidor de línea

Sis temas de Te lecomun icac ión e In formát ica

Curso 2011-2012

Clavero Car rascu l l , Car los Pág ina 19 de 33 Rodr íguez Gro ta , Dav id

2.2.4.- Seguimiento del proyecto

Para real i zar este robot seguidor de l ínea es necesar io un micro contro lador , en nuestro

caso hemos ut i l izado la p laca Arduino que como most ramos en e l apar tado 2.1.1 es

idónea para desarro l lar éste t ipo de robot . Aquí encont ramos nuest ro pr imer obstáculo

a l conectar la p laca a l o rdenador (apar tado 2.2.5) .

Para comprender e l func ionamiento y las caracter ís t icas f ís i cas de la p laca Arduino es

necesar io rea l iza r var ias pruebas bás icas (como muestra e l apar tado 2.2 .3 o los v ideos

inc lu idos en e l CD adjun to a l in forme) para fami l iar iza rse con los p ines y código que

poster iormente ut i l izaremos para e l robot . Una vez comprend ido e l func ionamiento de

d ichos e lementos podremos entender como conectar los e lementos e lect rónicos por

separado para pos ter iormente poder conec tar los ent re s i y así constru i r un robot

seguidor de l íneas .

Una vez real izadas las pruebas y soluc ionados los problemas con los servomotores

(apar tado 2.2.5) , e l paso s iguiente es crear un programa capaz de s incronizar los dos

sensores con los dos servomotores (v ideo ad junto en e l CD) . Para e l lo deberemos

interpreta r las lecturas de los sensores y una vez obtenidos los valo res deseados

s incroniza r d ichos sensores con los servomotores para contro lar su func ionamiento.

El s igu iente procedimiento a tener en cuenta es e l monta je del chasis de nuestro robo t .

Para e l monta je de nuestro robot in tentamos ut i l iza r en la mayor medida posib le los

mater ia les que podemos obtener de forma senci l la por casa para no gastar en nuevos

mater ia les (apar tado 2.2.1) . La construcc ión del chasis consis te en una base en la que

colocar los e lementos e lect rón icos (p laca a rduino, servomotores, pro toboard…) y a la

que poder un i r unas ruedas para su desplazamiento. En nuest ro caso, ut i l i zamos una

p laca de metacr i la to para la base , unos CD con recubr imien to de goma para las ruedas

y una rueda “ loca” para sostener junto a las ruedas motr ices e l robo t .

A cont inuación, tendremos e l chas is del robot montado jun to a los componentes

e lect rónicos (apar tado 2 .2.2) y únicamente tendremos que in terconec tar los todos a

t ravés de cables uni f i lares a la p laca ardu ino s i rv iéndonos de la pro toboard .

F inalmente podremos rea l izar las pruebas per t in entes para e l seguimiento de la l ínea y

soluc ionar los problemas que vayamos encont rando tanto como por la d isposic ión de los

e lementos f ís i cos del robot como por par te de la p rogramación .

Page 22: Robot seguidor de línea

Sis temas de Te lecomun icac ión e In formát ica

Curso 2011-2012

Clavero Car rascu l l , Car los Pág ina 20 de 33 Rodr íguez Gro ta , Dav id

2.2.5.- Problemas y soluciones

Puerto USB-Seria l Arduino

Al conec tar la p laca Ardu ino UNO, e l PC no la detecta ya que no t iene los contro ladores

necesar ios ins ta lados . Para insta lar los d r ivers hay que hacer lo manualmente desde

“Admin is t rador de d ispos i t ivos”, buscamos la conexión correcta, vamos a “Propiedades”

y en la pes taña de “Contro ladores ” se lecc ionamos “Actua l iza r con tro lador…”. Una vez

acabamos esto nos aparece una ventana que en la que selecc ionamos “Buscar sof tware

de cont ro lador en e l equ ipo”, cuando le veamos que nos deja selecc ionar e l d i rector io ,

en la misma carpeta del sof tware Arduino hay un d i rector io l lamado “dr ivers ” ,hay que

deci r le que los busque en esta carpeta , una vez encont rados se ins ta lan y procedemos

a con f igurar e l sof tware .

Una vez f ina l izado e l p roceso de insta lac ión de los contro la dores , conf iguramos e l

sof tware ind icándole e l

puer to y e l modelo de

p laca que vamos a

programar.

En la s iguiente imagen

podemos ver la

conf igurac ión, en la

pestaña de “Too ls ”,

se lecc ionamos “Board ”,

e indicamos nuestra p laca Arduino (en nuestro caso Ardu ino UNO). Después

selecc ionamos “Ser ia l Por t ” e ind icamos e l puer to ser ia l correcto (en nuestro caso

COM8).

Page 23: Robot seguidor de línea

Sis temas de Te lecomun icac ión e In formát ica

Curso 2011-2012

Clavero Car rascu l l , Car los Pág ina 21 de 33 Rodr íguez Gro ta , Dav id

Adaptar servo (de 180º a 360º cont inuos)

El servomotor adqui r ido (Servo Hi tec HS -311 Standard) para nuest ro robo t rast reador de

l ínea , es un servomotor senci l lo de med iana ponencia y de g i ro de 180º , con un prec io

de 11 ,95€.

Especi f icac iones técnicas del Servo Hi tec HS -311 Standard:

> Peso: 43 g

> Rotación: 180º

> Tensión recomendada de operac ión : 4 .8V

> Torque estát ico: 6 .0v >/= 3.7kg.cm 4.8v >/= 3.0kg.cm

> Veloc idad 6.0v : 0 .15sec/60°

> Veloc idad 4.8v : 0 .19sec/60°

> Sopor te para NXC

Este servomotor t ienen e l inconvenien te de que su g i ro es de 180º y nosotros

necesi tamos que l legue a g i rar 360º cont inuos ya que van a ser las ruedas de nues tro

robot .

Para consegui r que e l servo g i ra ra los 360º hay que t rucar lo; este t iene unos

engranajes en la par te super io r , l os cuales hemos de sacar y modi f ica r los para nuest ro

propós i to . A cont inuac ión veremos e l e jemplo de cómo t rucamos e l servo (Servo Hi tec

HS-311 Standard) :

PASO 1:

Desmontamos la p ieza g i ra tor ia de la par te super ior del servo y acto seguido

desmontaremos también la par te de in fer ior :

Page 24: Robot seguidor de línea

Sis temas de Te lecomun icac ión e In formát ica

Curso 2011-2012

Clavero Car rascu l l , Car los Pág ina 22 de 33 Rodr íguez Gro ta , Dav id

Una vez desmontada la p ieza in fer ior la super ior ya la podemos sacar para ver los

engranajes .

PASO 2:

Una vez con los engrana jes delante nos po demos f i jar que hay dos topes que ev i tan que

e l motor g i re los 360º:

En la pr imera imagen podemos ver como en e l engrana je seña lado hay una espec ie de

rectángulo que es e l que ev i ta e l g i ro. En la segunda imagen podemos ver como debajo

del mismo engranaje esta la forma de la p ieza de que va debajo, esta p ieza no puede

l legar a g i rar más de 180º.

PASO 3:

Ahora que hemos loca l i zado e l engranaje que s i rve de tope para e l g i ro completo,

procedemos a modi f i car lo de la manera más senci l l a pos ib le y con cuidado. Con un

ta ladro o una her ramienta parec ida hacemos e l agujero de la par te in fer ior de l

engranaje mas grande y tota lmente c i rcu lar .

Page 25: Robot seguidor de línea

Sis temas de Te lecomun icac ión e In formát ica

Curso 2011-2012

Clavero Car rascu l l , Car los Pág ina 23 de 33 Rodr íguez Gro ta , Dav id

Después con unos a l ica tes cor tamos e l tope super ior de l engrana je:

PASO 4:

Una vez f ina l izado es te proceso vo lvemos a p oner e l engrana je en su s i t io y montamos

ot ra vez e l servomotor :

Programación de los servos

En re lac ión a la programación de Arduino para hacer func ionar los servomotores ,

tuv imos dos problemas.

El pr imer problema es taba re lac ionado con la l ib rer ía de lo s servos, e l inconveniente lo

teníamos a la hora de parar e l servomotor . Podíamos poner lo en func ionamiento con la

func ión “at tach .servo(9) ” , pero a la hora de detener lo , no fu imos consc ientes de que

ex is t ía la func ión contra r ia “de tach .servo() ” .

E l segundo problema nos lo encontramos a l in tentar p rogramar los dos servomotores y

los dos LDR. Teníamos que consegui r que depend iendo de l va lor que se obtenía en los

LDR, func ionara un servomotor y se parara e l o t ro, func ionaran los dos o se de tuv ieran

los dos. P robamos var ias func iones d i ferentes, como las func iones “swichCase() ” o

“ i f ( )…else i f ( )…else( ) ” , pero f ina lmente encontramos una fo rma muy senc i l la de hacer lo

con la func ión “ i f ( )…else( ) ” , consis t ía en programar cada sensor junto con su respect ivo

servomotor de forma independiente ordenándole cuando tenia que parar y cuando tenia

que ponerse en func ionamiento .

Page 26: Robot seguidor de línea

Sis temas de Te lecomun icac ión e In formát ica

Curso 2011-2012

Clavero Car rascu l l , Car los Pág ina 24 de 33 Rodr íguez Gro ta , Dav id

Sensor infrarro jo CNY70

Cuando nos propusimos cambiar los LDR por los sensores CNY70, tuv imos var ios

problemas con lo que son las conexiones y las re s is tencias necesar ias para obtener

buenos resul tados, ya que mucha de la in formación que aparece en in terne t es errónea .

En este apar tado se expl i caran las soluc iones obtenidas .

Uno de los inconvenien tes más impor tantes a la hora de usar un sensor in f ra r ro jo

CNY70 es tener las res is tenc ias adecuadas para que proporc ione da tos f iab les. La

res is tencia necesar ia para e l emisor in f rar ro jo es de 220Ω y las res is tencias necesar ias

para e l receptor son de 10k Ω o 47kΩ i nd is t in tamente (se ob t ienen buenos resul tados

con cualqu iera de las dos) .

Otro inconveniente es e l de tener c la ro como conec tar cada uno de los p ines , la

so luc ión la muestra la s iguiente imagen

En la pr imera imagen se muestra e l esquema lóg ico de las conexiones necesar ias para

e l buen func ionamiento del sensor CNY70 y en la segunda imagen se muestra e l

esquema f í s ico en una protoboard .

Un aspecto que no se t iene en cuenta a la hora de usar d ichos sensores , es e l que e l

emisor in f rar ro jo cuando esta encendido, no se perc ibe por e l o jo humano, para

comprobar que e l in f rar ro jo es ta encendido , es necesar io d isponer de una cámara d ig i ta l

como la de un móvi l , y cuando en focas e l sensor aparece e l in f rar ro jo encendido .

Page 27: Robot seguidor de línea

Sis temas de Te lecomun icac ión e In formát ica

Curso 2011-2012

Clavero Car rascu l l , Car los Pág ina 25 de 33 Rodr íguez Gro ta , Dav id

3.- Resultados y estadísticas

3.1.- Robot finalizado

Aquí podemos ver d i ferentes imágenes , de un protot ipo real izado con 3D Stud io

Max2010 para tener una idea de cómo pensábamos que habr ía de ser , un chasis

montado con los componentes e léc t r icos para entender donde co locar los componentes

y unas imágenes de dos robots f ina l izados . En e l CD ad junto a es te in forme , se han

guardado var ios v ideos demostrat ivos.

Page 28: Robot seguidor de línea

Sis temas de Te lecomun icac ión e In formát ica

Curso 2011-2012

Clavero Car rascu l l , Car los Pág ina 26 de 33 Rodr íguez Gro ta , Dav id

Page 29: Robot seguidor de línea

Sis temas de Te lecomun icac ión e In formát ica

Curso 2011-2012

Clavero Car rascu l l , Car los Pág ina 27 de 33 Rodr íguez Gro ta , Dav id

3.2.- Presupuesto

Productos Unidades Precio / Unidad Total

Placa Arduino UNO 1 35,95 € 35,95 €

Porta-pilas 1 0,85 € 0,85 €

Pack 4 pilas de 1,5V 1 3,65 € 3,65 €

Servomotor 2 13,43 € 26,86 €

Juego de cables unifilares 1 8,70 € 8,70 €

Pack 100 resistencias 10K Ohmios 1 1,25 € 1,25 €

Pack 100 resistencias 220 Ohmios 1 1,25 € 1,25 €

Sensor de luz CNY70 2 0,63 € 1,26 €

Conmutador de placa MSP1M1 1 0,93 € 0,93 €

Placa con cara de fibra de vidrio 1 1,44 € 1,44 €

TOTAL 82,14 €

Productos Unidades Precio / Unidad Total

Pack LED de colores 3 1,25 € 3,75 €

LDR 5 1,68 € 8,40 €

Cinta de goma doble cara autoadhesiva 1 4,40 € 4,40 €

TOTAL 16,55 €

TOTAL FINAL 98,69 €

PRESUPUESTO

PRESUPUESTO PARA PRUEBAS

Page 30: Robot seguidor de línea

Sis temas de Te lecomun icac ión e In formát ica

Curso 2011-2012

Clavero Car rascu l l , Car los Pág ina 28 de 33 Rodr íguez Gro ta , Dav id

3.3.- Mejoras futuras

Este apar tado t iene como obje t ivo exp l ica r pos ib les me joras para e l robo t segu idor de

l ínea .

Algunas de las mejoras fact ib les para nuestro robot segu idor de l ínea podr ían ser entre

ot ras :

In t roduci r una panta l la LCD que muestre los datos obten idos por los sensores o

la d i recc ión en la que g i re e l robo t .

La in t roducción de un micrófono e l cual tenga e l objet ivo de parar o encender e l

robot .

La imp lementac ión de un sensor que permi ta la detecc ión de obstáculos a cor ta

d is tancia para ev i tar una col is ión.

Implementar un LDR para detectar la can t idad de luz del ambiente y as í s imular

la d i fe rencia entre día y noche para encender de forma au tomát ica unos LED

delan teros y t raseros a modo de fa ros para su detecc ión .

Page 31: Robot seguidor de línea

Sis temas de Te lecomun icac ión e In formát ica

Curso 2011-2012

Clavero Car rascu l l , Car los Pág ina 29 de 33 Rodr íguez Gro ta , Dav id

4.- Anexo

4.1.- Programa y conexiones finales

En el s iguien te apar tado inc lu imos e l código f ina l u t i l i zado y las conex iones real izadas.

#include <Servo.h> Servo servo1; Servo servo2; int CNY1; int CNY2; int LDR; void setup(){ Serial.begin(9600); //para visualizar los datos pinMode(10, OUTPUT); pinMode(9, OUTPUT); pinMode(8, OUTPUT); pinMode(7, OUTPUT); } void loop(){ CNY1 = analogRead (A0); Serial.print("\nCNY_Dr = "); Serial.println(CNY1); if (CNY1 < 500){ //si el CNY capta <200 funcione el servo 1 attach_servos(); } else { //sino que se apague detach_servos(); } CNY2 = analogRead (A1); Serial.print("CNY_Iz = "); Serial.println(CNY2); if (CNY2 < 500){ //si el CNY capta <200 funcione el servo 2 attach_servos2(); } else { //sino que se apague detach_servos2(); } LDR = analogRead (A2); Serial.print("LDR = "); Serial.println(LDR); //delay(1000); if (LDR > 200){ digitalWrite(10, LOW); digitalWrite(9, LOW); digitalWrite(8, LOW); digitalWrite(7, LOW); } else { digitalWrite(10, HIGH); digitalWrite(9, HIGH); digitalWrite(8, HIGH); digitalWrite(7, HIGH); } } void detach_servos(){ servo1.detach(); } void detach_servos2(){ servo2.detach(); } void attach_servos(){ servo1.attach(13); } void attach_servos2(){ servo2.attach(12); }

Page 32: Robot seguidor de línea

Sis temas de Te lecomun icac ión e In formát ica

Curso 2011-2012

Clavero Car rascu l l , Car los Pág ina 30 de 33 Rodr íguez Gro ta , Dav id

Estas son las conex iones necesar ias para un robo t seguidor de l ínea en e l cual hay dos

sensores CNY70 que se ut i l izan para de tec tar la l ínea, dos servomotores para las

ruedas motr ices del ro bo t , un LDR que detecta ra la luz ambiente para comprobar s i se

va la luz y unos leds que se encenderán cuando e l LDR no detecte luz. También son

necesar ias var ias res is tencias para este proyec to : 220 Ω , 10kΩ y 47kΩ . Se recomienda

ut i l i zar cables de d is t i n tos colores para d i ferencia r las func iones y poder entender lo de

forma senc i l la .

Page 33: Robot seguidor de línea

Sis temas de Te lecomun icac ión e In formát ica

Curso 2011-2012

Clavero Car rascu l l , Car los Pág ina 31 de 33 Rodr íguez Gro ta , Dav id

4.2.- Web grafía

Información

ht tp: / /www.arduino .cc/es/

h t tp : / /www. info -ab .uc lm.es/ labelec /solar /o t ros / in f ra r ro jos /sensor_cny70.htm

ht tp: / / jo rgef loresvergaray .b logspot .com.es/2009/07 /un -carr i to -seguidor -de- l inea-

senci l lo .html

h t tp : / /www.s l ideshare.net / rongut i / robo t -seguidor -de- l inea

ht tp: / /www.robotgroup.com.ar /web/

Componentes

ht tp: / /www.ondarad io.es/ (Componentes var ios )

ht tp: / /www.dio t ron ic .com/ (Sensores CNY70)

ht tp: / / ro -bot ica.com/ (Servomotores)

*Las paginas webs de in formación, a n ter iores , han s ido las mas u t i l i zadas . En in te rnet ,

puede haber mucha in formación y puede l legar a ser út i l o no, esta r correcta o

incorrecta , pero muchas de las conclus iones a las que hemos l legado para real i zar este

proyec to han s ido a par t i r de foros o b logs.