Você está na página 1de 118

ESCUELA TCNICA SUPERIOR DE INGENIERA

(ICAI)
INGENIERO INDUSTRIAL

SISTEMA DE COMUNICACIONES
GSM Y LOCALIZACIN DE UN
VEHCULO

Autora: Isabel Comas Montero


Director: lvaro Snchez Miralles
Jaime Boal Martn-Larrauri

Madrid
Julio 2013

DOCUMENTO I
MEMORIA

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL
NDICE DE LA MEMORIA

ndice de la memoria

Parte I

Memoria .......................................................................................1

Captulo 1

Introduccin .................................................................................1

1.1

Estado del arte ..............................................................................................1

1.1.1 MGM 1 ..................................................................................................................... 3

1.1.2 Giraa_02 ................................................................................................................... 4


1.1.3 4wd1 ......................................................................................................................... 5
1.1.4 Wi-fi robot ................................................................................................................ 5
1.1.5 GPS/GPRS/GSM Mdulo v2.0 .................................................................................. 6

1.2

Motivacin del proyecto ...............................................................................7

1.3

Objetivos .......................................................................................................7

1.4

Recursos ........................................................................................................8

1.4.1 Recursos hardware..................................................................................................... 8


1.4.2 Recursos software .................................................................................................... 10

1.5

Metodologa ................................................................................................ 10

Captulo 2

Comunicaciones ......................................................................... 13

2.1

Esquema de la arquitectura de las comunicaciones .................................. 13

2.2

Inter-integrated circuit (I2C) ...................................................................... 15

2.2.1 Estructura del mdulo y protocolo ............................................................................ 16


2.2.1.1 Registros .......................................................................................................... 16
2.2.1.1.1 I2CxCON ................................................................................................. 16
2.2.1.1.2 I2CxSTAT ................................................................................................ 16
2.2.1.1.3 I2CxTRN.................................................................................................. 16

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

NDICE DE LA MEMORIA
2.2.1.1.4 I2CxRCV ................................................................................................. 16
2.2.1.1.5 I2CxADD ................................................................................................. 17
2.2.1.1.6 I2CxBRG ................................................................................................. 17
2.2.1.2 Pines ................................................................................................................ 17
2.2.1.2.1 dsPIC33FJ32MC202 ................................................................................. 17
2.2.1.2.2 PIC32MX795F512L ................................................................................. 18
2.2.1.3 Maestro ............................................................................................................ 20
2.2.1.4 Esclavo ............................................................................................................ 21
2.2.1.4.1 Esclavo receptor ....................................................................................... 21
2.2.1.4.2 Esclavo emisor.......................................................................................... 22
2.2.2 programacin de los microcontroladores .................................................................. 23
2.2.2.1 Maestro ............................................................................................................ 24
2.2.2.2 Esclavo ............................................................................................................ 25
2.2.2.2.1 Constantes ................................................................................................ 25
2.2.2.2.2 Estructura de los datos .............................................................................. 27
2.2.2.2.3 Funcin de inicializacin........................................................................... 27
2.2.2.2.4 Interrupcin .............................................................................................. 28
2.2.2.2.5 Funcin de procesamiento de datos ........................................................... 29
2.2.3 Aplicacin del mdulo I2C en la programacin ......................................................... 30
2.2.3.1 Funciones del maestro ...................................................................................... 30
2.2.3.1.1 Inicializacin de la comunicacin .............................................................. 30
2.2.3.1.2 Funciones para pedir coordenadas GPS ..................................................... 31
2.2.3.1.3 Otras funciones del maestro ...................................................................... 32
2.2.3.2 Funciones del esclavo ....................................................................................... 33

2.3

Global Systems for Mobile Communications ............................................ 36

2.3.1 Concepto de red celular............................................................................................ 36


2.3.2 Arquitectura de la red gsm ....................................................................................... 37

Captulo 3

Pantalla tctil ............................................................................. 40

3.1

Multimedia expansion Board (MEB) ......................................................... 40

3.2

Programacin de la pantalla ...................................................................... 41

3.2.1 Funciones de inicializacin ...................................................................................... 42


3.2.1.1 void GOLInit(void) .......................................................................................... 42
3.2.1.2 void TouchInit(void) ........................................................................................ 42
3.2.1.3 GOL_SCHEME GOLCreateScheme(void) ....................................................... 42

3.2.2 Funciones de navegacin ......................................................................................... 42

II

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

NDICE DE LA MEMORIA
3.2.2.1 WORD GOLDraw(void) .................................................................................. 44
3.2.2.2 WORD GOLDrawCallback() ........................................................................... 45
3.2.2.3 void CreateScreen(void) ................................................................................... 45
3.2.2.4 void TouchGetMsg (GOL_MSG *pMsg) .......................................................... 45
3.2.2.5 void GOLMsg (GOL_MSG *pMsg) ................................................................. 45
3.2.2.6 WORD GOLMsgCallBack (WORD objMsg, OBJ_HEADER *pObj, GOL_MSG
*pMsg) ........................................................................................................................ 46
3.2.2.7 WORD MsgScreen (WORD objMsg, OBJ_HEADER *pObj); .......................... 46

3.3

Diseo de la ventana grfica....................................................................... 46

3.3.1 Objetos o widgets .................................................................................................... 47


3.3.2 Estilos (GOL_SCHEME) ......................................................................................... 50
3.3.3 Ejemplo del diseo de una pantalla .......................................................................... 51

3.4

Pantallas de la interfaz programada .......................................................... 56

3.4.1 Antes de la configuracin de las comunicaciones...................................................... 57


3.4.1.1 Men principal ................................................................................................. 58
3.4.1.2 Info .................................................................................................................. 58
3.4.1.3 Estado GSM..................................................................................................... 58
3.4.1.4 Estado GPS ...................................................................................................... 58
3.4.2 Durante la configuracin de las comunicaciones ....................................................... 58
3.4.3 Despus de la configuracin de las comunicaciones.................................................. 61
3.4.3.1 Men principal ................................................................................................. 61
3.4.3.2 Info .................................................................................................................. 62
3.4.3.3 Estado GSM..................................................................................................... 62
3.4.3.4 Estado GPS ...................................................................................................... 62

Captulo 4

Mdulos GSM/GPRS y GPS....................................................... 63

4.1

M2M Daughter board ................................................................................ 63

4.2

Funciones de manejo de los mdulos GSM y GPS .................................... 64

4.2.1 libubx.h ................................................................................................................... 66


4.2.1.1 Funciones de configuracin .............................................................................. 68
4.2.1.2 Funciones de encendido y apagado ................................................................... 68
4.2.1.3 Funciones de conexin y uso de la red GSM ..................................................... 69
4.2.1.4 Funciones de uso del GPS ................................................................................ 71
4.2.2 libgps.h ................................................................................................................... 72

4.3

Aplicacin de los mdulos a la interfaz ...................................................... 73

III

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

NDICE DE LA MEMORIA
4.3.1 Obtencin de las coordenadas GPS .......................................................................... 73
4.3.2 Modos de funcionamiento ........................................................................................ 74
4.3.2.1 Instrucciones enviadas por GSM....................................................................... 74
4.3.2.1.1 Instruccin recibida: GPS .......................................................................... 76
4.3.2.1.2 Instruccin recibida: PC ............................................................................ 76
4.3.2.1.3 Instruccin no reconocida ......................................................................... 77

Captulo 5

Resultados y pruebas realizadas ................................................. 78

5.1

Pantalla Mvil ........................................................................................ 78

5.2

Mvil pic32 Mvil .............................................................................. 79

5.3

PC pic32 PC ...................................................................................... 80

5.4

PC pic32 Mvil .................................................................................. 81

5.5

Mvil pic32 PC .................................................................................. 82

Captulo 6

Conclusiones .............................................................................. 84

Captulo 7

Futuros desarrollos .................................................................... 86

Bibliografa

.................................................................................................... 87

Parte II

ESTUDIO ECONMICO .......................................................... 89

IV

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

NDICE DE FIGURAS

ndice de figuras

Figura 1. Diseo MGM1 [1] .................................................................................3


Figura 2. Diseo robot Gira_002 [2] .....................................................................4
Figura 3.Base de robot 4WD1 (a) y placa de desarrollo PIC-IO (b) [3] .................5
Figura 4. Diseo Wi-Fi robot [4] ..........................................................................6
Figura 5. Placa GPS/GPRS/GSM Mdulo v2.0 [5] ...............................................6
Figura 6. Tarjeta PIC32 USB starter kit II.............................................................8
Figura 7. MEB .....................................................................................................9
Figura 8. M2M Daughter Board ...........................................................................9
Figura 9. Tarjeta de Control de Sensores v4.0 (TCS4) ..........................................9
Figura 10. Arquitectura inicial robot 4x4 [6] ....................................................... 10
Figura 11. Arquitectura final robot 4x4. .............................................................. 11
Figura 12.Arquitectura de las comunicaciones implementadas............................ 13
Figura 13. Pines de dsPIC33FJ32MC202 [7] ...................................................... 18
Figura 14. Pines de PIC32MX795F512L [11]..................................................... 18
Figura 15. Imagen de conector disponible en MEB [12] ..................................... 19
Figura 16. Diagrama de pines accesibles del PIC32 en el conector de la MEB [12]
........................................................................................................................... 19
Figura 17. Diagrama de flujo simplificado del mdulo maestro [6] ..................... 24
Figura 18. Diagrama de flujo simplificado del mdulo esclavo [6] ..................... 25
Figura 19. Estructura datos I2C enviada por el maestro. ...................................... 27

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

NDICE DE FIGURAS
Figura 20.Estructura datos I2C enviada por el esclavo. ........................................ 34
Figura 21. Representacin grfica de una red celular [17] ................................... 36
Figura 22. Representacin grfica de la arquitectura de una red GSM [17] ......... 37
Figura 23. Conector para Starter Kit [12] ............................................................ 40
Figura 24. Diagrama de bloques de la pantalla .................................................... 41
Figura 25. Representacin grfica de la pantalla ................................................. 46
Figura 26. Pantalla elegida como ejemplo........................................................... 51
Figura 27. Estado de la pantalla despus del paso 1 ........................................... 52
Figura 28. Diagrama de estados de la pantalla antes de configurar las
comunicaciones .................................................................................................. 57
Figura 29.Diagrama de estados de la pantalla durante la configuracin de las
comunicaciones .................................................................................................. 60
Figura 30. Diagrama de estados de la pantalla despus de la configuracin de las
comunicaciones. ................................................................................................. 61
Figura 31. Pantalla teclado numrico. ................................................................. 62
Figura 32. Diagrama de bloques de M2M Daughter Board [13] .......................... 64
Figura 33. Diagrama de bloques de la prueba n1 realizada. ................................ 78
Figura 34. Diagrama de bloques de la prueba n2 realizada. ................................ 79
Figura 35. Diagrama de bloques de la prueba n3 realizada. ................................ 80
Figura 36. Diagrama de bloques de la prueba n4 realizada. ................................ 81
Figura 37. Diagrama de bloques de la prueba n5 realizada. ................................ 82
Figura 38. Fases del ciclo de vida de un producto. .............................................. 91

VI

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

NDICE DE TABLAS

ndice de tablas

Tabla 1. Caractersticas de robots .........................................................................2


Tabla 2. Variables SCREEN_STATES............................................................... 43
Tabla 3.Tipos de objetos disponibles en la librera grfica. ................................. 47
Tabla 4. Archivos que constituyen la API ........................................................... 65
Tabla 5. Instrucciones para enviar informacin de manera remota ...................... 74

VII

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

NDICE DE EXTRACTOS DE CDIGO

ndice de extractos de cdigo

Cdigo 1. Opciones de configuracin del mdulo I 2C......................................... 23


Cdigo 2. Constantes definidas en el mdulo I 2C ............................................... 26
Cdigo 3. Ejemplo de funcin de transmisin ..................................................... 27
Cdigo 4. Funcin de inicializacin del mdulo esclavo de I 2C. ......................... 28
Cdigo 5. Funcin de procesamiento de mensajes del mdulo I 2C del esclavo .... 29
Cdigo 6.Estrucura de una transmisin de CComunicaI2C ................................. 30
Cdigo 7. Prototipos de las funciones asociadas a las coordenadas en el maestro 31
Cdigo 8. Ejemplo de comunicacin para pedir coordenadas por parte del maestro
........................................................................................................................... 32
Cdigo 9. Funciones del mdulo I2C del maestro ............................................... 32
Cdigo 10. Funcin ProcesarMensajeI2C para el caso de las coordenadas GPS .. 34
Cdigo 11. Funcin GetCoordenadasGPS .......................................................... 35
Cdigo 12.Funciones para navegar por la pantalla .............................................. 43
Cdigo 13.Declaracin de la variable SCREEN_STATES.................................. 44
Cdigo 14. Estructura para crear el objeto WINDOW ........................................ 48
Cdigo 15. Estructura para crear el objeto BUTTON ......................................... 49
Cdigo 16. Estados para el objeto BUTTON ...................................................... 49
Cdigo 17. Estructura GOL_SCHEME .............................................................. 50
Cdigo 18. Definicin colores ............................................................................ 50
Cdigo 19.Creacin de la ventana del ejemplo ................................................... 52

VIII

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

NDICE DE EXTRACTOS DE CDIGO


Cdigo 20. Creacin de los objetos del ejemplo.................................................. 54
Cdigo 21. Funcin de programacin de los eventos asociados a los objetos del
ejemplo .............................................................................................................. 56
Cdigo 22. Parmetros de configuracin red GSM ............................................. 66
Cdigo 23. Declaracin variable UBX_ERROR ................................................. 67
Cdigo 24. Declaracin variable UBX_STATUS ............................................... 67
Cdigo 25. Funciones de configuracin del archivo libubx.h .............................. 68
Cdigo 26. Funciones de encendido y apagado del archivo libubx.h ................... 68
Cdigo 27. Funciones de conexin y uso de la red GSM del archivo libubx.h ..... 69
Cdigo 28. Ejemplo de envo de un SMS ........................................................... 70
Cdigo 29. Funciones de uso del GPS del archivo libubx.h ................................ 71
Cdigo 30. Ejemplo de actualizacin de coordenadas GPS ................................. 71
Cdigo 31. Declaracin de la variable GPS_DATA_RMC ................................. 72
Cdigo 32. Funciones de gestin de datos del GPS ............................................. 73
Cdigo 33. Actualizacin peridica de las coordenadas GPS .............................. 73
Cdigo 34. Prototipo de la funcin GetCoordenadasGPS .................................... 74
Cdigo 35.Funcin RecibirSMS ......................................................................... 76
Cdigo 36. Funcin para comprobar peridicamente si hay informacin para la
TCS4.................................................................................................................. 76

IX

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL
ACRNIMOS

Acrnimos

API

Application Programming Interface

GPRS

General Packet Radio Service

GPS

Global Positioning System

GSM

Global System for Mobile Communications

I2C

Inter-Integrated Circuit

M2M

Machine to Machine

MEB

Multimedia Expansion Board

MMS

Multimedia Messaging Service

PIN

Personal Identification Number

RS-232

Recommended Standard 232

SIM

Subscriber Identity Module

SMS

Short Message Service

TCS4

Tarjeta de Control de Sensores v4.0

UART

Universal Asynchronous Receiver Transmitter

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Memoria

Parte I MEMORIA

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Introduccin

Captulo 1 INTRODUCCIN
En este proyecto se pretende realizar la infraestructura necesaria para las
comunicaciones va GSM con un vehculo adems de posibilitar su localizacin.
Para poder realizar un enfoque prctico se ha utilizado como vehculo con el que
comunicarse un robot 4x4, proyecto que se inici en el 2007 y que se contina
desarrollando en el IIT.

