scieee Science in your language
[es] (orig)

ACCELBIKE

Abstract

Este proyecto consiste en el diseño e implementación de un dispositivo que permite el registro de los datos de acelerometría de un trayecto realizado por un ciclista para medir el esfuerzo experimentado por éste. Este dispositivo se fijará al manillar o la tija de una bicicleta de montaña y se complementará con la información proporcionada por el GPS de un móvil. Los datos de acelerometría registrados por el dispositivo se enviarán a dicho dispositivo móvil mediante Bluetooth Low Energy, cuyo funcionamiento se explicará durante el transcurso de esta memoria.

Read accessible full text

ACCELBIKE

Author: Miguez Rein, Rodrigo Claudio; Muñoz Lorenzo, David; Vizcaya Hervella, Alexis
Year: 2016
Source: https://docta.ucm.es/bitstreams/388fc298-dc4d-4596-baf5-13902c193ee2/download
ACCELBIKE
RODRIGO CLAUDIO MIGUEZ REIN
DAVID MUÑOZ LORENZO
ALEXIS VIZCAYA HERVELLA
GRADO EN INGENIERÍA DEL SOFTWARE. FACULTAD DE INFORMÁTICA
UNIVERSIDAD COMPLUTENSE DE MADRID
T abajo Fin G ado en Ingenie ía del So wa e
17 de Junio de 2016
Di ec o es:
José Ignacio Gómez Pé ez
Luis Piñuel Mo eno
Au o ización de di usión
17 de Junio de 2016
Los abajo i man es, ma iculados en el G ado en Ingenie ía del So wa e de la Facul ad
de In o má ica, au o iza a la Uni e sidad Complu ense de Mad id (UCM) a di undi y
u iliza con ines académicos, no come ciales y mencionando exp esamen e a sus au o es el
p esen e T abajo Fin de G ado: “ACCELBIKE”, ealizado du an e el cu so académico 2015-
2016 bajo la di ección de José Ignacio Gómez Pé ez y Luis Piñuel Mo eno en el Depa amen o
de A qui ec u a de Compu ado es y Au omá ica, y a la Biblio eca de la UCM a deposi a lo
en el A chi o Ins i ucional E-P in s Complu ense con el obje o de inc emen a la di usión,
uso e impac o del abajo en In e ne y ga an iza su p ese ación y acceso a la go plazo.
Rod igo C. Míguez Rein Da id Muñoz Lo enzo Alexis Vizcaya He ella
Resumen en cas ellano
Es e p oyec o consis e en el diseño e implemen ación de un disposi i o que pe mi e el
egis o de los da os de acele ome ía de un ayec o ealizado po un ciclis a pa a medi
el es ue zo expe imen ado po és e. Es e disposi i o se ija á al manilla o la ija de una
bicicle a de mon aña y se complemen a á con la in o mación p opo cionada po el GPS de
un mó il.
Los da os de acele ome ía egis ados po el disposi i o se en ia án a dicho disposi-
i o mó il median e Blue oo h Low Ene gy, cuyo uncionamien o se explica á du an e el
anscu so de es a memo ia.
Palab as cla e
Blue oo h Low Ene gy, Blue oo h Sma , I2C, And oid, App, ARM mbed, Ciclismo,
Acele óme o
Abs ac
This p ojec consis s in p esen ing he design and implemen a ion o a speci ic de ice
which allows o egis e ing accele ome y da a ob ained om a ou e made by a cyclis ,
o measu ing he e o ha he/she expe iences. This de ice will be ixed o he handleba
o he sea pos o a moun ain bicycle and i will be complemen ed by in o ma ion ha is
p o ided by he mobile phone’s GPS.
The da a egis e ed by he senso will be sen o he mobile phone using Blue oo h Low
Ene gy, whose unc ioning is also explained in his memo y p ojec .
Keywo ds
Blue oo h Low Ene gy, Blue oo h Sma , I2C, And oid, App, ARM mbed, Cycling,
Accele ome e
Índice gene al
Índice i
Lis o Figu es iii
Ag adecimien os i
1. In oducción 1
1.1. En o nosdedesa ollo .............................. 3
1.2. Blue oo h Sma : Blue oo h de bajo consumo . . . . . . . . . . . . . . . . . 3
1.3. Especi icación del obje i o del p oyec o . . . . . . . . . . . . . . . . . . . . . 4
1.4. Con ibuciones Pe sonales . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.4.1. Rod igo Claudio Miguez Rein . . . . . . . . . . . . . . . . . . . . . . 5
1.4.2. Da idMuñozLo enzo .......................... 7
1.4.3. Alexis Vizcaya He ella . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2. Blue oo h Low Ene gy 12
2.1. Compa ación con Blue oo h Clásico . . . . . . . . . . . . . . . . . . . . . . . 13
2.2. Tecnología..................................... 14
2.2.1. Con olado ................................ 14
2.2.2. An i ión.................................. 15
2.2.3. Aplicación................................. 18
2.3. Descub imien o de disposi i os y enlazado . . . . . . . . . . . . . . . . . . . 18
2.3.1. ModoB oadcas ............................. 19
2.3.2. ModoConexión.............................. 20
2.4. Gene ic A ibu e P o ile (GATT) . . . . . . . . . . . . . . . . . . . . . . . . 21
2.4.1. Roles.................................... 21
2.4.2. Je a quíadeda os ............................ 22
2.4.3. UUIDs................................... 25
3. Explo ación Ha dwa e 27
3.1. Selección de pla a o mas de desa ollo . . . . . . . . . . . . . . . . . . . . . . 29
3.1.1. Análisis de las pla a o mas escogidas . . . . . . . . . . . . . . . . . . 30
3.2. Conclusión..................................... 32
4. Ins alación de en o nos de desa ollo y p ime os desa ollos HW 34
4.1. P uebas iniciales con Cyp ess y No dic . . . . . . . . . . . . . . . . . . . . . 34
4.2. Ace ca de los en o nos de desa ollo . . . . . . . . . . . . . . . . . . . . . . . 37
4.2.1. ARMmbed ................................ 37
i

