Está en la página 1de 39

PROYECTO FINAL DE CARRERA

Diseo e implementacin de un circuito electrnico


inteligente para la emisin de sonido para control
de plagas




Alumno: Baniel Naifil Regueio
Ingenieiia Tcnica Infoimtica ue Sistemas
Biiectoi uel PFC: }os vicente Busquets Nataix
1Su62u11






Palabras Clave: Microcontrolador, Arduino, ATmega, DuinOS.
2


NDICE


1. INTRODUCCIN AL PFC....pgina 3
2. DESCRIPCIN DE COMPONENTES......pgina 4
2.1. USO DEL ARDUINO UNO...pgina 6
2.1.1. INTRODUCCIN A LA ProgramaciNpgina 8
2.1.2. IMPLEMENTACIN CON DuinOS...pgina 8
2.2. USO DEL RTC DS1302....pgina 9
3. ESPECIFICACIN DE REQUISITOS..pgina 10
4. DISEO E IMPLEMENTACIN.......pgina 11
4.1. LECTURA DE SEALES..pgina 12
4.2. EMISIN DEL SONIDO........pgina 14
4.3. COMUNICACIN CON EL PUERTO SERIE....pgina 16
4.4. CONSULTA DE LA HORA...pgina 20
4.5. SETUP Y LOOP...pgina 23
5. ESQUEMAS EXTERNOS...pgina 25
5.1. MICRFONO...pgina 25
5.2. RTC DS1302......pgina 26
5.3. ESQUEMA FINAL....pgina 27
6. CONCLUSIN PERSONAL.pgina 28
7. AGRADECIMIENTOS.....pgina 29
8. BIBLIOGRAFA...pgina 30
9. ANEXO I...pgina 31



S

1. INTRODUCCIN AL PFC:
En este pioyecto ue final ue caiieia, se ha maicauo el objetivo ue uiseai e
implementai un piototipo que sea capaz ue uetectai umbiales ue soniuo y geneiai,
si uicho umbial cumple ueteiminauas conuiciones, un soniuo como iespuesta a
uicha entiaua.
Contaiemos con un miciofono como foima ue obtenei los cambios en el iuiuo uel
lugai en el que nos encontiemos y un tweetei paia emitii el soniuo.
Bebemos ue sei capaces ue, utilizanuo un miciocontiolauoi, pouei leei el iuiuo
que uetecta el miciofono, ueciuii si ste supeia el umbial uefiniuo y
posteiioimente emitii una alaima que auems habiemos piogiamauo nosotios.
Auems se hai uso ue un ieloj, paia que en touo momento se sepa en qu hoia uel
uia nos encontiamos, ya que uepenuienuo uel momento la sensibiliuau uel
miciofono sei mayoi o menoi.
Baiemos uso tambin ue una inteifaz paia la comunicacion meuiante el pueito
seiie con el oiuenauoi. Be esta foima visualizamos infoimacion como la hoia uel
uia, cuntas veces ha saltauo el soniuo o la sensibiliuau en ese momento uel
miciofono. Auems ue pouei cambiai ue foima manual esta ltima.
Finalmente tambin uebeiemos configuiai un pulsauoi paia que cuanuo se active,
salte el soniuo.












4
2. DESCRIPCIN DE COMPONENTES:
Tias acoiuai hacei uso ue un miciocontiolauoi ATNega S28 (integiauo en
Aiuuino 0N0, que explicaiemos posteiioimente), se contemplo como piimeia
opcion utilizai el entoino ue uesaiiollo en C AvR-Couevision. Ns taiue el
pioyecto se implemento con el entoino ue uesaiiollo ue Aiuuino, al sei un
softwaie open-souice, giatuito y muy intuitivo.

El miciocontiolauoi ATNega S28 sigue la aiquitectuia AvR. Los AvR son una
familia ue miciocontiolauoies RISC ue Atmel.
El AvR es una CP0 ue aiquitectuia Baivaiu. Tiene S2 iegistios ue 8 bits. Algunas
instiucciones solo opeian en un subconjunto ue estos iegistios. La concatenacion
ue los S2 iegistios, los iegistios ue entiauasaliua y la memoiia ue uatos
confoiman un espacio ue uiiecciones unificauo, al cual se acceue a tiavs ue
opeiaciones ue caigaalmacenamiento. A uifeiencia ue los miciocontiolauoies
PIC, el stack se ubica en este espacio ue memoiia unificauo, y no est limitauo a un
tamao fijo.
El AvR fue uiseauo uesue un comienzo paia la ejecucion eficiente ue couigo C
compilauo. Como este lenguaje utiliza piofusamente punteios paia el manejo ue
vaiiables en memoiia, los ties ltimos paies ue iegistios inteinos uel piocesauoi,
son usauos como punteios ue 16 bit al espacio ue memoiia exteina, bajo los
nombies X, Y y Z. Esto es un compiomiso que se hace en aiquitectuias ue ocho bit
uesue los tiempos ue Intel 8uu8, ya que su tamao ue palabia nativo ue 8 bit (2S6
localiuaues acceuiuas) es pobie paia uiieccionai. Poi otio lauo, hacei que touo el
banco supeiioi ue 16 iegistios ue 8 bit tenga un compoitamiento alteino como un
banco ue 8 iegistios ue 16 bit, complicaiia mucho el uiseo, violanuo la piemisa
oiiginal ue su simpliciuau.
El set ue instiucciones AvR est implementauo fisicamente y uisponible en el
meicauo en uifeientes uispositivos, que compaiten el mismo ncleo AvR peio
tienen uistintos peiifiicos y cantiuaues ue RAN y R0N: uesue el miciocontiolauoi
ue la familia Tiny AvR ATtiny11 con 1KB ue memoiia flash y sin RAN (solo los S2
iegistios), y 8 pines, hasta el miciocontiolauoi ue la famila Nega AvRATmega2S6u
con 2S6KB ue memoiia flash, 8KB ue memoiia RAN, 4KB ue memoiia EEPR0N,
conveisoi anlogo uigital ue 1u bits y 16 canales, tempoiizauoies, compaiauoi
analogico, }TAu, etc. La compatibiliuau entie los uistintos mouelos es pieseivaua
en un giauo iazonable.
S
Los miciocontiolauoies AvR tiene un pipeline con uos etapas (caigai y ejecutai),
que les peimite ejecutai la mayoiia en un ciclo ue ieloj, lo que los hace
ielativamente ipiuos entie los miciocontiolauoies ue 8-bit.
El set ue instiucciones ue los AvR es ms iegulai que la ue la mayoiia ue los
miciocontiolauoies ue 8-bit (poi ejemplo, los PIC). Sin embaigo, no es
completamente oitogonal:
-Los iegistios punteios X, Y y Z tienen capaciuaues ue uiieccionamiento
uifeientes entie si.
-Los iegistios u al 1S tienen uifeientes capaciuaues ue uiieccionamiento
que los iegistios 16 al S1.
-Las iegistios ue I0 u al S1 tienen uistintas caiacteiisticas que las
posiciones S2 al 6S.
-La instiuccion CLR afecta los 'flag', mientias que la instiuccion SER no lo
hace, a pesai ue que paiecen sei instiucciones complementaiias (uejai
touos los bits en 1, y uejai touos los bits en u iespectivamente).
Como los PIC, tiene una comuniuau ue seguiuoies piincipalmente uebiuo a la
existencia ue heiiamientas ue uesaiiollo giatuitas o ue bajo coste. Estos
miciocontiolauoies estn sopoitauos poi taijetas ue uesaiiollo ue costo
iazonable, capaces ue uescaigai el couigo al miciocontiolauoi, y poi una veision
ue las heiiamientas uN0. Esto ltimo es posible poi su unifoimiuau en el acceso al
espacio ue memoiia, piopieuau ue la que caiecen los piocesauoies ue memoiia
segmentaua o poi bancos, como el PIC o el 8uS1 y sus ueiivauos.
El ATNega S28 cuenta con S2KB ue memoiia flash, 2KB ue memoiia RAN y 1KB ue
memoiia EEPR0N (el uoble que el ATNega 168).