En este captulo se exponen distintos tipos de comunicacin inalmbrica y


algunos ejemplos de robots controlados de manera remota con el fin de obtener
conocimientos del mbito al que pertenece el proyecto que se ha desarrollado.
Posteriormente se exponen las motivaciones, objetivos y el desarrollo seguido del
mismo.

1.1 ESTADO DEL ARTE

Las comunicaciones inalmbricas proporcionan la posibilidad de transferencia de


datos sin necesidad de cables, por lo que son muy tiles a la hora de controlar
dispositivos que requieren alta movilidad como en este caso, un robot. Existen
diversas formas de comunicacin inalmbrica y a continuacin se muestra un
pequeo apunte de algunas de ellas incluyendo ventajas y desventajas que
proporcionan relacionndolas con ejemplos de robots que se resumen en la Tabla
1.

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Introduccin
Aplicacin
GPS Comunicaciones
/Tarjeta

Protocolo

Microcontrolador

MGM1

Aplicacin

No

GSM/GPRS

SMS/MMS

ATmega8

[2]

Giraa_02

Aplicacin

No

GSM/GPRS

Mensajera

[3]
[4]

4WD1
Wi-Fi Robot
GPS/GPRS/GSM
Module V2.0

Aplicacin
Aplicacin

No
-

Bluetooth
Wi-Fi

Tarjeta

GSM/GPRS

Comandos
AT

Ref.

Descripcin

[1]

[5]

Motorola
MC9S12DP256
PIC16F628
PIC16F628A
-

Tabla 1. Caractersticas de robots

Una de las posibilidades al utilizar radio frecuencia es utilizar comunicaciones a


travs de Bluetooth como en 4WD1 (ver [3]). Las limitaciones que tiene es el
rango de accin y que deben de tener visibilidad entre ellos, adems de requerir
un proceso de paridad. No tiene un gran ancho de banda por lo que la transmisin
de datos no es muy elevada.

Se busca resolver los problemas que plantea la conexin mediante Bluetooth y se


encuentra la conexin Wi-Fi, como en el robot [4]. Se resuelven los problemas de
ancho de banda, se evita el problema de la paridad y el rango de accin mejora
(hasta 100 m en espacios abiertos) aunque sigue constituyendo un gran problema
para el control de robots con amplia movilidad.

Para solventar los problemas de rango de accin se pasa a utilizar comunicaciones


va GPRS/GSM como en los ejemplos [1] y [2]. Este tipo de comunicaciones tiene
rango de accin muy elevado puesto que dependen de la red de telefona mvil, es
decir, que siempre y cuando exista cobertura las comunicaciones sern viables. El
ejemplo [5] es una placa que incorpora este tipo de comunicaciones e incorpora
un GPS para sistemas de posicionamiento.

A continuacin se detallan los robots anteriormente mencionados.

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Introduccin

1.1.1 MGM 1

Este robot se realiz como proyecto en Junio 2005 en la universidad Tshwane


University of Technology. Dicho robot se realiz con la colaboracin de un
operador mvil local, MTN, con el fin de utilizarlo como publicidad del operador
para mostrar al pblico nuevos servicios mejorar su demanda y popularidad.
El robot MGM1 se controla de manera remota mediante un dispositivo de
telefona mvil utilizando GPRS y es capaz de enviar y recibir SMS (Short
Message Services) y MMS (Multimedia Messaging Services).

Figura 1. Diseo MGM1 [1]

El robot se utiliz para mostrar al pblico la importancia del servicio GSM


ofrecido por el operador y como utilizarlo.

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Introduccin

1.1.2 GIRAA_02

Este robot surge a raz de un proyecto realizado en la Universidad Tecnolgica de


Pereira, Colombia. Se busca estudiar las aplicaciones de GPRS para control de
robots, con el fin de poder controlar el robot a travs de la telefona mvil para no
hacer uso de trayectorias automticas. Dicho estudio se realiza en el robot mvil
Giraa_02 que posee 8 sensores de ultrasonido SRF04 y 8 de infrarrojo GP2D120
para medir distancia. Su sistema de procesamiento de datos est basado en el
microcontrolador Motorola MC9S12DP256 de 16 bits.

Figura 2. Diseo robot Gira_002 [2]

Este vehculo posee un mdulo de comunicacin inalmbrica por RF (Radio


Frecuencia), el cual permite la comunicacin con un ordenador a travs de un
puerto serie va RS-232.

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Introduccin

1.1.3 4WD1

El control del robot 4WD1 se realiza desde un dispositivo de telefona mvil con
sistema operativo Symbian. Las rdenes se realizan a travs del teclado y se
envan mediante tecnologa Bluetooth a la placa PIC-IO, la cual tiene 4 rels de
salida a travs de los cuales se controla el movimiento de las ruedas. La placa
PIC-IO realiza sus funciones gracias a un micro PIC16F628 el cual recibe
comandos va RS-232.

(a)

(b)

Figura 3.Base de robot 4WD1 (a) y placa de desarrollo PIC-IO (b) [3]

1.1.4 WI-FI ROBOT

Este robot surge con la intencin de hacer un coche de control remoto que se
pueda dirigir desde un ordenador. Utiliza un router Linksys WRT54GL, el cual se
ha modificado para aadirle dos puertos serie. Las funciones de control del robot
(avance, retroceso, giro izquierda y derecha) se realizan a travs de un
PIC16F628A, que est a la vez conectado a una placa Arduino Freeduino
MaxSerial, basada en un microcontrolador ATmega168, a travs de la cual se
realizan las conexiones con el router.

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Introduccin

Figura 4. Diseo Wi-Fi robot [4]

Tambin incorpora una cmara que transmite video al ordenador para poder
dirigir el robot. La distancia de alcance mximo que se pudo conseguir
experimentalmente fueron unos 500 m.

1.1.5 GPS/GPRS/GSM MDULO V2.0

Esta placa es un producto de DFRobot. Tiene capacidad para gestionar conexiones


GPS/GPRS/GSM. Dota al robot y al sistema de control con la capacidad de
mandar SMS y de usar la red GSM.

Figura 5. Placa GPS/GPRS/GSM Mdulo v2.0 [5]

Se controla mediante comandos AT (GSM07.07 ,07.05). El diseo permite


controlar las funciones de GSM y GPS directamente desde el ordenador. Incluye
antena para GPS y GSM.

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Introduccin

1.2 MOTIVACIN DEL PROYECTO

La necesidad de cambiar el sistema de comunicaciones del robot 4x4 surge al


perder contacto con l, si se aleja ms de una determinada distancia (100 m),
debido a la limitacin del Wi-Fi en espacios abiertos. Se requiere contacto con el
robot 4x4 desde cualquier lugar, por lo que la solucin adquirida es implantar un
nuevo sistema de comunicaciones basado en GSM. Este sistema funcionar
siempre y cuando exista cobertura de la red mvil.

Con este cambio se consigue que la infraestructura utilizada para las


comunicaciones sea menor, puesto que slo es necesario un dispositivo de
telefona mvil que es ms pequeo y manejable para el transporte, cabe en un
bolsillo, que un ordenador con el router necesario para la conexin Wi-Fi.

El principal problema que se presenta al realizar este cambio, es que se quiere


usar una estructura basada en un microcontrolador dsPIC33, puesto que es la
utilizada en el robot 4x4, y como no se ha encontrado ninguna estructura ya
realizada, surge la idea de este proyecto.

1.3 OBJETIVOS

El objetivo principal es el diseo de la infraestructura necesaria para las


comunicaciones y la localizacin de un vehculo. Como se coment al inicio de la
introduccin, se va a utilizar la estructura del robot 4x4 por lo que a continuacin
se exponen los objetivos particularizados.

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Introduccin
Es necesario implantar un nuevo sistema de comunicaciones, basado en
tecnologa GSM, en un robot 4x4 para poder controlarlo de manera remota sin
estar limitado por la distancia. Como objetivo secundario se plante la integracin
de una pantalla tctil que permite monitorizar el estado del robot 4x4 en todo
momento y, modificar parmetros de control sin tener que recurrir a un ordenador.

Para permitir la localizacin del robot 4x4 es necesario un GPS. No es


absolutamente necesario puesto que el robot 4x4 ya cuenta con un dispositivo
GPS que se puede utilizar, pero se resulta conveniente la instalacin de este nuevo
GPS porque ofrece ciertas ventajas respecto al integrado en la estructura del robot,
es ms pequeo y del mismo fabricante que el resto de las tarjetas.

1.4 RECURSOS

Los recursos utilizados en este proyecto se pueden dividir en dos grandes


subconjuntos: hardware y software.

1.4.1 RECURSOS HARDWARE

PIC32 USB Starter Kit II, MICROCHIP:

Figura 6. Tarjeta PIC32 USB starter kit II

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Introduccin

MULTIMEDIA EXPANSION BOARD (MEB), MICROCHIP:

Figura 7. MEB

M2M PICtail DAUGHTER BOARD, MICROCHIP:


Esta tarjeta dispone de dos mdulos u-blox, uno GPS y otro GSM/GPRS.

Figura 8. M2M Daughter Board

Tarjeta de Control de Sensores v4.0 (TCS4):

Figura 9. Tarjeta de Control de Sensores v4.0 (TCS4)

Dispositivo de telefona mvil con tarjeta SIM

Ordenador

Dos fuentes de tensin de 12 V.

Equipo de soldadura: Soldador con estao, pinzas.


9

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Introduccin

1.4.2 RECURSOS SOFTWARE

MPLAB IDE v8.87, para programar PIC32 USB starter KIT y MEB.

Microsoft Visual Studio 2010, para programar TCS4.

1.5 METODOLOGA

Para ayudar a entender los pasos que se han seguido para cumplir los objetivos del
proyecto se muestra en la Figura 10 la arquitectura inicial del robot 4x4 de la que
se parti. La parte de esta estructura que interesa es la contenida en el cuadro azul.
Se observa que todos los dispositivos estn comunicados con la TCS4 y
controlados desde ella.

Figura 10. Arquitectura inicial robot 4x4 [6]

Como se muestra en la arquitectura final, Figura 11, la TCS4 se comunica con el


PIC32 y este es el que se encarga de controlar el resto del mdulo de las
comunicaciones y la pantalla tctil.

10

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Introduccin
Por ello, lo primero que se realiz fue la integracin de la MEB (pantalla tctil)
con dicho PIC32 (Figura 11, cuadro rojo) y la programacin de la interfaz. La
pantalla es necesaria para modificar parmetros in situ y monitorizar las variables
del robot.

Figura 11. Arquitectura final robot 4x4.

A continuacin se implementaron las comunicaciones entre el PIC32 con la M2M


Board (Figura 11, cuadro azul), la cual permite, utilizando los comandos AT
apropiados, la transferencia de datos al dispositivo de telefona mvil. Tambin
obtiene la posicin a travs del GPS.

Una vez implementadas las comunicaciones bsicas entre el PIC32 y un


dispositivo de telefona mvil, se procedi a la conexin del sistema con la TCS4,
que utiliza un dsPIC33, a travs de un mdulo I 2C. La TCS4 acta como maestro
del bus y sirve como puente para retransmitir al esclavo las instrucciones que se
envan desde un PC utilizando un driver programado en C++.

Tras la implementacin de todas las comunicaciones se han realizado las pruebas


necesarias para comprobar el correcto funcionamiento utilizando un ordenador
para observar los datos recibidos en la TCS4.
11

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Introduccin
Por ltimo, se procedi a la documentacin del trabajo realizado para cumplir los
objetivos (ver 1.3) planteados al inicio del proyecto.

12

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Comunicaciones

Captulo 2 COMUNICACIONES
Con este captulo se pretende explicar la estructura y las comunicaciones entre las
distintas tarjetas utilizadas para implementar las nuevas comunicaciones del robot
4x4.

2.1 ESQUEMA

DE

LA

ARQUITECTURA

DE

LAS

COMUNICACIONES

En la seccin 1.5 se explic en grandes rasgos el procedimiento seguido para la


implementacin de las comunicaciones. En la Figura 12 se muestra un esquema
de los recursos hardware utilizados y la manera en la que estos se comunican para
conseguir las viabilidad de la transferencia de datos.

Pantalla tctil MEB

SPI
I2C

RS-232

pic32

TCS4

RS-232

GSM

GSM y GPS

Figura 12.Arquitectura de las comunicaciones implementadas

13

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Comunicaciones
El intercambio de datos entre un microcontrolador y sus perifricos puede ser de
dos formas: serie o paralelo.

La comunicacin paralelo enva informacin simultneamente, es decir


varios bits, lo que supone un mayor ms coste por necesitar mayor
cableado adems de ser necesario ms pines del microcontrolador lo que
supone una limitacin.

La comunicacin serie hace todo lo contrario, enva los bits por separado
uno detrs de otro.

La comunicacin serie puede ser a su vez de dos formas: sncrona o asncrona.

Cuando es sncrona existe una seal de reloj que sincroniza los dos
sistemas a comunicar. El esclavo no tiene una base de tiempos propia
puesto que la recibe del maestro. En este proyecto son de este tipo la
comunicacin I2C (Inter-Integrated Circuit, en ingls) y SPI (Serial
Peripheral Interface, en ingls).

Cuando es asncrona no existe dicha seal de reloj, por lo que es necesario


la sincronizacin de los dispositivos de manera hardware o software. En
este proyecto, RS-232.

La comunicacin GSM (Global System for Mobile Communications, en ingls)


es un estndar de segunda generacin, las comunicaciones se realizan de manera
digital, que permite la transferencia de datos de volumen bajo, entre ellos SMS
(Short Messages Services, en ingls).

Ahora se va a proceder a explicar de manera ms detallado y aplicndolo


directamente al proyecto algunos de los distintos tipos de comunicacin.

14

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Comunicaciones

2.2 INTER-INTEGRATED CIRCUIT (I2C)

El I2C es un bus de comunicaciones serie half-dplex 1 sncrono de dos lneas. El


bus I2C permite la comunicacin entre varios dispositivos, todos conectados en
paralelo a las dos lneas.

La transferencia de datos siempre se realiza entre dos dispositivos en una relacin


maestro-esclavo. Para que la comunicacin se realice con xito se deben respetar
algunas caractersticas:

La transferencia de datos se lleva a cabo mediante dos lneas, la de datos


(SDA), que es bidireccional, conduce informacin entre el maestro y el
esclavo y la del reloj (SCL), unidireccional siendo salida en el maestro,
que sincroniza los datos que viajan por la otra.

El maestro es quien toma la iniciativa de la comunicacin, es decir quien


genera la seal de reloj y controla cuando se envan o se reciben datos.

Pueden existir varios esclavos en la red por lo que cada esclavo debe estar
identificado por una direccin nica.

El bus I2C se ha utilizado para comunicar el dsPIC33 de la TCS4 (maestro) y el


PIC32 (esclavo).

Significa que la comunicacin es bidireccional pero no simultnea.

15

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Comunicaciones

2.2.1 ESTRUCTURA DEL MDULO Y PROTOCOLO


Se va a proceder a explicar la estructura del mdulo I 2C en ambos
microcontroladores y el protocolo seguido para la transmisin de datos.

