17
Manual de desarrollo de Custodium Tracker 1.0 Custodium soluciones y sistemas SL

Custodium Tracker Dev Manual

Embed Size (px)

DESCRIPTION

Tracker GPS Arduino

Citation preview

Page 1: Custodium Tracker Dev Manual

Manual de desarrollo de Custodium Tracker 1.0

Custodium soluciones y sistemas SL

Page 2: Custodium Tracker Dev Manual

Ernesto SánchezCustodium soluciones y sistemas S.L.

[email protected]

www.custodium.net

Algunas partes de éste documento, en concreto "Instalación del IDE de Arduino", "Introducción al IDE de Arduino" han sido realizadas a partir de las guías existentes de la web de Arduino (http://www.arduino.cc).

Este trabajo está publicado bajo la licencia Creative Commons Attribution-Noncommercial-Share Alike 3.0.

Para ver una copia de esta licencia, visita: http://creativecommons.org/licenses/by-nc-sa/3.0/

Excepciones:- Todas las marcas y marcas registradas mostradas en este documento, así como todos los logotipos mostrados en este sitio son propiedad de sus respectivos propietarios y NO están bajo la licencia mencionada.

- Las páginas que vinculen a este documento o sean vinculadas desde este manual NO tienen porqué estar bajo la licencia mencionada a menos que se indique lo contrario por sus respectivos propietarios.

Page 3: Custodium Tracker Dev Manual

Revisión:Fecha Comentarios

9 de diciembre de 2013 Primera versión pública.

17 de marzo de 2014 Se añade como actualizar el firmware con Arduino

22 de abril de 2014 Corrección de error en los pines Rx/Tx del diagrama “Pinout”

Page 4: Custodium Tracker Dev Manual

ÍndicePrefacio.................................................................................................................................................5Introducción..........................................................................................................................................6

Que es Custodium Tracker...............................................................................................................6Por qué Custodium Tracker.............................................................................................................6

Hardware..............................................................................................................................................7Como funciona Custodium Tracker.................................................................................................7Conexión para programación...........................................................................................................8

Conexión a través de un módulo FTDI.......................................................................................8Conexión a través de un Arduino UNO......................................................................................9

Software..............................................................................................................................................10Instalación del IDE de Arduino.....................................................................................................10

Windows....................................................................................................................................10Linux.........................................................................................................................................11MacOsX....................................................................................................................................11

Introducción al IDE.......................................................................................................................12Comenzando con Custodium Tracker................................................................................................15Ejemplos de aplicación.......................................................................................................................16

Blinking led....................................................................................................................................16Sensor de luz..................................................................................................................................16Comunicación por el puerto serie..................................................................................................17SIM908..........................................................................................................................................17RTC................................................................................................................................................17

Page 5: Custodium Tracker Dev Manual

Prefacio

Esta guía de desarrollo intenta ser una forma de acercarse al diseño y desarrollo de proyectos basados en Custodium Tracker para aquellas personas que que disponen de unos conocimientos básicos de Arduino, o si bien nunca han trabajado con él poseen un buen nivel en programación y electrónica y desean acercarse al interesante mundo del geoposicionamiento y el internet de las cosas. Por esta razón y para hacerlo fácil, se ha excluido mucha información existente en Internet y otros manuales para centrarse en los aspectos más básicos de las características de Custodium Tracker.

Es interesante para el desarrollador recordar que Custodium Tracker nace con la idea de ser compatible con la información y ejemplos ya existentes de Arduino.

Esperamos que les sea de utilidad.

Page 6: Custodium Tracker Dev Manual

Introducción

Que es Custodium Tracker

Custodium Tracker es el primer tracker gps en miniatura, libre y modular que proporciona toda la documentación, ejemplos y soporte necesarios para que el usuario final o desarrollador pueda adaptarlo a sus necesidades específicas, haciendo que se comunique con otros dispositivos, sensores… etc.

Nuestra idea es que el usuario y el desarrollador tenga total libertar para elegir el proveedor de datos gprs, aplicación web, mapas… etc. Siéntete libre de crear tu propio firmware, aplicación web o accesorios.

A su vez, y en lugar de crear una plataforma nueva desde cero hemos querido mantener la compatibilidad de Custodium Tracker con el IDE y ejemplos de Arduino ya existentes en la red, con lo que cualquier desarrollador que ya tenga conocimientos de ésta plataforma puede usarlos directamente, además de ser respaldado y ayudado por la comunidad ya existente de Arduino.

Por qué Custodium Tracker

Existe una amplia gama de dispositivos en el mercado para poder realizar localización gps, pero ninguno de ellos enteramente libre, y los que se podían realizar a partir de hardware libre eran muy aparatosos y no cumplían correctamente los requerimientos de modularidad y tamaño deseables, por eso desde Custodium quisimos poner nuestro granito de arena y contribuir al progreso y desarrollo del hardware libre.

Page 7: Custodium Tracker Dev Manual

Hardware

Como funciona Custodium Tracker

Custodium Tracker es un dispositivo que cuenta con los siguientes módulos claramente diferenciados:- Microcontrolador Atmega328P a 8mhz- Reloj en tiempo real (RTC)- Alojamiento para tarjeta SIM- Interruptor de encendido/apagado- Puerto mini USB para carga de batería- Pads para entrada de carga- Conector tipo JST para batería LiPo de 3,7v- Módulo de comunicaciones GSM/GPRS/GPS SIM908- Conectores para antena GSM y GPS- Conector ISP- Puerto serie

Los componentes están conectados al microcontrolador siguiente forma:- ISP: D13 SCK, D12 MISO, D11, MOSI, D10 SS- JP2: Rx - D0 y Tx - D1- SIM908: D4 - Rx , D5 - Tx, D8 - ON/OFF , D9 - RST - RTC: ICSP (MISO, MOSI,SCK y SS), D2 SWQ , D3 SS

Descripción general

Pinout

Page 8: Custodium Tracker Dev Manual

IMPORTANTE:A nivel de hardware hay que tener en cuenta las siguientes consideraciones, no seguirlas puede conllevar la destrucción del hardware:- El puerto USB y los pads de carga solamente sirven para cargar la batería, en ningún caso alimentan el resto del circuito, necesitan 5V estabilizados.- El interruptor de encendido/apagado debe ser manipulado con cuidado, en ningún caso realizando palanca sobre el mismo con un elemento externo.- Las baterías han de ser de tipo LiPo y de 3,7V nominales.- No se debe tener conectada la batería y una fuente de alimentación externa al mismo tiempo.

Conexión para programación

Custodium necesita una placa externa para su programación u actualización del firmware, esto es debido a que en su diseño ha primado el minimalismo, modularidad y economía.Ésto puede hacerse de dos formas, que se detallan a continuación.

Conexión a través de un módulo FTDI

Para poder programar Custodium Tracker con un módulo FTDI se necesitan los siguientes componentes:- 1 Custodium- 1 conversor FTDI (en éste ejemplo se usa “FTDI Basic Breakout 3.3/5V” de dfrobot.com, pero se puede emplear cualquier otro conversor FTDI del mercado)- 1 condensador cerámico de 100 nf- 1 cable mini USB

IMPORTANTE:- Se puede alimentar Custodium Tracker para su programación mediante el pin de Vcc del bus ISP, en este caso la batería debe estar desconectada o el interruptor en posición de OFF, en caso contrario Custodium Tracker puede resultar seriamente dañado.- En caso de alimentarse a través del pin Vcc del bus ISP algunas comunicaciones del SIM908 pueden no funcionar correctamente, ya que el puerto USB no tiene potencia suficiente.

AVISO SOBRE EL USO DE OTROS MÓDULOS FTDI:- En algunos módulos FTDI los pines Rx y Tx están etiquetados al revés, en caso de obtener algún error hay que probar a invertir dichos pines.

Se habrá de cablear como muestra el siguiente esquema:

El resultado quedará como se muestra a continuación:

Page 9: Custodium Tracker Dev Manual

INSERTAR FOTO CON FTDI(En la imagen se han usado hooks o garfios para no soldar permanentemente componente a la placa principal, así mismo se ha confeccionado una protoboard con el condensador de 100nf y los cables para ser conectada al conversor FTDI de dfrobot.com y facilitar su manejo)

Conexión a través de un Arduino UNO

Para poder programar Custodium Tracker con un Arduino UNO se necesitan los siguientes componentes:- 1 Custodium- 1 Arduino UNO(se pueden usar otras versiones de Arduino (Duemilanove, Diecimila, NG...), siempre que se les pueda retirar el microcontrolador)- 1 cable USB tipo B

IMPORTANTE:- Se puede alimentar Custodium Tracker para su programación mediante el pin de 5V del Arduino, en este caso la batería debe estar desconectada o el interruptor en posición de OFF, en caso contrario Custodium Tracker puede resultar seriamente dañado.- En caso de alimentarse a través del pin de 5V del Arduino algunas comunicaciones del SIM908 pueden no funcionar correctamente, ya que el puerto USB no tiene potencia suficiente y Arduino dispone de un fusible autorearmable que se dispara cuando se consumen mas de 500mA.

- El primer paso es retirar el microcontrolador de Arduino, ésta operación se ha de realizar mediante un destornillador y mucho cuidado para no dañar las patillas del microcontrolador.- Una vez retirado el microntrolador se habrá de cablear como muestra el siguiente esquema:

Page 10: Custodium Tracker Dev Manual

Software

Instalación del IDE de Arduino

En esta sección se va a tratar la instalación y configuración del IDE de Arduino en Windows, GNU/Linux y MacOsX

Windows

* Descarga la última versión del IDE de Arduino de http://arduino.cc/en/main/Software

Cuando la descarga finalice, descomprime el fichero. Asegúrate de mantener la estructura de directorios. Haz doble click en la carpeta arduino-00XX para abrirla. Deberías ver una serie de ficheros y carpetas ahí dentro.

* Conecta la placa

Conecta la placa Custodium a tu ordenador usando el cable mini USB.

* Instala los drivers

Cuando conectas la placa, Windows debería inicializar la instalación de los drivers (siempre y cuando no hayas utilizado ese ordenador con una placa Arduino anteriormente).

En Windows Vista y Windows 7, los drivers deberían descargarse e instalarse automáticamente.

En Windows XP, se abrirá el diálogo de instalación de Nuevo Hardware:

Cuando te pregunten: ¿Puede Windows conectarse a Windows Update para buscar el software? selecciona No, no esta vez. Haz click en Siguiente. Selecciona Instalar desde una lista o localización específica (Avanzado) haz click en Siguiente. Asegúrate que Buscar los mejores drivers en estas localizaciones esté seleccionado; deselecciona Buscar en medios removibles; selecciona Incluye esta localización en la búsqueda y navega al directorio drivers/FTDI USB Drivers dentro de la carpeta que has descomprimido previamente. (La versión más reciente de los drivers se puede encontrar en la página web http://www.ftdichip.com/Drivers/VCP.htm) Haz click en Siguiente. El asistente de instalación buscará los drivers y te anunciará que encontró un "USB Serial Converter" (se traduce por Conversor USB-Serie). Haz click en Finalizar. El asistente de instalación de hardware volverá a iniciarse. Repite los mismos pasos que antes y selecciona la misma carpeta de instalación de los drivers. Esta vez el sistema encontrará un "USB Serial Port" (o Puerto USB-Serie).

Puedes comprobar que los drivers se han instalado correctamente abriendo la carpeta del Administrador del Dispositivos, en el grupo Dispositivos del panel de control del sistema. Busca "USB Serial Port" (o Puerto USB-Serie)en la sección de puertos; esa es tu placa Arduino.

*Ejecuta la Aplicación Arduino

Haz doble click en la aplicación Arduino.

Page 11: Custodium Tracker Dev Manual

Linux

* Descarga la última versión del IDE de Arduino de http://arduino.cc/en/main/Software

Cuando la descarga finalice, descomprime el fichero. Asegúrate de mantener la estructura de directorios. Haz doble click en la carpeta arduino-00XX para abrirla. Deberías ver una serie de ficheros y carpetas ahí dentro.

* Conecta la placa

Conecta la placa Custodium a tu ordenador usando el cable mini USB.

* Instala los drivers Todas las versiones modernas de GNU/Linux (con un kernel superior al 2.4) reconocen inmediatamente los conversores FTDI, para estar seguro de ello abre una consola y teclea el comando dmesg la salida, justo despues de conectar la placa deberia ser imilar a:

[33695.259417] usb 2-1: Detected FT232RL [33695.259420] usb 2-1: Number of endpoints 2 [33695.259424] usb 2-1: Endpoint 1 MaxPacketSize 64 [33695.259427] usb 2-1: Endpoint 2 MaxPacketSize 64 [33695.259430] usb 2-1: Setting MaxPacketSize 64 [33695.261615] usb 2-1: FTDI USB Serial Device converter now attached to ttyUSB0 [33695.261633] ftdi_sio: v1.6.0:USB FTDI Serial Converters Driver

Siendo ttyUSB0 en éste caso el puerto serie que se utilizará para programar Custodium desde el IDE

*Ejecuta la Aplicación Arduino

Haz doble click en la aplicación arduino en la carpeta que has descomprimido anteriormente.

MacOsX

* Descarga la última versión del IDE de Arduino de http://arduino.cc/en/main/Software

La imagen de disco (.dmg) debería montarse automáticamente. Si esto no ocurre, haz doble click sobre ella. Debería verse algo como en la siguiente figura.

Page 12: Custodium Tracker Dev Manual

* Instala la aplicación y los drivers USB

Copia la aplicación Arduino en tu carpeta de aplicaciones (o en cualquier otro lugar de tu ordenador).

Si esta es la primera vez que usas Arduino en tu ordenador, necesitarás instalar los drivers para el chip FTDI de la placa. Haz doble click sobre el icono FTDIUSBSerialDriver_10_4_10_5_10_6.mpkg y sigue las indicaciones del instalador. Necesitarás reiniciar el sistema después de instalar los drivers. (La última versión de los drivers pueden encontrarse en http://www.ftdichip.com/Drivers/VCP.htm)

* Conecta la placa

Conecta la placa Custodium a tu ordenador usando el cable mini USB.

* Lanza la aplicación Arduino

Haz doble click sobre la aplicación Arduino.

Introducción al IDE

En ésta sección vamos a hacer una introducción a la configuración del IDE de Arduino para que funcione correctamente con Custodium.

Page 13: Custodium Tracker Dev Manual

IDE de Arduino configurado para programar Custodium

*Selecciona la placa El primer paso para poder programar correctamente Custodium es seleccionar el tipo de placa en el IDE de Arduino, a éste nivel es compatible al 100% con la placa LilyPad Arduino w/ATmega328

Hay que seleccionar el tipo de placa en el menú Tools > Board > LilyPad Arduino w/ATmega328

* Selecciona el puerto serie

Selecciona el dispositivo serie de la placa Arduino en el menú Tools | Serial Port (Herramientas | Puerto Serial). En caso de Windows Lo más probable es que sea COM3 o superior, en caso de Linux y MacOsX se puede comprobar mediante a la orden dmesg como se ha explicado en el apartado de instalación del IDE, en cualquiera de los dos casos para asegurarte de cual es, puedes desconectar la placa y volver a mirar el menú; el puerto de la placa habrá desaparecido de la lista.

* Botones del IDEEl IDE tiene los siguientes botones:

Verificar, comprueba y compila el sketch actual SIN subirlo a la placa, NO sobrescribe el contenido actual del Custodium que esté conectado.

Page 14: Custodium Tracker Dev Manual

Cargar, comprueba y compila el sketch actual subiéndolo a a la placa, SI sobrescribe el contenido actual del Custodium que esté conectado, al ser pulsado deberás esperar unos pocos segundos mientras se compila el sketch y después deberías ver parpadear los led RX y TX de la placa FTDI. Si el código se ha grabado correctamente verás aparecer el mensaje "Done uploading" en la barra de estado.

Nuevo, crea un nuevo sketch en blanco, NO cierra el sketch actual.

Abrir, abre un sketch existente, NO cierra el sketch actual.

Guardar, guarda los cambios del sketch actual, SI sobrescribe los cambios del fichero original.

Page 15: Custodium Tracker Dev Manual

Comenzando con Custodium TrackerÉste apartado debería ser una introducción al lenguaje de programación de Arduino, como éste manual está dirigido a gente que ya dispone de esos conocimientos vamos a pasar ésta parte por alto, no obstante recomendamos la adaptación del libro del libro "Arduino Programming Notebook" realizada por Rafael Enriquez Salvador, publicado en el Laboratorio de Software Libre de la Universidad de Córdoba, que puedes descargar de www.custodium.net/blablaclabla

Page 16: Custodium Tracker Dev Manual

Ejemplos de aplicaciónEn éste apartado se van a exponer varios ejemplos de código o sketches para Custodium Tracker, para todos ellos se necesita Custodium cableado para su programación como se explica en el apartado Hardware → Conexión para programación de éste mismo manual.

Todas las librerias y ejemplos están disponibles para su descarga en http://www.custodiumtracker.com/files/

Blinking led

El blinking led es el “Hola mundo” del hardware, es implemente un led que parpadea a una cierta frecuencia.

Material necesario:- 1 Custodium Tracker cableado y configurado para programación- 1 led (diodo de emisión de luz)

Pasos:- Conectar Custodium Tracker cableado y configurado para programación al ordenador.- Cargar el programa de ejemplo en IDE de Arduino de haciendo click en Archivo → Ejemplos → Basics → Blink- Modificar la línea del programa que pone int led = 13; para que ponga int led = 13; ésta modificación es necesaria debido a que Arduino lleva un led por defecto en el pin digital 13, mientras que nosotros vamos a poner uno en el pin digital 0 (Rx).- Pulsar el botón Cargar, una vez esté la carga finalizada se podrá leer Carga finalizada en el IDE- Desconectar Custodium del adaptador FTDI y apagarlo- Conectar el led a los pines Gnd y D0 de Custodium Tracker (Aviso: El led es un componente con polaridad, su patilla mas corta, que corresponde con el borde liso del encapsulado es Gnd o tierra, mientras que la otra tiene que ir a D0)- Encender Custodium y verificar que el led parpadea.

Nota: en caso de querer experimentar y observar diferentes frecuencias de parpadeo se pueden cambiar los valores de las líneas delay(1000); siendo 1000 en el caso del ejemplo los milisegundos que espera entre encender y apagar el led.

Sensor de luz

Con este ejemplo vamos a ver como leer los datos de un sensor de luz o ldr desde Custodium Tracker

Material necesario:- 1 Custodium Tracker cableado y configurado para programación- 1 ldr- 1 resistencia de 2k2

Pasos:- Blablablablablabla

Page 17: Custodium Tracker Dev Manual

Comunicación por el puerto serie.

Custodium Tracker puede comunicarse a través del puerto serie con el ordenador u otros dispositivos, en éste ejemplo veremos

Material necesario:- 1 Custodium Tracker cableado y configurado para programación

Pasos:- Conectar Custodium cableado y configurado para programación al ordenador.- Cargar el programa de ejemplo en IDE de Arduino de haciendo click en Archivo → Ejemplos → Communications → ASCIITable- Pulsar el botón Cargar, una vez esté la carga finalizada se podrá leer Carga finalizada en el IDE- Desconectar Custodium del adaptador FTDI y apagarlo- Conectar el led a los pines Gnd y D0 de Custodium (Aviso: El led es un componente con polaridad, su patilla mas corta, que corresponde con el borde liso del encapsulado es Gnd o tierra, mientras que la otra tiene que ir a D0)- Encender Custodium y verificar que el led parpadea.

SIM908

Custodium Tracker es compatible con la librería de GSM Shield de Arduino, disponible en https://code.google.com/p/gsm-shield-arduino/

Para que dicha librería funcione con Custodium Tracker hay que modificar las siguientes líneas del archivo GSM.cpp:

Original:#define _GSM_TXPIN_ 2 #define _GSM_RXPIN_ 3

Modificar por:#define _GSM_TXPIN_ 4 #define _GSM_RXPIN_ 5

RTC

El RTC de Custodium Tracker es un DS3234, que se comunica con el microcontrolador a través del bus ISP, siendo el pin de CS (Chip Select) el 3.Se pueden descargar librerías para el uso de éste chip de https://github.com/rodan/ds3234Una de las ventajas que tiene éste RTC es que se pueden configurar alarmas y que el microcontrolador entre en funcion de sleep para el ahorro de bateria, un ejemplo de éste uso se puede descargar de: http://www.custodiumtracker.com/files/rtc_ds3234_alarm_every_5m_interrupt.zip