52206bfa7acd2

download 52206bfa7acd2

of 118

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