6
2.1. USO DEL ARDUINO UNO:

Aiuuino es una platafoima ue haiuwaie libie basaua en una sencilla placa con un
miciocontiolauoi y un entoino ue uesaiiollo que implementa el lenguaje ue
piogiamacion PiocessingWiiing. Aiuuino se pueue utilizai paia uesaiiollai
objetos inteiactivos autonomos o pueue sei conectauo a softwaie uel oiuenauoi
(poi ejemplo: Naciomeuia Flash, Piocessing, NaxNSP, Puie Bata). Las placas se
pueuen montai a mano o auquiiiise. El entoino ue uesaiiollo integiauo libie se
pueue uescaigai giatuitamente.
Las platafoimas Aiuuino estn basauas en los miciocontiolauoies Atmega168,
AtmegaS28, Atmega128u, ATmega8 y otios similaies, chips sencillos y ue bajo
coste que peimiten el uesaiiollo ue mltiples uiseos.
Al sei open-haiuwaie, tanto su uiseo como su uistiibucion es libie. Es uecii,
pueue utilizaise libiemente paia el uesaiiollo ue cualquiei tipo ue pioyecto sin
habei auquiiiuo ninguna licencia.
Aiuuino 0N0 es una placa basaua en el miciocontiolauoi ATNegaS28. Tiene 14
pines ue ES uigital (6 ue los cuales pueuen sei utilizauos como saliuas PWN), 6
entiauas analogicas, un oscilauoi ue ciistal ue 16NBz, conexion 0SB, un boton ue
ieset, cabeceias ICSP y una entiaua ue alimentacion. Contiene touo lo necesaiio
paia hacei funcionai el miciocontiolauoi, simplemente se conecta a un oiuenauoi
meuiante un cable 0SB o se alimenta con pilas o auaptauoies a coiiiente continua.
Aiuuino 0N0 se uifeiencia uel iesto ue placas ue Aiuuino en que no hace uso uel
uiivei paia el chip 0SB-a-seiial FBTI. En lugai ue esto, utiliza un ATNega802
piogiamauo paia compoitaise como un conveisoi 0SB a seiie.
7
En iesumen Aiuuino 0N0 consta ue las siguientes caiacteiisticas:
Microcontrolador ATmega328
Tensin operativa 5V
Tensin de entrada (recomendada) 7-12V
Tensin de entrada (lmite) 6-20V
Pines E/S digitales 14 (de los cuales 6 pueden generar PWM)
Pines de entrada analgica 6
Corriente por pines E/S 40 mA
Corriente para el pin de 3.3V 50 mA
Memoria Flash 32 KB 0.5 KB utilizados para el bootloader
SRAM 2 KB
EEPROM 1 KB
Velocidad del reloj 16 MHz

El mapeauo iealizauo poi Aiuuino paia el miciocontiolauoi ATNegaS28 es el
siguiente:



8
2.1.1. INTRODUCCIN A LA PROGRAMACIN:
El lenguaje ue piogiamacion ue Aiuuino es el "wiiing", este lenguaje est basauo
en el lenguaje "piocessing".
Piocessing es un lenguaje ue piogiamacion y entoino ue uesaiiollo integiauo ue
couigo abieito basauo en }ava, ue fcil utilizacion, y que siive como meuio paia la
enseanza y piouuccion ue pioyectos multimeuia e inteiactivos ue uiseo uigital.
Fue iniciauo poi Ben Fiy y Casey Reas a paitii ue ieflexiones en el Aesthetics anu
Computation uioup uel NIT Neuia Lab.
Piocessing es uesaiiollauo poi aitistas y uiseauoies como una heiiamienta
alteinativa al softwaie piopietaiio. Pueue sei utilizauo tanto paia aplicaciones
locales asi como aplicaciones paia la web (Applets).
Se uistiibuye bajo la licencia uN0 uPL.

