Este documento presenta el desarrollo de un robot seguidor de línea realizado por dos estudiantes como proyecto de su curso de Sistemas de Telecomunicaciones e Informática. Explica los conceptos básicos de Arduino y la programación, y detalla las etapas de construcción del robot, incluyendo los componentes, los primeros programas, las mejoras realizadas y los resultados obtenidos. El objetivo era crear un robot capaz de seguir una línea blanca o negra utilizando sensores y servomotores controlados por una placa Arduino.
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
Proyecto: Robot seguidor de línea
1. Si st ema s d e T ele co mun ic a ció n e In form át ica
Cur so 201 1 - 20 12
ROBOT
SEGUIDOR
DE LINEA
Sistemas de Telecomunicación e I nformática
Claver o Car rascull, Car los
Rodríguez Grot a, David
Curso 2011 -2012
Cl aver o Carr as cu ll, C arl os
Rodr ígu ez Gr ota , Dav id
2. Si st ema s d e T ele co mun ic a ció n e In form át ica
Cur so 201 1 - 20 12
Índice
1.- Introdu cció n ....................................................................................... 1
1.1.- Pres enta ción ......................................................................... 1
1.2.- Moti vaci o nes ......................................................................... 1
1.3.- Obje tivo s ............................................................................... 1
2.- Desarr ollo de u n rob ot seg uidor de línea ........................................ 2-24
2.1.- Conc eptos bás icos ............................................................. 2-7
2.1.1 .- I ntrod ucció n a Arduino .......................................... 2-4
2.1.2 .- I ntrod ucció n a la programaci ón Arduino ................. 5-7
2.2.- Prác tica ............................................................................ 8-24
2.2.1 .- Co mponen tes del chasi s ........................................ 8-9
2.2.2 .- Co mponen tes electróni cos .................................. 10-12
2.2.3 .- P rimer os p rogramas ........................................... 13-18
2.2.4 .- S eguim iento del proyecto ....................................... 19
2.2.5 .- P roble mas y soluciones ...................................... 20-24
3.- Result ados y es tadí s ticas .............................................................. 25-28
3.1.- Robot fin aliz ado .............................................................. 25-26
3.2.- Pres upues to ........................................................................ 27
3.3.- Mejo ras futur as ................................................................... 28
4.- Anexo ........................................................................................... 29-31
4.1.- Prog rama y co nexi ones f inal es ......................................... 29-30
4.2.- Web g rafí a ........................................................................... 31
Cl aver o Carr as cu ll, C arl os
Rodr ígu ez Gr ota , Dav id
3. Si st ema s d e T ele co mun ic a ció n e In form át ica
Cur so 201 1 - 20 12
1. Introducción
1.1. Presentación
El proyect o ha sid o re ali zado p or Ca rlos Clavero Carrascul l y David Rodr íguez Grot a,
del Centr o de Estud ios STUCOM, de l segundo curso de CFGS de Sistemas de
Telecomunic acio nes e I nformá tica . Este consta de una parte práctica, la cual es la
realizació n de un robo t seguid or de l ínea, de un inf orme donde se expli can todos los
pasos seg uido s e n e l pr o ceso de construcción del robot , de un CD que almacena videos,
fotografí as y datos de pr uebas y procesos realizados y una presentación en PowerPoi nt
con una br eve expl icac ió n del des arrol lo de este pr oyect o.
1.2. Motivaciones
En pr imer lug ar hemos d ecidid o r eali zar est e pr oyecto porque uno de los motivos por l os
que empezamo s es te cu r so de CF GS de Sist emas de Tel ecomunicaciones e Informát ica
es la realizac ión de un r o bot a l fi nal de curso.
En segun do luga r este proyect o nos permití a poner en práctica algunos de los
conoci mien tos adqu irid os dura n te este curso.
Otra de l as mot ivaci ones que nos impulsaron a cr ear un robot, es ponernos a prueba a
nosotr os m ismo s de most rando que somos capaces de ent ender y llevar a la pr ácti ca la
aplicación de dif eren tes elemen tos electrónicos .
Finalmente una pres ente motiv ació n fue ver si conseguíamos desarrollar el código de
programació n n eces ario , ya q ue, est e er a un aspecto bastante complej o por nuestra
parte deb ido a n u estr os c onocim ient os.
1.3. Objetivos
Mínimos:
- Robot r astr eado r de una línea (Placa Ar duino, 2 LDR, 2 leds y 2 servomotores)
con e l mín imo pres upues t o posible.
El robot dis pond rá de s e nsores qu e deberán capt ar la intensidad de luz , principalmente
el proce sado r inte rpre t ar a los estímulos de esta manera. Cuando del robot este
encendido deber á se guir o bie n , una línea bl anca o negr a en el suelo. El procesador de
alguna man era debe rá c a ptar e in terpretar por separado cada est imul o de l uz .
Máximos:
A part e de l a c arac terí s tica a nter ior , si hay tiempo y presupuesto suficiente el r obot
deberá hac er t ambi én:
- Robot que inte rpre te u n s onido.
- Robot rast read or l uz ( LD R).
- Conect ar u na p anta lla qu e muestre cuando esta encendi do o apagado.
Cl aver o Carr as cu ll, C arl os Pá gin a 1 de 3 3
Rodr ígu ez Gr ota , Dav id
4. Si st ema s d e T ele co mun ic a ció n e In form át ica
Cur so 201 1 - 20 12
2. Desarrollo de un robot seguidor de línea
2.1. Conceptos básicos
2.1.1. Introducción a Arduino:
¿Qué es Ard uino?
Arduino es una pl aca cre ada p ara el aprendizaje y la intr oducción a la pr ogramación e
implementac ión en le m undo f ísic o. Es una plataforma de desar roll o de comput ació n
física de cód igo ab iert o, basada en una placa con un sencillo micro controlador y un
entorno de des arro llo par a crea r so ftware para la placa.
Puedes usa r Ar duin o p ara cr ear objetos int er activos, leyendo datos de una gr an
variedad de in terr upto re s y sens ores y cont rolar multitud de tipos de luces, motores y
otros actu ador es f ísic o s. Los proyect o s de Arduino pueden ser autónomos o
comuni carse c on un pr og rama (so ftwar e) que se ejecut e en tu ordenador. El lenguaje de
programació n d e A rdui no es un a implementa ción de Wiring, una plataf orma de
comput ació n físic a pare cida, qu e a su vez se basa en Processing, un entorno de
programació n mul timed ia , este lenguaje de progr amación es pareci do al lenguaje C o
C++.
¿Por qué us ar Ar duino ?
Arduino, adem ás de sim plifi car e l proceso de t r abajar con micro cont roladores , ofrece
algunas ve nta jas r espe ct o a o tros sistemas a prof esores, estudi antes y amateurs:
Asequi ble: Ardui no UNO es asequibl e en cuanto a precio. La pl aca con el cable
USB est a en tre los 30 a 40 €. El soft ware necesario para la programaci ón es
gratu ito y se p uede descargar desde la pagi na ofici al
http: //ar duin o.cc /es/ Main / Software
Multip lata for m a: El so ftw are uti lizado para Ardui no es multi plat afor ma, funciona
en lo s si stema s op erat ivo s Windows, Maci ntosh OSX y Linux.
Entorn o de prog ramac ió n simpl e y directa: El entorno de programación de
Arduin o es fácil d e usar para principi antes y lo sufici en temente f lexi ble para los
usuari os a vanz ados .
Softwa re ampl iabl e y de código abier to: El software Ardui no esta publi cado bajo
una l icen cia libr e y prepar ado para ser ampliado por pr ogramadores
experi ment ados .
Cl aver o Carr as cu ll, C arl os Pá gin a 2 de 3 3
Rodr ígu ez Gr ota , Dav id
5. Si st ema s d e T ele co mun ic a ció n e In form át ica
Cur so 201 1 - 20 12
Hardwar e am plia ble y d e Códi go abier to: Los pl anos de los módulos están
public ados baj o li cenci a Creati ve Commons, por l o que diseñador es de cir cuitos
con exp erie ncia pued en hacer su pr opia versión del módulo, ampliándolo u
optimi zánd olo.
Componentes de l a pl aca Ardu ino UN O:
- AREF (V erde clar o ): T e rminal de referencia analógica. Refer enci a de voltaje
para las entra das anal ógi cas.
- GND (Na ranja ): T oma d e tier ra
- Pines 2-13 (Azu l cl aro) : Terminales digital es
- Pines 0- 1 (Amari llo ) : Te rminal es digital es E/S serie - Tx/Rx. Estos pines no se
pueden ut iliz ar c o mo e /s digit ales si se esta util izando comuni caci ón en seri e.
- Reset (Blan co): Botó n d e rei nici o
- ICSP (Azu l oscur o ): " In-cir cuit Serial Programmer"/Programador seri e en
circui to
- ATMEGA328P-PU (Roj o) : Micr ocontrol ador ATMEGA328P -PU
- Pines 0-5 (Gri s os curo ) : Termi nales de ent rada analógica
- Pines 3.3V , 5V , Vi n ( Ma r rón): Termi nales de alimentación.
Vin (a ve ces mar cada c omo "9V"), es el vol taje de entrada a la placa Arduino
cuando se es tá ut iliz and o una fuente de al iment ación exter na (En comparación
con lo s 5 vo lt ios de la co nexión USB o de otr a f uente de al iment ación regul ada).
Puedes pro porc iona r vo lt aje a través de este pin.
Cl aver o Carr as cu ll, C arl os Pá gin a 3 de 3 3
Rodr ígu ez Gr ota , Dav id
6. Si st ema s d e T ele co mun ic a ció n e In form át ica
Cur so 201 1 - 20 12
- Pin Res et ( G ris claro ): Se pone a LOW para reset ear el microcontr olador .
Utiliz ada típ icam ente pa r a añadir un bot ón de reset a shi elds qu e bloquean el de
la pl aca prin cipa l.
- Entrada de alim enta ción ( Rosa ): Entrada de al imentación exter na
- USB (V erde oscu ro ): En trada USB uti lizada para subi r progr amas a l a pl aca y
comuni caci ones serie e ntre l a placa y el ordenador; puede ut ilizarse como
alimen taci ón.
Cl aver o Carr as cu ll, C arl os Pá gin a 4 de 3 3
Rodr ígu ez Gr ota , Dav id
7. Si st ema s d e T ele co mun ic a ció n e In form át ica
Cur so 201 1 - 20 12
2.1.2. Introducción a la programación de Arduino
Este apar tado pre tend e explic ar la progr amación más bási ca que se necesitar ía saber
crear prog ramas sen cill o s en A rdui no UNO .
Para emp ezar anal izare mos la es tructura de un sketch (códi go de progr amaci ón). L a
estructura b ásica d el le nguaje d e progr amaci ón de Arduino es bastante simple y se
compone de a l meno s do s secto res. Estos dos son necesarios ya que enci erran bloques
que conti enen dec larac io nes, estam entos o inst rucciones.
v o id s e t u p( ) { En donde “setup( )” es la parte encargada de recoger la
e s ta m e n t o s; confi guración y “loop() ” es la que cont ienen el programa que
}
v o id l o o p () { se ej ecut ará cíclicament e .Ambas f unci ones son necesarias
e s ta m e n t o s; para q ue el programa t rabaje.
}
void setup(){
La funci ón de configuración
pinMode(pin, OUTPUT);
( “setu p”) debe cont ener la // configura el 'pin'
declar ació n de la s va ria bles. Es la primer a f unción a como salida
ejecutar en el pr ogram a, se e jec uta sólo una vez. Se }
utili za para ini cial izar l os mo dos de trabajo de los
pines o d el p uert o se rie.
La funci ón buc le ( “lo op”) siguien te contiene el código que se ejecutara continuamente
(lectura de entra das,
activación de sal idas , void loop() {
digitalWrite(pin, HIGH); // pone en uno (on,
etc.) Esta fu nció n es el 5v) el ´pin´
núcleo de todo s lo s delay(1000); // espera un segundo (1000 ms)
programas de A rdui no y digitalWrite(pin, LOW); // pone en cero (off,
0v.) el ´pin´
la que real iza la ma yor
delay(1000);
parte del tra bajo . }
Una vez comp rend ida la
estructura de la progr am ación proc edemos a est udiar las funciones básicas.
Una función e s un bl oqu e de cód igo que tiene un nom bre y un conjunt o de estamentos
que son ej ecut ados cuan do se llama a la función. Son f unci ones “set up()” y “loop()” de
las que ya se ha habl ad o. La s f unci ones de usuario pueden ser escr itas para realizar
tareas repet itiv as y para reducir el tamaño de un programa. Las funciones se declar an
asociadas a un t ipo de v alor . Es te val or será el que devolver á la función, por ejemplo
“int” , que se u til izará cua ndo la fu nción devuelva un dato numéri co de t ipo entero. Si la
funci ón no devue lve nin gún valor entonces se colocar á delante la palabra “void” , que
signi fica fu nció n vacía . Despué s de declarar el ti po de dato que devuel ve la función se
debe esc rib ir el no mbre de la fun ción y entr e par éntesis se escribirán, si es n ecesario,
los paráme tros que se de ben pa sar a l a función para que se ejecute.
Ahora pasar emos a expl icar la s normas básicas de la pr ogramación en Arduino, que
siempr e se ten drán en cu enta para no ocasionar errores de códi go.
Las llaves ({ }) si rven p ar a de fin ir el principio y el final de un bl oque de instrucciones.
Se ut ilizan p ara los bloq u es de programación “setup()”, “loop()” , “i f”, etc.
Cl aver o Carr as cu ll, C arl os Pá gin a 5 de 3 3
Rodr ígu ez Gr ota , Dav id
8. Si st ema s d e T ele co mun ic a ció n e In form át ica
Cur so 201 1 - 20 12
Una llave de a pert ura ({ ) siempr e debe ir seguida de una l lave de cierre ( } ) , si no es así
el programa dará err o res. E l ent orno de pr ogramación de Ar duino incluye una
herramient a de gra n ut ilida d pa ra comprobar el total de l laves. Sól o tienes que
selecciona r en el p unto d e inse rció n de una llave abier ta e inmediatament e se mar ca el
correspond ie nt e ci erre de ese bloq ue ( ll ave cer rada).
El punto y coma ( ;) se uti liza par a separar inst rucciones en el lenguaje de programación
de Arduino . Ta mbié n se u tiliz a pa ra separ ar elementos en una i nstr ucci ón de tipo bucle .
Olvidarse de pone r fin a una lín ea con un punto y coma se t raduci rá en un error de
compil ació n. El tex to d e error puede ser obvi o, y se ref erir á a la falta de una coma, o
puede qu e no. Si se pr od uce un error raro y de di f ícil d et ecci ón lo pr imero que debemos
hacer es c ompro bar q ue los puntos y comas están colocados al f inal de las
instruccio nes.
Los bl oque s de comen tar ios, o mult i -l ínea de comentar io s, son áreas de texto ignorados
por el pro grama q ue se utili zan para las descri pcion es del código o comentar ios que
ayudan a c ompre nder e l programa . Comienzan con “/*” y terminan con “ */” y pueden
abarcar va rias lín eas.
Una línea de c omen tari o empiez a con “ //” y termi nan con l a siguiente lí nea de códi go. Al
igual que los come ntar io s de b loque, los de l ínea son ignora das por el programa y no
ocupan esp acio en la m e moria.
Una vez ente ndid o to do lo ant erio r procedemos a hacer una expli caci ón básica de las
variables y su dec lara ció n.
Una variab le es u na m a nera de n ombr ar y almacena r un
int
valor numé rico par a su u so po ster ior por el progr ama. Como variableEntrada =
su nombre indi ca, l as var iables so n n úmeros que se pueden 0; // declara una
variar cont inuam ente e n contra d e lo que ocur r e con las variable y le
asigna el valor 0
constantes cu yo valo r nu nca cambi a. Una vari able debe ser variableEntrada =
declar ada y, o pcio nalm en te, a sign arle un valor. analogRead(2);
Las variab les deben tom ar nomb res descrip t ivos, para hacer
el código m ás le gibl e, p ara ay udar al pr ogramador y a cualquier otr a per sona a leer el
código y ente nder lo que repres enta la vari able.
Todas las va riab les ti en en que decl ararse antes de que puedan ser util izadas. Para
declar ar un a var iab le se comien za por def inir su t i po como “int” ( entero), “ long” (largo),
“float” (coma fl otan te) , et c. a sign ándoles siempre un nombre, y, opcionalmente, un valor
inici al. Est o sólo deb e ha cerse una vez en un programa, per o el valor se puede cambi ar
en cualqu ier m oment o us ando a ritm ética y reasignaciones di versas.
Una variab le p uede ser d eclara da e n una serie de lugare s del pr ograma y en función del
lugar en do nde se ll ev e a cab o la defi nición esto determinar á en que part es del
programa s e po drá hacer uso de e lla.
Una var iabl e pued e se r dec la rada al inicio de l programa antes de la part e de
confi gurac ión “set up()” , a nive l loc al dentr o de l as func iones, y, a veces, dent ro de un
Cl aver o Carr as cu ll, C arl os Pá gin a 6 de 3 3
Rodr ígu ez Gr ota , Dav id
9. Si st ema s d e T ele co mun ic a ció n e In form át ica
Cur so 201 1 - 20 12
bloque, co mo pa ra l os b u cles d el t ipo “if” , “f or”, et c. En función del lugar de decl aración
de la var iab le así se de termin ara el ámbi to de aplicación, o la capacidad de ci ertas
partes de un progr ama p ara ha cer uso de ella.
Una var iabl e gl obal es a quell a que puede ser vista y ut ili zada por cual quier función y
estamento de u n prog ram a. Esta v ariable se declara al comi enzo del programa, antes de
“setup()”.
Una var iabl e loca l es a q uella q ue se defi ne dent ro de una función o como parte de un
bucle. Só lo es vi sibl e y s ólo p uede uti lizarse dent r o de la f unci ón en la que se declaró.
Por l o tanto , es pos ibl e t ener dos o
más varia bles de l mi s mo nombre int value; // 'value' es visible para
cualquier función
en difer ente s part es d el mismo
void setup()
programa que pu eden contene r {
valores dif eren tes. L a g aran t ía de // no es necesario configurar
que sólo u na fun ción t ie ne acces o }
void loop()
a sus vari able s d entro de l {
programa simp lifi ca y reduce e l for (int i=0; i<20;) // 'i' solo es
potencial de err o res de visible
{ // dentro del bucle for
programació n. i++;
}
float f; // 'f' es visible solo
} // dentro del bucle
Cl aver o Carr as cu ll, C arl os Pá gin a 7 de 3 3
Rodr ígu ez Gr ota , Dav id
10. Si st ema s d e T ele co mun ic a ció n e In form át ica
Cur so 201 1 - 20 12
2.2.- Práctica
2.2.1.- Componentes del chasis
Placa de m etac rila to
La pl aca d e me tacr ilat o se u til izar á como base par a el
chasis de l r obot y se trat a ú nicament e de una placa
transparen te d e plá sti co pero de gr an dureza y grosor . Por
tanto, se rá perf ecta par a s uj etar todos los elementos del
robot a ella aunq ue tr a bajarl a ser á algo mas compli cado
debido a sus carac terí sti cas.
CD
Los CD l os ut iliz arem os como la s ruedas delanteras de l
robot y será n uno s sim pl es CD que podr íamos uti lizar para
grabar info rmaci ón o pe l ículas . Aunque también servir ían
unos discos tra nspa rent e s igual es a los CD tal y como
hemos uti liza do noso t ros en nuest ro proyecto que
quedar án m ejor con la pl aca t ransp arente.
Rueda con b ase g irat ori a
La rueda tr aser a ser á una ru eda con base gir ator i a que
permit irá al ro bot desp l azarse sin dif icul tad en curvas del
recorr ido, ya que, la ú ni ca fun ción de ésta será obedecer a
las delan teras que ll evar án la dir ecci ón.
Bridas
Unas brid as d e p lást ico normal es servi rán par a f i jar l os
elementos el ectr ónic os c omo serv omotores o pl acas al
chasis sin di ficu ltad . Al u tiliz ar bri das pequeñas y cortar
en trozo r esta nte una vez p uest a conseguimos que
queden más dis cret as e n el robo t y que no t engamos
que hacer aguj eros dem a siado gran des para pasar las.
Cl aver o Carr as cu ll, C arl os Pá gin a 8 de 3 3
Rodr ígu ez Gr ota , Dav id
11. Si st ema s d e T ele co mun ic a ció n e In form át ica
Cur so 201 1 - 20 12
Cinta de go ma de dob le cara a uto - adhesiva
Se trata de un a cint a de goma que podemos
utili zar para rode ar l as r uedas y as í conseguir que
no resbalen las ru edas sobre un a super fici e lisa.
Ésta goma es de dob l e car a y fácil de poner
debido a s u elast icid ad y sus prop iedades
adhesi vas.
Perfil de sil icona
El per fil d e sil icon a ha ce la m isma f unci ón que la
cinta de goma q ue es la de rodea r la rueda y evitar
que no se ad hier a sob re super fici es li sas y es como
la goma de u na b icic leta pero d e si licona y nosotros
podemos ad apta rla a nu e stra r ueda .
Hemos pu esto éste perf il de sil icona porque quedaba
mejor en cua nto a esté tic a pero c ualquier a de l as dos
opciones c umpl e co n el o bjeti vo.
Estaño
El est año e s un m etal que se util iza y durant e el
proyecto hemo s util iza do para so ldar pequeños
elementos ele ctró nico s, pero tamb ién nos ha ser vido
en el chas is p ara fija r lo s CD qu e a los servomot ores
simplemente como el eme nto de un ión a tr avés de los
agujer os e n lu gar de un t ornil lo.
Cl aver o Carr as cu ll, C arl os Pá gin a 9 de 3 3
Rodr ígu ez Gr ota , Dav id
12. Si st ema s d e T ele co mun ic a ció n e In form át ica
Cur so 201 1 - 20 12
2.2.2.- Componentes electrónicos
Placa Ardui no U N O: (m ir ar apa rtado 1.1)
Sensor de Luz o LDR ( Li ght Dependent Resistor):
Un LDR es una resist encia variable, que var ía su valor
dependiendo de la canti dad de luz que incide sobre su
superf icie. Cuanta mas i ntensidad de l uz incide en la
superf icie de la L DR
menor será su
resist enci a y cuant o
menos luz inc ide mayor será la r esistencia. Suel en
ser util izado s c omo se nsores de luz ambiental o
como una f otoc élul a q ue act iva un deter minado
proceso en aus enci a o pr esenci a de luz.
Los valore s qu e pu ede tomar una L DR en t otal
oscuri dad y a ple na luz puede va riar un poco de un modelo a ot ro, en general oscil an
entre unos 50 a 1000 o hmios cua ndo están iluminadas y valores comprendidos ent re
50K y vari os m egohm ios cuando est á a oscuras.
Sensor CNY70
El CNY70 es un peq ueñ o dispos itivo con forma de cubo y
cuatro pi nes que tien e en su int erior un diodo emisor de
infrar rojo s y un f otot rans i stor en paral elo y apuntando ambos
en la mism a di recc ión.
Con sol o 2 re sist enci as y un tra nsistor es fácil conectar un
CNY70 a un a p lac a Ard uino, est e sensor es muy usado en
robots seg uido res de l íne as.
Protoboard
El pr otob oard es una especi e d e t ablero con
orifi cios, en la cual se pueden insertar
componente s el ectr ónic o s y c ables para armar
circui tos. Lo s or ific ios está n interconectado s
entre si por co lumn as c omo lo vemos en l a fot o.
En algu nas pl acas tambié n hay f ilas
interconec tand o los ori fic ios, est as se encuentran
en los bord es de la pl aca, como lo muestr a la
segunda fo to.
Cl aver o Carr as cu ll, C arl os Pá gin a 1 0 d e 33
Rodr ígu ez Gr ota , Dav id
13. Si st ema s d e T ele co mun ic a ció n e In form át ica
Cur so 201 1 - 20 12
Motor Servo
Un motor ser vo es un dispos iti vo actuador que tiene la capacidad de ubicarse en
cualquier pos ició n dent ro de su rango de oper aci ón, y de mantenerse est able en dicha
posici ón.
Consta de un m otor de corrie nte conti nua, con una caj a reductora y un circuito de
control, para su posic ion amient o.
Eje de Reductor de velocidad
potencia
Los servo s es tánd ar llev an 3 cab les: tensión, t ier ra y control . Se mueven en función de
pulsos qu e l e en viam os a tra vés del cable de control y estos pulsos que le envi amos
son los que esta blece n la po sici ón del ser vo. El servo esper a pul sos cada 20
milisegund os par a ten er una ide a corr ecta de la posici ón que ha de tener. En general
los servo s giran un os 1 80 grados , aunque hay algunos que giran más. Tienen una
amplit ud d e pu lsos de en tre 0 .5 y 2.5 mil isegundos para establecer la posi ción.
Para nues tro proy ecto d eb erem os util izar el ser vomotor para poder mover las r uedas
delanteras y d eber á po de r real izar gir os de 360º continuos.
LED:
Los LED (L ight E miti ng Diode) . Son di odos que se ilumi nan cuando
pasa la e lect rici dad.
Tienen dos “p atas ”, un a positi va más larga ( ánodo) y ot ra negati va
(cátodo).S e co nect an a Arduin o por medio de una resistencia par a
proteger e l LE D y el m icr ocontr olad or.
Resist enci as
La resist enci a el éctr ica de un obj eto es una medida de su
oposición al pa so de cor rient e. Una resistencia i deal es u n
elemento pa sivo que d isi pa ener gía en for ma de calor según
la ley de Jou le.
También esta blec e una relaci ón de propor cionali dad ent re
la intensid ad de co rrie n te que la atraviesa y l a tensi ón
Cl aver o Carr as cu ll, C arl os Pá gin a 1 1 d e 33
Rodr ígu ez Gr ota , Dav id
14. Si st ema s d e T ele co mun ic a ció n e In form át ica
Cur so 201 1 - 20 12
medibl e entr e sus ext rem os, rela ción conoci da como ley de Ohm. D e acuerdo con la ley
de Ohm. La re sist enci a d e un mat erial puede defi nirse como l a razón entr e la caída de
tensi ón y la corr ient e en dicha resi stencia, así: R = V / I Donde: R = Resistencia V =
Voltaje I = Cor rien te.
Porta-pila s
El port a-pi las e s un e le ment o q ue nos permitir á
alimentar e l rob ot q ue constr uyamos de forma
independie nte s in est a r sujet o a un cable
conect ado al orde nado r . El port a -pi las puede
ser de di feren te tam año , forma o cantidad de
pilas que pue de alb er gar pero en nuestro
proyecto nos será suf i cient e co n 4 espacios
para 4 pi las de 1 ,5V.
Conmutad or d e pl aca MSP1M1
Es un interru ptor para poder c ortar la entrada de volt aje a l a
placa Ard uino . E ste ti ene tres pines, per o nosotros solo
conect arem os 2 de ell os , uno de los ext remos del conductor a
alguno de los pine s pequ eños y el otro extremo al pin central que
es más gra nde que los ot ros do s.
Cable unifi lar
El cable unif ilar s erá el conec tor entre el ementos
electr ónic os y pi nes o p a ra re aliz ar l as conexiones en la
protoboard de ésto s.
Cl aver o Carr as cu ll, C arl os Pá gin a 1 2 d e 33
Rodr ígu ez Gr ota , Dav id
15. Si st ema s d e T ele co mun ic a ció n e In form át ica
Cur so 201 1 - 20 12
2.2.3.- Primeros programas
Este apart ado m ostr ara funci ones bási cas de la placa Arduino UNO, por las que es
recomendab le em peza r a pro bar ya que de esta manera se van adquiriendo
conoci mien tos básic os d e su f unci onami ento, pr ogramación y caract erísticas físi cas.
Algunos de l os pr ogram as empl eados est án descritos en l a página web ofi cial de
Arduino (h ttp ://www .ard ui no.cc / ).
Para realiz ar l os es que mas vis uales de las conexiones hemos util izado el software
gratuito “Frit zin g ”.
Programa#1:
Esta func ión con sist e e n un led par padeante. Di cho led estar á conectado a un pin (por
ejempl o el 13), y a l a to ma de t ierra de Ardui no (pin GND). El código ordenará al led
que se e ncie nda y que se apague cada cier to t iempo.
El led se conecta
directamente a la
placa (pin 13 y
G N D)
Como vemos en el c ódig o lo prim ero que hacemos es decl arar el pin nº 13 como sal ida,
después le orde namos c on la funci ón “ digi talWr i te()” que deje salir tensión y con el
“delay()” el t iempo en m ilise gundo s que ha de estar encendido, acto seguido decimos
que se par e t amb ién po r tiempo l imit ado. Todo el códi go escr ito en “void loop()” se
repit e contin uamen te.
A parti r de es te cód igo se pued e ir experimentando
introducie ndo más led s, para qu e se apaguen y se
enciendan d epen dien do de las ó rdenes que se le
dan.
Cl aver o Carr as cu ll, C arl os Pá gin a 1 3 d e 33
Rodr ígu ez Gr ota , Dav id
16. Si st ema s d e T ele co mun ic a ció n e In form át ica
Cur so 201 1 - 20 12
Programa#2:
El segun do prog rama consis tía entender el funci onami ento de un sensor LDR.
Modifi cand o alg unos a specto s del códi go expuesto en la pági na web ofi cial ,
conseguimo s iden tif icar los val ores dados por el LDR y entender l as conexiones
necesarias (ne cesa ria re sisten cia 10kΩ) . Ejemplo de las conexiones y el código:
Conect amos a l LDR a l pi n de 5V y en el
otro pin lo con ectam os en se rie a una
resist enci a de 10 kΩ que ira al GND y al
pin analó gico de Ard uino el cu al reci birá
los dat os de l sen sor. En el có digo hay funci ones especí ficas par a que los datos
recibi dos por e l LDR se muestr en por pantall a con la función Monit or Seri al del soft ware
Arduino 1. 0.1 .
Cl aver o Carr as cu ll, C arl os Pá gin a 1 4 d e 33
Rodr ígu ez Gr ota , Dav id
17. Si st ema s d e T ele co mun ic a ció n e In form át ica
Cur so 201 1 - 20 12
Programa#3:
Partiendo d el pr ogram a anter ior, p asamos a cali brar un LDR junto con un led. El LDR,
en la prá ctic a, lo t apam os de alg una maner a para que no distorsione los dat os por el
efect o de la luz del led o la il umina ción ambient al.
En la prácti ca comprobamos
los val ores numér icos que
inter preta el LDR con una
hoja de papel blanca y una
raya negar para ver ifi car
que dif erencia a la
perfección los dos col ores.
Cl aver o Carr as cu ll, C arl os Pá gin a 1 5 d e 33
Rodr ígu ez Gr ota , Dav id
18. Si st ema s d e T ele co mun ic a ció n e In form át ica
Cur so 201 1 - 20 12
Programa#4:
Este consi ste en a pren de r a ha cer funcionar un servomot or con Ar duino. C onsta de tres
conexi ones ( rojo -5V, n egro -GN D y amar illo -di gital Pin) , con el sigui ente código
comprobamos su func ion amient o.
Mediante el códi go,
conseguimo s que el
servomotor f unci o ne
durant e 5 segu ndos y e ste
parado dura nte 1 segu n do
y así cons ecut ivam ente .
Programa#5:
Probamos de con tro lar d os ser vomotores a la vez.
Cl aver o Carr as cu ll, C arl os Pá gin a 1 6 d e 33
Rodr ígu ez Gr ota , Dav id
19. Si st ema s d e T ele co mun ic a ció n e In form át ica
Cur so 201 1 - 20 12
Programa#6:
Este es e l últ imo pr ogra ma real izado antes del código f inal . Consist e en controlar l os
servomotore s de p end iend o de los datos captados por l os LDR.
#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 { En este progr ama, por un lado vemos
detach_servos2(); funci ones par a control ar el encendido y
}
entrada_sensor2 = analogRead (1); apagado de los servos, y por otro las
Serial.print("LDR2 = "); lectur as de los LDR por separado. En
Serial.println(entrada_sensor2);
delay(500); cada lect ura de los LDR, hay un
if (entrada_sensor2 < 450){ “if()…else( )” , l lamando a las funciones
attach_servos2();
} de los servomotores (si la lect ura es
else { menos a un val or, que se encienda un
detach_servos();
} servomotor det erminado, y viceversa).
}
void detach_servos(){
servo1.detach();
}
void detach_servos2(){
servo2.detach();
}
void attach_servos(){
servo1.attach(9);
}
void attach_servos2(){
servo2.attach(10);
}
Cl aver o Carr as cu ll, C arl os Pá gin a 1 7 d e 33
Rodr ígu ez Gr ota , Dav id
20. Si st ema s d e T ele co mun ic a ció n e In form át ica
Cur so 201 1 - 20 12
Programa#7:
Una vez ya pod emos co ntr ol ar los ser vomotores dependi endo de l os sensores LDR,
probamos lo s sen sore s CNY70 ya que presentan un mej or rendimient o y funci onal idad
ya que s on un os sen s ores com pact os e i nfrarrojos. El primer códi go util izado es
sencil lo, s irve para v er el comportamie nt o y l os datos int erpr etados por los dos
sensor es.
Las conexio nes ne cesa r ias son
un poco compl icad as ya que el
sensor tie ne c uatr o pi ne s, a uno
de entrad a l e l lega n 5V , al otro
le l legan 5V pa sand o por u na
resist enci a d e 2 20Ω, uno de los de sal ida se conecta con el GND y el otr o de sal ida se
conect a en ser ia c on u na resis tenc ia conectada al GND y con el pin anal ógi co concret o.
Cl aver o Carr as cu ll, C arl os Pá gin a 1 8 d e 33
Rodr ígu ez Gr ota , Dav id
21. Si st ema s d e T ele co mun ic a ció n e In form át ica
Cur so 201 1 - 20 12
2.2.4.- Seguimiento del proyecto
Para r eali zar est e ro bot s eguido r d e lí nea es necesario un micro controlador, en nuestro
caso hemos uti liza do l a plac a Ard uino que como most ramos en el apar tado 2.1. 1 es
idónea pa ra desa rrol lar éste tip o de robot . Aquí encont ramos nuest ro pri mer obstáculo
al conect ar l a pl aca al o r denado r (a part ado 2.2. 5).
Para compr ende r e l f unci onamie nto y las caracter ísticas físi cas de la placa Arduino es
necesario rea liza r v aria s prue bas básicas (como muestr a el apart ado 2.2. 3 o los videos
incluidos en el CD adju n to a l i nforme) para famil iarizarse con los pines y códi go que
poster iorm ente util izar e mos par a el r obot . Una vez comprendido el funcionami ento de
dichos elem ento s pod re mos ent ender como conectar l os el ementos electróni cos por
separado para pos teri or mente poder conectarlos ent re si y así constr uir un robot
seguidor d e l íneas .
Una vez real izad as las prueba s y solucionados los problemas con los servomotores
(apart ado 2.2. 5), e l pa so sigui ente es cr ear un pr ograma capaz de sincr onizar los dos
sensor es co n los dos s ervomo tores (video adjunto en el CD) . Para ell o deber emos
inter preta r las lect uras de los s ensor es y una vez obt enidos los valor es deseados
sincroniza r di chos sen sor es con los ser vomotores para contr olar su funcionamient o.
El siguient e proc edimi ent o a tener en cuenta es el montaje del chasis de nuestro robot.
Para el mon taje de nu e stro rob ot intentamos ut ilizar en la mayor medida posibl e los
materi ales qu e p odemo s obte ner de for ma senci l la por casa par a no gast ar en nuevos
materi ales (a part ado 2. 2. 1). La con strucción del chasis consiste en una base en la que
colocar los elem ento s el ectrón icos (placa ardui no, servomotor es, protoboard…) y a la
que poder un ir una s rue das pa ra su desplazami ento. En nuest ro caso, utili zamos una
placa de metac rila to par a la base , unos CD con r ecubri miento de goma para las ruedas
y una rued a “l oca ” par a s ostene r j unto a l as r uedas motr ices el robot.
A continuaci ón, te ndre mos el chasis del r obot montado junto a los componentes
electr ónic os (apa rtad o 2 .2.2) y úni camente tendremos que interconectar los todos a
través de cabl es u nif ilar e s a l a pl aca arduino sirvi éndonos de la protoboard.
Finalmente podr emos rea lizar las pruebas perti n entes para el seguimient o de la línea y
soluci onar lo s probl emas que vayamos encont rando tanto como por la disposición de l os
elementos físi cos del rob ot com o por parte de l a programación.
Cl aver o Carr as cu ll, C arl os Pá gin a 1 9 d e 33
Rodr ígu ez Gr ota , Dav id
22. Si st ema s d e T ele co mun ic a ció n e In form át ica
Cur so 201 1 - 20 12
2.2.5.- Problemas y soluciones
Puerto USB-S eria l Ard ui no
Al conectar la pl aca Ard u ino UNO, el PC no l a det ecta ya que no tiene los controladores
necesarios ins tala dos . P ara in stal ar l os drivers hay que hacerl o manual mente desde
“Administr ador de di spos itivo s ”, b uscamos la conexión correcta, vamos a “Propi edades”
y en la pes tañ a de “Co n trola dores ” seleccionamos “Actualizar control ador …”. Una vez
acabamos e sto nos apar ece un a ve ntana que en l a que seleccionamos “Buscar software
de cont rola dor en el eq u ipo ”, c uando le veamos que nos deja seleccionar el director io,
en la misma car peta del softw are Ardui no hay un director io l lamado “dri vers ”, hay que
decirl e que lo s busq ue e n esta car peta, una vez encont rados se instalan y procedemos
a configu rar e l s oftwa re .
Una vez fin aliz ado e l p roceso de i nstalaci ón de los contr ola dores, configuramos el
software indicándole el
puerto y el modelo de
placa que vamos a
programar.
En la sigui ente imagen
podemos ver la
confi guración, en la
pestaña de “Tools”,
seleccionamos “Board ”,
e indica mos nue stra placa Ar duino (en nuestro caso Ardu ino UNO). Después
selecciona mos “Ser ial P ort ” e indi camos el puerto serial correcto (en nuestr o caso
COM8).
Cl aver o Carr as cu ll, C arl os Pá gin a 2 0 d e 33
Rodr ígu ez Gr ota , Dav id
23. Si st ema s d e T ele co mun ic a ció n e In form át ica
Cur so 201 1 - 20 12
Adaptar ser vo ( de 1 80º a 360 º co ntinuos)
El servom otor ad quir ido ( Servo Hit ec HS -311 Standard) par a nuest ro robot rastreador de
línea, es un se rvo m otor sencil lo d e mediana ponencia y de giro de 180º, con un precio
de 11,95€ .
Especi fica cion es t écni ca s del Serv o Hi tec HS -311 Standard:
> Peso: 43 g
> Rotaci ón: 180 º
> Tensió n re comen dada de operación: 4.8V
> Torque est átic o: 6 .0v >/= 3.7kg.cm 4.8v >/ = 3. 0kg. cm
> Veloci dad 6.0v : 0 .15s ec/ 60°
> Veloci dad 4.8v : 0 .19s ec/ 60°
> Soport e pa ra NX C
Este serv omot or tie nen el inconveniente de que su giro es de 180º y nosotros
necesi tamo s que ll egue a girar 36 0º conti nuos ya que van a ser las r uedas de nuestro
robot .
Para conseg uir que e l servo g irara l os 360º hay que tr ucar lo; est e tiene unos
engranajes en l a par te s uperio r, l os cuales hemos de sacar y modi ficarlos para nuest ro
propósito . A c onti nuac ió n vere mos el ejempl o de cómo trucamos el servo (Servo Hi tec
HS-311 Sta ndard ):
PASO 1:
Desmont amos la pie za gira tori a de la par te superior del ser vo y acto seguido
desmontarem os t ambi én l a par te d e inferi or:
Cl aver o Carr as cu ll, C arl os Pá gin a 2 1 d e 33
Rodr ígu ez Gr ota , Dav id
24. Si st ema s d e T ele co mun ic a ció n e In form át ica
Cur so 201 1 - 20 12
Una vez de smont ada la pieza in feri or l a superi or ya la podemos sacar para ver los
engranajes .
PASO 2:
Una vez c on lo s eng rana j es dela nte nos po demos fijar que hay dos topes que evit an que
el mot or g ire los 360 º:
En la primer a image n po demos ver como en el engranaje señalado hay una especie de
rectángulo q ue es el qu e evita el gi ro. En la segunda imagen podemos ver como debaj o
del mi smo e ngra naj e est a la f orma de l a pi eza de que va debaj o, esta pi eza no puede
llegar a girar más de 180 º.
PASO 3:
Ahora que hem os loca li zado el engr anaj e que sirve de tope para el giro compl eto,
procedemos a mo difi carl o de l a manera más sencill a posible y con cui dado. Con un
taladro o un a her ramie nta par ecida hacemos el aguj ero de la parte infer ior del
engranaje mas gran de y t otalme nte circular .
Cl aver o Carr as cu ll, C arl os Pá gin a 2 2 d e 33
Rodr ígu ez Gr ota , Dav id
25. Si st ema s d e T ele co mun ic a ció n e In form át ica
Cur so 201 1 - 20 12
Después co n un os a lica te s cort amos el tope superi or del engranaje:
PASO 4:
Una vez f inal izad o es te proces o vo lvemos a p oner el engranaje en su si t io y mont amos
otra vez el s ervom otor :
Programación de los se rvos
En relaci ón a la prog ra mación de Ar duino par a hacer funcionar los servomotores,
tuvimos do s pr oblem as.
El primer pr oble ma es tab a rela cion ado con la libr ería de lo s servos, el inconveni ente lo
teníamos a l a ho ra de pa rar e l s ervomotor . Podíamos ponerl o en f unci onamiento con l a
funci ón “at tach .ser vo(9) ” , pero a l a hora de det enerlo, no fuimos consci entes de que
exist ía l a fu nció n co ntra ri a “de tach .servo()” .
El segundo pro blema no s lo e ncon tramos al intentar progr amar los dos servomotores y
los dos LDR. Ten íamo s que conseguir que dependiendo del valor que se obtení a en los
LDR, func ionar a u n s erv omotor y se parara el otr o, f unci onaran l os dos o se detuvi eran
los dos. P robam os vari as funci ones difer entes, como las funciones “swichCase()” o
“if()…else i f()…e lse( )” , p ero fin almente encontr amos una forma muy sencilla de hacer lo
con l a f unci ón “if( )…els e( )” , c onsi stía en pr ogramar cada sensor junto con su respect ivo
servomotor de forma ind ependi ente ordenándole cuando tenia que parar y cuando t enia
que poners e en fun cion a miento .
Cl aver o Carr as cu ll, C arl os Pá gin a 2 3 d e 33
Rodr ígu ez Gr ota , Dav id
26. Si st ema s d e T ele co mun ic a ció n e In form át ica
Cur so 201 1 - 20 12
Sensor infr arro jo CN Y7 0
Cuando nos pro pusim os cambi ar l os LDR por l os sensores CNY70, tuvimos vari os
problemas con lo qu e son las conexiones y las re sistencias necesarias para obtener
buenos r esul tado s, ya qu e mucha de la información que aparece en int ernet es errónea .
En est e ap arta do s e ex pli caran las soluciones obtenidas.
Uno de lo s i ncon veni en tes m ás i mpor tant es a l a hor a de usar un sensor i nfrarro j o
CNY70 es ten er la s res istenc ias adecuadas par a que proporcione datos fiables. La
resist enci a ne cesa ria par a el e miso r infrarr ojo es de 220Ω y las resist enci as necesar ias
para el rece ptor son de 10k Ω o 4 7kΩ i ndistint amente (se obtienen buenos r esul tados
con cualqu iera de las dos ).
Otro i ncon veni ente es el de tene r claro como conectar cada uno de los pines, la
soluci ón la mu estr a la sig uient e ima gen
En la prim era ima gen se muestra e l esquema lógico de las conexiones necesari as par a
el buen func ionam ient o del sen sor CNY70 y en la segunda i magen se muestr a el
esquema fí sico en una pr otoboa rd .
Un aspect o que no se ti ene en cuenta a la hora de usar dichos sensores, es el que el
emisor in frar rojo c uand o esta encendido, no se perci be por el oj o humano, para
comprobar que el inf rarr o jo es ta encendido , es necesario di sponer de una cámara digital
como l a de un móvi l, y cu ando e nfocas el sensor aparece el inf rarrojo encendido.
Cl aver o Carr as cu ll, C arl os Pá gin a 2 4 d e 33
Rodr ígu ez Gr ota , Dav id
27. Si st ema s d e T ele co mun ic a ció n e In form át ica
Cur so 201 1 - 20 12
3.- Resultados y estadísticas
3.1.- Robot finalizado
Aquí podem os v er d ifer entes imágenes , de un prot otipo realizado con 3D Studio
Max2010 para te ner un a idea de cómo pensábamos que habría de ser, un chasi s
montado co n lo s com pon entes eléc tricos para ent ender donde colocar los componentes
y unas imáge nes d e dos robots finalizados. En el CD adjunt o a este inf orme , se han
guardado v ario s vi deos d emostr ativ os.
Cl aver o Carr as cu ll, C arl os Pá gin a 2 5 d e 33
Rodr ígu ez Gr ota , Dav id
28. Si st ema s d e T ele co mun ic a ció n e In form át ica
Cur so 201 1 - 20 12
Cl aver o Carr as cu ll, C arl os Pá gin a 2 6 d e 33
Rodr ígu ez Gr ota , Dav id
29. Si st ema s d e T ele co mun ic a ció n e In form át ica
Cur so 201 1 - 20 12
3.2.- Presupuesto
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 €
PRESUPUESTO PARA PRUEBAS
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 €
Cl aver o Carr as cu ll, C arl os Pá gin a 2 7 d e 33
Rodr ígu ez Gr ota , Dav id
30. Si st ema s d e T ele co mun ic a ció n e In form át ica
Cur so 201 1 - 20 12
3.3.- Mejoras futuras
Este apart ado tien e com o obje tivo explicar posibles mejoras par a el robot seguidor de
línea.
Algunas de la s mejor as f actib les para nuestro r obot seguidor de línea podr ían ser entre
otras :
Intro ducir una p anta lla L CD que muestr e los datos obtenidos por l os sensores o
la di recci ón en l a qu e gi r e el robot.
La in trod ucci ón d e u n mi crófono el cual tenga el objet ivo de parar o encender el
robot .
La imp leme ntac ión de u n sensor que permi ta l a detecci ón de obstáculos a cort a
dista ncia para ev itar una colisión.
Implem entar u n LDR par a detect ar la cantidad de luz del ambi ente y así simular
la dife renci a entr e día y noche par a encender de forma automát ica unos LED
delan teros y trase ros a m odo de faros para su det ección.
Cl aver o Carr as cu ll, C arl os Pá gin a 2 8 d e 33
Rodr ígu ez Gr ota , Dav id
31. Si st ema s d e T ele co mun ic a ció n e In form át ica
Cur so 201 1 - 20 12
4.- Anexo
4.1.- Programa y conexiones finales
En el siguien te a part ado inclu imos el código f inal utili zado y l as conexiones 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);
}
Cl aver o Carr as cu ll, C arl os Pá gin a 2 9 d e 33
Rodr ígu ez Gr ota , Dav id
32. Si st ema s d e T ele co mun ic a ció n e In form át ica
Cur so 201 1 - 20 12
Estas son l as conex ione s necesari as para un r obot seguidor de línea en el cual hay dos
sensor es CN Y70 que se util izan par a detec t ar l a línea, dos servomotor es par a l as
ruedas motr ices del r o bo t, un L DR que det ectara la luz ambi ente para comprobar si se
va la l uz y un os le ds qu e se enc enderán cuando el LDR no det ecte luz. También son
necesarias var ias resis te ncias para est e pr oyecto: 220 Ω, 10kΩ y 47kΩ . Se recomienda
utili zar cable s de d isti nto s color es para difer enciar las f unci ones y poder entenderlo de
forma senc illa .
Cl aver o Carr as cu ll, C arl os Pá gin a 3 0 d e 33
Rodr ígu ez Gr ota , Dav id
33. Si st ema s d e T ele co mun ic a ció n e In form át ica
Cur so 201 1 - 20 12
4.2.- Web grafía
Información
http: //www .ard uino .cc/ es/
http: //www .inf o -ab .uclm .e s/l ab elec /sol ar/otros/inf rarrojos/sensor_cny70.htm
http: //jorgef lore sver garay .blog spot .com. es/2009/ 07/un -carrit o-seguidor -d e-li nea-
sencil lo. html
http: //www .sli desh are. net /rongu ti/ robot -seguidor -d e-linea
http: //www .rob otgr oup. co m.ar/w eb/
Componentes
http: //www .ond arad io.e s/ (Compon entes varios)
http: //www .dio tron ic.c om/ (Sens ores CNY70)
http: //ro -bot ica. com/ (Ser vomoto res)
*Las pagina s webs d e inf ormaci ón, a nteri ores, han sido l as mas utili zadas. En internet ,
puede habe r muc ha in f ormaci ón y puede llegar a ser úti l o no, estar corr ecta o
incorr ecta , pe ro mu chas de las con clusiones a las que hemos llegado para reali zar este
proyecto h an s ido a p arti r de foros o blogs.
Cl aver o Carr as cu ll, C arl os Pá gin a 3 1 d e 33
Rodr ígu ez Gr ota , Dav id