4.2.2. Cyp ess PSoC C ea o . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.3. Conclusión as las p uebas . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5. Desa ollo Ha dwa e 42
5.1. Comunicación con el acele óme o po I2C . . . . . . . . . . . . . . . . . . . 42
5.1.1. Lec u adeda os ............................. 43
5.1.2. Fil ado .................................. 46
5.2. Comunicación Blue oo h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
6. Aplicación And oid 49
6.1. F on -End..................................... 50
6.1.1. Vis ap incipal .............................. 51
6.1.2. Con igu ación y Ayuda . . . . . . . . . . . . . . . . . . . . . . . . . . 52
6.1.3. Vis a esumen de sesión . . . . . . . . . . . . . . . . . . . . . . . . . 52
6.2. Funcionamien o.................................. 53
6.2.1. Conexión al disposi i o BLE . . . . . . . . . . . . . . . . . . . . . . . 53
6.2.2. GPS .................................... 54
6.2.3. Funcionamien o du an e la ma cha . . . . . . . . . . . . . . . . . . . 55
6.2.4. Gene ación de mapas as ma cha . . . . . . . . . . . . . . . . . . . . 57
7. Mediciones y calib ado 59
7.1. Medicionesdeconsumo.............................. 59
7.2. Calib ado ..................................... 61
8. Conclusiones y abajo u u o 63
8.1. T abajo u u o .................................. 64
Bibliog aphy 66
A. Reposi o ios de código 67
A.1.CódigonRF51-DK ................................ 67
A.2.AplicaciónAnd oid................................ 67
ii
Índice de igu as
1.1. Esquema del uncionamien o del p oyec o . . . . . . . . . . . . . . . . . . . . 5
2.1. Es uc u a ha dwa e de un disposi i o BLE . . . . . . . . . . . . . . . . . . 14
2.2. Di isión de la banda de ecuencia ISM . . . . . . . . . . . . . . . . . . . . . 15
2.3. EjemplodeescaneoBLE............................. 19
2.4. Esquema de Scan Response . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.5. Esquema de la es uc u a de da os de GATT . . . . . . . . . . . . . . . . . . 22
3.1. Esquema de la disposición de pines de la placa nRF51-DK de No dic . . . . 31
3.2. Cyp essPSoC................................... 32
3.3. PSoC 4 BLE, placa de desa ollo . . . . . . . . . . . . . . . . . . . . . . . . 33
4.1. Diag ama de pines pa a el con e so A/D MCP3008 . . . . . . . . . . . . . . 35
4.2. Ci cui o ealizado pa a la p ueba MCP3008 . . . . . . . . . . . . . . . . . . 35
4.3. Aplicación pilo o pa a comp oba la conexión Blue oo h . . . . . . . . . . . 37
4.4. En o no de desa ollo mbed . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.5. En o no de desa ollo PSoC C ea o . . . . . . . . . . . . . . . . . . . . . . . 39
5.1. Cableado del acele óme o po I2C . . . . . . . . . . . . . . . . . . . . . . . 44
5.2. Regis os del acele óme o . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
5.3. Rango de da os del acele óme o . . . . . . . . . . . . . . . . . . . . . . . . . 45
6.1. Diag ama de clases gene al de la aplicación And oid . . . . . . . . . . . . . . 50
6.2. Menú deslizable de la aplicación And oid . . . . . . . . . . . . . . . . . . . . 51
6.3. Vis a p incipal de la app And oid . . . . . . . . . . . . . . . . . . . . . . . . 52
6.4. Vis a de con igu ación y de ayuda . . . . . . . . . . . . . . . . . . . . . . . . 53
6.5. Vis a de esumen de sesión . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
6.6. Diag ama de las clases que in e ienen en una conexión BLE . . . . . . . . . 55
6.7. Diag ama de las clases que in e ienen en una sesión . . . . . . . . . . . . . 56
7.1. P ime a g á ica de co ien e . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
7.2. Segunda g á ica de co ien e . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
iii
Ag adecimien os
A nues as amilias y amigos, que nos han es ado apoyando odo es e iempo, y con los
que no hab ía sido posible llega has a aquí.
A nues os u o es, que nos han mo i ado a segui adelan e du an e es e año.
i
Capí ulo 1
In oducción
En e los años 2008 y 2009 se comenzó a usa el concep o In e ne de las cosas (ab e iado
IoT) como una apues a hacia el u u o, cuyo obje i o e a in e conec a disposi i os digi ales
a in e ne .
Es o ya es una ealidad, con mayo ecuencia encon amos nue os disposi i os capaces
de conec a se a in e ne , pe mi iendo al usua io su manejo desde cualquie pa e del mundo.
Con ello se ab e camino a nue as opo unidades haciendo la ida más cómoda al usua io y
p opo cionándole mayo segu idad y con ol.
Según emp esas del sec o ecnológico, en 2016 se espe a que haya más de 6.000 millones
de disposi i os basados en es e concep o.
El concep o del in e ne de las cosas ag upa múl iples capacidades, algunas de ellas han
sido u ilizadas en el p oyec o, es as se nomb an a con inuación:
Comunicación y coope ación: Disposi i os capaces de conec a se a la ed de in e ne
y en e ellos, in e cambiando da os y comunicándose con se ido es.
Di eccionamien o: Los obje os se án localizables y con igu ables desde cualquie luga
de la ed de in e ne .
Iden i icación: Los obje os se iden i ica án en la ed po medio de ecnologías como
RFID (Radio F ecuency Iden i ica ion), códigos de ba as óp icos, NFC (Nea Field Com-
munica ion) y o as muchas o mas.
Localización: Se pod á sabe la ubicación ísica del disposi i o en cualquie momen o.
1
una señal digi al pa a pode en iá sela a la placa de desa ollo.
Pa icipé en la c eación de dicho ci cui o así como en las p uebas de desa ollo pa a
ealiza la conexión po SPI y ecibi los da os que ansmi ía la o o esis encia.
Tu imos que amilia iza nos con el en o no de desa ollo llamado mbed que u ilizaba
la placa de No dic. En su eposi o io11 pudimos p oba ejemplos de conexiones SPI que
adap amos a la placa u ilizada, mi ando en su icha écnica7la co ec a conexión de sus
pines.
La mane a de in e ac ua con la o o esis encia a a és de la placa ue ac i a los LEDs
que es a con iene, al e nándolos según su alo de en ada. De es a o ma e i icamos que
el paso de da os uncionaba co ec amen e.
La siguien e p ueba de conexión ue a a és de I2C, u imos que in es iga y docu-
men a nos bien sob e es e bus de da os. Se cambió el ci cui o po un acele óme o que
conec amos po I2C a la placa de desa ollo.
En es e pun o ue necesa io in es iga la o ma de c ea una aplicación en And oid,
de al o ma que es a pudie a conec a se po Blue oo h Low Ene gy a la placa nRF51-
DK de No dic y isualiza los da os ecibidos. Pa a ealiza la p ueba de conexión po
Blue oo h encon amos en el eposi o io de mbed algunos ejemplos que nos ayuda on a
pode implemen a el módulo BLE.
Realicé una maque a isual (mockup) de cada is a pa a pode ene un p ime diseño
de la aplicación en el que ija nos. Pa icipé en la c eación de la aplicación en And oid
desa ollando la in e az de usua io y su es uc u a. Es uc u é la aplicación con un ipo
de componen e de And oid llamado F agmen que se usa mucho en la ac ualidad y que
si e pa a sepa a las di e en es is as pa a que puedan ene su p opia lógica de mane a
independien e. Quise da le un aspec o y usabilidad p opios de las nue as aplicaciones de
úl ima gene ación u ilizando componen es g á icos de Ma e ial design de Google9. De es a
o ma nues a aplicación se bene icia de los úl imos a ances isuales asegu ando una óp ima
expe iencia de usua io.
8