2.2.1.1 Registros
Los registros asociados al mdulo I2C son los siguientes: I2CxCON, I2CxSTAT,
I2CxRCV, I2CxTRN, I2CxADD y I2CxBRG.
2.2.1.1.1 I2CxCON
Es un registro de control de I2C formado por varios bits que permiten configurar
distintas funciones entre ellos habilitar el mdulo. Todos lo bits del registro son de
lectura y escritura.
2.2.1.1.2 I2CxSTAT
Registro de estado de I2C que contiene banderas que indican eventos durante el
funcionamiento del mdulo. Si es microcontrolador funciona como esclavo en
este registro se encuentro los bits de estado para saber si se est recibiendo o
enviando informacin y si la informacin son datos o una direccin.
2.2.1.1.3 I2CxTRN
Es el registro de transmisin. Se utiliza tanto cuando se transmite como maestro
como cuando el esclavo enva una respuesta al maestro. Enva el mensaje bit a bit,
por lo que slo se puede escribir cuando el bus no est ocupado.
2.2.1.1.4 I2CxRCV
La informacin recibida tanto por el maestro como por el esclavo se almacena en
un registro no accesible, I2CxRSR. Cuando se ha completado la recepcin de un
byte, este se transfiere al registro I2CxRCV para poder acceder a ella. Es un
registro de slo lectura.

16

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Comunicaciones
2.2.1.1.5 I2CxADD
Es el registro donde se almacena la direccin del esclavo. Tiene 10 bits.
2.2.1.1.6 I2CxBRG
En este registro se establece la velocidad de transmisin y el valor que debe tener
ese registro se calcula segn la ecuacin:
[(

dnde:
FSCL: Frecuencia del reloj I2C deseada
PGD: Pulse Gobbler Delay, especfica para cada micro.
FCY: Frecuencia del oscilador

NOTA: I2CxBRG no puede ser un valor menor de 2

Los valores ms utilizados son 100 kHz, 400 kHz y 1 MHz. El registro tiene 9 bits
en el dsPIC33 y es el que interesa puesto que al ser el maestro es el que va a
generar la seal de reloj.

2.2.1.2 Pines
El mdulo I2C utiliza slo dos pines, uno para el reloj SCL y otro para datos SDA.

2.2.1.2.1 dsPIC33FJ32MC202
El microcontrolador que acta como maestro dispone de 1 mdulo I 2C y sus
correspondientes pines son SCL, pin 17 y SDA, pin 18.

17

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Comunicaciones

Figura 13. Pines de dsPIC33FJ32MC202 [7]

2.2.1.2.2 PIC32MX795F512L
El microcontrolador que acta como esclavo dispone de 3 mdulos I 2C y se ha
elegido el primero, y sus correspondientes pines son SCL, pin 66 y SDA, pin 67.

Figura 14. Pines de PIC32MX795F512L [11]

18

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Comunicaciones
No todos los pines del PIC32 estn accesibles y los que s, lo estn a travs de un
conector disponible en la MEB que permite la utilizacin de distintas Microchip
PICtailTM. Daughter Boards, para este proyecto se ha utilizado la M2M Daughter
Board.

Figura 15. Imagen de conector disponible en MEB [12]

Como el conector disponible en la MEB es de tipo hembra para acceder a los


pines del mdulo I2C del PIC32 se han soldado 3 cables (uno para la lnea SCL
(pin 4), otro para SDA (pin 6) y otro para la tierra (pin 28)) al conector macho de
la M2M Board. Estos cables en su otro extremo disponen de una clavija que
permite conectar los cables a la TCS4.

Figura 16. Diagrama de pines accesibles del PIC32 en el conector de la MEB [12]

19

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Comunicaciones

2.2.1.3 Maestro
El maestro en este caso es el microcontrolador de la TCS4 que es el
dsPIC33FJ32MC202. Se va a explicar resumidamente el protocolo I 2C seguido en
la transmisin y recepcin de datos desde el punto de vista del maestro. Se van a
utilizar direcciones de 7 bits.

1. El primer paso para iniciar una transferencia de datos es imponer la


condicin necesaria a SDA y SCL. El maestro enva el bit de inicio,
SEN=1, que consiste en una bajada de la lnea de datos (SDA) mientras el
reloj est en reposo a nivel alto.
2. Enviar la direccin del esclavo con el cual se quiere comunicar en los 7
bits ms altos del registro I2CxTRN, estando el bit 0 (R/ ) reservado
para indicar si el maestro va a transmitir o espera respuesta. Para transmitir
desde el maestro R/ =0.
3. Si el esclavo reconoce la direccin, enviar un acknowledge en el noveno
ciclo de reloj. El maestro enva ahora el mensaje byte a byte comprobando
que se ha producido el correspondiente acknowledge de la comunicacin
previa a cada envo.
4. Llegada la comunicacin a este estado se pueden producir dos eventos.
a. El maestro no espera respuesta por lo que enva un bit de parada,
PEN=1, que consiste en una subida de la lnea de datos (SDA)
mientras el reloj est en reposo a nivel alto. Y se termina la
comunicacin.
b. Si el maestro espera respuesta se produce de nuevo la condicin
inicial.
5. Se enva de nuevo la direccin del esclavo, con el bit R/ =1.
6. Si se recibe acknowledge, se habilita la recepcin del maestro, RCEN=1.
7. Cada vez que se recibe un byte se debe enviar informacin al esclavo de si
se va a seguir recibiendo datos o no.

20

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Comunicaciones
a. Si se quiere seguir recibiendo se transmite un acknowledge,
ACKDT=0 y ACKEN=1.
b. Si no se quiere seguir recibiendo se transmite un not acknowledge,
ACKDT=1 y ACKEN=1.
8. Al finalizar la recepcin de datos se enva el bit de parada.

2.2.1.4 Esclavo
El esclavo en este caso es el microcontrolador PIC32MX795F512L.
Se va a explicar resumidamente el protocolo I 2C seguido en la transmisin y
recepcin de datos desde el punto de vista del esclavo. Se van a utilizar
direcciones de 7 bits.

Se pueden dar dos casos:

Maestro emisor y esclavo receptor


Maestro receptor y esclavo emisor

En cualquiera de los dos casos el control del reloj lo tiene el maestro, la diferencia
radica en el sentido de flujo de la lnea de datos.

2.2.1.4.1 Esclavo receptor


El proceso que se sigue para la recepcin de datos es el siguiente:

1. El esclavo detecta condicin de inicio de transmisin enviada por el


maestro y activa la bandera S (Start bit) y desactiva la bandera P (Stop bit)
del registro I2CxSTAT lo que permite la recepcin de la direccin del
esclavo. Se habilita tambin la retencin del reloj (STREN=1)

21

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Comunicaciones
2. Si la direccin recibida coincide con la del esclavo, detecta el valor del bit
R/ que especifica el sentido de la transmisin de datos. En este caso,
para que el esclavo trabaje como receptor se recibe R/ =0. Y como el
ltimo dato recibido era una direccin el bit D/ =0 y se prepara para la
recepcin de datos. Enva un acknowledge al maestro.
3. Cuando se han recibido 8 bits se envan al registro I2CxRSR y la bandera
RBF se pone a uno para detener el reloj y dar tiempo al usuario a leer los
datos sin que el maestro siga enviando datos y produzca un
desbordamiento. Se produce un acknowledge.
4. Los datos recibidos se transfieren al registro I2CxRCV, y el bit D/ se
pone a 1 para indicar datos recibidos. Se borra la bandera RBF y se libera
el reloj, SCLREL=1
5. El proceso se repite infinitamente hasta que se produzca la condicin de
fin de comunicacin, cuando se borra S y se activa P poniendo fin a la
recepcin de datos.

2.2.1.4.2 Esclavo emisor


El proceso que se sigue para enviar la respuesta si es esperada por el maestro es el
siguiente:

1. El esclavo detecta la condicin de inicio o de reinicio segn el caso.


2. Se recibe la direccin con el bit R/ =1 que indica que el maestro espera
respuesta. Se retiene el reloj.
3. Se escribe el dato que se quiere enviar en I2CxTRN y se activa la bandera
TBF.

4. Se libera el reloj y se produce la transmisin de datos. Cuando la


transmisin se completa se borra la bandera TBF.

22

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Comunicaciones
5. Ahora se pueden producir dos situaciones:
a. El esclavo detecta un acknowledge del maestro indicando que la
transmisin de datos no se ha completado. Se detiene el reloj y se
vuelve a enviar otra trama.
b. EL esclavo detecta un not acknowledge del maestro indicando que
la transmisin de datos se ha completado. No se detiene el reloj ni
se envan ms datos.
6. Se reconoce el bit de parada.

2.2.2 PROGRAMACIN DE LOS MICROCONTROLADORES


Para el uso del mdulo I2C se ha utilizado el cdigo desarrollado en [6],
aadiendo lo necesario para cumplir los objetivos de este proyecto. Se va a
explicar el proceso seguido por el cdigo para la transferencia de datos tanto en el
maestro como en el esclavo.

El cdigo desarrollado en [6] est pensado para un entorno con un nico maestro
y muchos esclavos. Y es vlido tanto para el maestro como para el esclavo
modificando un parmetro en el archivo I2C.h

#define _MAESTRO_ // Opciones de compilacin: _MAESTRO_ y _ESCLAVO_

Cdigo 1. Opciones de configuracin del mdulo I2C

23

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Comunicaciones
Para facilitar la portabilidad del cdigo tambin tiene definidos una serie de
constantes como frecuencias de trabajo, prioridades, tamaos de colas,
direcciones, cdigos de instruccin y valores lgicos.

2.2.2.1 Maestro

El mdulo maestro funciona como un puente entre el ordenador y el esclavo. La


TCS4 recibe una comunicacin para el bus I 2C a travs de la UART y llama a la
funcin EnlaceI2C, que hace saltar la interrupcin que controla el protocolo. Si se
espera respuesta por parte del esclavo, el maestro la coloca directamente en la cola
de transmisin de la UART para enviarla al PC mediante la funcin
PonerI2CenColaUART.

Figura 17. Diagrama de flujo simplificado del mdulo maestro [6]

No se profundiza ms en la parte del cdigo del maestro porque el uso de esta


parte del cdigo es a nivel de usuario.

24

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Comunicaciones

2.2.2.2 Esclavo
En el esclavo, la interrupcin gestiona el proceso y llama a la funcin
ProcesarMensajeI2C

para preparar la respuesta. Cuando la instruccin recibida no

espera respuesta se debe llamar a la funcin de procesamiento desde el bucle de


scan.

Figura 18. Diagrama de flujo simplificado del mdulo esclavo [6]

2.2.2.2.1 Constantes

Se han definido una seria de constantes para hacer el cdigo ms legible. Estas
constantes definidas son frecuencias de trabajo, prioridades, tamaos de colas,
direcciones, cdigos de instruccin y valores lgicos.

25

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Comunicaciones

// Frecuencias de trabajo
#define FSCL 400000 // Velocidad de transmisin del bus I2C en Hz (mx. 1
MHz)
// Sentido del flujo de informacin
#define ESCLAVO_TR 1
// Esclavo emisor
#define ESCLAVO_REC 0
// Esclavo receptor

// Tipo de informacin enviada


#define DIRECCION 0
#define DATOS 1
// Respuesta esperada? (S/N)
#define RESP_SI 1
#define RESP_NO 0
// Tamao de los vectores y colas
#define TAM_TR_I2C 125
// Cola de transmisin
#define TAM_REC_I2C 125
// Cola de recepcin
#define TAM_MED_GPS 85
// Tamao mximo de las medidas del GPS
// Prioridad de las interrupciones
#define PR_INT_I2C 6
// Direccin
#define DIR_GPS 0x0A
// Instrucciones
#define INST_COORD 5
#define INST_HORA 1
#define INST_FECHA 2
#define INST_SMS 4
#define PING 13
#define INST_SMS_COORD 7
// Instrucciones GSM+PC
#define INST_GSM
8
#define INST_GSM_NADA
9
#define INST_GSM_COORD 10

Cdigo 2. Constantes definidas en el mdulo I2C

26

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Comunicaciones
2.2.2.2.2 Estructura de los datos
Cada vez que se quiere enviar informacin se debe llamar a la funcin de
transmisin correspondiente. En ella se estructuran los datos que se quieren
enviar. La informacin transferida en cualquiera de los dos sentidos debe tener
una estructura determinada para que se pueda procesar.

Direccin

Respuesta
esperada

Nmero de
caracteres

Instruccin

Parmetros

Figura 19. Estructura datos I2C enviada por el maestro.

Por ejemplo la estructura que se enva cuando se llama a la funcin de transmisin


PING es la siguiente.

void CComunicaI2C::PingI2C(const BYTE &b_direccion)


{
PonerEnColaTransmisionI2C(b_direccion); // Direccin del dispositivo
PonerEnColaTransmisionI2C(RESP_SI);
// Espera respuesta: S
PonerEnColaTransmisionI2C(1);
// Nmero de caracteres de datos
PonerEnColaTransmisionI2C(INST_PING_I2C); // Instruccin
}

Cdigo 3. Ejemplo de funcin de transmisin

2.2.2.2.3 Funcin de inicializacin


Como ya se explic en 2.2.1.2.2 el esclavo es un PIC32 y se han adaptado los
registros de la funcin de inicializacin a su estructura. Se ha de tener cuidado de
inicializar el mdulo I2C antes de la UART tal y como se advierte en [6]

27

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Comunicaciones
Al ser el esclavo se debe indicar cul va a ser la direccin del bus del esclavo, la
cual se almacena en la variable esttica global al mdulo
uc_direccion.

static unsigned char

Se ha activado la retencin del reloj y se ha limpiado la bandera de

desbordamiento del buffer de lectura I2COV.

void InicializarEsclavoI2C(unsigned char uc_direccion)


{
I2C1ADD = uc_direccion;
// Direccin como esclavo
I2C1CONbits.SIDL = 0;
I2C1CONbits.STRICT =
Interface (siempre para
I2C1CONbits.A10M
=
I2C1CONbits.DISSLW =
400 kHz)
I2C1CONbits.SMEN
=
I2C1CONbits.STREN
=
recepcin (Esclavo)
I2C1CONbits.GCEN
=
generales
I2C1CONbits.SCLREL =
I2C1CONbits.ON
=
I2C1STATbits.I2COV
lectura

0;
el
0;
0;

// Continuar funcionando en modo suspensin


// Deshabilitar Intelligent Peripheral Management
maestro)
// Direcciones de 7 bits (A10M = 1 para 10 bits)
// Habilitar el control del slew-rate (slo para

0; // Deshabilitar niveles SMbus


1; // Habilitar la suspensin de la transmisin en la
0; // Deshabilitar las interrupciones para mensajes
1; // Transmisin inicialmente despierta (Esclavo)
0; // Mantener el mdulo I2C apagado

= 0; // Limpiar el flag de overflow del buffer de

IPC6bits.I2C1IP = PR_INT_I2C; // Prioridad de la interrupcin del maestro


(mx. 7 - mn. 1)(PR_INT_I2C=6)
IFS0bits.I2C1SIF = 0;
// Borrar la bandera de la interrupcin
IEC0bits.I2C1SIE = 1;
// Habilitar la atencin de las interrupciones del
maestro
}

Cdigo 4. Funcin de inicializacin del mdulo esclavo de I2C.

2.2.2.2.4 Interrupcin
La interrupcin salta por 3 razones distintas:

Detecta su direccin del esclavo

Recibe datos

Recibe un acknowledge del maestro pidiendo el envo de un byte de datos

28

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Comunicaciones
2.2.2.2.5 Funcin de procesamiento de datos
La funcin que se encarga de procesar los mensajes realiza la accin pertinente en
funcin de la instruccin recibida. En el Cdigo 5 se muestra como ejemplo la
respuesta que se procesa cuando se detecta la instruccin correspondiente al
PING. En este caso, cuando se detecta la direccin del PING simplemente se
enva de vuelta el nmero de caracteres, la direccin del esclavo que responde, la
instruccin a la que se responde y la respuesta que en este caso es 7 lo cual
indica que el esclavo est activo.

