• No se han encontrado resultados

Desarrollo de un dispositivo de telemetría y geolocalización basado en la plataforma Arduino y Shield 3G+GPS

N/A
N/A
Protected

Academic year: 2023

Share "Desarrollo de un dispositivo de telemetría y geolocalización basado en la plataforma Arduino y Shield 3G+GPS"

Copied!
118
0
0

Texto completo

(1)

Desarrollo de un dispositivo de telemetría y geolocalización basado en la plataforma

Arduino y Shield 3G+GPS

Trabajo de Fin de Grado

Titulación: Grado en Ingeniería en Tecnologías Industriales Alumno: López Jiménez, Pedro

Celestino

Director: Garrigós Guerrero, Francisco Javier

Cartagena, 21 de Julio de 2014

(2)

2

AGRADECIMIENTOS

Dedico este trabajo a mi familia, por su apoyo y preocupación durante el comienzo de mis estudios hasta ahora, y a Javier Garrigós, por depositar su confianza en mí para realizar este trabajo y su gran ayuda durante el desarrollo del mismo.

(3)

3

INFORMACIÓN

RESUMEN

El objetivo principal del trabajo es el diseño de un dispositivo electrónico basado en la plataforma Arduino capaz de realizar telemetría en tiempo real a través de internet utilizando un Shield con tecnología 3G+GPS. Para ello en primer lugar será necesario diseñar y programar la etapa de adquisición de datos procedentes de diferentes sensores, tanto analógicos como digitales, así como la geolocalización. A continuación se diseñará un procedimiento de empaquetamiento y entramado óptimo de la información, teniendo en cuenta el compromiso entre volumen de datos, ancho del canal, tasa de errores, etc. Finalmente, se diseñará una etapa de comunicaciones, analizando los protocolos más eficientes para esta plataforma y caso de uso, para la transmisión de los datos adquiridos a través de Internet mediante un módem 3G. De esta manera seremos capaces de aplicar el prototipo a una aplicación concreta, en nuestro caso una motocicleta de competición.

ABSTRACT

The main objective of this work is to design an electronic device based on Arduino platform capable of making real-time telemetry through Internet using a Shield with 3G+GPS technology. First of all, it will be necessary to design and program the phase of acquisition of data from different sensors, both analogic and digital, as well as geopositioning data. The next step is to design a method to package and to make an optimal framework of the information, concerning about the compromise between data-volume, and data-width, error tax, etc. Finally, it will necessary to design a communication phase, in which we will study the Internet most-efficient protocols for this platform to transmit the acquired data through Internet by a 3G modem. Then we will be able to apply the prototype to a specific application, in our case a competition motorcycle.

Autor Pedro Celestino López Jiménez

Correo electrónico autor ninomurcia92@gmail.com

Director Francisco Javier Garrigós Guerrero

Correo electrónico director javier.garrigos@upct.es

Titulación Grado en Ingeniería en Tecnologías

Industriales

Departamento Departamento de Electrónica, Tecnología

de Computadoras y Proyectos

Título del trabajo Desarrollo de un dispositivo de telemetría y geolocalización basado en la plataforma Arduino y Shield 3G+GPS

Title of the work Development of a telemetry and

geopositioning device based on Arduino platform and 3G+GPS Shield

(4)

4

ÍNDICE

1. INTRODUCCIÓN Y OBJETIVOS ... 9

1.1 INTRODUCCIÓN ... 9

1.2 DEFINICIÓN DE OBJETIVOS ... 10

1.3 ELEMENTOS QUE COMPONEN EL SISTEMA ... 11

1.3.1 Arduino ... 12

1.3.2 Shield 3G+GPS ... 14

1.3.3 Sensores ... 16

1.3.4 Servidor ... 17

1.4 ENTORNO DE TRABAJO ... 18

1.5 ESTRUCTURA DE LA MEMORIA ... 21

2. ESTADO DE LA TÉCNICA ... 22

2.1 INTRODUCCIÓN A LA TELEMETRÍA ... 22

2.2 APLICACIONES ACTUALES DE LA TELEMETRÍA ... 23

2.3 SISTEMAS DE TELEMETRÍA SIMILARES ... 28

2.3.1 Discusión ... 30

3. MÉTODOS DE ADQUISICIÓN DE DATOS CON ARDUINO ... 31

3.1 INTERFACES DE HARDWARE COMPATIBLES CON ARDUINO ... 31

3.2 COMUNICACIÓN MEDIANTE PINES DIGITALES EN ARDUINO ... 32

3.2.1 Ejemplo de programa en Arduino para utilización pines digitales ... 33

3.3 COMUNICACIÓN MEDIANTE PINES ANALÓGICOS EN ARDUINO ... 34

3.3.1 Ejemplo de programa en Arduino para utilización pines analógicos y PWM ... 37

3.4 COMUNICACIÓN SERIE EN ARDUINO ... 37

3.4.1 Ejemplo de programa en Arduino para utilización puerto serie ... 40

3.5 COMUNICACIÓN SPI EN ARDUINO ... 41

3.6 COMUNICACIÓN I2C EN ARDUINO ... 43

3.7 COMPARATIVA Y EVALUACIÓN DE LAS PLACAS ARDUINO ... 46

4. SHIELD 3G+GPS. TRANSMISIÓN DE DATOS A TRAVÉS DE INTERNET Y GEOLOCALIZACIÓN ... 48

4.1 PRESENTACIÓN SHIELD 3G+GPS. PROTOCOLOS DE INTERNET ... 48

(5)

5

4.2 DESCRIPCIÓN DE LOS PROTOCOLOS DE INTERNET DISPONIBLES SHIELD 3G+GPS .. 51

4.2.1 Protocolo UDP. Nivel de transporte ... 51

4.2.2 Protocolo TCP. Nivel de transporte ... 52

4.2.3 Protocolo FTP. Nivel de aplicación ... 55

4.3 UTILIZACIÓN DE LOS PROTOCOLOS DE INTERNET EN SHIELD 3G+GPS ... 56

4.3.1 Introducción a los comandos AT ... 56

4.3.2 Inicialización Shield 3G+GPS ... 58

4.3.2.1 Código Arduino para la inicialización Shield 3G+GPS ... 60

4.3.3 Protocolo UDP en Shield 3G+GPS ... 60

4.3.3.1 Código Arduino para la utilización del protocolo UDP con Shield 3G+GPS ... 61

4.3.4 Protocolo FTP en Shield 3G+GPS ... 62

4.3.3.1 Código Arduino para la utilización del protocolo FTP con Shield 3G+GPS ... 63

4.4 GEOLOCALIZACIÓN MEDIANTE SATÉLITES GPS ... 63

4.4.1 Código Arduino para la utilización del módulo GPS ... 66

4.5 EVALUACIÓN DE LOS PROTOCOLOS DE INTERNET PARA UN SISTEMA DE TELEMETRÍA EN TIEMPO REAL ... 67

5. PRUEBAS DE CAMPO ARDUINO MEGA ADK Y SHIELD 3G+GPS ... 69

5.1 DESCRIPCIÓN DE LAS PRUEBAS DE CAMPO ... 69

5.2 TASA DE TRANSMISIÓN DE DATOS ... 69

5.2.1 Tasa de transmisión de datos utilizando protocolo UDP ... 70

5.2.2 Velocidad de transmisión de datos utilizando protocolo FTP ... 71

5.3 TASA DE ERROR DE TRANSMISIÓN DE DATOS ... 72

5.4 TIEMPO DE EJECUCIÓN DEL PROGRAMA ... 73

5.4.1 Tiempo inicialización del programa ... 73

5.4.2 Tiempo de bucle del programa ... 74

5.5 UTILIZACIÓN DE MEMORIA SRAM ... 74

5.6 TAMAÑO DEL PROGRAMA ... 75

5.5.1 Tamaño del programa mínimo ... 76

5.5.2 Número máximo de sensores que pueden incorporarse ... 76

5.7 TASA DE RECOPILACIÓN DE DATOS GPS ... 77

5.8 EVALUACIÓN DE LOS RESULTADOS ... 78

6. APLICACIÓN CASO PARTICULAR: MOTOCICLETA DE COMPETICIÓN ... 80

(6)

6

6.1 DESCRIPCIÓN CASO PARTICULAR ... 80

6.2 ADQUISICIÓN DE DATOS. SENSORES ... 81

6.2.1 Sensor digital de efecto Hall AH183 ... 82

6.2.1.1 Especificaciones técnicas AH183 ... 82

6.2.1.2 Código Arduino para utilización del sensor AH183 ... 83

6.2.2 Sensor digital SPI acelerómetro ADXL345 ... 84

