52206bfa7acd2
-
Upload
raid-parisaca -
Category
Documents
-
view
232 -
download
0
Transcript of 52206bfa7acd2
-
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
-
NDICE DE LA MEMORIA
I
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL
ndice de la memoria
Parte I Memoria .......................................................................................1
Captulo 1 Introduccin .................................................................................1
1.1 Estado del arte ..............................................................................................1
MGM 1 ..................................................................................................................... 3 1.1.1
Giraa_02 ................................................................................................................... 4 1.1.2
4wd1 ......................................................................................................................... 5 1.1.3
Wi-fi robot ................................................................................................................ 5 1.1.4
GPS/GPRS/GSM Mdulo v2.0 .................................................................................. 6 1.1.5
1.2 Motivacin del proyecto ...............................................................................7
1.3 Objetivos .......................................................................................................7
1.4 Recursos ........................................................................................................8
Recursos hardware ..................................................................................................... 8 1.4.1
Recursos software .................................................................................................... 10 1.4.2
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
Estructura del mdulo y protocolo ............................................................................ 16 2.2.1
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
-
NDICE DE LA MEMORIA
II
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL
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
programacin de los microcontroladores .................................................................. 23 2.2.2
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
Aplicacin del mdulo I2C en la programacin ......................................................... 30 2.2.3
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
Concepto de red celular............................................................................................ 36 2.3.1
Arquitectura de la red gsm ....................................................................................... 37 2.3.2
Captulo 3 Pantalla tctil ............................................................................. 40
3.1 Multimedia expansion Board (MEB) ......................................................... 40
3.2 Programacin de la pantalla ...................................................................... 41
Funciones de inicializacin ...................................................................................... 42 3.2.1
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
Funciones de navegacin ......................................................................................... 42 3.2.2
-
NDICE DE LA MEMORIA
III
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL
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
Objetos o widgets .................................................................................................... 47 3.3.1
Estilos (GOL_SCHEME) ......................................................................................... 50 3.3.2
Ejemplo del diseo de una pantalla .......................................................................... 51 3.3.3
3.4 Pantallas de la interfaz programada .......................................................... 56
Antes de la configuracin de las comunicaciones...................................................... 57 3.4.1
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
Durante la configuracin de las comunicaciones ....................................................... 58 3.4.2
Despus de la configuracin de las comunicaciones.................................................. 61 3.4.3
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
libubx.h ................................................................................................................... 66 4.2.1
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
libgps.h ................................................................................................................... 72 4.2.2
4.3 Aplicacin de los mdulos a la interfaz ...................................................... 73
-
NDICE DE LA MEMORIA
IV
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL
Obtencin de las coordenadas GPS .......................................................................... 73 4.3.1
Modos de funcionamiento ........................................................................................ 74 4.3.2
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
-
NDICE DE FIGURAS
V
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL
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
-
NDICE DE FIGURAS
VI
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL
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
-
NDICE DE TABLAS
VII
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL
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
-
NDICE DE EXTRACTOS DE CDIGO
VIII
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL
ndice de extractos de cdigo
Cdigo 1. Opciones de configuracin del mdulo I2C ......................................... 23
Cdigo 2. Constantes definidas en el mdulo I2C ............................................... 26
Cdigo 3. Ejemplo de funcin de transmisin ..................................................... 27
Cdigo 4. Funcin de inicializacin del mdulo esclavo de I2C. ......................... 28
Cdigo 5. Funcin de procesamiento de mensajes del mdulo I2C 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
-
NDICE DE EXTRACTOS DE CDIGO
IX
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL
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
-
ACRNIMOS
X
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL
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
-
Memoria
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL
Parte I MEMORIA
-
Introduccin
1
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL
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.
-
Introduccin
2
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL
Ref. Descripcin Aplicacin
/Tarjeta GPS Comunicaciones Protocolo Microcontrolador
[1] MGM1 Aplicacin No GSM/GPRS SMS/MMS ATmega8
[2] Giraa_02 Aplicacin No GSM/GPRS Mensajera Motorola
MC9S12DP256 [3] 4WD1 Aplicacin No Bluetooth - PIC16F628
[4] Wi-Fi Robot Aplicacin - Wi-Fi - PIC16F628A
[5] GPS/GPRS/GSM
Module V2.0 Tarjeta S GSM/GPRS
Comandos AT
-
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.
-
Introduccin
3
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL
MGM 1 1.1.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.
-
Introduccin
4
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL
GIRAA_02 1.1.2
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.
-
Introduccin
5
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL
4WD1 1.1.3
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]
WI-FI ROBOT 1.1.4
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.
-
Introduccin
6
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL
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.
GPS/GPRS/GSM MDULO V2.0 1.1.5
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.
-
Introduccin
7
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL
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.
-
Introduccin
8
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL
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.
RECURSOS HARDWARE 1.4.1
PIC32 USB Starter Kit II, MICROCHIP:
Figura 6. Tarjeta PIC32 USB starter kit II
-
Introduccin
9
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL
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.
-
Introduccin
10
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL
RECURSOS SOFTWARE 1.4.2
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.
-
Introduccin
11
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL
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 I2C. 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.
-
Introduccin
12
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL
Por ltimo, se procedi a la documentacin del trabajo realizado para cumplir los
objetivos (ver 1.3) planteados al inicio del proyecto.
-
Comunicaciones
13
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL
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.
Figura 12.Arquitectura de las comunicaciones implementadas
Pantalla tctil MEB
pic32
GSM y GPS
TCS4
SPI
RS-232
I2CRS-232
GSM
-
Comunicaciones
14
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL
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.
-
Comunicaciones
15
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL
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).
1 Significa que la comunicacin es bidireccional pero no simultnea.
-
Comunicaciones
16
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL
ESTRUCTURA DEL MDULO Y PROTOCOLO 2.2.1
Se va a proceder a explicar la estructura del mdulo I2C 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.
-
Comunicaciones
17
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL
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
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 I2C y sus
correspondientes pines son SCL, pin 17 y SDA, pin 18.
NOTA: I2CxBRG no puede ser un valor menor de 2
-
Comunicaciones
18
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL
Figura 13. Pines de dsPIC33FJ32MC202 [7]
2.2.1.2.2 PIC32MX795F512L
El microcontrolador que acta como esclavo dispone de 3 mdulos I2C y se ha
elegido el primero, y sus correspondientes pines son SCL, pin 66 y SDA, pin 67.
Figura 14. Pines de PIC32MX795F512L [11]
-
Comunicaciones
19
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL
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]
-
Comunicaciones
20
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL
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 I2C 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.
-
Comunicaciones
21
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL
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 I2C 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)
-
Comunicaciones
22
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL
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.
-
Comunicaciones
23
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL
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.
PROGRAMACIN DE LOS MICROCONTROLADORES 2.2.2
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
Cdigo 1. Opciones de configuracin del mdulo I2C
#define _MAESTRO_ // Opciones de compilacin: _MAESTRO_ y _ESCLAVO_
-
Comunicaciones
24
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL
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 I2C 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.
-
Comunicaciones
25
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL
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.
-
Comunicaciones
26
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL
Cdigo 2. Constantes definidas en el mdulo I2C
// 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
-
Comunicaciones
27
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL
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.
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.
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]
DireccinRespuesta esperada
Nmero de caracteres
Instruccin Parmetros
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 }
-
Comunicaciones
28
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL
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 static unsigned char
uc_direccion. Se ha activado la retencin del reloj y se ha limpiado la bandera de
desbordamiento del buffer de lectura I2COV.
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
void InicializarEsclavoI2C(unsigned char uc_direccion) { I2C1ADD = uc_direccion; // Direccin como esclavo I2C1CONbits.SIDL = 0; // Continuar funcionando en modo suspensin I2C1CONbits.STRICT = 0; // Deshabilitar Intelligent Peripheral Management Interface (siempre para el maestro) I2C1CONbits.A10M = 0; // Direcciones de 7 bits (A10M = 1 para 10 bits) I2C1CONbits.DISSLW = 0; // Habilitar el control del slew-rate (slo para 400 kHz) I2C1CONbits.SMEN = 0; // Deshabilitar niveles SMbus I2C1CONbits.STREN = 1; // Habilitar la suspensin de la transmisin en la recepcin (Esclavo) I2C1CONbits.GCEN = 0; // Deshabilitar las interrupciones para mensajes generales I2C1CONbits.SCLREL = 1; // Transmisin inicialmente despierta (Esclavo) I2C1CONbits.ON = 0; // Mantener el mdulo I2C apagado I2C1STATbits.I2COV = 0; // Limpiar el flag de overflow del buffer de lectura 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 }
-
Comunicaciones
29
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL
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.
Cdigo 5. Funcin de procesamiento de mensajes del mdulo I2C del esclavo
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); // Nmero de caracteres PonerEnColaTransmisionI2C(DIR_GPS);// Direccin PonerEnColaTransmisionI2C(PING); // Cdigo de instruccin PonerEnColaTransmisionI2C(7); // Respuesta break; } } } HabilitarInterrupcionesEsclavoI2C(); }
-
Comunicaciones
30
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL
APLICACIN DEL MDULO I2C EN LA PROGRAMACIN 2.2.3
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().
Cdigo 6.Estrucura de una transmisin de CComunicaI2C
CComunicaI2C comunica; comunica.inicio(); // Funciones
comunica.comunica();
-
Comunicaciones
31
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL
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.
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).
// Funcin de peticin void LeerCoordenadasGPS(void);
// Funciones de lectura std::vector GetCoordenadasGPS(void) const; double GetLatitudGPS(void) const; double GetLongitudGPS(void) const; unsigned int GetSatelitesGPS(void) const; bool GetPosicionGPSValida(void) const;
-
Comunicaciones
32
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL
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.
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 I2C mediante el uso de la funcin necesaria
para obtener la informacin proporcionada por el GPS. El mdulo I2C adems
dispone de otras funciones que permiten gestionar el envo de informacin.
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.
com.inicio(); com.LeerCoordenadasGPS(); com.comunica(); std::vector vd_coordenadas; vd_coordenadas = com.GetCoordenadasGPS();
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);
-
Comunicaciones
33
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL
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 y si el maestro espera respuesta llama a 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.
-
Comunicaciones
34
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL
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 I2C y esa es la parte del cdigo que se
muestra en Cdigo 11. Esta funcin, cuando la bandera interrupcin est
desactivada, actualiza las coordenadas GPS y se guardan en la variable
coordenadasGPS siguiendo la estructura mostrada en la Figura 20.
Figura 20.Estructura datos I2C enviada por el esclavo.
DireccinRespuesta esperada
Nmero de caracteres
Instruccin Parmetros
DIR_GPS INST_COORD 00.0000N000.0000E 06 A
Direccin Instruccin CoordenadasNmero de
satlitesBit de
confirmacin
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();
}
-
Comunicaciones
35
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL
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.
Cdigo 11. Funcin GetCoordenadasGPS
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);
}
-
Comunicaciones
36
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL
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).
CONCEPTO DE RED CELULAR 2.3.1
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]
-
Comunicaciones
37
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL
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.
ARQUITECTURA DE LA RED GSM 2.3.2
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.
-
Comunicaciones
38
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL
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.
-
Comunicaciones
39
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL
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.
-
Pantalla tctil
40
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL
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]
-
Pantalla tctil
41
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL
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.
-
Pantalla tctil
42
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL
FUNCIONES DE INICIALIZACIN 3.2.1
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).
FUNCIONES DE NAVEGACIN 3.2.2
Estas funciones se encuentran dentro del while(1) de la funcin main tal como se
muestra en Cdigo 12.
-
Pantalla tctil
43
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL
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
int main(void)
{
...
while(1)
{
........
if(GOLDraw())
{
TouchGetMsg(&msg);
GOLMsg(&msg);
}
}
}
-
Pantalla tctil
44
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL
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.
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;
-
Pantalla tctil
45
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL
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.
-
Pantalla tctil
46
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL
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
-
Pantalla tctil
47
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL
OBJETOS O WIDGETS 3.3.1
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
Slider Horizontal/Vertical
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
2 Pequea aplicacin o programa cuya finalidad es proporcionar informacin grfica.
-
Pantalla tctil
48
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL
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.
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.
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
);
-
Pantalla tctil
49
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL
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.
Cdigo 16. Estados para el objeto BUTTON
BUTTON BtnCreate ( WORD ID, // Cdigo de ifentificacin SHORT left, // Extremo izquierdo SHORT top, // Extremo superior SHORT right, // Extremo derecho SHORT bottom, // Extremo inferior SHORT radius, // Radio de las esquinas WORD state, // Estado inicial del objeto void *pBitmap, // Puntero al bitmap XCHAR *pText, // Puntero al texto GOL_SCHEME *pScheme // Puntero al estilo );
#define BTN_FOCUSED 0x0001 // Bit for focus state. #define BTN_DISABLED 0x0002 // Bit for disabled state. #define BTN_PRESSED 0x0004 // Bit for press state. #define BTN_TOGGLE 0x0008 // Bit to indicate button will have a toggle behavior. #define BTN_TEXTRIGHT 0x0010 // Bit to indicate text is right aligned. #define BTN_TEXTLEFT 0x0020 // Bit to indicate text is left aligned. #define BTN_TEXTBOTTOM 0x0040 // Bit to indicate text is top aligned. #define BTN_TEXTTOP 0x0080 // Bit to indicate text is bottom aligned. #define BTN_TWOTONE 0x0100 // Bit to indicate the button is a two tone type. // Note that if bits[7:4] are all zero text is centered. #define BTN_DRAW_FOCUS 0x2000 // Bit to indicate focus must be redrawn. #define BTN_DRAW 0x4000 // Bit to indicate button must be redrawn. #define BTN_HIDE 0x8000 // Bit to indicate button must be removed from screen. #define BTN_REMOVE 0x8000
-
Pantalla tctil
50
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL
ESTILOS (GOL_SCHEME) 3.3.2
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.
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
Cdigo 18. Definicin colores
typedef struct { WORD EmbossDkColor; // Color oscuro para efecto 3D. WORD EmbossLtColor; // Color claro para efcto 3D. WORD TextColor0; // Color 0 del texto para objetos con texto. WORD TextColor1; // Color 1 del texto para objetos con texto. WORD TextColorDisabled; // Color del texto para objetos deshabilitados. WORD Color0; // Color 0 asignado al estado de un objeto. WORD Color1; // Color 1 asignado al estado de un objeto. WORD ColorDisabled; // Color utilizado para objetos deshabilitados. WORD CommonBkColor; // Color del fondo para ocultar objetos. void *pFont; // Fuente de la letra. } GOL_SCHEME;
Color0 = RGB565CONVERT(10,129,255);
Color1 = RGB565CONVERT(0xD4, 0xE1, 0xF7);
-
Pantalla tctil
51
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL
EJEMPLO DEL DISEO DE UNA PANTALLA 3.3.3
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.
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 u