2.1.2. IMPLEMENTACIN DE DuinOS:
Bebiuo a las caiacteiisticas uel pioyecto, una foima ue optimizai su
funcionamiento es uiviuienuo el tiabajo en taieas que tiabajen ue foima paialela.
Bebiuo a esto, se ha hecho uso uel sistema opeiativo Buin0S, que se pueue integiai
fcilmente en el entoino ue uesaiiollo ue Aiuuino y nos peimite cieai taieas,
auems ue asignai a caua una ties tipos uistintos ue piioiiuau.
Buin0S es un sistema opeiativo ue tiempo ieal uesaiiollauo poi Robotuioup. Este
sistema agiega multitaiea pieventiva al entoino Aiuuino. Est basauo en un
iobusto keinel como lo es FieeRT0S y es completamente ue couigo abieito.
En la explicacion uel couigo se hai ms claio el uso y la necesiuau ue implementai
ese sencillo sistema opeiativo.










9
2.2. USO DEL RTC DS1302:


El chip BS1Su2 contiene un ieloj ue tiempo iealcalenuaiio ue S1 Bytes ue
capaciuau SRAN. Se comunica con el miciocontiolauoi meuiante una sencilla
inteifaz en seiie. Este ieloj piopoiciona los segunuos, minutos, hoias, uia, fecha,
mes y ao. El final ue caua mes est auto-ajustauo incluyenuo los aos bisiestos.
Auems el ieloj pueue opeiai en foimato ue 24h o 12h con inuicauoi ANPN.

Paia pouei utilizai este ieloj ue tiempo ieal, se ha teniuo que obtenei unas
libieiias especificas paia su coiiecto uso.




1u
3. ESPECIFICACIN DE REQUISITOS:
Este pioyecto uebe cumplii unos ueteiminauos objetivos:
-El miciofono uebei amplificai su seal meuiante un ciicuito, ya que sin l la
seal geneiaua es muy ubil y el miciocontiolauoi no es capaz ue leei ningn
valoi.
-El soniuo emitiuo uebei iecoiiei una fiecuencia uesue 1'6KBz hasta 2uKBz,
sienuo ue esta foima molesta y auuible sin ningn tipo ue pioblemas.
-Bebeiemos configuiai un ieloj ue tiempo ieal (RTC BS1Su2) con la fecha y hoia
actual, paia pouei uiviuii el uia en ties fianjas. Be esta foima se poui cambiai
automticamente la sensibiliuau uel miciofono segn en qu momento uel uia nos
encontiemos.
-El miciofono geneia una seal analogica, poi lo que el miciocontiolauoi uebei
sei capaz ue leei esta seal y conveitiila a seal uigital. Auems se mapeai esta
seal paia que iecoiia un iango ue ceio a cien, paia facilitai la configuiacion ue la
sensibiliuau y sei ms intuitiva.
-Bacienuo uso ue la alimentacion uel piopio miciocontiolauoi, uebeiemos
suministiai eneigia al RTC, al esquema ue amplificacion uel miciofono y al ciicuito
uel pulsauoi paia activai el soniuo manualmente. El tweetei se conectai uesue el
pin que geneie la fiecuencia ue seal cuauiaua a tieiia.













11
4. DISEO E IMPLEMENTACIN:
El couigo fuente oiiginal se pueue vei en el Anexo I ue este uocumento.
Se explicai ahoia el couigo implementauo poi paites, segn su funcionaliuau.
Bay que aclaiai que en el couigo llamaiemos alaima a la emision uel soniuo
piogiamauo, ya que a pesai ue no sei una alaima como tal, iealiza una funcion
similai. Poi tanto se entenuei que cuanuo hablamos ue la alaima, nos iefeiimos a
la emision uel soniuo cieauo.
vista geneial uel uiagiama ue flujo uel piogiama, se exponui caua taiea
inuiviuualmente paia una mayoi compiension ms auelante:













12


4.1. LECTURA DE SEALES:


Las vaiiables buttonPin y sensoiPin se utilizain paia uefinii los pines ue entiaua.
El piimeio se iefieie a la entiaua uel pulsauoi y el segunuo a la entiaua analogica
uel miciofono. La vaiiable estauoBoton leei la seal que se ieciba ue buttonPin,
estanuo las opciones BIuB y L0W y el booleano activauo inuicai si se ha pulsauo
el boton y uebe saltai el soniuo o no. Las vaiiables sensoivalue y oluSensoivalue
se utilizain paia la entiaua analogica uel miciofono, sienuo la entiaua actual
sensoivalue y la entiaua obteniua el instante anteiioi oluSensoivalue.
Ahoia veiemos la taiea lectuia:
1S


Tenienuo en cuenta lo explicauo anteiioimente, vemos como se almacena la
infoimacion en las vaiiables inuicauas. Se uefine el iango ue entiaua uel miciofono
ue u a 1uu y auems se compiueba si se est pulsanuo el boton.
Si bien el boton ha siuo pulsauo o bien se ha uetectauo una uifeiencia mayoi entie
los valoies ue entiaua analogica mayoies que la sensibiliuau estableciua, uebei
uespeitaise a la taiea alaima, la cual explicaiemos a continuacion, al igual que la
vaiiable sensibiliuau.












14
4.2. EMISIN DEL SONIDO:


Estas vaiiables se utilizain en la taiea uel soniuo. La vaiiable speakei siive paia
uefinii el pin poi el que se emitii la seal ue saliua, estai conectauo a un tweetei
paia conveitiila a una seal acstica. Las constantes minimo y maximo siiven paia
uelimitai el iango ue fiecuencias poi las que la seal se tiansmitii, la vaiiable
valoi se utilizaia paia vaiiai uicha fiecuencia. El enteio cont lo utilizaiemos paia
uefinii el tiempo que uebe ue sonai el soniuo.
1S