void ProcesarMensajeI2C(void)
{
unsigned char uc_instruccion;
DeshabilitarInterrupcionesEsclavoI2C();
if (u_procesar_mensaje_habilitado)
{
while (ui_icola_rec != ui_icabeza_rec)
{
uc_instruccion = SacarDeColaRecepcionI2C();
interrupcion=1;
switch (uc_instruccion)
{
case PING:
// Ping
PonerEnColaTransmisionI2C(3);
//
PonerEnColaTransmisionI2C(DIR_GPS);//
PonerEnColaTransmisionI2C(PING);
//
PonerEnColaTransmisionI2C(7);
//
break;
}

Nmero de caracteres
Direccin
Cdigo de instruccin
Respuesta

}
}
HabilitarInterrupcionesEsclavoI2C();
}

Cdigo 5. Funcin de procesamiento de mensajes del mdulo I 2C del esclavo

29

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Comunicaciones

2.2.3 APLICACIN DEL MDULO I2C EN LA PROGRAMACIN


Para el uso del mdulo I2C se ha utilizado el driver propuesto en [6]. Dicho driver
est pensado para la comunicacin con todos los sensores y actuadores
disponibles en el robot 4x4. En este caso se van a utilizar las funciones para
obtener las coordenadas GPS.

El maestro se encarga de iniciar la comunicacin y de pedir la informacin que


quiere, el esclavo procesa la informacin y si el maestro espera respuesta prepara
el mensaje de vuelta y cuando el maestro lo permita la enva.

2.2.3.1 Funciones del maestro


2.2.3.1.1 Inicializacin de la comunicacin
La comunicacin la inicia el maestro y lo primero para comenzar una transmisin,
es crear una variable de tipo CComunicaI2C. A partir de ahora dicha funcin se
denominar comunica.

Con esto, todas las instrucciones que se quieran enviar deben ir encerradas entre
las funciones inicio() y comunica().

CComunicaI2C comunica;
comunica.inicio();
// Funciones
comunica.comunica();

Cdigo 6.Estrucura de una transmisin de CComunicaI2C

30

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Comunicaciones
Si alguna de las comunicaciones espera respuesta, sta se procesa y se almacena
en variables privadas que se pueden leer con unas funciones habilitadas a tal
efecto que se explican ms adelante.

2.2.3.1.2 Funciones para pedir coordenadas GPS


El GPS proporciona una gran cantidad de informacin y a pesar de que la funcin
para pedir dicha informacin es la misma, existen varias funciones que permiten
acceder slo a la informacin que interese en cada momento.

// Funcin de peticin
void LeerCoordenadasGPS(void);

// Funciones de lectura
std::vector<double> GetCoordenadasGPS(void) const;
double GetLatitudGPS(void) const;
double GetLongitudGPS(void) const;
unsigned int GetSatelitesGPS(void) const;
bool GetPosicionGPSValida(void) const;

Cdigo 7. Prototipos de las funciones asociadas a las coordenadas en el maestro

GetCoordenadasGPS: Devuelve un vector de tipo double en el que el primer


elemento es la latitud y el segundo, la longitud, ambas en grados.
GetLatitudGPS: Devuelve la latitud en grados en formato double.
GetLongitudGPS: Devuelve un double con la longitud en grados.
GetSatlitesGPS: Devuelve el nmero de satlites con el que se han calculado las
coordenadas.
PosicionGPSValida: Indica si las coordenadas proporcionadas por el GPS son
vlidas (true) o no (false).

31

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Comunicaciones
Ejemplo de comunicacin para acceder a las coordenadas GPS
Un ejemplo sencillo en que el maestro pide las coordenadas GPS y las
coordenadas GPS se guardan en una variable tipo double denominada
vd_coordenadas.

com.inicio();
com.LeerCoordenadasGPS();
com.comunica();
std::vector<double> vd_coordenadas;
vd_coordenadas = com.GetCoordenadasGPS();

Cdigo 8. Ejemplo de comunicacin para pedir coordenadas por parte del maestro

2.2.3.1.3 Otras funciones del maestro


Se ha explicado el manejo del mdulo I 2C mediante el uso de la funcin necesaria
para obtener la informacin proporcionada por el GPS. El mdulo I 2C adems
dispone de otras funciones que permiten gestionar el envo de informacin.

void LeerCoordenadasGPS(void);
void EnviarSMS(const BYTE &b_direccion, const std::string s_mensaje, const
std::string s_numero);
void DatosGSM(const BYTE &b_direccion);

Cdigo 9. Funciones del mdulo I2C del maestro

LeerCoordenadasGPS: Funcin que pide la informacin de GPS.


EnviarSMS: Funcin que pide el envo de un SMS, como parmetros se enva el
nmero de telfono al que se quiere enviar el SMS y el texto del mismo.
DatosGSM: Funcin que pide la informacin disponible para la TCS4 enviada
desde el telfono mvil.

32

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Comunicaciones

2.2.3.2 Funciones del esclavo


El esclavo se encarga de procesar la informacin recibida por el maestro cuando
detecta la direccin que tiene asociada. En el caso de detectarla salta una
interrupcin

si

el

maestro

espera

respuesta

llama

la

funcin

ProcesarMensajeI2C para prepararla.

Ejemplo en el que se prepara el mensaje con las coordenadas GPS.


El procedimiento seguido en el esclavo para preparar la respuesta con las
coordenadas es el siguiente.

Cuando se detecta la instruccin INST_COORD que es la asociada a las


coordenadas GPS se activa la bandera interrupcin que se explicar su utilidad
ms adelante. El siguiente paso es llamar a la funcin GetCoordenadasGPS,
Cdigo 11, que devuelve el nmero de caracteres que se van a enviar de vuelta y a
la vez da la forma necesaria al mensaje. Una vez que se conoce el nmero de
caracteres y se tiene el mensaje con el formato correcto se van aadiendo, carcter
a carcter, los datos a la cola de transmisin para ser enviados de vuelta al maestro
cuando lo requiera.

33

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Comunicaciones

