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
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
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.
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 .
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.
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.
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 .
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
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.
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.
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 .
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.
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
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.
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)
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 .
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.
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 .
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) .
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.
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 .
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).
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 :
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 .
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 .
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 .
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.
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
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
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 .
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); }
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 .
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.