6.2.2.1 Especificaciones técnicas ADXL345 ... 84

6.2.2.2 Código Arduino para utilización del sensor ADXL345 ... 86

6.2.3 Sensor digital I2C barométrico y de temperatura MPL3115A2 ... 87

6.2.3.2 Código Arduino para utilización del sensor MPL3115A2 ... 89

6.2.4 Sensores analógicos para desplazamientos ... 92

6.2.4.1 Especificaciones técnicas Potenciómetro deslizante Bourns PTE A Series y evaluación ... 93

6.2.4.2 Especificaciones técnicas Potenciómetro radial Bourns PTV A series y evaluación ... 94

6.3 TRANSMISIÓN DE DATOS Y GEOLOCALIZACIÓN ... 95

6.4 DISEÑO DEL ALGORITMO ... 95

6.4.1 Algoritmo para la monitorización de datos ... 95

6.4.2 Codificación de los datos ... 97

6.4.3 Empaquetamiento y envío de los datos ... 99

6.5 PRUEBAS DE CAMPO DEL PROTOTIPO COMPLETO PARA CASO PARTICULAR ... 100

6.5.1 Tasa de transmisión de datos ... 100

6.5.2 Tasa de error de transmisión de datos ... 101

6.5.3 Tiempo de ejecución del programa ... 101

6.5.4 Utilización de memoria SRAM ... 102

6.5.5 Tamaño del programa ... 102

6.6 PRESUPUESTO ... 103

6.7 IMÁGNES DEL PROTOTIPO FINAL ... 104

7. CONCLUSIONES Y LÍNEAS FUTURAS ... 106

ANEXO 1. CÓDIGO FUENTE SISTEMA DE TELEMETRÍA EN TIEMPO REAL PARA MOTOCICLETA DE COMPETICIÓN ... 108

BIBLIOGRAFÍA ... 117

(7)

7

ÍNDICE DE TABLAS Y FIGURAS

1.1 Placas Arduino Uno y Mega ADK ... 12

1.2 Comparativa modelos más comunes ... 14

1.3 Shield 3G+GPS ... 14

1.4 Diagrama de conexiones Shield 3G+GPS ... 15

1.5 Entorno de programación Arduino... 18

1.6 Cable USB ... 19

1.7 Banco de trabajo Arduino y Shield 3G+GPS ... 20

2.1 Antena de telemetría de un monoplaza ... 23

2.2 Centralita de datos ... 24

2.3 Esquema monoplaza ... 24

2.4 Ejemplo telemetría MotoGP ... 25

2.5 Electrocardiograma obtenido por telemetría ... 27

2.6 Composición Sistema telemetría Álvaro Hernán ... 29

3.1 Mapeado pines Atmega168 ... 32

3.2 Pines digitales Arduino ... 33

3.3 Esquema convertidor analógico/digital ... 34

3.4 Conversión analógico/digital ... 34

3.5 Modulación por ancho de pulso ... 36

3.6 Conexión puerto serie ... 38

3.7 Ejemplo comunicación puerto serie ... 38

3.8 Puerto serie Arduino Uno y Mega ADK ... 38

3.9 Esquema conexión I2C Maestro-Esclavo ... 41

3.10 Pines Arduino comunicación I2C ... 42

3.11 Bus SPI ... 43

3.12 Pines Arduino comunicación SPI ... 44

4.1 Modelo OSI ... 49

4.2 Composición trama protocolo UDP ... 52

4.3 Composición trama protocolo TCP ... 53

4.4 Comandos AT inicialización Shield 3G+GPS ... 58

4.5 Flujograma inicialización Shield 3G+GPS ... 59

4.6 Comandos AT protocol UDP ... 60

4.7 Comandos AT protocolo FTP ... 62

4.8 Comandos AT GPS ... 64

4.9 Trama GPS modo Stand-Alone y Mobile-Based ... 65

4.10 Trama GPS modo Mobile-Assisted ... 65

4.11 Comparativa TCP y UDP ... 67

5.1 Resultados tasa de transmisión protocolo UDP ... 70

5.2 Resultados tasa de transmisión protocolo FTP ... 71

5.3 Resultados tasa de error protocolo UDP y FTP ... 72

(8)

8

5.4 Resultados tiempo de inicialización ... 73

5.5 Resultados tasa de transmisión protocolo UDP ... 74

5.6 Resultados utilización de memoria SRAM ... 75

5.7 Resultados tamaño del programa mínimo ... 76

5.8 Número máximo de sensores ... 77

5.9 Resultados tasa de recopilación datos GPS ... 78

6.1 Sensor AH183 ... 82

6.2 Especificaciones técnicas AH183 ... 83

6.3 Sensor ADXL345 ... 84

6.4 Esquema conexiones ADXL345 ... 85

6.5 Especificaciones técnicas ADXL345 ... 85

6.6 Sensor MPL3115A2 ... 87

6.7 Esquema conexiones MPL3115A2 ... 88

6.8 Esquema pines MPL3115A2 ... 88

6.9 Especificaciones técnicasMPL3115A2 ... 89

6.10 Ejemplo potenciómetro lineal y potenciómetro radial ... 92

6.11 Especificaciones técnicas Bourns PTV A Series ... 93

6.12 Curva tensión/desplazamiento Bourns PTV A Series ... 93

6.13 Especificaciones técnicas Bourns PTE A Series ... 94

6.14 Curva tensión/rotación Bourns PTE A Series ... 94

6.15 Magnitudes motocicleta competición ... 96

6.16 Frecuencias de muestreo sensores motocicleta competición ... 96

6.17 Flujograma monitorización de datos ... 97

6.18 Tipos de datos sensores motocicleta de competición ... 98

6.19 Resultados tasa de transmisión prototipo completo ... 100

6.20 Comparativa codificación de datos ... 101

6.21 Resultados tasa de error prototipo completo ... 101

6.22 Resultados tiempo de ejecución prototipo completo ... 102

6.23 Resultados utilización de memoria SRAM prototipo completo ... 102

6.24 Resultados tamaño del programa prototipo completo ... 102

6.25 Presupuesto sistema telemetría moto competición ... 103

6.26 Imagen banco de pruebas ... 104

6.27 Imagen banco de pruebas conectado a PC ... 104

6.28 Imagen del servidor que procesa y muestra los datos ... 105

(9)

9

1. INTRODUCCIÓN Y OBJETIVOS

1.1 INTRODUCCIÓN

El tema de este Trabajo de Fin de Grado es el desarrollo de un dispositivo de telemetría y geolocalización en tiempo real basado en la plataforma Arduino, para el cual se ha seleccionado la tarjeta de desarrollo Arduino Mega ADK y el Shield 3G+GPS comercializado por la empresa Cooking Hacks. La telemetría se define como la tecnología que permite la medición remota de magnitudes físicas y químicas, así como el envío de la información generada en la medición hacia el operador del sistema de telemetría, para reportes, controles y toma de decisiones. Por su gran utilidad se ha convertido en una tecnología muy necesaria que se utiliza en infinidad de campos, tales como la exploración científica con naves no tripuladas (satélites, aviones y submarinos), industria (monitorización de procesos y consumo de energía), diversos tipos de competición (Fórmula 1 y MotoGP) e incluso en el campo de la medicina para monitorización de pacientes.

La motivación de este proyecto ha surgido del equipo Moto UPCT, formado por estudiantes de esta universidad y que participa en la competición anual Moto Student, en la que compiten universidades de toda Europa. Uno de sus objetivos para la próxima edición de la competición es la creación de un sistema de telemetría para su moto, y por ello acudieron al Departamento de Electrónica, Tecnología de Computadoras y Proyectos para su desarrollo. Ante la propuesta se decidió realizar un sistema más novedoso que los que se ofrecen en el mercado actualmente, capaz de realizar la medición y envío de los datos en tiempo real, de manera que fuera posible visualizar el comportamiento de la máquina en cada instante de forma remota.

Un sistema de telemetría en tiempo real se puede dividir en varias partes: En primer lugar debe haber un dispositivo que recopile la información de las variables físicas y químicas mediante el uso de sensores, como por ejemplo las revoluciones en una rueda de una moto de competición; debe poseer también un dispositivo de transmisión de datos, que envíe la información recogida de los sensores de forma remota a un servidor mediante un protocolo de comunicación; un servidor con un dispositivo receptor que utilice el mismo protocolo para recibir la información y almacenarla en forma de bases de datos; y por último un software que procese los datos y muestre por pantalla estos datos en forma de gráficas y tablas para su visualización.

Ante esta división del sistema en varias partes, el presente Trabajo de Fin de Grado se