Aqui vemos el cueipo ue la taiea alaima. vemos como vaiianuo la vaiiable valoi,
iiemos cambianuo la fiecuencia ue la seal ue saliua paia el tweetei, touo esto
mientias cont sea menoi ue 1uuu. Este limite se pueue aumentai o uisminuii paia
cambiai la uuiacion uel soniuo. 0na vez ha uejauo ue sonai el soniuo, se
inciemente el contauoi nalaimas (explicauo en el apaitauo ue comunicacion con el
pueito seiie). Auems ue cambiai a falso el booleano activauo (que nos inuicaba
que el pulsauoi habia siuo pueso a BIuB).
Tias esto, la taiea alaima queua en estauo ue suspension hasta que la taiea lectuia
la uespieite ue nuevo bien poique se ha pulsauo el boton, bien poique se haya
supeiauo el umbial ue soniuo ueteiminauo poi la sensibiliuau uel miciofono.









16
4.3. COMUNICACIN CON EL PUERTO SERIE:

En esta taiea, no sei necesaiio ueclaiai vaiiables globales piopias, aunque si se
utilizain otias vaiiables globales ya explicauas o que se explicain en el apaitauo
ue la consulta al RTC BS1Su2.
En un piimei momento, se vacia el buffei uel pueito seiie, paia evitai que haya
una mala comunicacion a la hoia ue tiansmitii y iecibii uatos.
La vaiiable input constaia ue cuatio caiacteies y sei uonue almacenemos la
entiaua uel pueito seiie, pievio envio uel caictei '!', utilizauo como iuentificacion
ue que va a llegai al pueito seiie una oiuen que uebe sei inteipietaua.
Se han uefiniuo ties oiuenes: info, hoia y mous. La foima ue esciibiilo en el
teiminal seia anteponienuo el signo ue exclamacion (p.ej. !info). Si se esciibe
alguna cauena con mas ue cuatio caiacteies, se leein los cuatio piimeios y el
iesto sein ignoiauos. Auems si la oiuen es uesconociua se auveitii meuiante un
mensaje uel eiioi.
0n ejemplo ue las funciones ue esta taiea es la siguiente imagen:
17


Tanto la oiuen info como hoia son solamente a mouo ue consulta. En cambio la
oiuen mous (mouificai sensibiliuau) uebei acompaaise ue un nmeio ue uos
uigitos, poi ejemplo !mousSu, con lo cual cambiaiia la sensibiliuau a Su hasta que
se envia la oiuen !mousuu, que hace volvei a la sensibiliuau estableciua segn la
hoia uel uia. Esto es asi poique se ha piogiamauo que si a uicha oiuen se le envia
los uigitos uu, uebe volvei a la sensibiliuau poi uefecto uepenuiente ue la hoia.
veamos ahoia el couigo implementauo:

18
Basta aqui lo que se ha esciito son las vaiiables locales utilizauas paia iegistiai los
uatos ue entiaua y las oiuenes que hay piogiamauas.

Como se ha explicauo antes, si iecibimos el signo ue exclamacion pasaiemos a
espeiai cuatio caiacteies que uebein inteipietaise uanuo una iespuesta
coiiesponuiente. Al solo pouei iecibiienviai caiacteies, se uebein usai
funciones como atoi() paia pouei inteipietailas ue foima coiiecta. Poi ejemplo
hacemos uso ue esta funcion cuanuo queiemos cambiai manualmente la
sensibiliuau uel miciofono.
0n caso concieto es la oiuen mous, pouemos vei que tias uetectai uicha oiuen,
uebemos iecibii auems otios uos caiacteies, que uebein conveitiise en enteios
paia actualizai asi la sensibiliuau. Paia volvei a la sensibiliuau poi uefecto (segn
la fianja uel uia) los uos caiacteies a enviai uebein sei uu.
19

En esta ltima paite vemos que al enviai la oiuen info obtenemos el nmeio ue
veces que ha saltauo el soniuo y tambin la sensibiliuau a la que est configuiauo
el miciofono actualmente.
Tambin apieciamos que con la oiuen hoia iecibimos como iespuesta la hoia,
almacenaua en la vaiiable hhmm, explicaua a continuacion.















2u
4.4. CONSULTA DE LA HORA:

En este apaitauo explicaiemos las vaiiables, mtouo y taiea encaigauos ue
configuiai y consultai el RTC BS1Su2, hacienuo uso ue una libieiia open-souice
obteniua ue http:www.henningkailsen.comelectionicsa_l_us1Su2.php.
Paia ello, tias habei instalauo la libieiia en el entoino Aiuuino, uebeiemos incluii
al piincipio uel piogiama la linea
#incluue <BS1Su2.h>
Tias esto ya pouiemos ueclaiai una vaiiable ieloj, inuicanuo los pines que se
utilizain, como pouemos vei el la pioxima imagen. Auems pouemos vei las
uistintas sensibiliuaues uefiniuas paia caua fianja uel uia. Poi otio lauo vemos un
booleano que se encaigai ue inuicai si se ha cambiauo manualmente la
sensibiliuau, poi lo que se uebei ignoiai la fianja uel uia en la que se est.
Pouemos obseivai que hemos uiviuiuo el uia en ties fianjas: maana (6 a
11:S9:S9), taiue (12 a 19:S9:S9) y noche (2u a S:S9:S9).
La vaiiable nalaimas ue encaigai ue contai las veces que ha saltauo el soniuo, en
la taiea con el mismo nombie. La vaiiable hhmm se encaigai ue almacenai la
hoia consultaua al RTC BS1Su2.
21

Como pouemos apieciai, la taiea consultaRTC es muy sencilla, ya que solamente
uebe consultai la hoia al ieloj meuiante getTimeSti(), que nos uevolvei una
cauena ue chai. Posteiioimente y meuiante el mtouo ecuentiaRango, que tenui
como entiaua la hoia, uebeiemos obtenei la sensibiliuau coiiesponuiente tias
habei confiimauo la hoia en la que estamos.

El siguiente mtouo se encaiga ue ueuucii la hoia en la que nos encontiamos y
uevolvei la sensibiliuau coiiesponuiente:

22
Puesto que solamente nos inteiesa sabei la hoia y ni siquieia los minutos,
uebemos compaiai los uos piimeios componentes uel stiing con las vaiiables
finmanana, fintaiue y finnoche. Neuiante una seiie ue conuiciones pouemos
obtenei la sensibiliuau coiiesponuiente segn la fianja uel uia.
Poi otio lauo vemos que touo lo uicho se ejecutai nicamente si no se ha
cambiauo la seal manualmente, es uecii, si la vaiiable sensman est a tiae,
significai que la hemos mouificauo peisonalmente y poi tanto, no se uebei
compiobai en qu hoia estamos paia actualizai la sensibiliuau. Aunque si
pouiemos consultai la hoia a tiavs uel pueito seiie.
























2S
4.5. SETUP Y LOOP:


Estas taieas son piopias y obligatoiias paia piogiamai con Aiuuino.
En el setup() uefinimos opciones tales como ueclaiai si cieitos pines son ue
entiaua o saliua, como poi ejemplo speakei uebe sei ue saliua o el pulsauoi ue
entiaua.
Auems al hacei uso uel ieloj RTC BS1Su2 se ueben quitai los peimisos ue
pioteccion ue esciituia y poneilo en iun-moue, lo cual se consigue con los mtouos
wiitePiotection() y halt() utilizanuo como paimetios ue entiaua el booleano
false.
24
Poi otia paite si queiemos configuiai inicialmente la hoia, fecha y uia ue la
semana uel ieloj, se uebei uescomentai los comanuos setB0W, setTime y setBate.
Lo comn es configuiailo la piimeia vez y si posteiioimente se actualiza paite uel
couigo, comentailo paia que no se uesactualice la hoia.

El loop() si no hicieiamos uso ue taieas, es uonue uebeiia ii touo el couigo. Peio al
hacei uso uel Buin0S, este queua vacio y uebemos ponei en l la oiuen nextTask(),
esto est inuicauo poi paite uel piopio S0, y se esciibe paia evitai inteibloqueos y
no se llegue a colgai el S0.

Con esto est explicauo touo el couigo necesaiio y ielevante que necesita sei
explicauo. Aujunto a este uocumento est el couigo completo uel pioyecto.





















2S
5. ESQUEMAS EXTERNOS:
5.1. ESQUEMA DEL MICRFONO:
Como entiaua al sistema, tenemos un miciofono, uel cual tenemos que amplificai
paia que llegue una seal uetectable poi el Aiuuino 0N0. El esquema a
implementai es el siguiente:

Sienuo la fuente ue alimentacion el piopio Aiuuino. Este es un ciicuito sencillo que
nos peimite aumentai la tension uepenuienuo ue la entiaua uel miciofono y
uetectanuo este hecho en el Aiuuino.
Este es uicho esquema implementauo en una pioto-boaiu:

26
5.2. ESQUEMA DEL RTC DS1302:
Se hace uso ue un RTC, en concieto uel BS1Su2, paia que, segn la hoia uel uia,
nuestio miciocontiolauoi sepa cul es la sensibiliuau a la que uebe hacei saltai el
soniuo. Paia ello piogiamamos el us1Su2 como nos inuica la siguiente imagen y lo
piogiamamos con la fecha y hoia actual, paia su posteiioi uso poi paite uel
miciocontiolauoi.

Esta es una imagen en la que vemos implementauo el RTC en una pioto-boaiu:

27
5.3. ESQUEMA FINAL:
Este uiseo es el final, en el que vemos el miciofono con su esquema ue
amplificacion, el RTC BS1Su2 conectauo y auems hemos aauiuo un pulsauoi que
activai el soniuo, con la misma uuiacion que cuanuo esta salta ue foima
automtica.
El tweetei auems est conectauo a tieiia y al pin 7, no sienuo necesaiio un
ciicuito ue amplificacion ya que el iuiuo emitiuo es suficiente y en paite, molesto.
Poi otio lauo, se ha aauiuo un conuensauoi ue 1uunF, conectanuo los pines
RESET y uNB ue Aiuuino. Esto se ha hecho paia evitai que al conectai poi usb el
miciocontiolauoi, se auto-ieinicie, ya que poi uefecto asi lo hace y esta es la nica
foima ue evitailo si no se quieie uesoluai paite ue la placa.
0na anotacion es que a la hoia ue volvei a piogiamai la placa, se uebe quitai uicho
conuensauoi, paia que se pueuan tiansmitii los uatos, ieiniciai la placa y ejecutai
el nuevo couigo.
Paia utilizai este RTC con Aiuuino, se ha usauo la libieiia ue:
http:www.henningkailsen.comelectionicsa_l_us1Su2.php




28
6. CONCLUSIN PERSONAL:

Be ue ieconocei que al elegii este pioyecto, no sabia iealmente como iba haceilo
ni implementailo, ni con qu mateiiales contaiia.
Peio finalmente el pioyecto ue fin ue caiieia que acabamos ue vei, me ha apoitauo
unos conocimientos y una expeiiencia que antes no tenia y que iecomienuo
fueitemente a touos los inteiesauos en una piogiamacion no tan enfocaua a una
"pantalla ue oiuenauoi".
Be no sabei naua concieto sobie miciocontiolauoies, a base ue tiabajo y ue buscai
infoimacion he siuo capaz ue piogiamai uno, auems ue sei capaz ue intiouucii
un S0 ue caictei pieemtivo paia que iealice taieas concuiientes.
Poi otia paite me ha uauo a conocei el munuo uel haiuwaie libie con Aiuuino, ya
que tambin uesconocia este entoino y piogiamai en un lenguaje ue piogiamacion
ue muy alto nivel, wiiing.
En un piincipio paia familiaiizaime con el entoino ue piogiamacion, hice uso ue
una gian vaiieuau ue couigos ue ejemplo. Auems tiat ue sepaiai en pequeos
piogiamas touas las taieas uel couigo final, paia compiobai que
inuepenuientemente unas ue otias, funcionaban. Posteiioimente solo tuve que
juntai touas estas taieas y auaptailas en un mismo piogiama. Lo que iesulto
ielativamente sencillo ya que al sei uiveisas taieas, hubo que auaptai pines y paite
uel couigo paia que no ocuiiieian fallos. Be hecho hasta llegai a la veision final uel
couigo, habia veces en el que el miciocontiolauoi se queuaba colgauo, poi ejemplo
al no ponei un uelay antes enviaiiecibii uatos poi seiie, ya que se iecomienua si
se hace uso uel Buin0S, hacei este uelay paia evitai inteibloqueos.
A pesai ue planteaise este pioyecto con cieita uificultau al piincipio, ya que
picticamente no conocia naua ue lo ielacionauo con miciocontiolauoies, a
meuiua que he estauo tiabajanuo en l y se han solucionauo pioblemas, que
mayoimente suigian poi la falta ue conocimientos, he visto que una ue las
piincipales caiacteiisticas ue habei tiabajauo con Aiuuino es la sencillez y la
faciliuau ue encontiai mateiial muy uiveiso poi Inteinet. Al tiataise ue haiuwaie
libie, touo el couigo es open-souice y est enfocauo en su mayoi paite a pouei
concentiaite en qu quieies hacei y no en como conseguiilo.
La iealizacion ue este pioyecto ha conseguiuo que tenga un inteis en touo este
munuo ue miciocontiolauoies, ya que son piezas muy asequibles y con una gian
veisatiliuau, con las que se pueuen hacei una infiniuau ue instiumentos, uesue un
teimometio, una matiiz ue leus, hacei uso ue uisplays lcu, hasta este pioyecto.




29
7. AGRADECIMIENTOS:




Quieio agiauecei la ayuua iecibiua poi paite uel Biiectoi uel Pioyecto B. }os
vicente Busquets Nataix, poi la ayuua iecibiua y el suministio uel mateiial
necesaiio, asi como el apoyo ue mis compaeios que me han ayuuauo en la
bsqueua ue infoimacion y conocimientos paia touo este entoino y el pioyecto en
geneial. Tambin quieio agiauecei a mis familiaies la paciencia que han teniuo
conmigo uuiante toua esta caiieia.




















Su





8. BIBLIOGRAFA:






http:www.atmel.infouyniesouicespiou_uocuments8271S.puf
http:es.wikipeuia.oigwikiAvR
http:www.aiuuino.cces
http:es.wikipeuia.oigwikiAiuuino
http:www.multiplo.oiguuinoswikiinuex.php.title=Nain_Page
http:blog.biicogeek.comnoticiasaiuuinouuinos-sistema-opeiativo-
multitaiea-paia-aiuuino
http:www.henningkailsen.comelectionicsa_l_us1Su2.php









S1
9. ANEXO I:
CDIGO IMPLEMENTADO:
!"#$%&'( *+,-./0123


