Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ANEXO 1 Resumen Sobre La Plataforma Arduino y Su Utilización Como Tarjeta de Adquisición de Datos Sensores IB5
ANEXO 1 Resumen Sobre La Plataforma Arduino y Su Utilización Como Tarjeta de Adquisición de Datos Sensores IB5
PLATAFORMA ARDUINO Y SU
UTILIZACIÓN COMO TARJETA DE
ADQUISICIÓN DE DATOS
Sensores biomédicos y bioseñales
2 DE OCTUBRE DE 2020
ELIZABETH JARAMILLO BARRAZA, BARBARA LARDIN DE LA ROSA,
AISLIN LARES HERNANDEZ, MELISSA FERNANDA SALAZAR AVALOS
Ingeniería biomédica
Plataforma Arduino y su utilización como
tarjeta de adquisición de datos
Arduino es un hardware de código abierto, programable a través de una plataforma de
software propio, donde los contenidos creados por los usuarios se pueden compartir en
una comunidad global. Está pensado pues, para que cualquier persona pueda realizar
todo tipo de proyectos interactivos.
Esta sencilla definición nos da a entender que estamos ante una plataforma muy potente
capaz de ser utilizada para desarrollar proyectos tanto en colegios o universidades, como
en el campo de la ingeniería, la robótica e incluso el arte y diseño, por nombrar sólo
algunos ejemplos.
Actualmente, muchos centros educativos a nivel mundial pretenden utilizar estas
técnicas innovadoras para incluirlas dentro de su currículum académico, no obstante, se
puede utilizar para crear juguetes tecnológicos, o introducir el aprendizaje de materias
como física, lógica, habilidades de construcción y resolución de problemas, además
promueve el proceso creativo a través del aprendizaje basado en proyectos, con énfasis
en la colaboración de grupo y la interacción entre estudiantes.
Tipos de placa Arduino:
Para comenzar con Arduino existen multitud de productos oficiales o compatibles con la
IDE Arduino, software necesario para su programación, sencillos de emplear e ideales
para introducirse en el mundo de la electrónica y por supuesto para mejorar las
habilidades en programación.
Placa Arduino UNO
Arduino Uno es una placa basada en el microcontrolador ATmega328P. Tiene 14 pines
de entrada/salida digitales, de los cuales 6 pueden utilizarse como salidas PWM (figura
2), marcadas con el signo ~, que permiten simular una salida analógica y emplean como
“truco” el activar una salida digital durante un tiempo y mantenerla apagada durante el
resto; el promedio de la tensión de salida, a lo largo del tiempo, será igual al valor
analógico deseado, cuenta además con 6 entradas analógicas (figura 2), un cristal de
cuarzo de 16 MHz (figura 2), conexión USB, un conector de alimentación (figura 2), un
encabezado ICSP (In Circuit Serial Programming) que sirve para programar el
BootLoader del Microcontrolador ATmega y así poder cargar los programas que creemos
en el IDE directamente en el microcontrolador y un botón de reset.
Como sencillo ejemplo de aplicación se muestra a continuación la conexión de un diodo
LED a la placa de Arduino, en una de sus salidas digitales, con su resistencia.
Como aclaración, decir que estos esquemas
electrónicos se pueden realizar fácilmente usando un
software específico para ello, en este caso se ha
utilizado Fritzing, como aplicación totalmente gratuita.
Software Arduino
El IDE (Integrated Development Environment, Entorno de Desarrollo Integrado) de
Arduino es una aplicación que contiene un editor de código, un compilador, un depurador
y un constructor de interfaz gráfica (GUI). Además incorpora las herramientas para cargar
el programa ya compilado en la memoria flash del hardware. El software Arduino (IDE)
específico para escribir programas y cargarlos en la placa, está disponible en la página
oficial de Arduino y existen dos posibles opciones:
1: Editor online: permite trabajar sin necesidad de tener ningún software instalado en el
ordenador ni descargar actualizaciones, guardar los programas realizados en la nube y
disponer de ellos desde cualquier punto de acceso a Internet. Aunque el usuario necesita
crear una cuenta de trabajo.
2: Aplicación Arduino (IDE): es una
segunda opción que permite trabajar
sin ningún tipo de conexión mediante
la instalación del programa Arduino
(IDE) o una versión portable para
almacenar en una memoria USB y
que está disponible para los sistemas
operativos más comunes.
Una vez instalada la aplicación aparece la ventana
de trabajo del programa en la que se pueden ver
los siguientes elementos:
• Menú: En la parte de menú existen zonas para
acceder a funciones como carga de archivos,
edición del texto del código, carga de librerías
(trozos de código reutilizables hechos por terceros
que facilitan mucho la programación y hace que un
programa sea más sencillo de hacer y de entender)
y ejemplos relacionados con el empleo de estas
librerías, configuración, herramientas…etc.
• Botones de acceso rápido: entre los que
destacan Verificar y Subir (figura 9) para comprobar
el programa está bien escrito y puede funcionar o
cargar el programa una vez verificado en la
memoria flash de la tarjeta.
• Editor de texto: zona donde se escribe el programa, basado en lenguaje C++, en
el texto a continuación se puede observar el código necesario para encender y
apagar de forma alternativa un diodo Led con el mismo sistema de conexiones
que se vieron en la figura 2:
//programa que enciende y apaga un led cada segundo de forma intermitente
int LED_PIN=13; //Define la posición del PIN a la que se conecta el diodo LED
void setup() {
// Inicializa el pin LED_PIN como una salida
pinMode(LED_PIN, OUTPUT); }
// la función loop repite una y otra vez el programa contenido en ella
void loop() {
digitalWrite(LED_PIN, HIGH); // enciende el LED
delay(1000); // espera un segundo (1000 ms)
digitalWrite(LED_PIN, LOW); // apaga el LED
delay(1000); } // espera una segundo
Si bien el lenguaje C++ empleado no es nada sencillo para comenzar, hay que decir que
en Internet existe multitud de ejemplos de aplicación con su código desarrollado, por lo
que inicialmente bastaría con montar los distintos elementos en la placa de Arduino y
cargar el programa conectando dicha placa al ordenador a través de un puerto USB.
• Mensajes y consola: esta parte de la
aplicación está destinada a mantener al
usuario informado sobre el estado de la
tarjeta, y los resultados de la compilación
de los distintos programas, así como
todos los errores y advertencias
susceptibles de ser corregidos.
Por último y teniendo presente todo lo anterior,
futuros artículos presentarán otras formas más
sencillas de abordar los programas para la
placa de Arduino, nuevas aplicaciones que
pretenden mejorar la comprensión de los
programas y desarrollar nuestras habilidades
en programación y afrontaremos con mayor
detenimiento la manera de abordar un
programa con Arduino IDE.
Utilización como tarjeta de adquisición de datos:
Arduino es capaz de recoger datos, tratarlos en tiempo real (limitado por su capacidad
de procesamiento) y comunicarse con el sistema de almacenamiento de datos.
Al ser Arduino un elemento barato y con muchas capacidades de comunicación es
posible usarlo en la captura de datos distribuidos y desplegar tantos sensores como sea
necesario creando una red de sensores fácilmente escalable.
ESP8266: https://en.wikipedia.org/wiki/ESP8266
• Conectividad. Medio de comunicación, como vamos a comunicar el HW, ya sea
por red o de forma inalámbrica. Ethernet, Wifi, GPRS, LPWAN, zigbee, bluetooth,
ANT+, etc…
Más sobre comunicaciones
Arduino: https://aprendiendoarduino.wordpress.com/2016/12/18/comunicaciones
-arduino/
• Protocolos de
comunicación, lenguaje para
comunicar el HW y el SW. HTTP,
fiware, MQTT, API REST,…
• Plataformas Software,
almacenar y tratar los datos
recogidos por nuestros sensores.
Pueden ser plataformas de terceros
o plataformas propias desarrolladas
por nosotros o simplemente guardar en BBDD. Por
ejemplo: Carriots, Thingspeak, Temboo, Thinger, etc…
Además todas estas plataformas SW que
están en la nube, deben estar soportadas
por un HW de servidores, unas BBDD de
gran capacidad y una infraestructura
segura que los hospede.
• Servicios, son los servicios que ofrecen las
plataformas como la visualización de los
datos recogidos, análisis de los datos,
envío de avisos cuando se detecte un
evento, interconexión con otras
plataformas, etc…
Servicios ofrecidos por la plataforma carriots: https://www.carriots.com/que-es-
carriots
A modo de resumen, estos son los elementos:
Sensor — MCU — Comunicación — Protocolo — Plataforma — Servicios
Uno de los retos del IoT es mandar datos de cualquier sensor a través de cualquier
protocolo a cualquier plataforma de forma inalámbrica y usando la menor energía posible
(baterías) y todo esto mediante una comunicación segura (cifrada).
Una forma ampliar la capacidad de almacenamiento de un Arduino es añadir una
memoria externa y la forma más sencilla y barata es mediante un lector de tarjetas SD.
Esto nos permite añadir un almacenamiento local no volátil para por ejemplo guardar un
log de temperaturas o los datos de configuración de nuestro programa.
Como hemos visto anteriormente, tanto si nos quedamos sin memoria SRAM, flash o
EEPROM podríamos recurrir al uso de una tarjeta SD para tratar de solucionar el
problema directa o indirectamente.
En teoría, se podría ir tan lejos como traducir todo el sketch en algún lenguaje
interpretado, almacenar esa versión del sketch en una tarjeta SD, y luego escribir un
intérprete para que el lenguaje que se ejecute en Arduino y recoja, interprete y ejecute
esas instrucciones de la tarjeta SD. Por
ejemplo http://playground.arduino.cc//CommonTopics/ForthOnArduino que puede ser
usado como una shell para ejecutar comando interactivos.
Veamos el uso de tarjetas SD con Arduino. Para ello lo primero que necesitamos es un
HW externo que nos proporcione un lector de tarjetas y luego una librería adecuada para
usar ese HW adicional.
Con la Ethernet shield disponemos de un lector de tarjetas micro SD y es accesible
gracias a la librería SD: https://www.arduino.cc/en/Reference/SD
Otros shield interesante es el Adafruit
datalogger shield que dispone de un lector
de tarjetas SD, un RTC (Real Time Clock),
una zona de prototipado para soldar
componentes adicionales y dos LEDs
indicadores configurables.
BIBLIOGRAFÍA
https://www.arduino.cc/
https://www.arduino.cc/en/Main/Boards