(10)

10

centra en la recopilación de datos y posterior envío de los datos a un servidor remoto, dejando las partes restantes como tema para otros proyectos.

Para el desarrollo de este dispositivo de recopilación y envío de datos se ha decidido utilizar Arduino, que es una plataforma de electrónica abierta para la creación de prototipos basada en software y hardware flexibles y fáciles de utilizar. Arduino tiene la ventaja frente a otras plataformas de tener un gran número de shields o complementos a su disposición, los cuales permiten implementar un gran abanico de funcionalidades para nuestro dispositivo de manera sencilla. En concreto, para el desarrollo del dispositivo del presente trabajo, se consideró que Arduino es la mejor opción ya que la empresa Cooking Hacks había empezado a comercializar el Shield3G+GPS para Arduino, que le habilita para utilizar redes móviles de alta velocidad como las conocidas 3G y GSM, y cuenta además con GPS interno. Las grandes prestaciones que ofrece esta tecnología para el envío de información (hasta 7.2Mbps de descarga de datos y 5.5Mbps de envío de datos), junto con la posibilidad de geoposicionamiento mediante satélites GPS, hacen que Arduino y el Shield 3G+GPS de Cooking Hacks sea una opción idónea para un prototipo de dispositivo de telemetría en tiempo real por su sencillez y altas prestaciones. Además, el uso de las redes móviles para este tipo de sistemas es una gran novedad con respecto a los dispositivos que se encuentran en estos momentos en el mercado. En el apartado “Estado de la técnica” de este trabajo se profundizará en este tema.

Aunque el trabajo propuesto es independiente y la plataforma a desarrollar se espera tenga validez general, para la evaluación de las prestaciones del sistema de telemetría a desarrollar, se hace necesario diseñar un prototipo adaptado y particularizado para un problema concreto. En nuestro caso, se trabajará en estrecha colaboración con el equipo MotoUPCT, para la implementación del Sistema de Telemetría de la moto con el box de carrera.

1.2 DEFINICIÓN DE OBJETIVOS

Para la realización de este trabajo se ha establecido como propósito principal el desarrollo de un prototipo de dispositivo de recopilación y envío de datos a través de internet, utilizando las plataformas ya descritas, sobre el que realizar un benchmarking, es decir, una evaluación de la máxima capacidad de lectura y transmisión de datos del dispositivo. De esta manera queremos comprobar si las especificaciones que ofrece la plataforma Arduino son suficientes para este tipo de sistemas en las que la velocidad de adquisición de datos y velocidad de transmisión son primordiales.

(11)

11

Para la realización de este prototipo es necesario definir una serie de objetivos específicos, estos son:

1- Evaluación y selección de la placa Arduino y de los sensores representativos del problema ejemplo. Se seleccionará entre todas las placas que ofrece Arduino la que mejor se adecúe a las necesidades de nuestro dispositivo y los sensores necesarios para medir las variables físicas del sistema, en nuestro caso una moto de competición.

2- Diseño y programación de la etapa de adquisición de datos. A partir de los sensores seleccionados, se programará una etapa de adquisición de datos utilizando el entorno de programación de Arduino. Será necesario establecer un orden de adquisición de los datos en función de las características de los sensores, como las frecuencias de muestreo, y de la prioridad o importancia que tenga la variable dentro del sistema.

3- Evaluación del protocolo de comunicaciones. Se testearán todos los protocolos de transmisión que permite utilizar el Shield 3G+GPS, estableciendo las ventajas e inconvenientes de cada uno y mostrando los resultados de sus máximas capacidades de transmisión. A partir de esta información se elegirá uno de los protocolos para la transmisión de los datos.

4- Diseño del empaquetamiento y entramado de datos óptimo y programación de la etapa de comunicaciones. Una vez diseñada la etapa de adquisición, y seleccionado el mejor protocolo de transmisión, se diseñará la generación de tramas de información óptimas para el protocolo seleccionado y se programará la etapa de transmisión de datos a través de redes móviles.

5- Pruebas de campo y evaluación de los resultados del prototipo completo. Por último se realizará un benchmarking para medir la máxima capacidad del prototipo, estableciendo como criterios principales la velocidad de envío de datos y la capacidad de lectura máxima para la mayor velocidad de transmisión.

1.3 ELEMENTOS QUE COMPONEN EL SISTEMA

Como se desprende de la descripción hecha de las fases anteriores, una amplia parte del proyecto se ha centrado en buscar aquellos elementos que por sus características parezcan los más convenientes para realizar, lo que en un futuro

(12)

12

constituirá, la arquitectura completa del sistema. Hay que tener en cuenta que estos elementos están en continua evolución.

Los elementos que constituyen el sistema del proyecto son:

1.3.1 Arduino

Consiste en una placa que integra un microcontrolador de la familia ATmega (fabricados por la empresa Atmel Norway), por ejemplo el ATmega 328P-PU que integra la placa de Arduino básica denominada Uno. La placa de Arduino además cuenta con una serie de puertos que le permiten comunicarse con otros dispositivos, como un PC, shields o sensores.

1.1 Placas Arduino Uno y Mega ADK

Cada placa de Arduino tiene unas características determinadas, las principales diferencias entre las placas se encuentran en el modelo de microcontrolador y el número de puertos. No obstante, todas tienen una serie de elementos comunes que las diferencian del resto de plataformas de diseño de prototipos electrónicos, estas son [1]:

- Un microcontrolador. Es un circuito integrado programable, capaz de ejecutar las órdenes gradas en su memoria. Un microcontrolador incluye las tres principales unidades funcionales de una computadora: unidad central de procesamiento, memoria y periféricos de entrada/salida.

(13)

13

- Memoria. Todos los modelos poseen un módulo de memoria Flash para guardar en ella los programas. Cuentan también con un módulo de memoria RAM, más rápida pero volátil, que se utiliza durante la ejecución del programa, y una memoria tipo EEPROM que no se borra al apagar el dispositivo. Esto permite guardar datos y no perderlos en caso de fallo o de ser apagado el sistema.

- Alimentación. La placa se puede alimentar a través de varios puertos: El puerto USB, del que recibe 5 Voltios y un conector Jack, del que puede recibir desde 5 hasta 15 Voltios para su funcionamiento. Además, también puede suministrar energía a otros dispositivos a través de sus puertos de alimentación de 5 Voltios y 3.3 Voltios.

- Entradas/Salidas. Todos los modelos de Arduino cuentan con pines de entrada analógica y pines de entrada/salida digital. Algunos de sus pines digitales se pueden utilizar como salidas PWM (modulación por ancho de pulsos) para simular una salida analógica. Estos pines también se pueden utilizar como puertos serie (RS-232), para conexiones i2C/TWI y SPI.

- Comunicaciones. Las placas Arduino poseen al menos un puerto USB a través del cual puede comunicarse con una computadora y un puerto serie para comunicarse con otros dispositivos, como un Shield. También poseen un puerto ICSP para cargar el gestor de arranque (bootloader) o programas/firmware.

- Reloj, que puede generar señales de frecuencias desde 16 hasta 20 MHz en el caso de la mayoría de placas, aumentado a 84 MHz en el caso del Arduino Due y disminuyendo hasta 8 MHz para los modelos de tamaño reducido, como Arduino Mini.

- LEDs de encendido, RX, TX y botón de RESET. Que permiten obtener información visual del estado del dispositivo y de su comunicación, además de poder reiniciar el sistema de manera manual en cualquier momento con el botón RESET.

- Compatibilidad con el entorno de programación de Arduino. Una de las grandes ventajas de estas placas es el software que se utiliza para programarlas, el cual es gratuito y compatible con todas las placas utilizando un mismo lenguaje, basado en Processing, siendo portables los códigos entre placas con diferentes microcontroladores. Además, este software se encuentra disponible para todas las plataformas (Windows, Linux , Mac) y destaca por su sencillez.

(14)

14

A continuación se muestra una tabla comparativa de las características comentadas con los modelos más comunes:

Característica de Arduino UNO Mega 2560 Leonardo DUE

Tipo de microcontrolador Atmega 328 Atmega 2560 Atmega 32U4 AT91SAM3X8E

Velocidad de reloj 16 MHz 16 MHz 16 MHz 84 MHz

Pines digitales de E/S 14 54 20 54

Entradas analógicas 6 16 12 12

Salidas analógicas 0 0 0 2 (DAC)

Memoria de programa (Flash) 32 Kb 256 Kb 32 Kb 512 Kb

Memoria de datos (SRAM) 2 Kb 8 Kb 2.5 Kb 96 Kb

Memoria auxiliar (EEPROM) 1 Kb 4 Kb 1 Kb 0 Kb