void ProcesarMensajeI2C(void)
{
unsigned char uc_instruccion;
unsigned int ui_num_caracteres = 0;
int i;
DeshabilitarInterrupcionesEsclavoI2C();

if (u_procesar_mensaje_habilitado)
{
while (ui_icola_rec != ui_icabeza_rec)
{
uc_instruccion = SacarDeColaRecepcionI2C();
interrupcion=1;
switch (uc_instruccion)
{
case INST_COORD:
// Pedir GPS
ui_num_caracteres = GetCoordenadasGPS();
PonerEnColaTransmisionI2C(ui_num_caracteres);
for (i = 0; i < ui_num_caracteres; i++)
PonerEnColaTransmisionI2C(c_medidasGPS[i]);
break;
}
}
interrupcion=0;
HabilitarInterrupcionesEsclavoI2C();
}

Cdigo 10. Funcin ProcesarMensajeI2C para el caso de las coordenadas GPS

La funcin GetCoordenadasGPS da el formato adecuado a las coordenadas GPS


para poder enviarlas a travs del mdulo I 2C y esa es la parte del cdigo que se
Respuesta

Nmero de

Direccin 11. Esta funcin, cuando Instruccin


muestra en Cdigo
la bandera Parmetros
interrupcin est
esperada
caracteres
desactivada, actualiza las coordenadas GPS y se guardan en la variable

coordenadasGPS siguiendo la estructura mostrada en la Figura 20.

Direccin

Instruccin

DIR_GPS

INST_COORD

Coordenadas

00.0000N000.0000E

Nmero de
satlites

06

Figura 20.Estructura datos I2C enviada por el esclavo.

34

Bit de
confirmacin

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Comunicaciones
En cambio cuando la bandera interrupcin est activada, es decir se est
procesando la respuesta para el maestro, simplemente realiza una copia de la
variable coordenadasGPS a c_medidasGPS y devuelve el nmero de caracteres de
este vector para que el maestro sepa cmo de larga es la respuesta y no termine la
transmisin de datos sin que el mensaje se haya completado.
unsigned int GetCoordenadasGPS(void)
{
GPS_DATA_RMC *rmc;
static int d=0, m, s;
double grados, minutos;
unsigned int numero_caracteres=0;
int i;
if(interrupcion==0)
{
ubxUpdateGpsContext(GPS_C_RMC);
rmc = gpsGetRMC();
coordenadasGPS[0]=DIR_GPS;
coordenadasGPS[1]=INST_COORD;
coordenadasGPS[2]=0;
sprintf(coordenadasGPS,"%s",coordenadasGPS);
if (rmc->lat && rmc->lon)
{
gpsDecimalToDMS(rmc->lat, &d, &m, &s);
grados = (float)d;
minutos = (float)m;
minutos += ((float)s/60);
sprintf(coordenadasGPS, "%s%02.0f%2.4f%s", coordenadasGPS, grados,
minutos, rmc->lat_ns);
gpsDecimalToDMS(rmc->lon, &d, &m, &s);
grados = (float)d;
minutos = (float)m;
minutos += ((float)s/60);
sprintf(coordenadasGPS, "%s%03.0f%2.4f%s", coordenadasGPS, grados,
minutos, rmc->lon_ew);
}
sprintf(coordenadasGPS,"%s06A",coordenadasGPS);
}
if(interrupcion==1)
{
strcpy(c_medidasGPS,coordenadasGPS);
numero_caracteres = strlen(c_medidasGPS);
}
return(numero_caracteres);
}

Cdigo 11. Funcin GetCoordenadasGPS

35

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Comunicaciones

2.3 GLOBAL SYSTEMS FOR MOBILE COMMUNICATIONS

La red GSM es un sistema estndar de segunda generacin (2G) usado para la


comunicacin entre telfonos mviles basada en la tecnologa digital. Al ser
digital permite que cualquier usuario pueda conectarse a travs del telfono a su
PC, permitindole interactuar por e-mail, acceder a Internet y acceso seguro a
redes LAN.

El estndar GSM tiene un rendimiento mximo de 9,6 kbps, que permite


transmisiones de voz y de datos digitales de volumen bajo, por ejemplo, mensajes
de texto denominados SMS (Short Message Service, en ingls) o mensajes
multimedia, MMS (Multimedia Messaging Service, en ingls).

2.3.1 CONCEPTO DE RED CELULAR

Las redes de telefona mvil se basan en el concepto de celdas, es decir zonas


circulares que se superponen para cubrir reas geogrficas.

Figura 21. Representacin grfica de una red celular [17]

36

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Comunicaciones
Las redes celulares se basan en el uso de un transmisor-receptor central en cada
celda, denominado estacin base, (BTS, Base Transceiver Station).
Cuanto menor sea el radio de una celda, mayor ser el ancho de banda disponible.
En una red celular, cada celda est rodeada por 6 celdas contiguas (por esto las
celdas generalmente se dibujan como un hexgono). Para evitar interferencia, las
celdas adyacentes no pueden usar la misma frecuencia. En la prctica, dos celdas
que usan el mismo rango de frecuencia deben estar separadas por una distancia
equivalente a dos o tres veces el dimetro de la celda.

2.3.2 ARQUITECTURA DE LA RED GSM

La red GSM se compone de diversos equipos:

Figura 22. Representacin grfica de la arquitectura de una red GSM [17]

1. MS (Mobile Station). Es la terminal del usuario. Est compuesta por un


dispositivo, normalmente un telfono mvil, y la tarjeta SIM que
proporciona la identidad al usuario.

37

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Comunicaciones
Cada dispositivo posee un nmero nico de identificacin de 15 dgitos
denominado IMEI (International Mobile station Equipment Identity) y cada tarjeta
SIM posee otro cdigo de identificacin denominado IMSI (International Mobile
Subscriber Identity) el cual se puede proteger con un clave de 4 dgitos llamado
cdigo PIN.

2.

BTS (Base Transceiver Station). Es un emisor/ receptor de radio capaz de


enlazar las MS con la estructura fija de la red. Las BTS garantizan la
cobertura radioelctrica en una clula, proporcionando un punto de entrada
a la red. Se pueden controlar localmente o remotamente a travs de su
BSC (Base Station Controller).

Por lo tanto, la tarjeta SIM permite identificar a cada usuario independientemente


de la terminal utilizada durante la comunicacin con la estacin base. Las
comunicaciones entre una estacin mvil y una estacin base se producen a travs
de un vnculo de radio, denominado interfaz Um.

3. BSC (Base Station Controller).Toda BTS de una red celular est conectada
a BSC, que se encarga de administrar la distribucin de los recursos. Acta
como un concentrador para el trfico de los abonados.

El sistema compuesto por BSC y BS se denomina BSS (Base Station Subsystem)


4.

MSC (Mobile Switching Centre). Es un conmutador de red encargado de


interconectar la red de telefona mvil con la red radiotelefnica. Lo
administra el operador de la red telefnica.

38

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Comunicaciones
El MSC pertenece al NSS (Network Subsystem) el cual se encarga de acceder al
centro de autentificacin y de participar en la gestin de movilidad de los
abonados y su localizacin en la red.

Generalmente, el MSC se conecta a bases de datos que proporcionan funciones


adicionales:

HLR (Home Location Register): es una base de datos que contiene


informacin (posicin geogrfica, informacin administrativa, etc.) de los
abonados registrados dentro de la zona del conmutador (MSC).

VLR (Visitor Location Register): es una base de datos que contiene


informacin de usuarios que no son abonados locales. El VLR recupera los
datos de un usuario nuevo del HLR de la zona de abonado del usuario. Los
datos se conservan mientras el usuario est dentro de la zona y se eliminan
en cuanto abandona la zona o despus de un perodo de inactividad
prolongado.

EIR (Equipment Identification Register): es una base de datos que


contiene la lista de terminales mviles.

AUC (Authentication User Center): verifica las identidades de los


usuarios.

Las redes GSM compuestas de esta manera admiten el concepto de roaming, que
es el movimiento desde la red de un operador a otra.

39

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Pantalla tctil

Captulo 3 PANTALLA TCTIL


La integracin de una pantalla tctil era uno de los objetivos del proyecto para
facilitar la tarea de conocer datos actualizados del robot 4x4 de una manera ms
cmoda, adems de permitir introducir datos.

En este captulo se explica el funcionamiento de la pantalla, mostrando las


funciones utilizadas puesto que la librera grfica aportada por Microchip es muy
extensa.

3.1

MULTIMEDIA EXPANSION BOARD (MEB)

La tarjeta Multimedia Expansion Board (MEB), Figura 7, es donde est integrada


la pantalla tctil adems de varios perifricos ms que no se han utilizado en la
elaboracin de este proyecto. Esta tarjeta no incorpora el microcontrolador pero
est provista de un conector, Figura 23, destinado a cualquier Starter Kit, y en este
caso como se coment en 1.4.1 se ha utilizado PIC32 USB Starter Kit II.

Figura 23. Conector para Starter Kit [12]

40

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Pantalla tctil
La pantalla es tctil resistiva de TFT de 3.2 con resolucin QVGA (320x240
pxeles) y lleva iluminacin incorporada. La tarjeta MEB tiene incorporado un
controlador, concretamente es Solomon Systech SSD1926, que permite la
configuracin de una interfaz de 8 16 bits con el puerto paralelo del PIC32. El
primer paso para poder programar la pantalla es el elegir el controlador correcto
en funcin de la pantalla (en este caso TFT) y del tipo de interfaz que se quiera
(en este caso 16 bits). El controlador se elegir en el archivo HardwareProfile.h

3.2 PROGRAMACIN DE LA PANTALLA

Para clarificar el funcionamiento bsico de la pantalla se ha creado un diagrama


de flujo representado en la Figura 24 en la que se muestran las distintas funciones
del cdigo que se van ejecutando para despus proceder a explicar cada una de
ellas.

Figura 24. Diagrama de bloques de la pantalla

Ahora se van a explicar las funciones utilizadas para el manejo de la pantalla.

41

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Pantalla tctil

3.2.1 FUNCIONES DE INICIALIZACIN

Estas funciones se llaman slo una vez al inicio del programa dentro de la funcin
main. Estas funciones son:

3.2.1.1 void GOLInit(void)


Inicializa la librera grfica y crea un estilo por defecto, pantalla en negro y color
para dibujar, blanco. Adems sita el cursor de dibujo en la esquina superior
izquierda (coordenadas (0,0), ver Figura 25) de la ventana grfica.

3.2.1.2 void TouchInit(void)


Habilita la funcin tctil de la pantalla.

3.2.1.3 GOL_SCHEME GOLCreateScheme(void)


Esta funcin se considera de inicializacin porque crea los estilos necesarios para
la creacin de los diversos objetos que componen la librera grfica. Debe
llamarse tantas veces como estilos se necesite crear. Inicializa los valores a unos
predeterminados y pueden modificarse desde cualquier parte del cdigo (ver
3.3.2).

3.2.2 FUNCIONES DE NAVEGACIN

Estas funciones se encuentran dentro del while(1) de la funcin main tal como se
muestra en Cdigo 12.

42

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Pantalla tctil

int main(void)
{
...
while(1)
{
........
if(GOLDraw())
{
TouchGetMsg(&msg);
GOLMsg(&msg);
}
}
}

Cdigo 12.Funciones para navegar por la pantalla

Las variables utilizadas para navegar por la pantalla son del tipo SCREEN_STATES
y se han declarado dos:

SCREEN_STATES

screenState

Pantalla actual

SCREEN_STATES

prevState

Pantalla anterior

Tabla 2. Variables SCREEN_STATES

Los valores que pueden tomar estas variables son las distintas pantallas, Cdigo
13, utilizadas para crear la interfaz y dichos valores se declaran al inicio del
programa, en este caso en el archivo Main.h

43

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Pantalla tctil

typedef enum
{
CREATE_MENU = 0,
DISPLAY_MENU,
CREATE_INFO,
DISPLAY_INFO,

CREATE_GPS,
DISPLAY_GPS,
CREATE_GSM,
DISPLAY_GSM,
CREATE_PRINCIPAL,
DISPLAY_PRINCIPAL,
CREATE_KEYPAD,
DISPLAY_KEYPAD,
CREATE_SMS,
DISPLAY_SMS
} SCREEN_STATES;

Cdigo 13.Declaracin de la variable SCREEN_STATES

Se observa que por cada pantalla existen dos variables y esto se explicar a
continuacin.

3.2.2.1 WORD GOLDraw(void)


Se encarga de comprobar el estado de todos los objetos activos y de pintarlos
enteros o parcialmente. Cuando ha terminado de dibujar los objetos llama a la
funcin GOLDrawCallBack.

44

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Pantalla tctil

3.2.2.2 WORD GOLDrawCallback()


En funcin del valor de la variable screenState actuar de una manera u otra.

Si screenState es del tipo CREATE_SCREEN:


Llama a la correspondiente CreateScreen y cambia screenState al
tipo DISPLAY_SCREEN.

Si screenState es del tipo DISPLAY_SCREEN:


No realiza ninguna accin para no tener que estar siempre dibujando la
pantalla.

El valor devuelto por esta funcin ser siempre distinto de 0 para devolver el
control de dibujo a la funcin GOLDraw.

3.2.2.3 void CreateScreen(void)


Existe una para cada pantalla que se quiera crear y contiene las estructuras para
crear los objetos. (ver 3.3.1)

3.2.2.4 void TouchGetMsg (GOL_MSG *pMsg)


Comprueba que se ha tocado la pantalla.

3.2.2.5 void GOLMsg (GOL_MSG *pMsg)


Cuando recibe que se ha producido algn evento, revisa todos los objetos activos
y comprueba cual es el que se ha visto afectado por el evento. Si el evento es
correcto llama a la funcin GOLMsgCallBack.

45

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Pantalla tctil

3.2.2.6 WORD GOLMsgCallBack (WORD objMsg, OBJ_HEADER


*pObj, GOL_MSG *pMsg)
En esta funcin debe estar programado lo que hacer cuando se produzca el evento
asociado a cada objeto. En este caso y dependiendo de la pantalla en la que se
encuentre se llama a la correspondiente funcin MsgScreen y devolver lo que
devuelva sta.

3.2.2.7 WORD

MsgScreen

(WORD

objMsg,

OBJ_HEADER

*pObj);
Comprueba el evento que se ha producido y si este lleva alguna accin asociada
aqu es donde se lleva a cabo.

3.3 DISEO DE LA VENTANA GRFICA

Antes de empezar a disear la interfaz es importante apuntar que la pantalla se


trata como un espacio de coordenadas cartesianas con los ejes y el origen tal y
como se muestra en la Figura 25.

Figura 25. Representacin grfica de la pantalla

46

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Pantalla tctil

3.3.1 OBJETOS O WIDGETS

Microchip proporciona una librera grfica en la que se incluyen diversos objetos


grficos (widgets2) para poder incluirlos fcilmente en la interfaz de la pantalla.

OBJETOS
Button

Group Box
Horizontal/Vertical

Slider
Scroll Bars
Window

Progress Bar

Check Box

Static Text

Radio Button

Picture

Edit Box

Dial

List Box

Meter

Tabla 3.Tipos de objetos disponibles en la librera grfica.

Cada objeto tiene unas funciones asociadas que se encuentran en su


correspondiente archivo, por ejemplo si se quisiera conocer las funciones
necesarias para la creacin y el funcionamiento de un botn se debe consultar el
archivo Button.h

Pequea aplicacin o programa cuya finalidad es proporcionar informacin grfica.

47

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Pantalla tctil
Para la creacin de cada objeto existe programada en el archivo correspondiente
una estructura en la que se determinan los diferentes parmetros de aspecto para
poder ser dibujados en la pantalla. Se van a mostrar dos ejemplos. El elemento
bsico que se ha utilizado ha sido WINDOW para dar a la pantalla el aspecto que se
desee. En el Cdigo 14 se muestra la estructura para crear una ventana.
WINDOW

WndCreate
(
WORD

ID,

// Cdigo de identificacin

SHORT

left,

// Extremo izquierdo

SHORT

top,

// Extremo superior

SHORT

right,

// Extremo derecho

SHORT

bottom,

// Extremo inferior

WORD

state,

// Estado inicial del objeto

void

*pBitmap, // Puntero al bitmap

XCHAR

*pText,

// Puntero al texto

GOL_SCHEME

*pScheme

// Puntero al estilo

);

Cdigo 14. Estructura para crear el objeto WINDOW

En el Cdigo 15 se muestra otro ejemplo siendo la estructura elegida la de un


botn por ser una de las ms utilizadas en la interfaz programada.

48

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Pantalla tctil

BUTTON

BtnCreate
(
WORD
SHORT
SHORT
SHORT
SHORT
SHORT
WORD
void
XCHAR
GOL_SCHEME
);

ID,
left,
top,
right,
bottom,
radius,
state,
*pBitmap,
*pText,
*pScheme

//
//
//
//
//
//
//
//
//
//

Cdigo de ifentificacin
Extremo izquierdo
Extremo superior
Extremo derecho
Extremo inferior
Radio de las esquinas
Estado inicial del objeto
Puntero al bitmap
Puntero al texto
Puntero al estilo

Cdigo 15. Estructura para crear el objeto BUTTON

Cada objeto dispone de diferentes estados en los que se puede presentar dibujado
en la pantalla, tambin se pueden combinar, y que estn incluidos en el
correspondiente archivo.

En el

Cdigo

16

se

muestran los estados

correspondientes del objeto tipo botn.

#define BTN_FOCUSED
#define BTN_DISABLED
#define BTN_PRESSED
#define BTN_TOGGLE
behavior.
#define BTN_TEXTRIGHT
#define BTN_TEXTLEFT
#define BTN_TEXTBOTTOM
#define BTN_TEXTTOP
#define BTN_TWOTONE
type.

0x0001
0x0002
0x0004
0x0008

//
//
//
//

Bit
Bit
Bit
Bit

for focus state.


for disabled state.
for press state.
to indicate button will have a toggle

0x0010
0x0020
0x0040
0x0080
0x0100

//
//
//
//
//

Bit
Bit
Bit
Bit
Bit

to
to
to
to
to

// Note that if bits[7:4] are all zero


#define BTN_DRAW_FOCUS 0x2000 // Bit
#define BTN_DRAW
0x4000 // Bit
#define BTN_HIDE
0x8000 // Bit
from screen.
#define BTN_REMOVE
0x8000

indicate
indicate
indicate
indicate
indicate

text is right aligned.


text is left aligned.
text is top aligned.
text is bottom aligned.
the button is a two tone

text is centered.
to indicate focus must be redrawn.
to indicate button must be redrawn.
to indicate button must be removed

Cdigo 16. Estados para el objeto BUTTON

49

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Pantalla tctil

3.3.2 ESTILOS (GOL_SCHEME)

Como se introdujo de manera resumida en 3.2.1 es necesaria la existencia de al


menos un estilo con el que dibujar. Ya se explic cmo crear un estilo as que este
aparado se va a centrar en los distintos parmetros que podemos modificar en
cada uno de ellos.

Lo primero es conocer la estructura con la que est organizado el elemento


GOL_SCHEME y que se muestra en Cdigo 17.

typedef struct
{
WORD EmbossDkColor;
WORD EmbossLtColor;
WORD TextColor0;
WORD TextColor1;
WORD TextColorDisabled;
WORD Color0;
WORD Color1;
WORD ColorDisabled;
WORD CommonBkColor;
void
*pFont;
} GOL_SCHEME;

// Color oscuro para efecto 3D.


// Color claro para efcto 3D.
// Color 0 del texto para objetos con texto.
// Color 1 del texto para objetos con texto.
// Color del texto para objetos deshabilitados.
// Color 0 asignado al estado de un objeto.
// Color 1 asignado al estado de un objeto.
// Color utilizado para objetos deshabilitados.
// Color del fondo para ocultar objetos.
// Fuente de la letra.

Cdigo 17. Estructura GOL_SCHEME

Para los colores se puede definir cualquiera utilizando la estructura mostrada en


Cdigo 18 o utilizando los colores predefinidos que se encuentran en el archivo
PaletteColorDefines.h

Color0 = RGB565CONVERT(10,129,255);
Color1 = RGB565CONVERT(0xD4, 0xE1, 0xF7);

Cdigo 18. Definicin colores

50

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Pantalla tctil

3.3.3 EJEMPLO DEL DISEO DE UNA PANTALLA

Para aclarar lo explicado en las secciones anteriores se va a mostrar paso a paso


como programar una de las pantallas para la interfaz del proyecto. La pantalla
elegida como ejemplo se muestra en la Figura 26.

INFO

ESTADO GPS

MENU

GPS desconectado

ENVIAR

Figura 26. Pantalla elegida como ejemplo

Paso 1: Creacin de la ventana.


El primer paso es la creacin de la ventana sobre la que va a trabajar. La ventana
se crea una vez que se ha entrado en la funcin CreateGPS mediante la llamada a
CreatePage. Esta es una funcin que contiene la estructura necesaria para crear

un objeto tipo WINDOW. Tiene como entrada un puntero al texto que va a ser el
ttulo de la ventana, en este caso Estado GPS. En el caso de no querer ttulo se
pondra NULL en la llamada de la funcin.

51

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Pantalla tctil

void CreateGPS(void)
{
GOLFree();
// free
CreatePage((XCHAR *)titulo_GPS);
...
}

void CreatePage(XCHAR *pText)


{
WndCreate
(
ID_WINDOW1
0,
0,
GetMaxX(),
GetMaxY(),
0x6000,
0,
pText,
navScheme
);
}

Cdigo 19.Creacin de la ventana del ejemplo

Tras la ejecucin del Cdigo 19 la pantalla que se est creando tiene el aspecto
mostrado en la Figura 27.

ESTADO GPS

Figura 27. Estado de la pantalla despus del paso 1

52

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Pantalla tctil
Paso 2: Creacin de los objetos:
El siguiente paso es la creacin de los objetos que se quieren dibujar en la
pantalla. En este caso son tres botones y un texto esttico:

Botn MENU que se corresponde con el botn de cdigo de


identificacin ID_BUTTON5 en el Cdigo 20.

Botn INFO que se corresponde con el botn de cdigo de


identificacin ID_BUTTON6 en el Cdigo 20.

Botn CONECTAR que se corresponde con el botn de cdigo de


identificacin ID_BUTTON10 en el Cdigo 20. Este botn tiene la
particularidad que se ha pintado pero por ahora no est disponible por eso
tiene un color ms claro que los otros dos.

Texto esttico GPS desconectado que tiene el cdigo de identificacin


ID_STATIC_TEXT_P en el Cdigo 20. Notar que la creacin del objeto
texto esttico no es muy diferente a la creacin de un botn.

53

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Pantalla tctil

void CreateGPS(void)
{
...

BtnCreate

BtnCreate

ID_BUTTON10,
ID_BUTTON5,

BTN_ORIGIN_X + 100,

BTN_ORIGIN_X + 260,

BTN_ORIGIN_Y + 170,

BTN_ORIGIN_Y + 10,

BTN_ORIGIN_X + 210,

BTN_ORIGIN_X + 310,

BTN_ORIGIN_Y + 220,

BTN_ORIGIN_Y + 40,

20,

2,

BTN_DRAW|BTN_DISABLED,

BTN_DRAW,

NULL,

NULL,

(XCHAR*)texto_botonGPS3,

(XCHAR *)texto_botonGPS1,

altScheme

altScheme

);

);

StCreate

BtnCreate

ID_STATIC_TEXT_P,

ID_BUTTON6,

TXTSTARTX + 1,

BTN_ORIGIN_X + 200,

TXTSTARTY,

BTN_ORIGIN_Y + 10,

TXTSTARTX + TXTSIZEX,

BTN_ORIGIN_X + 250,

TXTSTARTY + TXTSIZEY,

BTN_ORIGIN_Y + 40,

ST_DRAW+ST_CENTER_ALIGN,

2,

(XCHAR *)GPSdiscStr,

BTN_DRAW,

btnScheme

NULL,

);

(XCHAR*)texto_botonGPS2,

...

altScheme

);

Cdigo 20. Creacin de los objetos del ejemplo

54

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Pantalla tctil
La pantalla pasa a tener el aspecto de la Figura 26, puesto que ya se ha realizado
todo el trabajo de diseo.

Paso 3: Programacin de los eventos asociados a los objetos:


En este ltimo paso se dota a los diferentes objetos con la capacidad de poder ser
utilizados. Es decir que al tocarlos se pueda interactuar con la pantalla.
En este caso como se puede observar en el Cdigo 21 se produciran los siguientes
eventos al presionar los botones:

Botn ID_BUTTON5: se ira a la pantalla denominada Menu.

Botn ID_BUTTON6: se ira a la pantalla denominada Info.

Botn ID_BUTTON10: se ira una pantalla en la que se muestra un


teclado numrico. Esto slo en el caso de estar habilitado.

55

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Pantalla tctil

WORD MsgGPS(WORD objMsg, OBJ_HEADER *pObj)


{
prevState=CREATE_GPS;
switch(GetObjID(pObj))
{
case ID_BUTTON5:
if(objMsg == BTN_MSG_RELEASED)
{
screenState = CREATE_MENU
}
break;
case ID_BUTTON6:
if(objMsg == BTN_MSG_RELEASED)
{
screenState = CREATE_INFO
}
break;
case ID_BUTTON10:
if(objMsg == BTN_MSG_RELEASED)
{
screenState = CREATE_KEYPAD
}
break;
default:
break;
}
return (1);
}