44567869:;, <676 :;=>?76 +; 8@AB7C6=8B@
$D#EF "#F G&FFD#<"# H IJ44 K"# K&%EL'DM
"#F (EFL'D9DFD#J44NLM"LG%( O&( $LPG"LML E(Q&# (% K&%EL'DM
GDD%(L# L$F"NL'D H RL%E(J44$DPKMDGLML O&( E( 2L K&%EL'D (% GDFD#
$D#EF "#F E(#EDM<"# H 6/J44K"# KLML %L (#FML'L L#L%DQ"$L '(% P"$MDRD#D
"#F E(#EDM5L%&( H /J44 NLM"LG%( KLML L%PL$(#LM (% NL%DM '( (#FML'L L#L%DQ"$L
"#F D%',(#EDM5L%&( H E(#EDM5L%&(J44NLM"LG%( &F"%"SL'L KLML $DPKLMLM
44(% NL%DM '( (#FML'L L#F(M"DM $D# (% L$F&L%


44567869:;, <676 ;: ,B@8+B
"#F $D#F H /J
$D#EF "#F EK(LT(MHUJ44K"# O&( (P"F"ML E(VL% '( L%LMPL
$D#EF "#F P"#"PD H W0/J 44K(M"D'D P"$MDE(Q KLML -XWTYS
$D#EF "#F PLZ"PD H I/J 44K(M"D'D P"$MDE(Q KLML 0/TYS
"#F NL%DM H P"#"PDJ44NLM"LG%( &F"%"SL'L KLML O&( (% ED#"'D (P"F"'D NLM"( '( FD#L%"'L'


44567869:;, <676 :6 6=>?6:8[6=8B@ \ =BC?@8=6=8B@ =B@ ;: 7>=
+,-./0 MF$]0^ .^ _`J
44 +,-./0a =; K"# b3 6M'&"#D +"Q"FL% 0
44 84B K"# b3 6M'&"#D +"Q"FL% .
44 ,=:c K"# b3 6M'&"#D +"Q"FL% _
"#F E(#E"G"%"'L'CL#L#L H _/J 44111
"#F E(#E"G"%"'L'>LM'( H W/J 44111bbbbb3E(#E"G"%"'L'(E E(Q&# KLMF( '(% '"L
"#F E(#E"G"%"'L'@D$2( H 0/J 44111
"#F E(#E"G"%"'L' H d/J 44"#"$"L%P(#F(^ E( L$F&L%"SL '( "#P('"LFD L% $D#E&%FLM (% MF$
S2
GDD%(L# E(#EPL# H RL%E(J44"#'"$LML E" E( 2L $LPG"L'D PL#&L%P(#F( %L E(#E"G"%"'L'
$2LMe 22PPJ44&F"%"SL'D (# %L FLM(L '( $D#E&%FLM L% MF$
"#F R"#PL#L#L H-0J442DML (# %L O&( L$LGL %L PLVL#L
"#F R"#FLM'(H0/J442DML (# %L O&( L$LGL %L FLM'(
"#F R"##D$2(H/WJ442DML (# %L O&( L$LGL %L #D$2(
"#F #L%LMPLE H b-J448#"$"L%P(#F( L b- KDMO&( L% (#$(#'(ME( (% LM'&"#D^ EL%FL (% ED#"'D
44$D#FL'DM '( L%LMPL


44+;=:676=8B@ +; >67;6,
'($%LM(>LET:DDK]%($F&ML`J
'($%LM(>LET:DDK]$D#E&%FLM7>=`J
'($%LM(>LET:DDK]L%LMPL`J
'($%LM(>LET:DDK]$DP&#"$L$"D#,(M"(`J


4eeC;>B+B B9>;@;7 ,;@,898:8+6+ ,;f?@ A76@g6 YB76786
44P(FD'D (#$LMQL'D '( DGF(#(M %L RML#hL 2DMLM"L (# %L O&( #DE (#$D#FMLPDE
44i PD'"R"$LM %L E(#E"G"%"'L' E(Q&# '"$2L RML#hL
44M($"G( &# $2LMe $D# %L 2DML '(% MF$ (# RDMPLFD 22aPP
44'(N&(%N( %L E(#E"G"%"'L' $D# %L O&( E( '(G( $DPKMDGLM %L (#FML'L '(% P"$MDRD#De4
"#F (#$&(#FML7L#QD]$2LMe 2DML`j
"R]kE(#EPL#`j
$2LM L&Zl0mHj/^ /nJ
"#F 2DML"#F H /J
RDM]"#F "H/J"*0J"oo`j44ED%D %DE 0 KM"P(MDE $DPKD#(#F(E '(% EFM"#Q b3 22aPP O&(M(PDE 22
L&Zl"mH2DMLl"mJ
n
2DML"#F H LFD"]L&Z`J
"R]2DML"#F 3H R"##D$2( pp 2DML"#F * R"#PL#L#L`jM(F&M# E(#E"G"%"'L'CL#L#LJn
"R]2DML"#F 3H R"#PL#L#L pp 2DML"#F * R"#FLM'(`jM(F&M# E(#E"G"%"'L'>LM'(Jn
"R]2DML"#F 3H R"#FLM'( pp 2DML"#F * R"##D$2(`jM(F&M# E(#E"G"%"'L'@D$2(Jn
SS
n
M(F&M# E(#E"G"%"'L'J
n


4ee>67;6 :;=>?76 +; +6>B,
44FLM(L (#$LMQL'L '( %((M FL#FD (% P"$MDRD#D $DPD (% K&%EL'DM
44E" E( K&%EL (% GDFD# E( '(G(ML L$F"NLM (% ED#"'D
44L% "Q&L% O&( E" E( E&K(ML %L E(#E"G"%"'L' %"P"F(e4
FLET:DDK]%($F&ML`j
(EFL'D9DFD# H '"Q"FL%7(L']G&FFD#<"#`J
D%',(#EDM5L%&( H E(#EDM5L%&(J
E(#EDM5L%&( H L#L%DQ7(L']E(#EDM<"#`J
E(#EDM5L%&(HPLK]E(#EDM5L%&(^ /^ -/0.^ /^ -//`J
"R](EFL'D9DFD# HH Y8fY`j
"R]kL$F"NL'D` L$F"NL'D H FM&(J
n

"R]E(#EDM5L%&( b D%',(#EDM5L%&( 3 E(#E"G"%"'L' qq L$F"NL'D`j
M(E&P(>LET]L%LMPL`J
n

M(E&P(>LET]$D#E&%FLM7>=`J
n


4ee>67;6 6:67C6
44FLM(L (#$LMQL'L (# 2L$(M EL%FLM (% ED#"'D
44(EFL E( L$F"NLML i M($DMM(ML &#L RML#hL '(
44RM($&(#$"LE PD%(EFLE '&ML#F( &# F"(PKD '(F(MP"#L'D KDM
44%L NLM"LG%( "#F(M#L $D#Fe4
FLET:DDK]L%LMPL`j
S4
'Dj
RDM]"#F "H/J"*IJ"oo`j
'"Q"FL%rM"F(]EK(LT(M^Y8fY`J
'(%LiC"$MDE($D#'E]NL%DM40`J

'"Q"FL%rM"F(]EK(LT(M^:Br`J
'(%LiC"$MDE($D#'E]NL%DM40`J
n
NL%DM H NL%DM b 0J
"R]NL%DMHHPLZ"PDo0`jNL%DMHP"#"PDJn
$D#FooJ
ns2"%(]NL%DM3HPLZ"PD pp $D#F * -///`J
#L%LMPLEooJ
NL%DM H P"#"PDJ
$D#FH/J
"R]L$F"NL'D`j
(EFL'D9DFD# H '"Q"FL%7(L']G&FFD#<"#`J
"R]L$F"NL'D` L$F"NL'D H RL%E(J
n
E&EK(#']`J
n


4ee>67;6 =B@,?:>67 7>=
44FLM(L (#$LMQL'L '( $D#E&%FLM (% MF$
44i DGF(#(M %L 2DML^ L'(PLE '( L$F&L%"SLM
44%L E(#E"G"%"'L' %%LPL#'D L% P(FD'D
44(#$&(#FML7L#QD]`e4
FLET:DDK]$D#E&%FLM7>=`j
'(%Li]-///`J
22PP H MF$1Q(F>"P(,FM]`J
E(#E"G"%"'L' H (#$&(#FML7L#QD]22PP`J
SS
n


4ee>67;6 =BC?@8=6=8B@
44,( (#$LMQL^ E(Q&# %DE $DPL#'DE '( _ $LML$F(M(E KMDK&(EFDE^
44'( PD'"R"$LM %L E(#E"G"%"'L' '(% P"$MDRD#D
44D '( ED%"$"FLM "#RDMPL$"D# EDGM( %L $D#R"Q&ML$"D#
44'( %L E(#E"G"%"'L' L$F&L% i (% #&P(MD '( N($(E
44O&( 2L EL%FL'D (% ED#"'D^ L'(PLE '( KD'(M $D#E&%FLM %L
442DMLe4
FLET:DDK]$DP&#"$L$"D#,(M"(`j
,(M"L%1R%&E2]`J
$2LM "#K&FlImJ
$2LM E(#ElImJ
$2LM FL%LMPlImJ
$2LM PD'E(#El_m H jXPX^ XDX^ X'X^ XEXnJ
$2LM "#RDMl_m H jX"X^ X#X^ XRX^ XDXnJ
$2LM F"(PKDl_m H jX2X^ XDX^ XMX^ XLXnJ
P(PE(F]"#K&F^Xt/X^I`J
GiF( "#9iF( H Xt/XJ
GDD%(L# PD'"R"E(#E H RL%E(J
GDD%(L# "#RDMP H RL%E(J
GDD%(L# FPK H RL%E(J
"#F #&(NLE(#E H /J
$2LM #E(#El.mJ
P(PE(F]#E(#E^Xt/X^.`J

s2"%(]"#9iF( kH XkX`j"#9iF( H ,(M"L%1M(L']`Jn

"R]"#9iF( HH XkX`j
s2"%(],(M"L%1LNL"%LG%(]` * _` jJn
RDM ]"#F "H/J " * _J "oo` j
S6
"#K&Fl"m H ,(M"L%1M(L']`J
n

'(%Li]0//`J
,(M"L%1KM"#F]u7($"GDa u`J
,(M"L%1KM"#F%#]"#K&F`J

"R]"#K&Fl/m HH PD'E(#El/m pp "#K&Fl-m HH PD'E(#El-m pp "#K&Fl0m HH PD'E(#El0m pp "#K&Fl.m HH
PD'E(#El.m` PD'"R"E(#E H FM&(J
(%E( "R]"#K&Fl/m HH "#RDMl/m pp "#K&Fl-m HH "#RDMl-m pp "#K&Fl0m HH "#RDMl0m pp "#K&Fl.m HH "#RDMl.m`
"#RDMP H FM&(J
(%E( "R]"#K&Fl/m HH F"(PKDl/m pp "#K&Fl-m HH F"(PKDl-m pp "#K&Fl0m HH F"(PKDl0m pp "#K&Fl.m HH
F"(PKDl.m` FPK H FM&(J
(%E(j'(%Li]0//`J ,(M"L%1KM"#F%#]uBM'(# #D (Z"EF(#F(u`Jn

"R]PD'"R"E(#E`j
s2"%(],(M"L%1LNL"%LG%(]` * 0` jJn
RDM ]"#F "H/J " * 0J "oo` j
#E(#El"m H ,(M"L%1M(L']`J
n
#&(NLE(#E H LFD"]#E(#E`J
"R]#&(NLE(#E kH /`jE(#EPL# H FM&(J E(#E"G"%"'L' H #&(NLE(#EJn
(%E( E(#EPL# H RL%E(J
'(%Li]0//`J
,(M"L%1KM"#F]u@&(ND NL%DM KLML E(#E"G"%"'L']E" //b3NL%DM E(Q&# RML#hL 2DMLM"L`a u`J
,(M"L%1KM"#F%#]#E(#E`J
"R]#&(NLE(#E kH /`E(#EPL# H FM&(J
(%E( E(#EPL# H RL%E(J
n

"R]"#RDMP`j
'(%Li]-//`J
,(M"L%1KM"#F]u@&P(MD '( N($(E O&( EL%FL %L L%LMPLa u`J
"FDL]#L%LMPLE^ FL%LMP^ -/`J
S7
,(M"L%1KM"#F%#]FL%LMP`J
'(%Li]-//`J
,(M"L%1KM"#F]u,(#E"G"%"'L' '(% P"$MDRD#D ]/ P&$2L b -// KD$L`a u`J
"FDL]E(#E"G"%"'L'^ E(#E^ -/`J
,(M"L%1KM"#F%#]E(#E`J
n

"R]FPK`j
'(%Li]-//`J
,(M"L%1KM"#F%#]22PP`J
n
n
n


4ee,;>?<
44LO&" E( "#"$"L%"SLML# %LE FLM(LE "#'"$L#'D E& KM"DM"'L'^ '(F(MP"#LM
44K"#(E '( (#FML'L i EL%"'L^ "#"$"L%"SL$"D# '(% K&(MFD E(M"(
44L'(PLE '( KMDQMLPLM "#"$"L%P(#F( %L R($2L KLML (% MF$
e4
ND"' E(F&K]` j
K"#CD'(]EK(LT(M^ B?><?>`J
K"#CD'(]G&FFD#<"#^ 8@<?>`J

$M(LF(>LET:DDK]%($F&ML^ @B7C6:v<78B78>\`J
$M(LF(>LET:DDK]$D#E&%FLM7>=^ @B7C6:v<78B78>\`J
$M(LF(>LET:DDK]L%LMPL^ Y8fYv<78B78>\`J
$M(LF(>LET:DDK]$DP&#"$L$"D#,(M"(^ @B7C6:v<78B78>\`J

,(M"L%1G(Q"#]dW//`J

44 KD#(M M(%Dh (# M&#bPD'( i '(E2LG"%"FLM KMDF($$"D# '( (E$M"F&ML
S8
MF$12L%F]RL%E(`J
MF$1sM"F(<MDF($F]RL%E(`J
44<LML EDGM((E$M"G"M NL%DM(E '(% MF$^ '(E$DP(#FLM %LE %"#(LE '( LGLhD
44MF$1E(F+Br]>Y?7,+6\`J 44 ,(F +LibDRbr((T FD A78+6\
44MF$1E(F>"P(]-w^ -/^ /`J 44 ,(F F2( F"P( FD -0a//a// ]0_2M RDMPLF`
44MF$1E(F+LF(]d^ W^ 0/--`J 44 ,(F F2( 'LF( FD 6&Q&EF WF2^ 0/-/
n


4ee>67;6 :BB<
44FLM(L KMDK"L '(% (#FDM#D LM'&"#D
44KDM '(R($FD E(ML '( KM"DM"'L' GLhL
44E( '(G( KD#(M #(ZF>LET]` KLML (N"FLM
44"#F(MG%DO&(DE
e4
ND"' %DDK]` j
#(ZF>LET]`J
n

También podría gustarte