1.2 Comparativa modelos más comunes

1.3.2 Shield 3G+GPS

Los shields de Arduino son placas que a modo de accesorio se pueden conectar a una placa Arduino. Para ello, los pines de sus puertos guardan una disposición de compatibilidad. Existe una gran variedad de shields, con diversa funcionalidad: control de motores, comunicaciones, etc.

Para realizar este proyecto, se va a utilizar el Shield 3G+GPS comercializado por la empresa Cooking Hacks, como ya se ha mencionado anteriormente [10].

1.3 Shield 3G+GPS

Este Shield está compuesto principalmente por el módem SIM5218, que es un módem de telefonía 3G, que permite conexiones de hasta 7.2Mbps de descarga de datos y 5.76Mbps de subida de datos. El hardware de este módem incluye: UART (Universal Asynchronous Receiver-Transmiter, o Transmisor-receptor asíncrono universal), que permite comunicaciones tipo serie, siendo esta la manera en la que se

(15)

15

comunicará con Arduino; Soporte para tarjetas SIM; USB 2.0; GPS interno; conexión para tarjetas SD y soporte para cámara. Este módem permite realizar todas las funciones que se espera de un módem telefónico: Realización de llamadas, mensajes SMS, videollamadas, conexiones de datos a través de internet… Además de la funcionalidad del GPS, que permite utilizar diferentes modos, como el modo Asistido y el modo Stand Alone de los que se hablará más adelante.

Este módem se puede utilizar en Arduino gracias al Shield 3G+GPS, diseñado para que ambos dispositivos se acoplen y puedan comunicarse a través del puerto serie RX- TX y para alimentar el Shield a través de la placa de Arduino directamente. También posee una serie de Jumpers para utilizarlo con distintas configuraciones, como en un Raspberry Pi, con alimentación externa, o directamente con una computadora como un módem 3G USB.

El diagrama de conexiones de este Shield es el siguiente:

1.4 Diagrama de conexiones Shield 3G+GPS

El módulo se puede alimentar como hemos dicho directamente del Arduino, ya que solo requiere entre 3.4V y 4.2 V y una corriente entre 2 A y 3 A. Aunque también está preparado para alimentación externa y a través del puerto USB.

Sus características de comunicación son: SIM5218 es cuatribanda GSM/GPRS/EDGE y UMTS que trabaja a las frecuencias de GSM 850MHz, EGSM 900 MHz, DCS 1800 MHz, PCS1900 MHz, yWCDMA 2100M/1900M/850M.

(16)

16 Las potencias de salida de las señales son:

UMTS 850/900/1900/2100: 0.25W GSM850/GSM900: 2W DCS1800/PCS1900: 1W

Otras características de este módem son que implementa los protocolos FTP y FTPS para la gestión de archivos, apertura de puertos TCP y UDP, POP3 y SMTP para el envío de correos electrónicos y el protocolo HTTP, pudiendo obtener y enviar datos de servidores HTTP.

1.3.3 Sensores

Un sensor es un dispositivo capaz de detectar magnitudes físicas o químicas, llamadas variables de instrumentación, y transformarlas en variables eléctricas. Las variables de instrumentación pueden ser por ejemplo: temperatura, intensidad lumínica, distancia, aceleración, inclinación, desplazamiento, presión, fuerza, torsión o humedad. Una magnitud eléctrica puede ser una resistencia eléctrica (como en una RTD), una capacidad eléctrica (como en un sensor de humedad), una Tensión eléctrica (como en un termopar), una corriente eléctrica (como en un fototransistor), etc.

Los sensores son la esencia de la telemetría, gracias a ellos somos capaces de obtener los datos de las variables que queremos medir en nuestro sistema. En el mercado podemos encontrar una gran variedad de sensores, por ello es necesario conocer las características que diferencian a cada uno para poder escoger el sensor más adecuado para medir una variable. Esta decisión suele estar determinada por la naturaleza de la variable, frecuencia de trabajo requerida o precio.

Los sensores se pueden clasificar según la naturaleza de su señal eléctrica de salida en:

-Sensores analógicos. Son aquellos cuya salida es un señal eléctrica analógica, es decir, una tensión que varía con la variable que mide. Para obtener el valor de la variable que miden es necesario aplicar una serie de correlaciones a la tensión de salida, obtenidas experimentalmente y que normalmente aporta el fabricante en forma de curvas.

-Sensores digitales. Son aquellos cuya salida es una señal eléctrica binaria, compuesta por 0 y 1, y que no es necesario transformar. Entre estos sensores se pueden diferenciar el tipo ON y OFF, cuya salida sería booleana (0 o 1), y sensores cuya salida es una variable binaria perfectamente interpretable, como el valor de una temperatura en binario.

(17)

17 Las características que definen a un sensor son:

-Rango de medida: dominio en la magnitud medida en el que puede aplicarse el sensor.

-Precisión: es el error de medida máximo esperado.

-Offset o desviación de cero: valor de la variable de salida cuando la variable de entrada es nula. Si el rango de medida no llega a valores nulos de la variable de entrada, habitualmente se establece otro punto de referencia para definir el offset.

-Linealidad o correlación lineal.

-Resolución: mínima variación de la magnitud de entrada que puede detectarse a la salida.

-Rapidez de respuesta: puede ser un tiempo fijo o depender de cuánto varíe la magnitud a medir. Depende de la capacidad del sistema para seguir las variaciones de la magnitud de entrada.

-Derivas: son otras magnitudes, aparte de la medida como magnitud de entrada, que influyen en la variable de salida. Por ejemplo, pueden ser condiciones ambientales, como la humedad, la temperatura u otras como el envejecimiento (oxidación, desgaste, etc.) del sensor.

-Repetitividad: error esperado al repetir varias veces la misma medida.

1.3.4 Servidor

El servidor es la última de las partes de nuestro sistema. En un sistema de telemetría se define una red formada por dos puntos con una comunicación que puede ser bidireccional entre ellos, un dispositivo que envía información (cliente) a otro dispositivo que recibe la información y la almacena (servidor). Aunque, si en un principio definimos la comunicación de esta manera sería estrictamente unidireccional, decimos que es bidireccional porque la comunicación puede ocurrir en los dos sentidos dependiendo del protocolo de comunicaciones que utilicemos.

Por ejemplo, en el caso de utilizar un protocolo basado en UDP (User Datagram Protocol) la comunicación es unidireccional. En cambio, si utilizamos un protocolo basado en TCP (Transmission Control Protocol) la comunicación es bidireccional.

Estos conceptos se explicarán con detalle en capítulos posteriores.

Como servidor para este proyecto se ha utilizado una computadora en el laboratorio del departamento, que está conectada a la red Internet a través del

(18)

18