Cdigo 21. Funcin de programacin de los eventos asociados a los objetos del ejemplo

3.4 PANTALLAS DE LA INTERFAZ PROGRAMADA

Una vez que se ha visto el funcionamiento de la pantalla ahora se va a proceder a


mostrar las distintas pantallas que se han programado para la interfaz grfica. Se
van a separar en 3 grandes grupos:

1 Antes de la configuracin de las comunicaciones (Ver 3.4.1)


2 Durante la configuracin de las comunicaciones (Ver 3.4.2)
3 Despus de la configuracin de las comunicaciones (Ver 3.4.3)

56

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Pantalla tctil
El primer grupo y el tercero son las mismas pantallas y la diferencia radica en la
existencia de objetos habilitados en slo uno de los grupos.
El segundo es una transicin entre los dos anteriores.

3.4.1 ANTES DE LA CONFIGURACIN DE LAS COMUNICACIONES

Este primer grupo est compuesto por cuatro pantallas conexionadas entre ellas de
la manera que se indica en la Figura 28. Las flechas reversibles indican que se
puede ir de una a otra.

INFO

ESTADO GSM

MENU PRINCIPAL

MENU

Red GSM desconectada


INFO

GPS

GSM
Operador: Calidad de la seal: -

CONECTAR

INFO

ESTADO GPS

<<<

MENU

Latitud: 0 0 0
Longitud: 0 0 0

GPS desconectado
Latitud: 0 0 0
Longitud: 0 0 0

ENVIAR

Figura 28. Diagrama de estados de la pantalla antes de configurar las comunicaciones

57

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Pantalla tctil

3.4.1.1 Men principal


Se presenta un men a travs del que acceder a las distintas pantallas que nos
proporcionan informacin sobre el robot 4x4 o las comunicaciones posibles.
En este momento, como las comunicaciones no estn configuradas, el botn
Conectar est habilitado y ser el que d paso al segundo grupo de pantallas.

3.4.1.2 Info
Est pantalla est destinada a resumir la informacin relevante que interese tener
accesible, puesto que esta pantalla tiene la peculiaridad de poderse llamar desde
cualquiera de las otras 3 pantallas y al presionar el botn <<< (Retroceso),
volver a la pantalla desde la cual se llam.

3.4.1.3 Estado GSM


En esta pantalla se recoge la informacin de la red GSM, que al estar sin
configurar el mensaje mostrado en la pantalla es Red GSM desconectada

3.4.1.4 Estado GPS


Recoge la informacin del GPS, que al no estar configurado se muestra el mensaje
GPS desconectado. El botn Enviar que no permite enviar las coordenadas
GPS por SMS, no est habilitado.

3.4.2 DURANTE LA CONFIGURACIN DE LAS COMUNICACIONES

Este grupo est formado por 10 pantallas y en la Figura 29 se han representado las
8 ms relevante. Estas pantallas se desarrollan una detrs de otra siguiendo las
instrucciones que se van mostrando por lo que no se considera relevante explicar
cada una de ellas.

58

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Pantalla tctil
Durante la ejecucin de estas pantallas se van iniciando y configurando los
mdulos GSM/GPRS y GPS necesarios para establecer la comunicacin con el
dispositivo de telefona mvil y la localizacin del robot, respectivamente.

Al inicio de la configuracin se comprueba se comprueba si la M2M Board est


conectada a la MEB y si est alimentada correctamente. En el caso de que alguna
de estas comprobaciones falle, se informa al usuario mediante un mensaje en la
pantalla y se debe proceder a la correcta conexin de las tarjetas y reiniciar el
programa.

59

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Pantalla tctil

Self - test completed. Touch the NEXT


button to register to the GSM network.
GSM operator response will be below

Pulse NEXT para configurar

BACK

CLOSE

NEXT

BACK

CLOSE

NEXT

Insertar PIN

1
4

<<

ENTER

BACK

Self - test completed. Touch the NEXT


button to register to the GSM network.
GSM operator response will be below

Operador: movistar
BACK

CLOSE

NEXT

GPRS services not available.

GSM network accessible.

Touch the NEXT button to continue


with GPS configuration.

Touch the NEXT button to continue


with GPRS configuration.

CLOSE

BACK

NEXT

Touch the GPS button to power-on the


GPS module for normal operation.

CLOSE

NEXT

GPS configured for normal operation.

Touch the A-GPS button to power on the


GPS module for assisted operation.

GPS

A-GPS
Offline

A-GPS
Online

BACK

CLOSE

NEXT

Figura 29.Diagrama de estados de la pantalla durante la configuracin de las comunicaciones

60

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Pantalla tctil

3.4.3 DESPUS DE LA CONFIGURACIN DE LAS COMUNICACIONES

Este ltimo grupo est formado por las mismas pantallas que el primero por lo que
slo se van a comentar los cambios producidos en cada una de las pantallas por la
configuracin de comunicaciones.

MENU PRINCIPAL

INFO

ESTADO GSM

MENU

Red GSM conectada


INFO

GPS

GSM
Operador: movistar
Calidad de la seal: < -57 dBm

INFO

ESTADO GPS

<<<

MENU

Latitud: 40 26 34 N
Longitud: 3 42 47 W

GPS conectado
Latitud: 40 26 34 N
Longitud: 3 42 47 W

ENVIAR

Figura 30. Diagrama de estados de la pantalla despus de la configuracin de las


comunicaciones.

3.4.3.1 Men principal


La nica diferencia en esta pantalla es que puesto que las comunicaciones ya se
han configurado el botn Conectar no se pinta.

61

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Pantalla tctil

3.4.3.2 Info
En la pantalla de informacin ahora se muestran las coordenadas proporcionadas
por el GPS.

3.4.3.3 Estado GSM


El mensaje mostrado en la pantalla ha cambiado a Red GSM conectada, puesto
que se ha configurado el mdulo GSM/GPRS. Adems se muestra el operador con
el cual se ha conectado a la red GSM y la calidad de la seal recibida.

3.4.3.4 Estado GPS


En la pantalla del estado del GPS se muestra el mensaje GPS conectado y las
coordenadas detectadas por el GPS. El botn Enviar est ahora habilitado y al
presionarlo aparece un teclado numrico mostrado en la Figura 31, en el que se
introduce el nmero de telfono al que se quiere enviar las coordenadas GPS.

Insertar numero de telefono

<<

ENTER

Figura 31. Pantalla teclado numrico.

62

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Mdulos GSM/GPRS y GPS

Captulo 4 MDULOS GSM/GPRS Y GPS


Una de las principales motivaciones de este proyecto es la comunicacin sin tener
limitada la distancia que se pueda alejar el robot 4x4. El estndar GSM parece una
solucin adecuada porque con un simple dispositivo de telefona mvil el usuario
puede transmitir datos fcilmente.

La localizacin del robot 4x4 se realiza mediante GPS puesto que permite
determinar la posicin de un objeto, en este caso un vehculo, con una buena
precisin normalmente de metros.

Para poder utilizar estos mtodos de comunicacin el primero y de


posicionamiento el segundo es necesario dotar a nuestro sistema de un mdulo
GSM y de otro GPS. En este captulo se explican brevemente los dispositivos
elegidos y su funcionamiento.

4.1 M2M DAUGHTER BOARD

La tarjeta M2M Daughter Board, Figura 8, es una tarjeta desarrollada por u-blox
AG especialmente diseada para trabajar con la MEB. La base de esta tarjeta son
dos mdulos de control, LEON-G200 y NEO-6Q. Tambin dispone de un soporte
para tarjeta SIM, la cual permite comunicacin GSM/GPRS, y un conector RF
SMA para una antena GPS externa, de uso opcional.

63

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Mdulos GSM/GPRS y GPS

LEON-G200
Es un mdulo de transmisin de datos GSM/GPRS cuatribanda. Las
comunicaciones con el mdulo se realizan a travs de comandos AT. Dichos
comandos estn controlados por la UART del PIC32.

NEO-6Q
Este mdulo utiliza una tecnologa de u-blox denominada six-position engine
para proporcionar la posicin GPS. Esta tecnologa consiste en un algoritmo,
Precise Point Positioning, (PPP), que consigue una alta precisin en aplicaciones
estticas y en mviles de baja velocidad. En la estructura hardware de la M2M
Board este mdulo acta como esclavo del mdulo LEON-G200, pero se puede
usar por separado ya que dispone de comandos AT propios.

Figura 32. Diagrama de bloques de M2M Daughter Board [13]

4.2 FUNCIONES DE MANEJO DE LOS MDULOS GSM Y GPS

Cada uno de los mdulos dispone de una gran cantidad de comandos AT y estn
disponibles en la web del fabricante, www.u-blox.com.

64

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Mdulos GSM/GPRS y GPS


La API (Application Programming Interface, en ingls) proporcionada por
Microchip es extensa y aqu se van a resumir las principales variables y funciones
utilizadas. Dichas funciones y variables estn definidas en distintos archivos en
funcin del uso que tienen. Los archivos son los siguientes:

Archivos

Contenido

libcom.h

Funciones de configuracin de la UART

libubx.h

Funciones de configuracin de los mdulos GSM y GPS

libacd.h

Funciones especficas del mdulo GSM/GPRS

libgps.h

Funciones especficas del mdulo GPS


Tabla 4. Archivos que constituyen la API

Cada uno de estos archivos incluye las declaraciones de las variables y de las
cabeceras de las funciones que se utilizarn para interactuar con el mdulo
correspondiente. El desarrollo de las distintas funciones est en los
correspondientes archivos .c

Todos los archivos funcionan de una manera parecida por lo que se va a explicar
de manera detallada uno de ellos (libubx.h) y de los otros se mostrarn las partes
relevantes.

65

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Mdulos GSM/GPRS y GPS

4.2.1 LIBUBX.H

En este archivo se encuentran las funciones principales para la configuracin y


manejo de ambos de ambos mdulos. Se denomina un archivo de interfaz de alto
nivel por lo que muchas de las funciones de este archivo utilizarn funciones
implementadas en los otros.
La configuracin de la red GSM se realiza en el archivo de cabecera
libubx_config.h

// Default GSM subscriber number


#define UBX_CONFIG_GSM "*99#"
// Default SMS text message
#define UBX_CONFIG_SMS "Hello from Microchip MEB and u-blox plug-in!"
// Default APN operator
#define UBX_CONFIG_APN "gprs-service.com" // Simyo

Cdigo 22. Parmetros de configuracin red GSM

La configuracin mostrada en Cdigo 22 es la configuracin que debera ser para


acceder a la red GSM mediante el operador Simyo, sin embargo a la hora de
realizar la configuracin del mdulo GSM detecta un error al intentar encontrar el
operador y no se puede realizar la conexin a la red GSM.

NOTA: La tarjeta SIM utilizada para la conexin a la red GSM es del operador
Movistar y funciona correctamente con la configuracin mostrada en Cdigo

22.

66

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Mdulos GSM/GPRS y GPS


Lo primero es definir las variables con las que se va trabajar. Existen dos tipos de
variables: las de error (Cdigo 23) y las de estado (Cdigo 24).

typedef enum
{
UBX_E_OK = 0,
UBX_E_ERROR,
UBX_E_WARNING,
} UBX_ERROR;

// Success
// Error, handling required
// Warning, can be ignored

Cdigo 23. Declaracin variable UBX_ERROR

typedef enum
{
UBX_S_SYSTEM_CONFIGURED = 1,
UBX_S_SYSTEM_NOT_CONFIGURED,
UBX_S_BOARD_POWERED,
UBX_S_BOARD_NOT_POWERED,
UBX_S_BOARD_PRESENT_LEONG200,
UBX_S_BOARD_PRESENT,
UBX_S_BOARD_NOT_PRESENT,
UBX_S_SIM_PRESENT,
UBX_S_SIM_NOT_PRESENT,
UBX_S_PIN_ENABLED,
UBX_S_PIN_NOT_ENABLED,
UBX_S_GSM_CONFIGURED,
UBX_S_GSM_NOT_CONFIGURED,
UBX_S_GSM_NETWORK_REGISTRED,
UBX_S_GSM_NETWORK_NOT_REGISTRED,
UBX_S_PDP_CONFIGURED,
UBX_S_PDP_NOT_CONFIGURED,
UBX_S_PDP_SERVICE_REGISTRED,
UBX_S_PDP_SERVICE_NOT_REGISTRED,
UBX_S_GPS_CONFIGURED,
UBX_S_GPS_NOT_CONFIGURED,
UBX_S_GPS_POWERED,
UBX_S_GPS_NOT_POWERED,
UBX_S_GPS_ASSIST_LOCAL,
UBX_S_GPS_ASSIST_NONE,
UBX_S_GPS_ASSIST_OFFLINE,
UBX_S_GPS_ASSIST_ONLINE,
} UBX_STATUS;

//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//

u-blox high-level interface configured


u-blox high-level interface not configured
C16-G26Q plug-in board is powered-on
C16-G26Q plug-in board is powered-off
C16-G26Q plug-in recognized as LEON-G200
C16-G26Q plug-in board present
C16-G26Q plug-in board not present
SIM card present
SIM card not present
PIN on SIM card enabled
PIN on SIM card not enabled
GSM module configured
GSM module not configured
GSM network registred
GSM network not registred
PDP (GPRS) configured
PDP (GPRS) not configured
PDP (GPRS) service available
PDP (GPRS) service not available
GPS configured
GPS not configured
GPS is powered on
GPS is powered off
GPS local aiding
GPS without aiding
GPS AssistNow off-line
GPS AssistNow on-line

Cdigo 24. Declaracin variable UBX_STATUS

67

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Mdulos GSM/GPRS y GPS


Existen dos tipos de funciones, las que devuelven una variable que proporciona
informacin de estado y las que devuelven informacin de error. Algunas de las
funciones importantes de este archivo se exponen a continuacin.

4.2.1.1 Funciones de configuracin


Estas funciones realizan las acciones necesarias para la configuracin de la M2M
Board y los mdulos que la componen.

UBX_ERROR
UBX_ERROR
UBX_ERROR
UBX_ERROR

ubxConfigureSystem(UINT32 freq);
ubxConfigureBoard(void);
ubxConfigureGsm(void);
ubxConfigureGps(void);

Cdigo 25. Funciones de configuracin del archivo libubx.h

4.2.1.2 Funciones de encendido y apagado


Se encargan de encender y apagar la M2M Board y los mdulos.

UBX_ERROR
UBX_ERROR
UBX_ERROR
UBX_ERROR

ubxPowerOnBoard(void);
ubxPowerOffBoard(void);
ubxPowerOnGps(UBX_GPS_ASSIST_MODE mode);
ubxPowerOffGps(void);

Cdigo 26. Funciones de encendido y apagado del archivo libubx.h

68

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Mdulos GSM/GPRS y GPS

4.2.1.3 Funciones de conexin y uso de la red GSM


Con estas funciones se realiza la conexin a la red GSM y proporcionan
informacin sobre la red a la que se ha conectado.

// GRUPO 1: Conexin a la red GSM


UBX_ERROR ubxRegisterGsmNetwork(void);
UBX_STATUS ubxGetSimStatus(void);
UBX_STATUS ubxGetPinStatus(void);
UBX_ERROR ubxVerifyPin(char *pin);

//GRUPO 2: Informacin del operador y la calidad de la seal


UBX_ERROR ubxGetGsmNetworkOperator(char *netop);
UBX_ERROR ubxGetGsmNetworkSignal(UINT32 *netss, char *netss_text);

//GRUPO 3: Envo de SMS