Realicé p uebas ob eniendo los da os del GPS del mó il y ealizando la pe ición a a és
de un se icio in e no. U ilicé la in e az Loca ionLis ene que nos pe mi e conec a nos con
los se icios de ubicación del disposi i o mó il. Pude ob ene la la i ud y longi ud de la
ubicación en la que nos encon amos y a a és de unos pa áme os podemos cambia la
dis ancia ( me os ) que ac ualiza el GPS así como con igu a la ecuencia de mues eo (
milisegundos ) de las coo denadas. Pos e io men e se u ilizó un hilo pa a pode ecibi los
da os del acele óme o aunque la aplicación es u ie a ac i a en segundo plano.
Debíamos mos a el ci cui o eco ido po un ciclis a desde que se pone en ma cha has a
que inaliza su eco ido. Pa a isualiza el mapa u ilizamos la API de Google Maps1. Pa a
pode u iliza sus uncionalidades p incipales u e que egis a me en la API de Google
Maps, inco po amos al p oyec o una cla e única que pa a ene acceso a las uncionalida-
des de su se ido . Ac i é los pe misos necesa ios pa a ob ene el mapa de Google y sus
con igu aciones necesa ias pa a ajus a lo a nues a aplicación. U ilizando la clase polilíneas
de Google pude c ea las líneas sob e el mapa, se pudo isualiza con éxi o en la is a
Ac i idades.
1.4.3. Alexis Vizcaya He ella
Mi con ibución al p oyec o ha sido p incipalmen e la de es uc u a el código de la
aplicación And oid, cen ándome en la pa e del análisis de los da os y los cálculos ealizados
con ellos, así como de la lec u a y esc i u a de los mismos.
En el p ime cua imes e iniciamos en conjun o una in es igación gene al haciendo
un análisis de los disposi i os que inco po a an la ecnología Blue oo h Low Ene gy (BLE)
disponibles en el me cado que se ajus a an a los equisi os del p oyec o, compa amos p ecios,
ca ac e ís icas, e c. y inalmen e escogimos las placas de desa ollo de Cyp ess (PSoC 4 BLE)
y No dic (nRF51-DK). Una ez elegidas las placas, in es igué los buses de da os I2C y SPI
pues o que es as e an las ecnologías disponibles en ambas pa a la comunicación con un
acele óme o. Además inicie el p oceso de amilia ización con los en o nos de desa ollo.
9
En una p ime a e apa ealice ejemplos con la placa de Cyp ess en su en o no de desa ollo
(PSoC C ea o ) ya que descub imos la exis encia de un eposi o io en Gi Hub que con enía
100 p oyec os de ejemplo, p obé con a ios ejemplos pa a comp ende la o ma de diseña
pequeños p og amas en dicha placa, además disponía de una app pa a el elé ono mó il pa a
pode conec a con la placa y así pode ealiza es os ejemplos.
Con la placa de No dic ocu ió algo simila , con su en o no de desa ollo mbed, cuyo
eposi o io o icial con iene mul i ud de ejemplos, con los que empecé a in es iga ace ca del
uncionamien o de es a. Como po ejemplo uno con el que empecé a es ablece la conexión
Blue oo h con el mó il, consis en e en de ec a la pulsación de un bo ón en la placa y
manda la in o mación del es ado de és e a una app.
Una ez inalizada es a e apa de ap endizaje hicimos p uebas de conexión en e la placas
y un ci cui o MCP median e SPI. El ci cui o cons aba de una o o esis encia conec ada a
un ADC con la que comp obamos que al cambia la luminosidad que ecibía la esis encia
los da os que ob eníamos en la placa a iaban.
El siguien e paso ue conec a un acele óme o median e I2C a la placa de No dic. Pu-
dimos comp oba que los da os se ecibían co ec amen e a a és de los LEDs de los que
disponía la placa, y una ez comp obado el co ec o uncionamien o, nos dispusimos a ea-
liza la conexión median e BLE en e una pequeña app y la nRF51-DK.
Una ez decidida la placa con la que íbamos a a on a el p oyec o, comenzamos con el
diseño de la aplicación And oid. Dado que nunca había p og amado una app pa a mó iles,
y ya que es a iba a se pa a disposi i os And oid, empecé un p oceso de ap endizaje sob e
es a pla a o ma y del en o no de desa ollo And oid S udio. Pa a ello encon é ejemplos en
la página o icial de Google, And oid De elope s, y di e sos u o iales, que me ayuda on a
empeza a hace pequeñas aplicaciones pa a comp ende su uncionamien o.
Una ez asimilados los concep os básicos, o mé pa e del diseño de la es uc u a me-
dian e un pa ón Modelo Vis a Con olado (MVC) y en el desa ollo del menú p incipal de
la aplicación.
10
A pa i de aquí me cen é en la pa e de lec u a y esc i u a de la in o mación ecibida
a a és de Blue oo h Low Ene gy y el GPS del mó il, decidiendo cómo se iban a lle a a
cabo es os dos p ocesos. Sob e la lec u a desa ollé la uncionalidad po la cual se inaliza
una sesión y se aslada oda la in o mación a un is a con un mapa de Google Maps con
la u a dibujada en o ma de polilínea y una se ie de campos pa a mos a la in o mación
p ocesada. Sob e la esc i u a, elegí la o ma de gua da los da os en la memo ia ex e na
del elé ono mó il. El p oceso de gua dado se ealiza pe iódicamen e, ecogiendo los úl imos
alo es ecibidos, an o del GPS como del acele óme o, esc ibiendo una línea nue a en el
a chi o con es a in o mación.
Pa a ecoge los da os de las di e en es uen es, p og amé la es uc u a de hilos que se
u iliza en la aplicación, ya que eníamos que ene un con ol pa a asigna di e en es pe iodos
de iempo, debido a que po ejemplo no es necesa io ecopila la in o mación del GPS an
a menudo como la del acele óme o.
11
Capí ulo 2
Blue oo h Low Ene gy
Blue oo h Low Ene gy (BLE, ambién denominado Blue oo h Sma ) empezó como pa e
de la Blue oo h 4.0 Co e Speci ica ion. Diseñado o iginalmen e po Nokia bajo el nomb e
de Wib ee, ue luego adop ado po el Blue oo h Special In e es G oup (SIG).13 12 4
El obje i o de Blue oo h Low Ene gy es complemen a al Blue oo h clásico y se la ec-
nología inalámb ica con el meno consumo ene gé ico posible. También iene como obje i o
llega a una g an can idad de obje os que has a aho a no disponían de ninguna conec i idad
inalámb ica. Pa a log a aba ca an os escena ios, se necesi a ene un cos e muy bajo, lo
cual se consigue con es elemen os cla e:
Banda ISM: BLE u iliza la banda ISM (Indus ial, Scien i ic and Medical) de 2,4GHz,
que, a pesa de ene nume osos p oblemas como poco ango o in e e encias po o as
ecnologías como WiFi, e c, es á disponible en odo el mundo con las mismas eglas y
no iene equisi os de licencia.
Licencia: Cuando la ecnología Wib ee es u o lo su icien e madu a como pa a uni se
con un g upo de es ánda es inalámb icos, Nokia decidió elegi al Blue oo h Special In-
e es G oup po su excelen e epu ación y su polí ica de licencias. Es a polí ica, com-
pa ada con la de o os g upos bajo la polí ica Fai , Reasonable and Non-disc imina o y,
signi ica que los cos es de licencia de un disposi i o Blue oo h se educen signi ica i-
amen e. Con un meno cos e de licencia se educe el cos e po disposi i o.
12
Bajo consumo: La mejo o ma de p oduci un disposi i o con bajo cos e es educi el
cos e de sus ma e iales, po ejemplo las ba e ías. Un disposi i o BLE puede unciona
pe ec amen e alimen ado po una simple pila de bo ón CR2032.
2.1. Compa ación con Blue oo h Clásico
Aunque compa a con Blue oo h su nomb e y mucha de la ecnología u ilizada, se deben
conside a di e en es ecnologías, ya que ienen obje i os de diseño comple amen e di e en-
es.
El Blue oo h clásico ( ambién conocido como BR/EDR4) se diseñó pa a conec a di e en-
es disposi i os, empezando po elé onos mó iles y o denado es, y con el iempo añadiendo
más casos de uso como au icula es inalámb icos, s eaming de música, imp esión inalám-
b ica, e c. Cada uno de es os casos eque ía cada ez más ancho de banda, po lo que se
ue on añadiendo adios cada ez más ápidas (la p ime a e sión ansmi ía a 1 Mbps,
aumen ando a 3 Mbps en la e sión 2.0, has a los cien os de megabi s po segundo en su
e sión 3.0)
Blue oo h Low Ene gy es á op imizado pa a ene un consumo de ene gía muy bajo,
po lo que se educe el ancho de banda, y es á pensado pa a aplica se en disposi i os con
un cos e muy bajo, con una complejidad a su ez baja. Cada capa de su a qui ec u a se
ha op imizado pa a educi el consumo de ene gía al ealiza una de e minada a ea. Po
ejemplo, elajando los pa áme os de la adio usada po la capa ísica, compa ándola con
la adio del Blue oo h clásico, se puede usa menos ene gía cuando se es á ansmi iendo o
ecibiendo da os.
P ecisamen e po ene es os obje i os an di e en es, Blue oo h clásico y BLE pueden
coexis i en la misma aplicación en lo que se denomina Modo Dual (en inglés Dual-Mode),
de modo que se puede conec a po ejemplo a unos au icula es inalámb icos po medio de
BR/EDR mien as se accede a un disposi i o de bajo consumo, como un wea able, po BLE.
13