acceso de la Universidad. La computadora tiene el sistema operativo Windows 7 sobre el que se ejecutan los diversos servidores, que utilizan distintos protocolos con los que se ha trabajado en este proyecto, como un servidor UDP compilado por nosotros, y un conocido servidor FTP, filezilla, que es de uso gratuito y se puede descargar desde su página oficial: (https://filezilla-project.org/).

1.4 ENTORNO DE TRABAJO

En los apartados anteriores se han mencionado distintos elementos particulares que se emplearán a lo largo del proyecto para la consecución de los objetivos planteados. Por ello, este apartado trata de dotar al lector de una visión más clara sobre el entorno global en el que se ha trabajado.

En primer lugar se contará con un PC sobre el que está instalado el sistema Windows 7, que se utilizará para programar el microcontrolador gracias al entorno de programación de Arduino. Este software es gratuito y multiplataforma, y se puede descargar en la página oficial gratuitamente : (http://arduino.cc/en/Main/Software).

Aunque Arduino también permite utilizar otro software menos específico para su programación, este ha sido creado especialmente para estas placas.

1.5 Entorno de programación Arduino

(19)

19

Este entorno de programación utiliza su propio lenguaje para las placas Arduino. El lenguaje de programación de Arduino es una implementación de Wiring, una plataforma de computación física utilizada para microconroladores, que a su vez se basa en Processing, un entorno de programación multimedia. Toda la información sobre el lenguaje de programación Arduino se encuentra disponible en su página web, además cuenta con una gran comunidad a su alrededor de profesionales y aficionados que comparten sus programas y librerías, y que intentan ayudar a resolver problemas y dudas a través del foro oficial: http://forum.arduino.cc/ De esta manera se ha creado una gran comunidad de personas entorno a Arduino que le han impulsado y llevado a ser la plataforma de desarrollo de dispositivos electrónicos más conocida.

Algunas de las características del entorno de desarrollo de Arduino son:

- Editor de textos, en el que se escribe el código fuente del programa. Estos documentos son llamados sketches y tienen extensión “.ino”. Permite realizar las mismas operaciones que cualquier editor de textos.

- Una consola que nos muestra por pantalla mensajes sobre la compilación y la carga en la placa del código, como por ejemplo mensajes de error o carga completada.

- Un monitor del puerto serie, que es una ventana que muestra los datos que envía la placa de Arduino a través del puerto serie. También posee una función de send para enviar datos por el puerto serie desde la computadora.

- Ejemplos, programas que utilizan la mayoría de las funciones de este lenguaje y que están a tu disposición para su consulta de manera sencilla y rápida.

- Drivers de todas las placas de Arduino, para una instalación sencilla en nuestra computadora.

A continuación, para cargar los códigos en nuestra placa, solo es necesario conectar Arduino con el PC mediante un cable USB A/B, los drivers para Windows van incluidos con el entorno de programación:

1.6 Cable USB

(20)

20

Para utilizar el último componente, el Shield 3G+GPS, es necesario explicar el siguiente problema: La comunicación entre el Arduino y el shield se realiza a través del puerto serie, y este mismo puerto serie se comparte para comunicar la placa Arduino con el PC. De esta manera si están acoplados Arduino y Shield, y esto se conecta al PC, el Arduino siempre da preferencia al Shield, y no se podrá cargar el código del programa desde el PC. Para solucionar este problema, realizamos el siguiente esquema de conexión, sobre el que montaremos nuestro banco de trabajo:

1.7 Banco de trabajo Arduino y Shield 3G+GPS

En esta figura podemos ver las conexiones que hay que realizar para comunicar ambos dispositivos sin la necesidad de acoplarlos físicamente. En primer lugar, se ha conectado los pines de 5V y GND de Arduino a los correspondientes del Shield para la alimentación. Para la comunicación serie con el Shield se utilizan los pines 0 (RX) y 1 (TX) de la placa Arduino. Para evitar el problema que se ha descrito, utilizamos la configuración de esquema, ya que no es necesario acoplar ambas placas, y con un simple interruptor podemos cerrar la conexión serie entre los pines 0 y 1 y cargar el código fácilmente. De esta manera, para volver activar el Shield solo es necesario volver a activar el interruptor y la comunicación serie entre placa y Shield se restablece.

Evidentemente, esta estrategia se ha utilizado únicamente durante la fase de desarrollo, en la que las modificaciones en el código y las pruebas son continuas, para facilitar el proceso de reconexionado. Una vez finalizado el desarrollo, para su funcionamiento en campo, la placa Arduino y el Shield 3G pueden ser acoplados en la forma habitual, lo que reduce el espacio y hace al conjunto más consistente.

(21)

21

1.5 ESTRUCTURA DE LA MEMORIA

La memoria de este Trabajo de Fin de Grado se ha estructurado del siguiente modo:

1. Introducción. En el actual capítulo se explica la motivación de este proyecto y se ha determinado el alcance que debe tener el mismo, así como los pasos que se han llevado para su realización.

2. Estado de la técnica. En este capítulo se lleva a cabo una investigación de la telemetría y de su evolución desde sus inicios hasta la actualidad, profundizando en los sistemas remotos de telemetría. Será útil para comparar la tecnología que existe en el mercado con la que se desarrolla en este trabajo.

3. Métodos de adquisición de datos con Arduino. En primer lugar, se estudian las interfaces de hardware compatibles con la plataforma Arduino con algunos ejemplos que explican cómo utilizarlas. Por último se realiza una evaluación de las placas Arduino disponibles en el mercado para un sistema de telemetría.

4. Shield 3G+GPS. Transmisión de datos a través de internet y geolocalización. En este apartado se evaluarán los protocolos de transmisión a través de internet que permite utilizar el Shield 3G + GPS estableciendo las ventajas e inconvenientes de cada uno. Se estudiará el funcionamiento del Shield 3G+GPS y la forma de comunicación con el dispositivo Arduino, como se utilizan los protocolos descritos, además de la geolocalización mediante GPS en Arduino.

5. Pruebas de campo Arduino Mega ADK Shield 3G+GPS. En este capítulo se muestran los resultados de las pruebas de campo que se han realizado sobre el prototipo diseñado en los capítulos anteriores.

6. Aplicación caso particular: Motocicleta de competición. En este punto se describe la solución concreta para el problema particular de una moto de competición, analizando en profundidad los métodos de adquisición y de recopilación de datos óptimos para este caso.

7. Conclusiones y trabajos futuros. Por último, se analizan los resultados obtenidos con el prototipo y las conclusiones finales obtenidas de dichos resultados.

También se comentan las posibilidades en la evolución de este dispositivo para futuros trabajos.

(22)

22

2. ESTADO DE LA TÉCNICA

2.1 INTRODUCCIÓN A LA TELEMETRÍA

La telemetría incluye un conjunto de procedimientos para medir magnitudes físicas y químicas desde una posición distante al lugar donde se producen los fenómenos que queremos analizar y además, abarca el posterior envío de la información hacia el operador del sistema. El término telemetría procede de los términos griegos “tele”

que significa remoto, y “metron”, que significa medida. Aunque el termino telemetría se suele aplicar para sistemas remotos sin cables, en algunas bibliografías también se puede encontrar para definir sistemas de transmisión cableados.

Un sistema de telemetría normalmente está constituido por un transductor como dispositivo de entrada, un medio de transmisión en forma de líneas de cable u ondas de radio, dispositivos de procesamiento de señales, y dispositivos de grabación o visualización de datos.

 El dispositivo de entrada se puede distinguir como conjunto de dos partes fundamentales: el sensor, que es el elemento sensible primario que responde a las variaciones de estado de las magnitudes físicas de estudio, y el transductor, que es el que se encarga de convertir el valor de temperatura, presión o vibraciones en la señal eléctrica correspondiente, una vez detectada la variable a seguir, como puede ser la velocidad, las revoluciones del motor, la posición de la moto o el estado de las suspensiones.

 El medio de transmisión puede establecerse de forma guiada por medios como redes de telefonía clásica, redes de ordenadores o enlaces de fibra óptica, o de forma no guiada, por ondas de radio, comunicación por bluetooth o wifi o incluso por redes de telefonía móvil, que será la más adecuada para nuestra aplicación.

 El dispositivo de procesamiento de la señal está compuesto por un servidor remoto encargado de analizar y transformar los datos, según sea conveniente, para almacenar toda la información en una base de datos interna del propio ordenador.

 Para la visualización de los datos utilizaremos una herramienta software capaz de mostrar automáticamente los valores recogidos en las gráficas pertinentes. Y además, será capaz de representar la posición GPS de la moto en tiempo real.

(23)

23

2.2 APLICACIONES ACTUALES DE LA TELEMETRÍA

A continuación se presentan algunos de los numerosos campos en los que se aplica esta tecnología en la actualidad, como podemos ver se utiliza en una gran variedad de campos:

 COMPETICIÓN. FÓRMULA1 Y MOTOGP

En el caso de Fórmula1 los sistemas de telemetría son los sistemas auxiliares más importantes de los que se dispone. Los sistemas que utilizan se basan en ondas microondas en la banda UHF (300MHz-300GHz)y en conexiones punto a punto coche- portátil (PC). En las transmisiones inalámbricas la propagación ha de ser por línea de vista, es decir, que no haya ningún obstáculo sólido entre las antenas, porque las ondas utilizadas no son capaces de superarlos. Por ello se trabaja con envío de información a corta distancia mediante el uso de distintas antenas, aunque cuando el coche pasa lejos de los boxes puede haber pérdida de información. Podrían usarse también ondas de radio, que serían más rápidas, pero también menos fiables y con un menor ancho de banda (y por lo tanto, no podría transmitirse tanta información). Para poder enviar información a corta distancia, a lo largo de todos y cada uno de los circuitos del Mundial existen una serie de antenas repetidoras a las que llegan los datos desde los monoplazas.

Cada monoplaza lleva incorporada una pequeña (y aerodinámica) antena situada en el morro y a más de 10cm de altura, para evitar que la curvatura de la tierra sea un obstáculo más. Es omnidireccional, trabaja a una frecuencia de entre 1,45 y 1,65 GHz, tiene una ganancia de aproximadamente +3 dBi y una potencia de 160W. En la parte trasera del coche también se incorpora una segunda antena unidireccional.

2.1 Antena de telemetría de un monoplaza

Esta antena base va conectada a una unidad emisora/receptora CBR-610 que actúa como modem y des/encripta la señal con los datos codificados. Cuenta con una tasa de transferencia con picos de hasta 100Mbps. Esta unidad prepara la información

(24)

24

registrada por los sensores de coche de tal forma que pueda gestionarse mediante el potente software 'Atlas', que permite la lectura de los datos mediante complejas gráficas.

2.2 Centralita de datos

Desde la propia "centralita de datos" también se envía la información directamente a la fábrica de la escudería vía satélite, usando antenas parabólicas trabajando en la banda SHF.

Por otro lado, el elemento clave sin el cual no sería posible la telemetría en la Fórmula1 es la ECU (Electronic Control Unit). Podríamos decir que es la CPU del monoplaza, que se encarga de recoger todos los datos de los sensores. Es estándar y obligatoria para los 24 coches de la parrilla y está fabricada por la escudería McLaren en colaboración con Microsoft.

2.3 Esquema monoplaza

(25)

25

La ECU está basada en la arquitectura Power-PC, cuenta con dos procesadores de 40MHz, 1GB de memoria estática, 1MB de memoria flash ROM y 1MB de memoria SRAM. Su tasa máxima de transmisión de datos es de 230Kbps. Los ingenieros usan un cable Ethernet o RS-232 para conectarla con un ordenador portátil y configurarla adecuadamente (aunque está bastante limitada por la normativa de la FIA).

En la competición MotoGP se lleva a cabo un sistema de telemetría totalmente distinto. Por reglamento, en MotoGP la telemetría es offline, es decir, se recaba la información mientras el piloto está en pista, y luego, mediante el software propio de cada centralita, se descarga en el ordenador desde el que se trabajará .A diferencia de la Fórmula1 donde se trabaja en tiempo real, en MotoGP este sistema está prohibido.

En esta competición cada moto descarga toda la información después de cada expedición en pista. La información se transmite a través de canales, por ejemplo la Ducati GP11 puede llegar a tener más de doscientos. Una vez registrada la información, los gráficos resultantes de la misma ayudarán al piloto, junto al analista de datos y al ingeniero de pista, a conocer la situación de su moto y de su propio pilotaje, en cada curva del circuito. Asimismo, podrá averiguar la marcha con la que negocia cada ángulo o la presión que ejerce sobre los frenos en todo momento, para conocer sus límites, y la mejor estrategia para sobrepasarlos sin exponerse a un accidente.

A continuación, podemos ver un gráfico que contempla variables como las revoluciones por minuto, las marchas, las suspensiones. Es un gráfico real de la telemetría del piloto MAPFRE Aspar, Héctor Barberá, en el circuito australiano de Phillip Island.

2.4 Ejemplo telemetría MotoGP

(26)

26

 DOMÓTICA

A mediados de los años 90, los automatismos destinados a edificios de oficinas, junto con otros específicos, se comenzaron a aplicar a las viviendas particulares y otro tipo de edificios, dando origen a la vivienda domótica.

La vivienda domótica es un hogar capaz de tomar las decisiones óptimas ante diferentes eventos. Para ello integra una serie de mecanismos en materia de electricidad, electrónica, robótica, informática y telecomunicaciones, con el objetivo de simplificar algunas labores, dotar de mayor confort y seguridad, y aumentar el ahorro energético.

Con la integración de la telemetría en el campo de la domótica, no sólo es posible manipular un equipo de la casa in situ, sino monitorizar y controlar su estado de forma remota en tiempo real. Esta técnica se puede implementar mediante pasarelas residenciales, a través de las cuáles se puede acceder a la red interna de la vivienda, tan sólo disponiendo de un servidor web con conexión a Internet, entre otras herramientas.

Esto permite a propietarios controlar y gestionar los componentes de su vivienda desde cualquier lugar.

 ROBÓTICA

La robótica es una rama de la tecnología que estudia el diseño y construcción de máquinas capaces de desempeñar tareas realizadas por el ser humano, o que requieren del uso de inteligencia. La informática, la electrónica, la mecánica y la ingeniería son sólo algunas de las disciplinas que se combinan para elaborar un sistema robótico.

Estos sistemas pueden realizar tareas como manipular materiales radioactivos, limpiar residuos tóxicos, minería, búsqueda y rescate de personas y localización de minas terrestres. Para ser posible, es necesario recibir información del entorno e interpretarla, para lo que existen técnicas como la telemetría láser. Ésta consiste en lanzar un rayo láser que determina la distancia a la que se encuentran los objetos que lo rodean, lo que le permite desplazarse e interactuar por el mismo.

(27)

27

 MEDICINA

En medicina la telemetría es comúnmente usada en numerosas situaciones y utilizando diferentes técnicas, fundamentalmente con el objetivo de tener monitorizadas constantes vitales u otros parámetros de los pacientes de la forma menos invasiva posible, sobre todo cuando el periodo de observación se extiende a días o incluso semanas. En estos casos, los modernos sistemas de telemetría y alarma basada en comunicaciones móviles permiten incluso el seguimiento domiciliario de la evolución de los pacientes crónicos o con largos periodos de convalecencia, que de otra forma deberían permanecer en el entorno hospitalario o realizar continuas visitas, con un control discontinuo de su evolución. La telemetría tiene la ventaja de proporcionar un sistema de monitorización continua, como en el caso de estar hospitalizado, pero con el ahorro de costes y la comodidad para el paciente de estar en su entorno habitual.

Entre otras aplicaciones, una de las más extendidas es el uso de la telemetría para registrar eventos electrocardiográficos a distancia. Los radiotransmisores están conectados al paciente mediante 5 electrodos adheridos a la piel; esto permite a los pacientes libertad para deambular y moverse. El ordenador central refleja los E.C.G. de los pacientes conectados a él y guarda los eventos importantes ocurridos durante las últimas 24 horas. En un estudio realizado por Pérez Titos CB y Oliver Ramos MA, del Hospital Universitario Médico-Quirúrgico «Virgen de las Nieves» de Granada se obtuvo que el 80% de los pacientes estudiados registraron eventos en la Telemetría y el 23%, de éstos, fueron eventos graves.

2.5 Electrocardiograma obtenido por telemetría

(28)

28

2.3 SISTEMAS DE TELEMETRÍA SIMILARES

En este punto se pretende realizar una búsqueda de sistemas telemetría similares que se han diseñado recientemente, con el objetivo de estudiar distintas posibilidades que otros investigadores han tenido en cuenta y establecer una comparación con nuestro sistema, e incorporar si fuera necesario alguna de las características de otros diseños que resulten de especial interés en nuestro caso. Es de señalar que la mayoría de información encontrada se centra en el sector de la automoción..

 SISTEMA DE ADQUISICIÓN DE DATOS DE UNA MOTOCICLETA DE COMPETICIÓN, Proyecto de Fin de Carrera realizado por GUILLEM BATLER SIQUIER [2]

En este Proyecto se diseña un dispositivo de adquisición de datos para una motocicleta de competición. Para su diseño se utiliza el microcontrolador PIC 16F887 que almacena los datos en una tarjeta SD. También se centra en la búsqueda de los sensores que mejor se adapten a este sistema midiendo temperatura, revoluciones, frenada… mediante la utilización de una serie de sensores analógicos. Es un proyecto interesante para definir lo parámetros que son importantes para medir y los sensores concretos necesarios para lograrlo.

 PROTOTIPO DE UN SISTEMA DE TELEMETRÍA Y CONTROL PARA SEGURIDAD EN VEHÍCULOS, SOPORTADO EN REDES MÓVILES, Proyecto de Fin de Grado por ÁLVARO HERNÁN CÁRDENAS VALENCIA [3]

Para este dispositivo se seleccionó el microcontrolador PIC, junto con el modem Sony Ericsson GM28/29. La parte de telemetría es instalada en un vehículo, que por medio de un modem de telefonía celular GSM, es el encargado de establecer la comunicación y la trasmisión de la información en un mensaje de texto simple (SMS), este va dirigido al número del propietario suministrándole información actual de los estados del mismo. En cuanto a la parte de control: el usuario utiliza un teléfono celular;

llama al número del vehículo, por consiguiente el sistema modem contesta automáticamente y establece la comunicación en la cual el usuario puede controlar la alarma por medio del teclado numérico del teléfono, el bloqueo, encender o apagar el vehículo o el aire acondicionado, solicitar información de la temperatura, nivel de la gasolina o el aceite.

(29)

29 El sistema final diseñado se puede ver en la siguiente figura:

1. Multiprogramador de MCU PICmicro EB006.

2. Board Keypad EB014.

3. Board LCD EB005.

4. Board RS232 EB015.

5. Modem Sony Ericsson GM28

2.6 Composición Sistema telemetría Álvaro Hernán

 SISTEMA DE TELEMETRÍA EN TIEMPO REAL MEDIANTE REDES MÓVILES GSM PARA EL MONITOREO DE LOS PARÁMETROS BÁSICOS DE UN VEHÍCULO, Proyecto de Fin de Grado por ANGEL DANILO CORNEJO ORTEGA [4].

El objetivo de este proyecto consiste en el diseño y construcción de un sistema de telemetría, para realizar el monitoreo de los parámetros de presión de aceite, temperatura del líquido refrigerante, velocidad de giro del motor y velocidad de desplazamiento del vehículo, y su respectiva implementación en el vehículo Chevrolet Optra 2008. Los parámetros son adquiridos de las señales de los sensores que posee el auto, de acuerdo al respectivo parámetro; para luego ser procesados y almacenados en el microcontrolador PIC 16F877A y posteriormente enviados por el puerto serie a un modem GSM Motorola C261, el mismo que va a ser el encargado de enviarlo hacia el modem GSM ZTE en formato de mensaje de texto cuando reciba la debida orden.

 TELEMETRÍA INALÁMBRICA POR RED CELULAR GSM, Proyecto de Fin de Carrera realizado por SONIA CASILLAS [5]

Este trabajo expone el desarrollo de un sistema de telemetría que usa como medios de transmisión las redes GPRS (General Packet Radio Service) e Internet. El sistema tiene dos versiones en la parte correspondiente a la transmisión de las señales:

una con la tarjeta Starlert ST-1 y la otra con un teléfono celular. Ambos casos consideran el uso de una computadora para el procesado y/o generación de los datos. Lo que también difiere es la comunicación entre dicha unidad y el transmisor: la primera por medio del puerto serie y la segunda por la tecnología Bluetooth. Se expone también una aplicación en un sistema de ambulancia para la medición de señales ECG, de presión

(30)

30

sanguínea y de temperatura corporal y su posterior transmisión por GSM y recepción en el hospital de destino. A la par de telemetría, el sistema también permite la localización por medio de la red GPS (Global Position System), cuya aplicación se muestra con el rastreo de la ambulancia vía Internet.

2.3.1 Discusión

En este punto estamos en disposición de realizar una comparativa de los proyectos similares presentados y el sistema propuesto en este trabajo:

- La tecnología de comunicaciones utilizada en la mayoría de los casos es GSM, en este trabajo se propone utilizar la tecnología 3G, que proporciona un aumento de velocidad de conexión notable.

- Los microcontroladores utilizados en cada sistema son modelos específicos, esto no permite que puedan ser sustituidos por otros similares. En cambio, en este trabajo se propone utilizar Arduino, una plataforma que facilita el desarrollo creando un lenguaje de programación común para todos sus microcontroladores. Esto hace que cualquier programa sea válido e intercambiable entre cada modelo, lo que dota al sistema de la capacidad de ajustarse a las necesidades y el presupuesto.

- Los sistemas descritos son sistemas cerrados, es decir, no permiten la modificación de sus componentes o de sus parámetros de funcionamiento.

En este proyecto se presenta un sistema abierto, que utiliza todas las posibilidades que ofrece Arduino (como las interfaces serie, I2C, SPI…) capaz de adaptarse a las distintas necesidades que se pueden buscar en sistema de telemetría.

(31)

31

3. MÉTODOS DE ADQUISICIÓN DE DATOS CON ARDUINO

3.1 INTERFACES DE HARDWARE COMPATIBLES CON ARDUINO

En este capítulo se trata de estudiar los métodos disponibles para adquirir datos en Arduino. Para ello es necesario un estudio de las interfaces de hardware compatibles con las placas Arduino, además del hardware y el software necesario para conectar una placa Arduino con diferentes dispositivos como sensores o actuadores. Interfaz es un término que procede del vocablo inglés interface (“superficie de contacto”). En electrónica se utiliza este término para nombrar la conexión física y funcional entre dos sistemas o dispositivos. La interfaz, es por tanto, una conexión entre dos máquinas, a las cuales se les brinda un soporte para la comunicación entre distintos niveles. Un ejemplo conocido es la interfaz USB (Universal Serial Bus), que permite conectar todo tipo de periféricos a una computadora [6][7].

La idea fundamental en el concepto de interfaz es el de mediación. La interfaz es lo que "media", lo que facilita la comunicación, la interacción, entre dos sistemas de diferente naturaleza. Esto implica, además, que se trata de un sistema de traducción, ya que los dos sistemas "hablan" lenguajes diferentes. Se pueden distinguir dos tipos de interfaces:

- Una interfaz de hardware, a nivel de los dispositivos utilizados para ingresar, procesar y entregar los datos: sensores, actuadores...

- Una interfaz de software, destinada a entregar información acerca de los procesos y herramientas de control, a través de lo que el usuario observa habitualmente en la pantalla.

En nuestro caso, el análisis de las interfaces solo se centrará en las interfaces de hardware, ya que nuestro caso de estudio es un dispositivo de telemetría para el cual no se establece comunicación con una persona de forma directa, como por ejemplo a través de una pantalla. En esta sección no se tratarán los shields de Arduino, ya que utilizan las mismas interfaces para comunicarse con Arduino que el resto de dispositivos electrónicos, aunque estén diseñados específicamente para acoplarse con la placa. Por otro lado, cada una de las interfaces que se van a estudiar son independientes de la placa Arduino que utilicemos, ya que todas implementan de forma general estas interfaces y en todas se utiliza el mismo código de programación independientemente

(32)

32

del modelo utilizado. En los siguientes apartados de este capítulo se va a tratar de estudiar las diferentes interfaces de hardware compatibles con Arduino, las cuales son:

interfaz analógica, digital, puerto serie, SPI (Serial Peripheral Interface) e I2C (Inter- Integrated Circuit) y, por último, se hará una evaluación de las placas Arduino para el prototipo.

Para lograr estas comunicaciones, se emplean pines digitales y analógicos, en el siguiente esquema podemos ver el mapeado de los pines del microcontrolador que incorpora el Arduino Uno, el Atmega 168:

3.1 Mapeado pines Atmega168

3.2 COMUNICACIÓN MEDIANTE PINES DIGITALES EN ARDUINO

El puerto digital de Arduino está compuesto aquellos pines capaces de recibir y enviar señales digitales a otros dispositivos. Una señal digital es una señal compuesta solo por dos valores “0” y “1” [6][7].

En Arduino la tensión de referencia es 5V, por tanto los valores que sean iguales o superiores a 5V se considerarán un “1” y los que estén por debajo, un “0”.

Los pines de Arduino correspondientes a los pines digitales son aquellos que no llevan prefijo, y comprenden el mayor número del total de pines disponibles. En la

(33)

33

imagen que presentamos a continuación se muestra un ejemplo de la posición de estos pines para la placa Arduino Uno

3.2 Pines digitales Arduino

A continuación se muestran las funciones del código Arduino para el uso de estos pines:

-digitalRead(“pin”). Lee el valor de un pin digital especificado y retorna los valores 0 o 1, que en Arduino también pueden expresarse como HIGH o LOW.

-digitalWrite(“pin”, “valor”). Escribe un valor HIGH o LOW hacia un pin digital. Si el pin ha sido configurado como OUTPUT con pinMode(), su voltaje será establecido al correspondiente valor: 5V para HIGH, 0V (tierra) para LOW.

3.2.1 Ejemplo de programa en Arduino para utilización pines digitales

int ledPin = 13; // LED conecado al pin digital número 13

int inPin = 7; // botón (pushbutton) conectado al pin digital número 7 int val = 0; // variable donde se almacena el valor leído

void setup() {

pinMode(ledPin, OUTPUT); // establece el pin digital número 13 como salida pinMode(inPin, INPUT); // establece el pin digital número 7 como entrada }

void loop() {

val = digitalRead(inPin); // leer el pin de entrada

digitalWrite(ledPin, val); // establece el LED al valor del botón }

(34)

34

3.3 COMUNICACIÓN MEDIANTE PINES ANALÓGICOS EN ARDUINO

El puerto analógico es aquel que utiliza Arduino para comunicarse mediante señales analógicas con otros dispositivos. Las señalas analógicas son variables eléctricas que evolucionan en el tiempo en forma análoga a alguna variable física, estas variables pueden presentarse en forma de una intensidad de corriente o de una tensión[6][7].

Un ordenador o cualquier sistema de control basado en un microprocesador no puede interpretar señales analógicas, ya que sólo utiliza señales digitales. Es necesario traducir, o transformar en señales binarias, lo que se denomina proceso de digitalización o conversión de señales analógicas a digitales. Existen numerosos métodos para realizar esta conversión, aquí se va a explicar el método que utiliza Arduino, conocido como

“convertidor de integración de rampa simple”. En la figura siguiente se representa un diagrama en bloques de un conversor A/D de este tipo:

3.3 Esquema convertidor analógico/digital

La línea “clear” se usa para inicializar el contador en 0 (cero). El contador graba en forma binaria el número de pulsos provenientes del “clock”. Dado que el número de los pulsos contados aumenta linealmente con el tiempo, la palabra binaria representada al contar es usada en un conversor D/A cuya salida analógica se muestra en el gráfico siguiente:

3.4 Conversión analógico/digital

(35)

35

Esta señal es comparada con la entrada analógica. Mientras la salida del conversor D/A es inferior a la entrada analógica (Ve > Vd) el comparador entrega un uno a la puerta AND que así permite que la señal del “clock” llegue al contador digital. En cuanto la tensión generada en el conversor D/A supera el valor analógico de entrada al comparador (Vd > Ve) éste manda un cero a la puerta AND que detiene la información del “clock”, deteniendo al contador digital. El corte del contador se produce cuando Ve=Vd (o inmediatamente inferior según la escala de error) y este valor es leído a la salida del contador como una palabra que representa en forma digital que representa el valor de la tensión de entrada analógica.

En concreto, el conversor que presentan los microcontroladores ATMega es de 6 canales y tiene una resolución de 10 bits, retornando enteros desde 0 a 1023. En Arduino la tensión de referencia es de 5V. De esta manera una señal de 0V es un valor entero de 0 y una señal de 5V analógica toma un valor de 1023. En la documentación de Arduino podemos ver que el conversor tarda aproximadamente 100 microsegundos (0.0001 segundos) en leer una entrada analógica por lo que se puede llevar una tasa de lectura máxima aproximada de 10.000 lecturas por segundo.

Los puertos analógicos de Arduino se pueden utilizar sólo para leer señales analógicas. Para el proceso contrario, mandar una señal analógica a un dispositivo como un servomotor, se utilizan los puertos PWM, de los que se habla a continuación.

Los pines de Arduino correspondientes a los pines analógicos se nombran con el prefijo “A” (por ejemplo A0) y el número de pines analógicos totales depende del modelo de microcontrolador Atmega y, por tanto, de la placa Arduino que estemos utilizando. Aunque el uso principal de estos pines por los usuarios de Arduino es para la lectura de sensores analógicos, estos pines tienen también toda la funcionalidad de los pines de entrada-salida de propósito general (GPIO), es decir, digitales.

Consecuentemente, si un usuario necesita más pines de propósito general de entrada- salida, y no se está usando ningún pin analógico, estos pines pueden usarse como GPIO.

Arduino no dispone de pines de salida analógicas ya que no dispone de un conversor D/A, para realizar este proceso se utilizan los puertos conocidos por PWM.

Esta nomenclatura se debe a que utilizan la técnica conocida por el mismo nombre, que en español se traduce en Modulación por ancho de pulso (PWM = Pulse Width Modulation). Es una técnica para simular una salida analógica con una salida digital. El control digital se usa para crear una onda cuadrada, una señal que conmuta constantemente entre encendido y apagado. Este patrón de encendido-apagado puede simular voltajes entre 0 (siempre apagado) y 5 voltios (siempre encendido) simplemente variando la proporción de tiempo entre encendido y apagado. A la duración del tiempo de encendido (ON) se le llama Ancho de Pulso (pulse width). Para variar el valor analógico cambiamos, o modulamos, ese ancho de pulso. Si repetimos este patrón de

(36)

36

encendido-apagado lo suficientemente rápido por ejemplo con un LED el resultado es como si la señal variara entre 0 y 5 voltios controlando el brillo del LED.

En el gráfico de abajo las líneas verdes representan un periodo regular. Esta duración o periodo es la inversa de la frecuencia del PWM. En otras palabras, con la Arduino la frecuencia PWM es bastante próxima a 500Hz lo que equivale a periodos de 2 milisegundos cada uno. La llamada a la función analogWrite() debe ser en la escala desde 0 a 255, siendo 255 el 100% de ciclo (siempre encendido), el valor 127 será el 50%

del ciclo (la mitad del tiempo encendido), etc.

3.5 Modulación por ancho de pulso

Después de llamar a la función correspondiente en el código Arudino para generar la señal analógica, el pin generará una onda cuadrada estable con el ciclo de trabajo especificado hasta que se vuelva a llamar a la función. La frecuencia de la señal PWM es de aproximadamente 490 Hz.

Para utilizar los pines PWM debemos utilizar los puertos digitales que tengan este sufijo, como por ejemplo el pin 3 en Arduino Uno. El número de puertos PWM también depende del modelo con el que estemos trabajando.

A continuación se explican las funciones en código Arduino necesarias para utilizar estos pines:

- analogRead(“pin”). Lee el valor de tensión en el pin analógico especificado y devuelve un entero (de 0 a 1023).

- analogReference(“pin”). Se utiliza para cambiar el valor de referencia o umbral para la conversión A/D.

- analogWrite(“pin”, “valor”). Escribe un valor analógico (PWM) en un pin. El valor debe estar comprendido entre 0 (siempre apagado) y 255 (siempre encendido).

(37)

37

3.3.1 Ejemplo de programa en Arduino para utilización pines analógicos y PWM

int ledPin = 9; // LED conectado al pin digital 9 int analogPin = 3; // potenciómetro conectado al pin 3 int val = 0; // variable en el que se almacena el dato leído

void setup() {

pinMode(ledPin, OUTPUT); // indicamos pin como salida pinMode(analogPin, INPUT); // indicamos pin como entrada }

void loop() {

val = analogRead(analogPin); // lee la tensión en el pin

analogWrite(ledPin, val / 4); //Escribe este valor en el puerto PWM }

3.4 COMUNICACIÓN SERIE EN ARDUINO

La comunicación serie (o serial) es un protocolo muy común para comunicación entre dispositivos que se incluye de manera estándar en prácticamente cualquier computadora. La comunicación serial es también un protocolo común utilizado por varios dispositivos para instrumentación. Además, la comunicación serial puede ser utilizada para adquisición de datos si se usa en conjunto con un dispositivo remoto de muestreo[6][7].

A nivel físico, la comunicación serie puede establecerse según los protocolos estándares RS-232, RS-422 y RS-485, siendo la primera la que implementa Arduino. RS- 232 es la norma más común en este tipo de dispositivos, y se basa en la diferencia de potencial entre dos cables.

El concepto de comunicación serial es sencillo. El puerto serial envía y recibe bytes de información un bit a la vez. Aun y cuando esto es más lento que la comunicación en paralelo, que permite la transmisión de un byte completo por vez, este método de comunicación es más sencillo y puede alcanzar mayores distancias.

Típicamente, la comunicación serial se utiliza para transmitir datos en formato ASCII. Para realizar la comunicación se utilizan 3 líneas de transmisión: (1) Tierra (o referencia), (TX) Transmitir, (RX) Recibir. Debido a que la transmisión es asíncrona, es posible enviar datos por un línea mientras se reciben datos por otra. Para comunicar dos dispositivos mediante este puerto, solo es necesario conectar el pin RX de uno de ellos

Referencias

Documento similar

que hasta que llegue el tiempo en que su regia planta ; | pise el hispano suelo... que hasta que el

Para ello, trabajaremos con una colección de cartas redactadas desde allí, impresa en Évora en 1598 y otros documentos jesuitas: el Sumario de las cosas de Japón (1583),

Entre nosotros anda un escritor de cosas de filología, paisano de Costa, que no deja de tener ingenio y garbo; pero cuyas obras tienen de todo menos de ciencia, y aun

E Clamades andaua sienpre sobre el caua- 11o de madera, y en poco tienpo fue tan lexos, que el no sabia en donde estaña; pero el tomo muy gran esfuergo en si, y pensó yendo assi

Sanz (Universidad Carlos III-IUNE): "El papel de las fuentes de datos en los ranking nacionales de universidades".. Reuniones científicas 75 Los días 12 y 13 de noviembre

Fuente de emisión secundaria que afecta a la estación: Combustión en sector residencial y comercial Distancia a la primera vía de tráfico: 3 metros (15 m de ancho)..

grupos de interés ... La información sobre las actuaciones administrativas automatizadas y los algoritmos utilizados por las Ad- ministraciones públicas ... Fortalecer la calidad

La campaña ha consistido en la revisión del etiquetado e instrucciones de uso de todos los ter- mómetros digitales comunicados, así como de la documentación técnica adicional de