UBX_ERROR ubxSendGsmShortMessage(char *gsmsn, char *sms);

Cdigo 27. Funciones de conexin y uso de la red GSM del archivo libubx.h

Grupo 1: Conexin a la red GSM


Se encargan de la conexin a la red GSM. Es necesario comprobar que hay una
tarjeta SIM en la M2M Board, si tiene PIN habilitado y comprobar que el
introducido es correcto.

Grupo 2: Informacin del operador y calidad de la seal


Proporcionan la informacin necesaria sobre la red GSM que se est utilizando,
Esta informacin es la que se muestra en la pantalla Estado GSM, explicada en
3.4.3.3
Grupo 3: Envo de SMS
Esta funcin enva un SMS. Los parmetros de entrada son:

gsmsn: puntero al string que contiene el nmero de telfono al que


se va a enviar el SMS

sms: puntero al string que contiene el texto del SMS

69

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Mdulos GSM/GPRS y GPS


Ejemplo de envo de SMS
En este ejemplo se muestra un teclado numrico por la pantalla pidiendo que se
introduzca el nmero de telfono (en el cdigo del ejemplo no se muestra debido a
la extensin) y se guarda en el buffer del objeto tipo EDITBOX.

Una vez que se tiene el nmero de telfono en una cadena de caracteres, se genere
el texto del SMS, en este caso coordenadas GPS en formato UTM, y se guarda en
otra cadena de caracteres. Por ltimo se enva el SMS.

EDITBOX
*pEb;
char number[25 + 1] = {0};
GPS_DATA_RMC *rmc;
char sms[160 + 1] = {0};
int d, m, s;
for(i=0; i<(pEb->length); i++)
{
number[i] = pEb->pBuffer[i];
}

ubxUpdateGpsContext(GPS_C_RMC);
rmc = gpsGetRMC();
sprintf(sms, "Hello from MEB!");
if(rmc->lat && rmc->lon)
{
sprintf(sms, "%s My position is", sms);
gpsDecimalToDMS(rmc->lat, &d, &m, &s);
sprintf(sms, "%s %d %d' %d'' %s,", sms, d, m, s, rmc->lat_ns);
gpsDecimalToDMS(rmc->lon, &d, &m, &s);
sprintf(sms, "%s %d %d' %d'' %s.", sms, d, m, s, rmc->lon_ew);
}
ubxSendGsmShortMessage(number, sms);

Cdigo 28. Ejemplo de envo de un SMS

70

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Mdulos GSM/GPRS y GPS

4.2.1.4 Funciones de uso del GPS


Ambas funciones se utilizan para actualizar los datos del GPS pero la diferencia
radica en cuntos datos se actualizan en cada funcin.

//Actualizar todos los datos


UBX_ERROR ubxUpdateGpsFullContext();

//Actualizar un dato especfico


UBX_ERROR ubxUpdateGpsContext(GPS_CONTEXT context);

Cdigo 29. Funciones de uso del GPS del archivo libubx.h

Los diferentes tipos de datos que proporciona el GPS se exponen en 4.2.2


Ejemplo de actualizacin de las coordenadas GPS.
Un ejemplo sencillo en el que se actualizan las coordenadas GPS y se almacenan
en una cadena de caracteres en formato UTM.

GPS_DATA_RMC *rmc;
static int d=0, m, s;
ubxUpdateGpsContext(GPS_C_RMC);
rmc = gpsGetRMC();
if (rmc->lat && rmc->lon)
{
gpsDecimalToDMS(rmc->lat, &d, &m, &s);

sprintf(mensaje_coor, "%d %d' %d'' %s,", d, m, s, rmc->lat_ns);


gpsDecimalToDMS(rmc->lon, &d, &m, &s);

sprintf(mensaje_coor, "%s %d %d' %d'' %s.", mensaje_coor, d, m, s, rmc->lon_ew);


}

Cdigo 30. Ejemplo de actualizacin de coordenadas GPS

NOTA: Los datos GPS no estn disponibles hasta que el LED llamado

TIMEPULSE en la M2M Board parpadee en color verde.

71

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Mdulos GSM/GPRS y GPS

4.2.2 LIBGPS.H

El GPS proporciona gran cantidad de informacin y en esta librera se encuentran


todas las declaraciones de las distintas variables que se utilizan para el manejo de
dicha informacin.

La variable que se ha utilizado para el manejo de la informacin proporcionada


por el GPS es GPS_DATA_RMC y su estructura se expone en Cdigo 31

typedef struct
{
TIME utc;
// UTC (position fix time) [hhmmss.sss]
CHARACTER sts;
// Status: A=Navigation receive warning, V=Valid
LATITUDE lat;
// Latitude
CHARACTER lat_ns; // Latitude N/S indicator: N=North, S=South
LONGITUDE lon;
// Longitude
CHARACTER lon_ew; // Longitude E/W indicator: E=East, W=West
NUMERIC sog;
// Speed over ground [knot/s]
NUMERIC cog;
// Course over ground [degrees]
DATE dat;
// Date
NUMERIC mav;
// Magnetic variation [degrees]
CHARACTER mav_ew; // Magnetic variation E/W indicator: E=East, W=West
CHARACTER mod;
// Mode indicator: N=No fix, A=Autonomous GNSS fix,
D = Differential GNSS fix, E = Estimated dead reckoning (DR) fix
} GPS_DATA_RMC;

Cdigo 31. Declaracin de la variable GPS_DATA_RMC

Las principales funciones que se utilizan para obtener y manejar los datos de la
variable GPS_DATE_RMC.

72

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Mdulos GSM/GPRS y GPS

// Configura las librera GPS

GPS_ERROR gpsConfigure(void);
// Obtener datos tipo GPS_DATA_RMC

GPS_DATA_RMC *gpsGetRMC(void);
// Conversor de grados decimals a sexagesimales

GPS_ERROR gpsDecimalToDMS(char *dec, int *d, int *m, int *s);

Cdigo 32. Funciones de gestin de datos del GPS

4.3 APLICACIN DE LOS MDULOS A LA INTERFAZ

4.3.1 OBTENCIN DE LAS COORDENADAS GPS

Como la informacin con la que ms se ha trabajado en este proyecto son las


coordenadas GPS se ha creado una funcin especfica para actualizarlas
peridicamente. Slo se actualizan cuando se han realizado la configuracin de las
comunicaciones lo cual se indica con el flag botonconectar.

int main(void)
{
while(1)
{
if((botonconectar==1) && (tickGPS==500000)) //(18s)
{
GetCoordenadasGPS();
tickGPS=0;
}
}
}

Cdigo 33. Actualizacin peridica de las coordenadas GPS

73

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Mdulos GSM/GPRS y GPS


Las coordenadas GPS se actualizan utilizando las funciones del mdulo GPS tal y
como se muestran a continuacin. Estas funciones estn en una funcin
denominada GetCoordenadasGPS, que se encuentra dentro del archivo de cabecera
ModuloGPS.h y que adems da forma a los datos obtenido en dos cadenas de
caracteres distintas, una servir como texto para los SMS y la otra para enviar la
informacin a travs del mdulo I2C.

unsigned int GetCoordenadasGPS(void);

Cdigo 34. Prototipo de la funcin GetCoordenadasGPS

4.3.2 MODOS DE FUNCIONAMIENTO

Con el fin de poder controlar las comunicaciones de manera remota desde un


dispositivo de telefona mvil existen algunas funciones que permiten recibir
informacin en dicho dispositivo o enviarla a travs del mdulo I2C

4.3.2.1 Instrucciones enviadas por GSM


Enviando ciertas instrucciones a travs de GSM al nmero de telfono asociado a
la tarjeta SIM de la M2M Board, que es la tarjeta en la que se encuentra el mdulo
GSM del robot 4x4, se puede enviar informacin tanto de vuelta al telfono mvil
como a la TCS4.

Instruccin

Accin

GPS

Envo de coordenadas por GSM

PC

Envo de datos a la TCS4

Tabla 5. Instrucciones para enviar informacin de manera remota

74

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Mdulos GSM/GPRS y GPS


Cada vez que se enva un SMS al robot 4x4, se realiza una copia del nmero de
telfono desde el que se ha enviado el SMS y del texto del mensaje, guardndolos
en las vectores tipo char Telefono y Mensaje, respectivamente.

NOTA: Al realizar la copia del nmero de telfono es necesario quitar tantos


dgitos como tenga el prefijo del pas desde el cual se manda el mensaje, ms
uno.

Es decir en el caso de Espaa cuyo prefijo es 34 (2 dgitos), es necesario quitar los


3 primeros dgitos. La razn es que precediendo al prefijo existe un + y si se
incluye en la variable que contiene el nmero de telfono no se envan
correctamente los SMS porque confunde el nmero de telfono con un comando
AT.

Una vez hecho esto se llama a la funcin RecibirSMS, Cdigo 35. Est funcin
activa distintas banderas en funcin del mensaje recibido, para que al llamar a
CreateSMS se realice la accin adecuada.

Por ltimo se muestra el texto del mensaje recibido en la pantalla tctil.

75

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Mdulos GSM/GPRS y GPS

void RecibirSMS(void)
{
if(strcmp(Mensaje,"GPS")==0)
{
flag_sms=1; // Flag que indica que se quiere recibir las
coordenadas GPS mediante GSM
}
else if(strcmp(Mensaje,"PC")==0)
{
flag_pc=1; // Flag que indica que hay datos que se quieren enviar
al PC
}
else
{
flag_sms = 2;
}
}

Cdigo 35.Funcin RecibirSMS

4.3.2.1.1 Instruccin recibida: GPS


Al enviar esta instruccin se actualizan las coordenadas GPS mostrndolas en la
pantalla y envindolas como respuesta en un SMS.
4.3.2.1.2 Instruccin recibida: PC
Al enviar esta instruccin se activa un flag que indica que se quiere enviar
informacin a la TCS4. Esta comprueba peridicamente el estado de este flag,
mediante la funcin DatosGSM. Esta funcin siempre espera respuesta la cual se
almacena en la variable tipo double vd_datosGSM.

KillTimer(1);
com.inicio();
com.DatosGSM(DIR_GPS);
std::vector<double> vd_datosGSM;
vd_datosGSM = com.GetDatosGSM();
SetTimer(1, 60000, NULL); // (10.000 = 10s)

Cdigo 36. Funcin para comprobar peridicamente si hay informacin para la TCS4

76

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Mdulos GSM/GPRS y GPS

Si el flag no est activado, en la funcin ProcesarMensajeI2C la


respuesta preparada es un 0.

Si el flag est activado, la respuesta que se prepara son las coordenadas


GPS.

4.3.2.1.3 Instruccin no reconocida


Si la instruccin enviada no es vlida, se obtiene como respuesta en el telfono
mvil un SMS con el texto La instruccin enviada no es vlida
.

77

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Resultados y pruebas realizadas

Captulo 5 RESULTADOS Y PRUEBAS


REALIZADAS

En este captulo se recogen las pruebas realizadas. Mediante la realizacin de


estas pruebas se buscaba comprobar el correcto funcionamiento del sistema
utilizado y la robustez de las comunicaciones.

Para poder comprobar si la transferencia de datos a travs del mdulo I 2C es


correcta se ha utilizado un ordenador conectado a la TCS4 a travs de la UART
realizndose la comunicacin mediante protocolo RS-232.

5.1 PANTALLA MVIL

Con esta prueba se realizan tres comprobaciones, la comunicacin con la pantalla,


el correcto funcionamiento del envo de datos a travs de GSM y del GPS.

Figura 33. Diagrama de bloques de la prueba n1 realizada.

La prueba consiste en enviar las coordenadas GPS a un dispositivo de telefona


mvil. El procedimiento es el siguiente:

78

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Resultados y pruebas realizadas


1. Pulsar el botn Enviar de la pantalla Estado GPS, 3.4.3.4.
2.

A continuacin se muestra una pantalla con un teclado numrico en el que


se introducir el nmero de telfono al que se quieren enviar las
coordenadas.

Se comprueba que el funcionamiento es correcto, puesto que se recibe el SMS


con las coordenadas GPS en el telfono mvil. Esto adems implica que la
comunicacin con la pantalla y a travs de GSM son tambin ambas correctas
al recibirse el SMS en el nmero de telfono introducido.

Para asegurar el correcto funcionamiento del GPS se ha comprobado las


coordenadas GPS obtenidas con Google Maps.

5.2 MVIL PIC32 MVIL

Con esta prueba se pretende comprobar si se reciben datos correctamente a travs


de GSM.

Figura 34. Diagrama de bloques de la prueba n2 realizada.

79

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Resultados y pruebas realizadas


El procedimiento es el siguiente:
1. Enviar la instruccin GPS por SMS al nmero de telfono asociado a la
tarjeta SIM de la M2M Board.

Se comprueba que la recepcin de datos a travs de GSM es correcta puesto que


se muestran las coordenadas GPS en la pantalla, ya que es la accin asociada a la
instruccin GPS. Adems al obtenerse como respuesta un SMS se comprueba que
se guarda correctamente el nmero de telfono desde el cual se recibe
informacin.

5.3 PC PIC32 PC

Esta prueba trata de comprobar el funcionamiento del mdulo I 2C.

Figura 35. Diagrama de bloques de la prueba n3 realizada.

El procedimiento seguido es:

1. Ejecutar el programa del dsPIC33, utilizando un breakpoint, para


controlar cuando se enva la funcin y comprobar que las coordenadas
recibidas son correctas.
2. Envi de la funcin LeerCoordenadasGPS a travs del mdulo I2C
pulsando el botn Enviar del panel de control.

80

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Resultados y pruebas realizadas


Se comprueba que la transmisin de datos a travs del mdulo I2C es correcta
puesto que se reciben como respuesta las coordenadas GPS slo que en formato
decimal en vez de en sexagesimal que es como se muestran en la pantalla de
Estado GPS.

5.4 PC PIC32 MVIL

Con esta prueba se pretender comprobar que la informacin enviada desde el PC


se recibe correctamente en el telfono mvil.

Figura 36. Diagrama de bloques de la prueba n4 realizada.

El procedimiento es:
1. Ejecutar el programa del dsPIC33, utilizando un breakpoint, para
controlar cuando se enva la funcin que pide enviar informacin al
mvil, esta funcin recibe como parmetros el texto y el nmero de
telfono del mvil al que se quiere enviar la informacin.
2. Envi de la funcin EnviarSMS travs del mdulo I2C pulsando el botn
Enviar del panel de control.
Puesto que en el telfono mvil especificado se recibe un SMS con el texto
que toma como parmetro la funcin EnviarSMS se comprueba la transmisin
de informacin de la TCS4 al mvil es correcta.

81

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Resultados y pruebas realizadas

5.5 MVIL PIC32 PC

Con esta prueba se pretende comprobar que se enva la informacin pedida a


travs del telfono mvil a la TCS4.

Figura 37. Diagrama de bloques de la prueba n5 realizada.

El procedimiento es:

1. Enviar o no enviar instrucciones mediante GSM.


a. No enviar informacin.
b. Enviar la instruccin PC por SMS al nmero de telfono asociado
a la tarjeta SIM de la M2M Board.
2. Ejecutar el programa del dsPIC33, utilizando un breakpoint, para controlar
cuando se enva la funcin que pide la informacin enviada por el mvil y
comprobar que los datos recibidos son correctos.

3. Envi de la funcin DatosGSM travs del mdulo I2C pulsando el botn


Enviar del panel de control.

82

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Resultados y pruebas realizadas


El procedimiento se realiza varias veces comprobando si la informacin recibida
es la correcta.

Si no se ha enviado informacin a travs del mvil la informacin recibida


en el PC es 0.