2.2. Tecnología
Un disposi i o BLE se di ide en es pa es: con olado , an i ión y aplicación. Cada una
de es as pa es se di ide a su ez en dis in as capas que p o een la uncionalidad necesa ia
pa a ope a . En la Figu a 2.1 se mues a un esquema de es a es uc u a.
Figu a 2.1:Es uc u a ha dwa e de un disposi i o BLE
2.2.1. Con olado
Capa Física (Physical Laye , PHY). La capa ísica es la que con iene los ci cui os
capaces de comunica se de o ma analógica, modulando y demodulando las señales analógi-
cas y ans o mándolas en digi ales. Como ya se ha mencionado, la adio usada pa a BLE
u iliza la banda ISM de 2,4 GHz. Es a banda se di ide en 40 canales, desde los 2,4000 GHz
14
has a los 2,4835 GHz. De es os canales, 37 se u ilizan pa a el en ío de da os y los 3 es an es
como canales de anuncio, pa a inicia conexiones y manda da os de b oadcas .
Figu a 2.2:Di isión de la banda de ecuencia ISM en 40 canales
Pa a e i a in e e encias con o os disposi i os ansmi iendo en la misma banda, ma-
yo men e WiFi y Blue oo h clásico, el es ánda BLE u iliza una écnica llamada equency
hopping sp ead spec um, que hace que la adio “sal e” en e los dis in os canales en cada
conexión.
Capa de Enlace (Link Laye ). Es la pa e que ac úa de in e az de la capa ísica.
No malmen e se implemen a como una mezcla de so wa e y ha dwa e pe sonalizado. Es
esponsable de anuncia , escanea , c ea y man ene las conexiones. También se enca ga de
asegu a que los paque es es án co ec amen e es uc u ados. Po ello es p obablemen e la
capa más compleja de la a qui ec u a BLE.
In e az An i ión/Con olado (Hos /Con olle In e ace, HCI). Muchos dis-
posi i os sepa an el An i ión del Con olado , y pa a es os casos, el HCI p o ee una in e az
es anda izada pa a comunica los dos dependiendo del mé odo de anspo e ísico de los
da os. En e es as in e aces se incluyen USB, SDIO o a ian es de UART.
2.2.2. An i ión
Con ol Lógico de Enlace y P o ocolo de Adap ación (Logical Link Con ol
and Adap a ion P o ocol, L2CAP). Es a capa p o ee dos uncionalidades: ac úa como
15
capa mul iplexo a de los p o ocolos, es deci , ecibe los p o ocolos de las capas supe io es
y los encapsula en el o ma o de paque e es ánda BLE (y ice e sa). Asimismo, agmen a
los paque es que se le en ían desde las capas supe io es pa a que quepan en los 27 by es
que ienen como máximo los paque es de ansmisión y uel e a combina los paque es
agmen ados que ecibe.
P o ocolo de A ibu os (A ibu e P o ocol, ATT). De ine una se ie de eglas
pa a accede a los da os de un disposi i o. P opone una mane a de encapsula es os da os
en o ma de a ibu os, que pe mi en iden i ica los asignando a cada uno un handle de 16
bi s y un Iden i icado Único Uni e sal (Uni e sal Unique Iden i ie , UUID) y es ingi su
acceso median e una se ie de pe misos. Los campos que o man un a ibu o se explica án
más adelan e en la Sección 2.4.2. En esumen, ATT un p o ocolo muy simple, en el que un
clien e puede accede a los a ibu os de un se ido .
Pa a de ini la comunicación e icaz de es os a ibu os en e el clien e y el se ido , ATT
de ine seis ipos de mensajes:
Solici udes en iadas desde el clien e al se ido .
Respues as del se ido a una solici ud del clien e.
Comandos en iados del clien e al se ido que no necesi an espues a.
No i icaciones en iadas desde el se ido al clien e que no necesi an con i mación.
Indicaciones en iadas desde el se ido al clien e.
Con i maciones en iadas po el clien e en espues a a una indicación.
De es e modo ambos pueden es ablece una comunicación con mensajes que equie an
o no espues a.
Pe il de A ibu o Gené ico (Gene ic A ibu e P o ile, GATT). Es e pe il se
asien a en el P o ocolo de A ibu os, y de ine los ipos de a ibu os y cómo se u ilizan. Pa a
16
ello u iliza una je a quía de capas y un modelo de abs acción de da os. Los da os aho a se
encapsulan en se icios, que a su ez consis en en una o más ca ac e ís icas que pueden es a
de inidas po un desc ip o . Es as capas se si en de me ada os pa a da más in o mación
sob e los da os que se es án manejando, como nomb es, unidades, e c.
Es e pe il es impo an e a la ho a de comunica disposi i os po BLE, y se usa como base
pa a gene a pe iles especí icos pa a de e minados casos de uso, como la medición del i mo
ca díaco de una pe sona o el acceso al ni el de ba e ía disponible de un disposi i o. En la
Sección 2.4 se de alla án los componen es de un pe il GATT.
Pe il de Acceso Gené ico (Gene ic Access P o ile, GAP). De ine cómo los dis-
posi i os ealizan p ocedimien os de con ol como el descub imien o de o os disposi i os,
conexiones en e és os o la segu idad, es deci , dic a cómo in e ac úan dos disposi i os en
un ni el más bajo. GAP es ablece di e en es no mas y concep os pa a egula y es anda iza
las ope aciones a bajo ni el de los disposi i os:
Roles en los que los disposi i os pueden ope a , es ableciendo es icciones e imponien-
do de e minados compo amien os. Se explican con más de alle en las secciones 2.3.1
y2.3.2.
Modos ope acionales, que es ablecen es ados a los que un disposi i o puede cambia
du an e un de e minado pe iodo de iempo pa a log a un obje i o, como po ejemplo
pe mi i su descub imien o o de qué modo pe mi e ealiza la conexión.
P ocedimien os ope acionales pa a asegu a una comunicación cons an e median e una
secuencia de acciones.
Aspec os de la segu idad, incluyendo modos y p ocedimien os.
Fo ma os de da os adicionales pa a da os no p o ocola ios.
Ges o de Segu idad (Secu i y Manage , SM). De ine los p o ocolos y sus modos
de ope a pa a ges iona la in eg idad de los enlaces, la au en icación y el ci ado en e
17
in álido, po lo que el ango de handles disponible es de 0xFFFF (65535), aunque en
la p ác ica el núme o de a ibu os en un se ido es más ce cano a la docena.
Tipo. Es a pa e consis e en un UUID de 16, 32 o 128 bi s que de e mina qué ipo
de da os es án p esen es en el campo de alo del a ibu o, pe mi iendo po ejemplo
mecanismos pa a encon a un a ibu o di ec amen e po su ipo. En la Sección 2.4.3
se mues a cómo se o man los UUIDs pa a su uso en BLE.
Pe misos. Los pe misos son me ada os que especi ican qué ope aciones se pueden
ejecu a en cada a ibu o y con qué equisi os de segu idad. ATT y GATT de inen los
siguien es pe misos:
•Pe misos de acceso: simila es a los pe misos p esen es en un a chi o. De ine si
se puede accede a un alo como sólo de lec u a, de esc i u a, de ambos o de
ninguno.
•Enc ip ación: de e mina si es necesa io algún ni el de enc ip ación pa a accede
al alo . Puede no necesi a la, o exigi una enc ip ación con o sin au en icación.
•Au o ización: de e mina si se necesi a o no pe miso del usua io pa a accede al
a ibu o.
Valo . Con iene los p opios da os sin es icción de qué ipo sean, aunque con un
máximo de 512 by es según la especi icación. Dependiendo del ipo de a ibu o, puede
con ene in o mación adicional sob e el a ibu o o un alo ú il.
Se icio. Los se icios ag upan a ibu os concep ualmen e elacionados. La o ma de
de ini un se icio es a a és de uno o más a ibu os denominados de inición de se icio,
de los cuales el p ime o es el que ac úa de decla ación de se icio y el es o pueden de ini
las siguien es capas, como ca ac e ís icas y desc ip o es.
Se puede compa a un se icio con una clase en cualquie lenguaje de p og amación
o ien ado a obje os.
24

Ca ac e ís ica. Las ca ac e ís icas se pueden en ende como con enedo es pa a los da os
del usua io. Siemp e incluyen dos a ibu os: la decla ación de la ca ac e ís ica, que o ece
me ada os sob e los da os en sí, y el alo de la ca ac e ís ica, que es un a ibu o comple o
con los da os del usua io. Adicionalmen e, una ca ac e ís ica puede con ene un desc ip o ,
que es un a ibu o que p o ee de más me ada os.
Desc ip o . Se u ilizan p incipalmen e pa a p o ee al clien e con in o mación adicional
sob e las ca ac e ís icas y su alo . Se ubican siemp e en e la de inición de la ca ac e ís ica
y el alo del a ibu o de la ca ac e ís ica y es án compues os po un único a ibu o cuyo
UUID de ine el ipo de desc ip o y el campo de alo con iene lo que es é de inido pa a ese
ipo de desc ip o .
A con inuación se de allan algunos de los desc ip o es más u ilizados:
Desc ip o de usua io de una ca ac e ís ica: con iene una desc ipción que el usua io
puede lee consis en e en una cadena de ca ac e es en UTF-8. Po ejemplo “Tempe a-
u a en el salón”.
Desc ip o de con igu ación de la ca ac e ís ica po el clien e: ac úa como un “in e-
up o ”, deshabili ando las ac ualizaciones que en ía el se ido .
Desc ip o de o ma o de p esen ación de una ca ac e ís ica: con iene el ipo de a-
iable de la ca ac e ís ica, po ejemplo booleano, cadena de ca ac e es, en e os, e c.
2.4.3. UUIDs
Un Iden i icado Único Uni e sal (UUID) es un núme o de 128 bi s (16 by es) que
ga an iza (al menos con una g an p obabilidad) que es único globalmen e. UUID es usado
en o os p o ocolos apa e de Blue oo h, y su o ma o, uso y gene ación se especi ican en el
ISO/IEC 9834-8:2005.
Dado que 16 by es ocupa ía g an pa e del amaño disponible en los 27 by es de los
paque es de da os, la especi icación BLE añade dos o ma os adicionales: UUIDs de 16 o 32
25
bi s, y se o man de iniendo un “ inal” del UUID que es cons an e en odos los disposi i os
BLE, en los que se sus i uyen los 32 p ime os bi s:
xxxxxxxx-0000-1000-8000-00805F9B34FB
donde xxxxxxxx son los bi s a sus i ui .
26
Capí ulo 3
Explo ación Ha dwa e
El p ime hi o a ni el écnico e a encon a una placa de desa ollo que incluye a Blue-
oo h de bajo consumo y pe mi ie a conec a un senso de acele ome ía, ya que e an indis-
pensables pa a la ansmisión de da os en e la placa y el disposi i o mó il.
Desde el pun o de is a come cial, la in ención ha sido busca el componen e con mejo es
p es aciones en calidad y p ecio con el obje i o de p epa a un p oduc o inal que pudie a
compe i con o as opciones del me cado.
Des acamos las placas con Blue oo h inco po ado y un mic op ocesado . En la abla 3.1
obse amos el análisis de cada elemen o que se ha conside ado.
Dada la na u aleza de nues o p oyec o no necesi ábamos un g an pode de p ocesamien-
o ni una g an capacidad en cuan o a memo ia RAM y lash, ya que el código iba a se muy
sencillo. Los dos ac o es p incipales a ene en cuen a e an que inco po ase la ecnología
Blue oo h Low Ene gy y que pe mi iese la conexión y el en ío de da os con el acele óme o,
ya ue a median e I2C, SPI, UART...
CHIPS CON BLUETOOTH
EMPRESA MODELO PROCESADOR FLASH RAM I/O
No dic PTR9022 ARM Co ex-M0 256 KB 16 KB SPI, 2-WIRE, UART
No dic nRF51-DK ARM Co ex-M0 256/128KB 32KB/16KB SPI Mas e /Sla e, 2-wi e, UART, 31 GPIO
No dic nRF51422 ARM Co ex-M0 256/128KB 16KB SPI Mas e /Sla e, 2-wi e, UART, 31 GPIO
TI CC2540 / CC2541 8051 128/256KB 8KB 2 USART, ADC, 21 GPIO, SPI
TI CC2640F128RGZT ARM Co ex-M3 128KB 20KB I2C, I2S, SPI, UART
Cyp ess 4 BLE/PRoC BLE ARM Co ex-M0 128/256KB 16/32KB 2 SCBs, con igu able como I2C, SPI o UART
Cyp ess PSoC 4XX7-BLE ARM Co ex-M0 128KB 16KB I2C, SPI, UART, 36 GPIO
Cuad o 3.1:Placas que in eg an adio Blue oo h Low Ene gy. Se des acan las al e na i as
seleccionadas pa a la siguien e ase de explo ación
27
Realizando el p ime il o pudimos obse a que algunas ca ac e ís icas e an comunes
en e los SoC’s elegidos:
En ma e ia de p ocesado es encon amos dos opciones comunes: Co ex-M0 de ARM
(Ad anced RISC Machines) y 8051 de In el. Al e que la mayo ía de los chip elegidos
mon aban el p ocesado de ARM, cla amen e obse amos que domina el me cado de los
sis emas empo ados y las emp esas han op ado po u iliza lo. Es o se debe a que el modelo
de negocio u ilizado po ARM consis e en la en a de licencias de sus núcleos3, lo que
pe mi e a o os ab ican es diseña su p opio Sys em On Chip (SoC) in eg ando ecnología
ARM.
ARM Co ex-M0 nos pa ecía una opción más in e esan e, ya que es e p ocesado ipo
RISC, cuen a an o con una a qui ec u a de 32 bi s ( en e a los 16 de In el 8051) como con
la a qui ec u a Thumb, que mejo a la densidad del código pa a ocupa menos espacio an o
en memo ia RAM como en lash.
La can idad de memo ia RAM disponible más común pa a es e ipo de disposi i os es
de 8, 16 o 32 kiloby es. La segunda opción nos pa eció más que su icien e pa a albe ga un
p og ama sencillo como el nues o y las a iables necesa ias.
En cuan o a capacidad de almacenamien o, odas las placas cuen an con memo ia lash,
que pueden a ia en e 128 y 256 Kiloby es. De nue o, la complejidad de nues o p og ama
no iba a gene a un iche o compilado de g an amaño, y no necesi ábamos gua da nada
más, po lo que 128 KB nos pa ecie on adecuados.
En cuan o a los pe i é icos de en ada/salida, la mayo ía de las placas de desa ollo
incluyen los p o ocolos SPI e I2C.
El p o ocolo SPI consis e en el en ío de la señal de eloj del maes o y en cada impulso
de eloj se en ía un bi al escla o y ecibe un bi de és e. Los nomb es de las señales son
SCK pa a el eloj, MOSI pa a el Maes o Ou Escla o In, y MISO pa a Maes o In Escla o
Ou .
El p o ocolo I2C, usa dos cables, uno pa a el eloj (SCL) y o o pa a el da o (SDA). El
28
maes o y escla o en ían da os po el mismo cable, el cual es con olado po el maes o,
que c ea la señal de eloj. Es e p o ocolo u iliza di eccionamien o, es deci , el p ime by e
en iado po el maes o se o ma de 7 bi s pa a la di ección (así que pe mi e comunica se con
has a 127 disposi i os) y un bi de lec u a/esc i u a, indicando si el p óximo by e end á
desde el maes o o el escla o. Es a ecnología se amplia á en el Capí ulo 5.1.1.
3.1. Selección de pla a o mas de desa ollo
Una ez ecopilados los modelos de que obse amos en la Tabla 3.1, hemos des acado
2 placas de p o o ipado que cumplen con los equisi os del p oyec o. Es e ipo de placas
o ecen más ca ac e ís icas de las que necesi amos pa a el p oyec o, pe o suponen un p ime
paso pa a pode p og ama y ealiza p uebas an es de pasa a chips más simples y con un
meno cos e.
Po un lado escogimos la placa de desa ollo de Cyp ess con el ki PSoC BLE y modelo de
la placa con Blue oo h CY8CKIT-042-BLE ce i icado pa a sis emas de bajo consumo.
Es un ki p o is o de un chip que o ece un p ocesado ARM Co ex-M0 y capacidad y
conec i idad su icien e como pa a u iliza lo de base pa a el p oyec o.
El en o no de desa ollo pa a las pla a o mas de Cyp ess es un so wa e de esc i o io
llamado PSoC C ea o , en el cual podemos diseña sis emas a a és de un panel g á ico.
Nos o ece mul i ud de lib e ías disponibles pa a la placa u ilizada y es posible codi ica ,
compila , y depu a código.
Conside amos ambién la placa de No dic modelo nRF51-DK po se un ki de desa-
ollo que o ece el mismo p ocesado que Cyp ess, conec i idad an o I2C como SPI pa a
ealiza las p uebas con el senso . Es e modelo o ece compa ibilidad con la pla a o ma de
desa ollo mbed de ARM, es una opción que nos esul ó in e esan e a la ho a escoge la.
Dispone de una g an comunidad y sopo e lo cual es de ag adece .
29