Si se ha enviado la instruccin PC a travs del mvil la informacin


recibida en el PC son las coordenadas GPS en formato decimal.

Puesto que la informacin recibida en cada situacin es la correcta se concluye


que la prueba se ha realizado con xito.

El problema surge cuando se intenta realizar la prueba de manera automtica, es


decir que la funcin se enve peridicamente. La respuesta que se obtiene es la
correcta pero con un perodo de retraso.

83

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Conclusiones

Captulo 6 CONCLUSIONES
El objetivo principal del presente proyecto ha sido la elaboracin de un sistema de
comunicaciones a travs de GSM y la implantacin de un dispositivo de
localizacin GPS para un vehculo. Para poder realizar el proyecto de una manera
prctica se ha utilizado la estructura de un robot 4x4.

En primer lugar se integr la pantalla con un microcontrolador PIC. Se program


un cdigo en C parea crear la interfaz con la que navegar por los distintos estados
de la pantalla que muestran informacin sobre el estado de las comunicaciones y
de la posicin del vehculo.

En segundo lugar se integr la tarjeta M2M Board en la que se encuentran los


mdulos GSM y GPS. Se ampli el cdigo de la interfaz para incluir la
configuracin de ambos mdulos, realizndose las pruebas pertinentes para
comprobar que la transferencia de datos ente la tarjeta M2M Board y un
dispositivo de telefona mvil se realizaba correctamente y en ambos sentidos.

En tercer lugar se integr la TCS4, tarjeta desde la cual se controla la electrnica


del robot 4x4 basada en una estructura de dsPIC, con el microncontrolador PIC
utilizando un protocolo I2C. Se utiliz un driver programado en C++ por Jaime
Boal, y una vez comprobado que la comunicacin en ambos sentido era correcta
se procedi a la creacin de nuevas funciones que permiten la transferencia de
datos entre la TCS4 y un dispositivo de telefona mvil.

En conclusin se ha desarrollado la infraestructura necesaria para comunicar un


dispositivo de telefona mvil con un vehculo, en este caso el robot 4x4. Gracias

84

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Conclusiones
a que la comunicacin se ha realizado utilizando la red GSM el vehculo no tendr
limitada la distancia que se puede alejar del dispositivo de control, en este caso el
telfono mvil. El dispositivo GPS integrado permite la localizacin del vehculo,
algo necesario cuando se pretende poder controlar dicho vehculo de manera
remota. Adems con la integracin de la pantalla tctil se evita el uso de un
ordenador para observar el estado de distintas variables.

Al implementar las comunicaciones en un microcontrolador externo al que


controla el vehculo permite que el sistema sea portable a otros vehculos. La
condicin para que se pueda utilizar en otros vehculos es que el controlador del
otro vehculo disponga de un mdulo I2C que es la manera en la que se realizan
las comunicaciones entre ambos microcontroladores.

85

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Futuros desarrollos

Captulo 7 FUTUROS DESARROLLOS


Durante el desarrollo de este proyecto se ha realizado la infraestructura necesaria
para implementar las comunicaciones entre un dispositivo de telefona mvil y un
vehculo, en este caso un robot 4x4, utilizando la red GSM.

Se han implementado las funciones necesarias para transferir las coordenadas


GPS desde la placa que controla el vehculo, la TCS4, al dispositivo de telefona
mvil. Pero el fin ltimo de este sistema es poder controlar los movimientos del
robot 4x4 desde el telfono, por lo que es necesario implementar todas las
funciones para controlar las variables de direccin del robot 4x4.

Adems la pantalla muestra el estado de las comunicaciones y los datos de


posicin del robot pero se implant con vistas a poder monitorizar las distintas
variables del robot como por ejemplo el estado de la batera.

86

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Bibliografa

BIBLIOGRAFA
[1]

F. D. Makaya, Design and implementation of a GSM-GPRS controlled robot,


Department of Electronics, Faculty of Engineering, Tshwane University of
Technology, Junio 2005.

[2]

N. D. Muoz, N. Londoo, H. Giraldo, J. F. Eusse, L. G. Murillo, E. J. Cruz


y A. Echeverri, Aplicacin de GPRS para arquitecturas de control de robots,
Scientia et Technica, vol. XII, nm. 30, pg. 71-76, Mayo 2006

[3]

J. V. Vallejo, Robot controlled remotely via GPRS / UMTS. ltima consulta:


19/07/2013.
Disponible: http://vallejo.cc/proyectos/cellbot.htm

[4]

J. Bennett, Wifi Robot, Agosto 2008. ltima consulta: 19/07/2013.


Disponible: http://www.jbprojects.net/projects/wifirobot/

[5]

DFRobot, GPS/GPRS/GSM Module v2.0. ltima consulta: 19/07/2013.


Disponible:
http://www.dfrobot.com/index.php?route=product/product&product_id=673

[6]

J.Boal, Desarrollo de un robot 4x4 para la navegacin por terrenos agrestes,


Proyecto Fin de Carrera, Escuela Tcnica Superior (ICAI), Universidad
Pontificia Comillas, Junio 2010

[7]

Microchip Technology Inc.,.dsPIC33FJ32MC202/204 and


dsPIC33FJ16MC304 Data Sheet, 2009.

[8]

Microchip Technology Inc., PIC32MX5XX/6XX/7XX Family Data Sheet, 20092011.

[9]

Microchip Technology Inc., dsPIC33F/PIC24H Family Reference Manual


Section 19. Inter-Integrated Circuit (I2C), 2007-2011.

[10]

Microchip Technology Inc., dsPIC33F/PIC24H Family Reference Manual


Section 19. Inter-Integrated Circuit (I2C), 2007-2011.

[11]

Microchip Technology Inc., PIC32 Family Reference Manual Section 24. InterIntegrated Circuit (I2C), 2007-2011.

87

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Bibliografa
[12]

Microchip Technology Inc., Multimedia Expansion Board Users Guide, 2010

[13]

Microchip Technology Inc., Using PIC32 MCUs to Develop GSM/GPRS/GPS


Solutions, 2011

[14]

u-blox Holding AG ,u-blox 6 Receiver Description, 2013

[15]

u-blox Holding AG , LEON-G100 / LEON-G200 quad-band GSM/GPRS Data


and Voice Modules.

[16]

u-blox Holding AG , u-blox Wireless Modules - AT Commands Manual.

[17]

Wikipedia, GSM, ltima consulta: 19/07/2013.


Disponible: https://en.wikipedia.org/wiki/GSM

88

Parte II ESTUDIO
ECONMICO

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL
ESTUDIO ECONMICO

Los grandes avances que se han producido en los ltimos 50 aos en el mbito de
las telecomunicaciones han permitido su aplicacin para contribuir al desarrollo
de otros mbitos como puede ser el de la robtica. La robtica ha resultado ser
una herramienta muy til para la realizacin de trabajos repetitivos, operaciones
que requieran una gran precisin o para realizar trabajos peligrosos, entre otros.
Dentro de la robtica, los vehculos controlados de manera remota son los que
ms se han desarrollado gracias al avance de las telecomunicaciones y estos
pueden contribuir de manera importante en la sociedad por ejemplo para misiones
de bsqueda o rescate de personas.

En el mercado de venta de los robots se producir en un futuro cercano un


incremento de la tasa debido a diversos factores. Debido al cada vez mayor
conocimiento de la tecnologa, la robtica mejorar en los prximos aos
haciendo a los robots ms fciles de interconectar con otro hardware y la forma de
interactuar con ellos ser ms intuitiva.

Adems del crecimiento del mercado son previsibles economas de escala en la


produccin de robots para proporcionar una reduccin en el precio unitario, lo que
har los proyectos de aplicacin de robots ms fciles de justificar. Se espera que
el mercado de la robtica sufra una expansin ms all de las grandes empresas,
que ha sido el cliente tradicional de esta tecnologa, y llegue a las empresas de
mediano tamao.

La incorporacin de los sistemas de comunicacin inalmbricas al diseo de la


robtica supone un avance importante a los desarrollos actuales, apareciendo un
nuevo producto en el mercado.

El ciclo de vida de un producto experimenta las fases que se pueden apreciar en la


Figura 38, representando la curva azul las ventas y la roja la inversin necesaria.

90

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL
ESTUDIO ECONMICO

Figura 38. Fases del ciclo de vida de un producto.

FASES DEL CICLO DE VIDA DE UN PRODUCTO


Los productos siguen un ritmo de ventas variable con el tiempo y pasan por cinco
fases: desarrollo, introduccin, crecimiento, madurez y declive.

Etapa de desarrollo del producto


Durante esta etapa se realiza el diseo del producto con las pruebas necesarias
para su desarrollo (prototipos, anlisis de mercado). Requiere una gran
inversin.

Etapa de introduccin en el mercado


La fase de introduccin ocurre justo despus del momento en que un nuevo
producto se introduce en el mercado. Las ventas estn a niveles bajos porque
todava no hay una amplia aceptacin del producto. La disponibilidad del
producto es limitada y la competencia es poca o nula.

Etapa de crecimiento
Si el mercado acepta el producto, las ventas aumentan rpidamente. La
planificacin de la distribucin fsica es difcil en esta fase de crecimiento. Sin
embargo, la disponibilidad del producto se extiende tambin rpidamente por toda
91

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL
ESTUDIO ECONMICO

la geografa, al incrementarse el inters del comprador. Los beneficios aumentan


porque el producto es conocido por los clientes

Etapa de madurez
La anterior fase de crecimiento puede ser bastante corta, seguida de un perodo
ms largo llamado madurez. El incremento de las ventas es lento o se ha
estabilizado en su nivel mximo. En este momento, se alcanza la mayor
rentabilidad y se puede prolongar ms tiempo con diferentes tcnicas de
marketing.

Etapa de declive
Llega un momento en que las ventas decaen en la mayora de los productos por
cambios en la tecnologa, la competencia, o la prdida de inters por parte del
cliente. Con frecuencia los precios bajan y los beneficios se reducen.

92

DOCUMENTO II
PRESUPUESTO

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL
NDICE DEL PRESUPUESTO

ndice del presupuesto:

Captulo 1

Mediciones ...................................................................................1

1.1

Componentes principales ...............................................................................1

1.2

Equipo y herramientas ..................................................................................2

1.3

Software .........................................................................................................2

1.4

Mano de obra directa .....................................................................................3

Captulo 2

Precios unitarios...........................................................................4

2.1

Componentes principales ...............................................................................4

2.2

Equipo y herramientas ..................................................................................5

2.3

Software .........................................................................................................5

2.4

Mano de obra directa .....................................................................................6

Captulo 3

Sumas parciales............................................................................7

3.1

Componentes principales ...............................................................................7

3.2

Equipo y herramientas ..................................................................................8

3.3

Software .........................................................................................................9

3.4

Mano de obra directa .....................................................................................9

Captulo 4

Presupuesto general ................................................................... 10

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Mediciones

Captulo 1 MEDICIONES
En este captulo se recogen las unidades de los componentes y equipos utilizados,
as como las horas de trabajo imputables al proyecto.

1.1 COMPONENTES PRINCIPALES

Componentes

Cantidad

PIC32 USB Starter Kit II

Multimedia Expansion Board, MEB

M2M PICtail DAUGHTER BOARD

Tarjeta de Control de Sensores v4.0 (TCS4)


Tarjeta SIM

Cable USB mini USB

1
1
1

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Mediciones

1.2 EQUIPO Y HERRAMIENTAS

Elemento

Horas de

Horas de uso

proyecto

al ao

Cantidad

Ordenador

500

1600

Dispositivo de telefona mvil

80

3560

Regulador de tensin 230V ~ 12V=

80

200

Osciloscopio

10

300

Polmetro

10

450

Soldador

500

1.3 SOFTWARE

Programa

Horas de

Horas de

proyecto

uso al ao

Cantidad

MPLAB IDE v8.87

350

500

Microsoft Visual Studio 2012

170

1000

150

1500

Microsoft Office 2010

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Mediciones

1.4 MANO DE OBRA DIRECTA

Actividad

Horas

Programacin

350

Pruebas y solucin de problemas

100

Documentacin del proyecto

100

Horas totales

550

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Precios unitarios

Captulo 2 PRECIOS UNITARIOS


En este captulo se indican los precios de cada uno de los elementos necesarios
para llevar a cabo este proyecto, los cuales se han citado anteriormente.

2.1 COMPONENTES PRINCIPALES

Precio (/unid)

Componentes
PIC32 USB Starter Kit II

41,63

Multimedia Expansion Board, MEB

189,24

M2M PICtail DAUGHTER BOARD

150,64

Tarjeta de Control de Sensores v4.0 (TCS4)


Tarjeta SIM

Cable USB mini USB

100,00
7,00
2,75

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Precios unitarios

2.2 EQUIPO Y HERRAMIENTAS

Precio (/unid)

Elemento
Ordenador

850

Dispositivo de telefona mvil

669

Regulador de tensin 230V ~ 12V=

12,46

Osciloscopio

627,39

Polmetro

45

Soldador

35

2.3 SOFTWARE

Precio (/unid)

Programa
MPLAB IDE v8.87

Versin de libre distribucin

Microsoft Visual Studio 2010

800

Microsoft Office 2010

101,18

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Precios unitarios

2.4 MANO DE OBRA DIRECTA

Precio(/hora)

Actividad
Programacin

20

Pruebas y solucin de problemas

60

Documentacin del proyecto

40

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Sumas parciales

Captulo 3 SUMAS PARCIALES


En este captulo se muestran los importes parciales de cada uno de los elementos
que componen las distintas categoras, que han sido calculados a partir de las
mediciones y los precios unitarios

3.1 COMPONENTES PRINCIPALES

Componentes

Cantidad

Precio

Coste total

(/unid)

()

PIC32 USB Starter Kit II

41,63

41,63

Multimedia Expansion Board, MEB

189,24

189,24

M2M PICtail DAUGHTER BOARD

150,64

150,64

Tarjeta de Control de Sensores v4.0 (TCS4)

100,00

100,00

Tarjeta SIM

7,00

7,00

Cable USB mini USB

2,75

2,75

TOTAL

1.201,89

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Sumas parciales

3.2 EQUIPO Y HERRAMIENTAS

Elemento

Uds.

Horas de

Horas

Precio

Amortizacin

Coste

proyecto

por ao

(/unid)

anual

()

Ordenador

500

1600

850

25%

66,4

Dispositivo de
telefona mvil
Regulador de

80

3560

669

25%

3,76

tensin 230V ~

80

200

12,46

25%

2,49

Osciloscopio

10

300

627,39

25%

5,23

Polmetro

10

450

45

25%

0,25

Soldador

500

35

25%

0,02

TOTAL

78,15

12V=

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Sumas parciales

3.3 SOFTWARE

Elemento
Microsoft

Visual

Studio 2010
Microsoft Office

Horas de

Horas

Precio

Amortizacin

Coste

proyecto

por ao

(/unid)

anual

()

170

1000

800

20%

27,2

150

1500

101,18

20%

2,02

TOTAL

29,22

Uds.

3.4 MANO DE OBRA DIRECTA

Actividad

Horas

Precio

Coste total

(/hora)

()

Programacin

350

20

7.000

Pruebas y solucin de problemas

100

60

6.000

Documentacin del proyecto

100

40

4.000

TOTAL

17.000

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

Presupuesto general

Captulo 4 PRESUPUESTO GENERAL


Sumando la contribucin de todas las categoras anteriores se concluye que el
coste del proyecto, impuestos incluidos, asciende a:

Concepto

Coste ()

Componentes principales

1.201,89

Equipo y herramientas

78,15

Software

29,22

Mano de obra directa

17.000

TOTAL

18.309,26

10

Você também pode gostar