En la Sección 3.1.1 habla emos más sob e los aspec os especí icos de ambos en o nos de
desa ollo.
Al conside a que e a más in e esan e ene una placa con p ocesado , senso es y pe i é-
icos desca amos los chips indi iduales y op amos po una opción más comple a.
3.1.1. Análisis de las pla a o mas escogidas
Rápidamen e obse amos dos g andes emp esas especializadas en el sec o como son
No dic y Cyp ess. Tienen g an a iedad de mic op ocesado es y placas de desa ollo que
cumplen con nues as expec a i as.
Elegimos el ki de desa ollo de No dic (nRF51-DK), que incluye Blue oo h Sma e
inco po a un núcleo ARM Co ex-M0 32-bi como la mayo ía de los chips que encon amos.
Una memo ia lash a 256/128KB con RAM de 32KB/16KB pa a mejo a el endimien o de
las aplicaciones.
El ki pe mi e el acceso a odas las in e aces de en ada y salida como SPI Mas e /Sla e,
2-wi e, UART y 31 GPIOs a a és de conec o es. Tiene 4 LED’s y o ece ambién 4 bo ones
que son p og amables po el usua io.
U iliza un cable mic o USB 2.0 pa a conec a se a uno de los pue os USB de el PC. Es o
p opo ciona alimen ación a la placa, y es compa ible con la p og amación de des ino.
La ca ga de p og amas esul a sencilla, ya que una ez conec ado al o denado , el sis ema
de a chi os se mon a como una unidad ex aíble, po lo que solo debemos ab i un explo ado
de a chi os y pod emos ca ga los p og amas a la placa a as ando y sol ando hacia la
unidad.
La placa de desa ollo nRF51-DK es compa ible con el en o no ARM mbed, que es
una pla a o ma g a ui a de p o o ipado ápido y expe imen ación con mic ocon olado es
ARM. P o ee a los desa ollado es una pla a o ma pa a ealiza p uebas y p o o ipos en
el lenguaje de p og amación C++. Incluye una amplia a iedad de lib e ías, u o iales y
ejemplos, además de con a de una g an comunidad online de desa ollado es de so wa e,
30
Figu a 3.1:Esquema de la disposición de pines de la placa nRF51-DK de No dic
cuyos códigos son habi ualmen e accesibles a oda la comunidad.
O o chip con p ocesado que nos pa eció in e esan e ue el modelo CY8CKIT-042-
BLE de la emp esa Cyp ess Semiconduc o que sopo a 2 disposi i os: PSoC 4 BLE y PRoC
BLE.
El modelo escogido es el PSoC 4 BLE que p o ee de una comple a solución pa a conec-
i idad Blue oo h Low Ene gy. También mon a una p ocesado ARM Co ex-M0 con una
memo ia lash de 128kB/ 256kB y RAM de 16kB / 32kB. Dispone de 4 TCPWM1, 2 SCBs2,
LCD4, I2S5, y 36 GPIOs.
El ki incluye una memo ia ex aible que conec a la placa po Blue oo h llamado Dongle
USB CySma (BLE Dongle) que se empa eja con la he amien a de emulación p incipal
CySma . El empa ejamien o con un en o no Windows hace que sea un po en e en o no de
31
Figu a 3.2:Cyp ess PSoC. Es a placa con iene el mic ochip y odos los conec o es necesa-
ios como pa a usa la di ec amen e como p oduc o inal
depu ación de Blue oo h LE.
Es e ki de desa ollo de Cyp ess es compa ible con diseños a ni el de sis ema median-
e PSoC C ea o , un so wa e de desa ollo que con iene nume osos p oyec os de ejemplo
pa a p opo ciona diseños in eg ados de señal mix a Blue oo h de baja ene gía, el lenguaje
u ilizado es C.
Es sencilla diseña pues con a as a y sol a los componen es se añaden al panel p in-
cipal ob eniendo máxima lexibilidad de diseño.
3.2. Conclusión
Tan o la placa nRF51-DK de No dic como CY8CKIT-042-BLE de Cyp ess son dos placas
de desa ollo pe ec as pa a inicia un p oyec o con conec i idad Blue oo h, las dos ienen
idén icas ca ac e ís icas, conec o es y pe i é icos, se les puede inclui una pila de bo ón
CR2032 pa a da les au onomía y les espalda un so wa e pa a desa ollo de las mismas.
En es e pun o u imos cie a con o e sia, ya que el so wa e de Mbed de No dic nos da
la posibilidad de compila código C++ en cualquie PC con in e ne g acias a su e sión
web. Nos o ece una g an comunidad que es de ag adece y mucho con enido de ejemplos y
32
Figu a 3.3:PSoC 4 BLE, placa de desa ollo, en es a placa se conec a el PSoC pa a pode
p og ama lo, y añade más uncionalidad inco po ando elemen os como bo ones p og amables,
un LED RGB, un panel deslizan e, e c.
u o iales en la web o icial. Po con a no iene modo depu ación po pasos y eso di icul a
su seguimien o y depu ación.
Po o o lado, PSoC C ea o de Cyp ess nos o ece un comple o p og ama de esc i o io
muy isual al diseña ci cui os y un sis ema “d ag and d op” muy in ui i o. Pe mi e modo
depu ación acili ando su p og amación. Po con a nos hemos encon ado con cie as dudas
que han sido di íciles de esol e en o os debido al poco con enido sob e el ema.
Debido al g an pa ecido en e las ca ac e ís icas de una placa y o a, y a que los en o nos
de desa ollo ienen cada uno sus p os y sus con as, nos esul ó di ícil elegi una de las dos
pa a inaliza el p oyec o. En el Capí ulo 4se habla á de las p uebas que ealizamos con
ambas y qué nos mo i ó a escoge la placa de No dic en e a la de Cyp ess.
33
a as a la has a la is a de diseño, y elegi la opción Gene a Aplicación pa a gene a el
código necesa io pa a in e ac ua con BLE, c eando un a chi o de encabezado BLE.h y uno
de código BLE.c.
Cyp ess ambién pone a disposición del desa ollado u o iales en ídeo y una se ie
de ejemplos de código denominada 100 p ojec s in 100 days 5, subida a un eposi o io en
Gi Hub, de las que pudimos oma ejemplo pa a a anza con las p uebas. Sin emba go, la
comunidad de desa ollado es e a más pequeña que la de mbed, p obablemen e po se es a
pla a o ma especí ica pa a p oduc os de Cyp ess, mien as que en el ecosis ema de mbed se
encuen an mul i ud de ab ican es.
A di e encia de mbed, PSoC C ea o sí o ece he amien as de debug, con pun os de
up u a y isualización del es ado de las a iables.
4.3. Conclusión as las p uebas
T as ealiza las p uebas de inidas en la Sección 4.1, ap endimos a desa olla ápida-
men e códigos pa a log a la uncionalidad deseada.
Los ejemplos de uso de Blue oo h Low Ene gy nos ayuda on a comp ende los pasos que
se debían da pa a es ablece co ec amen e una conexión, aunque u imos que in o ma nos
más pa a comp ende qué e a exac amen e lo que sucedía en cada paso.
Una ez en endimos el p ocedimien o pa a conec a po SPI el ci cui o mencionado
an e io men e y la lógica que había que segui pa a p og ama la in e acción an o con la
placa de Cyp ess como la de No dic, ealiza la ansición a I2C pa a conec a el acele óme o
ue un paso sencillo, pues las API de ambas placas ges iona de mane a simila los dos
p o ocolos.
Como ya mencionamos en el Capí ulo 3, la decisión de con inua la ase inal del p oyec o
con una placa u o a ue di ícil, pues ambas ienen ca ac e ís icas simila es y sus en o nos
de desa ollo ienen sus p os y sus con as, pe o inalmen e escogimos la placa de desa ollo
40

nRF51-DK de No dic po la acilidad de encon a in o mación y ayuda en los o os de la
comunidad. Los ejemplos o ecidos en el eposi o io p opio de mbed ue on de g an ayuda
pa a consolida el ap endizaje con dicha placa y la p opia he amien a nos pa eció una g an
apues a pa a disposi i os IoT. Cabe des aca que la opción de Cyp ess pod ía habe sido
iable pe ec amen e.
41
Capí ulo 5
Desa ollo Ha dwa e
Una ez e minado el pe íodo de p uebas, ya con el ki de desa ollo nRF51-DK de
No dic como opción p incipal y con la placa XTRINSIC-SENSE-BOARD de Elemen 14,
que inco po a el acele óme o MMA84910 de 3 ejes, pudimos comenza a desa olla la pa e
ha dwa e de es e p oyec o.
El desa ollo se cen ó en dos elemen os: la comunicación po I2C en e la placa de
desa ollo y el acele óme o y el en ío de da os median e Blue oo h Low Ene gy
desde la placa hacia un disposi i o mó il. A con inuación se desc ibi án los pasos ealizados.
5.1. Comunicación con el acele óme o po I2C
El modelo nRF51-DK u iliza GPIO (Gene al Pu pose Inpu /Ou pu ), que son unos pines
gené icos que pueden p og ama se como en ada o salida. Dos de es os pines se pueden con-
igu a como un bus I2C, que se usa pa a comunica se con una g an a iedad de disposi i os
ex e nos, en es e caso la placa XTRINSIC-SENSE-BOARD.
I2C es un bus de da os con conexión se ie sínc ona unidi eccional (hal -duplex) que se
puede da de 2 ipos:
Maes o/Escla o
Escla o/Maes o
42
Maes o. Inicia la ans e encia gene ando las condiciones de inicio y pa ada de la se-
ñal de eloj. T ansmi e la di ección del escla o y de e mina el sen ido de la ans e encia
(lec u a-esc i u a). La comunicación siemp e la inicia el Mas e y el escla o espe a ó denes.
Escla o. Es e esponde sólo cuando se di igen a él. La empo ización se con ola me-
dian e la línea de eloj del bus.
La ansmisión de in o mación se hace a a és de 2 cables, uno pa a ansmi i los
da os (SDA) y o o pa a ansmi i la señad del eloj (SCL). O o cable pa a ac i a el
acele óme o (ENABLE) y o os 2 cables de oma de ie a (GND) y co ien e (VDD) con
es e cablado enemos conec ado el senso con la placa de desa ollo.
5.1.1. Lec u a de da os
El acele óme o MMA8491Q iene 7 egis os donde se gua dan los da os de acele ome ía
que han sido ecogidos en la lec u a. El p ime egis o es un egis o de es ado en el que se
indica si alguno de los ejes ha cambiado desde la úl ima mues a, los 6 egis os siguien es
di iden cada eje en los 8 bi s más signi ica i os y los 6 menos signi ica i os, haciendo un
o al de 14 bi s po eje. En la abla que se mues a en la Figu a 5.2 se puede obse a la
in o mación de los 7 egis os.
Es os 14 bi s se u ilizan pa a especi ica los alo es de cada eje en un ango de +8000
mg a -8000 mg. Pa a ello u ilizan el o ma o de la abla que se puede e en la Figu a 5.3
sacada del da ashee 6. Se puede obse a que se u iliza un Complemen o a 2 pa a de ini
los núme os nega i os. La o ma de pa sea los se explica á más adelan e.
El acele óme o es ablece una se ie de pasos pa a pode es ablece la comunicación po
I2C en el modo Mul iple By e Read, que apun a al siguien e egis o una ez concluida la
lec u a del an e io :
Se manda el comando S a condi ion con la di ección 0x55 y 1 bi de lec u a-esc i u a
43
Figu a 5.1:Cableado del acele óme o po I2C
a 0 pa a indica esc i u a, el escla o esponde con una ama ACK.
Se ansmi e la di ección del egis o que se quie e lee y el escla o manda una ama
ACK.
Se ansmi e el comando Repea ed S a Condi ion con la di ección del acele óme o,
y es a ez el bi de lec u a-esc i u a a 1 indicando lec u a.
El escla o manda una ama ACK y ansmi e los da os del egis o indicado.
Po úl imo, se ansmi e una ama ACK y una señal de s op pa a inaliza .
Una ez ecibidos es os da os en la placa de No dic, se jun an y se pa sean siguiendo la
siguien e ó mula:
44
Figu a 5.2:Tabla con los egis os del acele óme o6
Figu a 5.3:Rango de da os del acele óme o6
WORD = (MSB << 6) | (LSB >> 2 );
i (WORD >= 0x2000 )
WORD −= 0x4000 ;
NATURAL = (1000 ∗WORD + 512) >> 10;
Donde MSB es el by e con los bi s más signigica i os, LSB es el by e con los bi s menos
signi ica i os, y WORD y NATURAL son a iables en e as. El esul ado, de 14 bi s, se
gua da en una a iable de 16, que luego se di idi á en 2 by es sepa ados pa a pode en ia los
45

median e Blue oo h.
Paso po paso, lo que hacemos es:
Conca enamos los dos g upos de bi s leidos po sepa ado del bus.
Cambiamos el signo si es nega i o, almacenandolo como un nume o nega i o de 16bi s.
Cambiamos la escala de -8192 / 8191 a -8000 / 8000
5.1.2. Fil ado
En un en o no ideal, los da os que ecoja el acele óme o en un pe íodo en el que se
encuen e es á ico debe ían se únicamen e el alo de la g a edad (1g) epa ido en e los 3
ejes, ya que es una acele ación cons an e que expe imen a cualquie obje o en es e plane a.
Lejos de ese caso, la in o mación que ecibimos a ía lige amen e, no malmen e en una
escala de unos pocos mg. Pa a elimina es e uido ealizamos un il ado consis en e en
ecoge una mues a de 10 alo es e inse a los en un Bú e ci cula pa a pode il a los a
a és de una media ponde ada. El da pesos a los da os pe mi e que los úl imos alo es no
se pie dan y que la media se ac ualice lo su icien emen e ápido en caso de cambios b uscos.
5.2. Comunicación Blue oo h
Como mencionábamos en el Capí ulo 2, hemos elegido el Modo de Conexión pa a ealiza
el enlace y el in e cambio de da os en e la placa de No dic y el disposi i o mó il. En
es e caso end emos los oles GAP y GATT (Explicados en las Secciones 2.3.2 y2.4.1,
espec i amen e) que se mues an en la Tabla 5.1.
El disposi i o mó il ac úa como Cen al, ya que ealiza el escaneo y la conexión, y como
Clien e po que es el que en ía las pe iciones pa a ecibi la in o mación.
La placa nRF51-DK ac úa como Pe i é ico, pues manda paque es de anuncio y acep a
las conexiones en an es, y como Se ido , al se el que gua da la in o mación y esponde a
las pe iciones.
46
GAP GATT
Disposi i o Mó il Cen al Clien e
Placa nRF51-DK Pe i é ico Se ido
Cuad o 5.1:Roles GAP y GATT del disposi i o mó il y de la placa nRF51-DK
Empezamos con igu ando el Pe il de Acceso Gené ico (GAP) pa a es ablece la in o -
mación que incluyen los paque es de anuncio:
El disposi i o es sólo BLE y no u iliza Blue oo h clásico.
Se le pe mi e a o os disposi i os su descub imien o.
La lis a de se icios que con iene, en la que apa ece á el se icio mencionado an e io -
men e.
El nomb e del disposi i o, dado po una cadena de ca ac e es.
El mé odo de conexión.
Toda es a in o mación es a á disponible pa a cualquie disposi i o que se encuen e es-
caneando.
Seguidamen e con igu amos el Pe il de A ibu o Gené ico (GATT). De inimos el disposi-
i o como se ido GATT y, pa a encapsula los da os del acele óme o, c eamos un se icio
con UUID 0xA000, al que le asigna emos una ca ac e ís ica con UUID 0xA001. Es o se hace
median e las clases Ga Se ice yGa Cha ac e is ic que nos o ece la API de mbed. Es as
clases pe mi en es ablece los siguien es pa áme os:
Ca ac e ís ica. Le podemos de ini un amaño máximo y mínimo de los da os que an
a con ene , en nues o caso siemp e a a ene 6 by es (3 ejes di ididos en 2 by es cada uno).
También especi icamos aquí que es e alo es de sólo lec u a.
Se icio. Le asignamos una lis a en la que únicamen e apa ece á nues a ca ac e ís ica.
47
Como se ha explicado en la Sección 5.1.1, los da os ex aídos del acele óme o se gua dan
en la nRF51-DK en es a iables de 16 bi s, aunque la API BLE de mbed obliga a ac ualiza
el alo de una ca ac e ís ica u ilizando un a ay de a iables de 8 bi s, po lo que necesi amos
di idi los 16 bi s de cada eje en dos by es sepa ados. Es o hace que el disposi i o mó il
eciba la in o mación ambién de es e modo, po lo que se ienen que jun a de nue o al
ecibi los.
48
Capí ulo 6
Aplicación And oid
La pa e del se ido Blue oo h se ha implemen ado sob e la pla a o ma And oid. La
p incipal azón po la que op amos po es a pla a o ma es la de que pa a p og ama una
aplicación en iOS es necesa io dispone de un o denado Macin osh, condición que no cum-
plíamos, y debido a que de los es componen es del g upo, dos eníamos disponible un
disposi i o And oid, nos pa eció un paso lógico.
Hay nume osos amewo ks disponibles pa a p og ama aplicaciones And oid, pe o nos
decan amos po la he amien a que o ece Google, And oid S udio, que al es a basado
en la pla a o ma Eclipse nos esul ó amilia , a la ez que p o eía muchas uncionalidades
especí icas pa a And oid.
Una aplicación And oid se implemen a en Ja a pa a especi ica la uncionalidad y en
XML pa a es uc u a la pa e g á ica. Aunque u imos que amilia iza nos con el modo de
ges iona las is as en And oid, el hecho de basa la uncionalidad en Ja a nos ha acili ado
desa olla ápidamen e aplicaciones sencillas pa a p oba uncionalidades y, e en ualmen e,
la aplicación inal.
Hemos basado el diseño en el pa ón Modelo-Vis a-Con olado , comunicando la is a
y la uncionalidad median e comandos. En la siguien e imagen se mues a un diag ama de
clases pa a e cómo hemos es uc u ado el código de la app.
49
Figu a 6.7:Diag ama de las clases que in e ienen en una sesión
UUID 0xA001, que es la que nos in e esa pa a ob ene la in o mación del acele óme o. Pa a
descub i es e se icio, se puede ealiza lo que se llama escaneo de se icios, que de uel e
una lis a de los se icios del disposi i o, pe o como ya conocemos de an emano el UUID,
podemos accede a él di ec amen e.
Pa a ecoge la in o mación del acele óme o, se accede la ca ac e ís ica mencionada a
a és de su iden i icado , lo que de uel e una clase de And oid llamada Blue oo hGa Cha-
56

ac e is ic, que podemos usa pa a lee el alo del GATT.
Coo denadasTh ead accede pe iódicamen e a la úl ima localización gua dada en Lo-
ca ionManage , como se explicaba en la sección an e io .
FileTh ead se enca ga de lanza los dos hilos de Blue oo hTh ead y Coo denadasTh-
ead y, pe iódicamen e, ecoge los da os ob enidos po ambos. Es os son gua dados median e
una clase llamada FileManage que es la enca gada del manejo de a chi os. El o ma o del
a chi o que se c ea consis e en una línea po cada mues eo di idida de la siguien e mane a:
(la i ud);(longi ud);(coo denadaX);(coo denadaY);(coo denadaZ)
con una úl ima línea indicando el iempo o al de la sesión de la siguien e mane a:
T( iempo en milisegundos)
Es e a chi o se gua da en una ca pe a en el almacenamien o ex e no del mó il llamada
accelbike; si no exis e dicha ca pe a, la clase se enca ga de c ea la.
Pa a de ene la sesión ap o echamos una ca ac e ís ica de los hilos en Ja a que nos
pe mi e di e encia los de mane a única a a és de un nomb e dado po una cadena de
ca ac e es. De es e modo podemos de ene un de e minado hilo a a és de es e nomb e,
po lo que bas a con inaliza los pa a que se e mine la sesión.
6.2.4. Gene ación de mapas as ma cha
Una ez hemos e minado una sesión, o bien hemos ca gado una sesión an e io desde la
is a de ac i idades, ol emos a llama a la clase FileManage , es a ez pa a ca ga el a chi-
o. Se pa sea el a chi o y se ag upan las localizaciones de dos en dos calculando la dis ancia
en e ellas y c eando una polilínea a la que se le da colo con los da os del acele óme o.
Cada polilínea se gua da en un a ay, que jun o el iempo y la dis ancia se inse a en una
clase que ac úa como T ans e . Es e ans e se de uel e a la is a MapF agmen , que se
57
enca ga de mos a los da os de elocidad media, dis ancia y iempo y u iliza el a ay de
polilíneas pa a pin a la u a en un mapa de Google Maps.
58
Capí ulo 7
Mediciones y calib ado
7.1. Mediciones de consumo
El obje i o p incipal de Blue oo h Low Ene gy es inco po a se a disposi i os de bajo
consumo, y se lo más e icien e posible ene gé icamen e. Po ello decidimos comp oba la
e iciencia de consumo de ene gía de nues a placa, conec ándola a un osciloscopio y eco-
giendo los da os del ampe aje du an e la ejecución del p og ama, en el que se ecogen los
da os del acele óme o, se en ían po BLE y se en a en un es ado de espe a. La g á ica
esul an e se mues a en la Figu a 7.1.
Se puede comp oba que no iene un consumo muy ele ado, con un máximo algo meno
que 9.5 mA, que es cuando ealiza la comunicación po BLE y un mínimo de ce ca de
5 mA en los pe íodos inac i os. En los pe íodos de inac i idad obse amos que consume
más de lo cab ía espe a . Es o es debido a que pensábamos e óneamen e que la unción
que u ilizábamos pa a ealiza la espe a pond ía al p ocesado en modo deep sleep, que
pe mi i ía disminui odo lo posible el uso de ene gía.
Buscando en la API de mbed, encon amos la o ma de en a en es e modo, que se
ealiza con la unción sleep( ms )2. Es a unción ejecu a lo que se denomina un Wai o
In e up , que es una ins ucción del epe o io de ins ucciones de ARM que deja al p ocesa-
do en modo de bajo consumo, pa ando odas las uncionalidades pa a aho a ene gía has a
que llegue una in e upción. La unción sleep que implemen a la API de mbed de e mina
59
Figu a 7.1:P ime a g á ica de co ien e. Du an e es a p ueba el iempo de espe a es aba
es ablecido en 0.1 s
dinámicamen e en qué modo de bajo consumo se en a á.
El pun o nega i o de es o es que no hace disc iminación en e los ipos de in e upción,
po lo que puede sali del modo sleep aunque no se lo hayamos indicado. Pa a e i a es o
u ilizamos un callback que se ejecu a á cada segundo, ac i ando una a iable booleana. Es a
a iable con ola un bucle en el que, si sale del modo sleep y no es po nues a in e upción,
uel e a ejecu a un sleep.
Una ez implemen ada es a uncionalidad, ol imos a ealiza la p ueba de consumo y
es a ez ob u imos esul ados más sa is ac o ios, como se puede ap ecia en la Figu a 7.2.
Como se puede e , el consumo ha disminuido no ablemen e después de u iliza la unción
comen ada, con mínimos en o no a 1.25 mA en los pe íodos de sleep.
En es as p uebas obse amos la exis encia de unos picos de consumo cada 50 ms, que no
se ap ecian en la imagen ya que la ecogida de da os se daba cada segundo. Es os picos se
dan du an e el pe íodo de bajo consumo, y sabemos que son debidos a la componen e BLE
60
Figu a 7.2:Segunda g á ica de co ien e. Cada segundo emos un pico, que es cuando se
despie a del sleep
pues o que ealizamos p uebas con es e módulo desac i ado y no se p esen aban, aunque no
sabemos exac amen e po qué se p oducen.
7.2. Calib ado
Pa a conoce qué angos de los da os de acele ome ía podían se in e esan es pa a
ep esen a los en la u a, ealizamos una se ie de p uebas pa a ob ene alo es eales y
luego los analizamos pa a saca conclusiones. P on o nos dimos cuen a de que dependiendo
de la posición en la que se encuen e nues o disposi i o, los esul ados pueden a ia en g an
medida. Po lo que se ía necesa io un p oceso de calib ación an es de empeza la ma cha.
Pa a nues o p oyec o, nos hemos cen ado en el eje x pa a de e mina la acele ación en
cada momen o. Decidimos es ablece una se ie de umb ales pa a colo ea la u a en el mapa
gene ado, de modo que si de ec amos un alo nega i o, es deci , una decele ación, usamos
el colo azul. Si es amos en un alo ce cano a 0, usamos el e de. En cuan o acele amos
lige amen e (has a los 100 mg), usamos el ama illo, y a pa i de ahí cuando se acele a aún
mas usamos el ojo.
Debido a la p esencia cons an e de la acele ación de la g a edad en cualquie obje o,
61

el acele óme o ecoge siemp e es e alo , epa ido en e los ejes (x, y, z). En llano, la
acele ación o decele ación se p oduce sólo en el eje x, pe o cuando nos hallamos en una
pendien e es e alo se epa e en e los ejes (x, z), po lo que pa e de la acele ación se
jun a á con el alo de la g a edad.
62
Capí ulo 8
Conclusiones y abajo u u o
Es e p oyec o nos ha pe mi ido explo a ecnologías ha dwa e con las que no habíamos
abajado nunca, como Blue oo h Low Ene gy y p o ocolos como SPI o I2C, lo que nos ha
dado unas compe encias en o os campos que no son especí icamen e los nues os. Hemos
ap endido a p og ama una placa desde ce o, in es igando la documen ación que pone a
nues a disposición el ab ican e y encon ando ejemplos pa a log a los obje i os p opues os.
En el campo del desa ollo so wa e, hemos abajado po p ime a ez en el desa ollo de
una aplicación And oid, amilia izándonos con el en o no de p og amación And oid S udio.
La línea de ap endizaje que hemos eco ido (en la que hemos empezado haciendo nume-
osas p uebas pequeñas an es de con inua con el p oyec o inal) nos ha pe mi ido empeza
po concep os sencillos y áciles de en ende que nos pe mi ían a anza ápidamen e a casos
mas complejos.
Finalmen e, hemos log ado p oduci una aplicación que se puede u iliza en en o nos
eales, con la que, ijando la placa BLE en una bicicle a, podemos ealiza una u a y
isualiza co ec amen e los da os gene ados du an e la misma.
Blue oo h Low Ene gy es un concep o muy in e esan e, y ab e las pue as pa a comunica
g an can idad de disposi i os. Con es a ecnología pod íamos ealiza más p oyec os ú iles
que has a aho a no e an posibles.
63
8.1. T abajo u u o
Aunque la aplicación es uncional y cumple con los equisi os del p oyec o, siemp e es
in e esan e la idea de amplia la u ilidad de nues a aplicación.
Un ejemplo cla o es el de pode ap o echa aún más el hecho de ene la aplicación
ejecu ándose en un disposi i o mó il, o eciendo la posibilidad de compa i las sesiones
ealizadas en las edes sociales (Twi e , Facebook, ...).
O a posibilidad que se ía de u ilidad es la de ija una luz de eno a la placa, que al
de ec a una decele ación se encienda pa a indica a conduc o es, pea ones, e c. que se es á
educiendo la elocidad pa a e i a acciden es.
En elación con es o, o o pun o impo an e de ca a al u u o es el de u iliza los da os
que se ecogen de acele ome ía pa a comp oba mo imien os muy b uscos (como los que se
da ían en caso de acciden e) pa a ac i a un sis ema que a ise a los se icios de eme gencia
en caso de que el usua io no esponda en un b e e iempo.
Se pod ían ealiza más cálculos con los da os ob enidos pa a pode saca más in o ma-
ción de la u a. Además, ap o echando que la placa XTRINSIC-SENSE-BOARD con iene,
apa e del acele óme o que usamos, un magne óme o y un senso de p esión, se pod ía
ecoge mucha más in o mación sob e el es ue zo ealizado du an e el ayec o.
64
Bibliog a ía
[1] Api de google maps. h ps://de elope s.google.com/maps/documen a ion/
and oid-api/?hl=es.
[2] Api pa a deep-sleep de mbed. h ps://de elope .mbed.o g/ eams/SiliconLabs/
wiki/Using- he-imp o ed-mbed-sleep-API.
[3] A m sys em ip. h p://www.a m.com/p oduc s/sys em-ip.
[4] Blue oo h co e speci ica ion. h ps://www.blue oo h.com/speci ica ions/
blue oo h-co e-speci ica ion.
[5] Cyp ess 100 p ojec s in 100 days. h ps://gi hub.com/cyp esssemiconduc o co/
PSoC-4-BLE/ ee/mas e /100_P ojec s_in_100_Days.
[6] Da ashee pa a el acele óme o mma8491q. h p://www.elemen 14.com/communi y/
se le /Ji eSe le /p e iewBody/54565-102-1-273580/Da ashee _MMA8491Q.
pd .
[7] Da ashee pa a el ki n 51-dk de no dic. h p://www.mouse .com/ds/2/297/
nRF51-DK%20-%20Use %20Guide%20 1_0-706637.pd .
[8] Da ashee pa a el ki psoc 4 ble de cyp ess. h p://www.cyp ess.com/ ile/137466/
download.
[9] Ma e ial design de google. h ps://ma e ial.google.com/.
[10] Página de u o iales de cyp ess. h p://www.cyp ess.com/ aining/
psoc-4-ble-101- ideo- u o ial-se ies-how-c ea e-p oduc s-using-psoc-4-ble.
[11] Reposi o io mbed. h ps://de elope .mbed.o g/ac i i y/code/.
65