CAPITULO III: Construcción y Diseño del Aplicativo de Instrumentación o Sistema
3.5. Programación Lógica y Funcional del Sistema Embebido
La compatibilidad de la compañía Arduino con Interfaces de Programación de Aplicaciones (APIs) ha aumentado en los últimos años, el proyecto planteado se basa en la comunicación de dos entornos de desarrollo integrado, lenguajes de programación o tecnologías distintas pero compatibles para el correcto funcionamiento del establecimiento del enlace de comunicación Bluetooth y algoritmos de muestreo escritos en el entorno de desarrollo de Arduino necesarios para el proyecto. Las tarjetas de control de la compañía Arduino, son una excelente opción para el desarrollo de proyectos relacionados con la electrónica de bajo costo, tamaño y estándares mínimos de desempeño, las tarjetas de control se usan ampliamente en domótica, redes ubicuas, redes inteligentes, sistemas de monitoreo de visión nocturna en tiempo real y compatibilidad con módulos Bluetooth integrados [95]. La programación de Arduino es la programación de un microcontrolador, Arduino usa un Entorno de Desarrollo Integrado (IDE) de software para poder programar, compilar y subir la lógica de funcionamiento en el microcontrolador que dispone la tarjeta, con cualquier rutina o subrutina de algoritmos en su respectivo lenguaje de programación o tecnología software que adopte. La estructura básica del lenguaje de programación de Arduino es simple y se compone de al menos dos partes, mínimo dos partes necesarias o funciones que encierran bloques que contienen declaraciones, estamentos o instrucciones [96].
Un IDE es un entorno de programación que ha sido empaquetado como un programa de aplicación, se compone de un editor de código en donde se realizó el algoritmo del sistema hardware del proyecto en el lenguaje de programación C++, en este editor de código se configura la lógica de funcionamiento de la adquisición de datos de los dos sensores, el control de los tiempos de datos y la transmisión por el enlace de comunicación Bluetooth, además el entorno IDE de Arduino cumple funciones de depuración y compilación del editor de código en donde se verifica, compila y depura el diseño del proyecto en un lenguaje de más alto nivel como Java. El Entorno de Desarrollo Integrado se puede usar con cualquier tarjeta Arduino, en especial una pequeña tarjeta Arduino Nano que tiene poco peso y estándar de funcionalidad, características que la hicieron viable para el proyecto. el entorno hace fácil y potente la escritura en el editor de código basándose en lenguaje C++. Incluye las herramientas necesarias para compilar el programa y subirlo a la memoria flash del microcontrolador Atmel de la tarjeta Arduino Nano, es un software Multiplataforma que está escrito internamente en Java y está basado en procesamiento de información en tiempo real y gráficos dinámicos. El IDE de Arduino ofrece un sistema de gestión de librerías y tarjetas muy práctico que carece de funciones avanzadas típicas de otros IDEs. Para el sistema hardware del proyecto se creó un proyecto nuevo en el IDE de Arduino, el nuevo sketch del editor de código es un archivo con extensión. ino, en donde está escrita la lógica de funcionamiento del sistema hardware en el lenguaje de programación estructurado C++ y orientado a objetos (java), el proyecto nuevo creado se compone por ahora de dos partes necesaria, o funciones que encierran estamentos de líneas de código. La primera parte es la función setup(), esta función contiene la declaración de las variables y se ejecuta una solo vez y en primera instancia durante todo el tiempo que dure el movimiento del robot bípedo o hasta que se oprima el botón reset de la tarjeta de control Arduino Nano, el algoritmo de la función void setup() se encargará de recoger la configuración del proyecto, además la función se utiliza para configurar el modo de trabajo
Diseño e implementación de un sistema inalámbrico para monitorizar el consumo de energía eléctrica del Robot Bípedo Bioloid Premium Kit
73
de las entradas y salidas de los pines, configuración de la comunicación Bluetooth y Serial. La segunda parte es la función void loop () se ejecuta inmediatamente después de la función setup () y se ejecuta continuamente para leer la adquisición de datos de dos sensores que requiere el proyecto y configurar dos pines como salidas de información por el enlace de comunicación Bluetooth.
Programar el sistema hardware Arduino consiste en traducir a líneas de código tareas o algoritmos en el lenguaje de programación nativo que requiere el proyecto, tareas como lectura o adquisición de datos a través de sensores diseñados e implementados bajo el funcionamiento y control de una plataforma ARM (Maquina RISC Avanzada) de bajo costo como Arduino [97], la configuración de entradas analógicas y velocidad de lectura en bits por segundo o baudios para los Conversores Analógico/Digital ADC de la tarjeta de control del proyecto, el almacenamiento de información dinámica en recepción se guarda en vectores fila, que corresponde a un tipo de matrices, la creación de archivos .mat y posterior envío de datos por enlace de comunicación Bluetooth. A continuación, se presenta una corta descripción de las funciones creadas en el editor de código del entorno IDE para el proyecto.
3.5.1. Programación del algoritmo de Adquisición de Datos, para los Sensores de Voltaje y Corriente Eléctrica
La escritura del algoritmo de muestreo para los dos sensores que registran señales eléctricas se hace de forma secuencial con ayuda de programación estructurada en un sketch de Arduino, la lectura de los datos de voltaje y corriente eléctrica se hace en el orden escrito, primero se registra el dato del sensor de voltaje, seguidamente del dato que registra el sensor de corriente, la información que registran los dos sensores es guardado en un vector de datos usando programación de medio nivel en el IDE de Arduino. Por medio de una interfaz UART (Universal Asynchronous Receiver-Transmitter) el ADC de la entrada analógica reconoce el estándar de puerto serial para ser vinculado posteriormente al estándar Bluetooth, en la figura 40 se muestran en la función void loop (), con dos líneas de código encargadas de hacer la lectura, conversión y almacenamiento en el ADC de variables digitales de voltaje y corriente con los comandos de lectura de señales analógicas analogRead(A6); y analogRead (A7);
En esta parte de la adquisición de datos, los sensores leen señales continuas que varían en un rango entre 0 y 5 voltios, el ADC tiene una resolución de 10 bits, para muestrear, codificar y cuantificar la señal continua que entra en los pines A6 y A7, que registran los sensores del sistema embebido del proyecto. La tarjeta Arduino Nano controla las señales digitales de los sensores, los cambios discretos de las señales digitales oscilan en un rango entre 0 y 1023 opciones o posibilidades, logrando 1024 posibilidades para representar la señal digital de los sensores de voltaje y corriente eléctrica que se midieron.
Diseño e implementación de un sistema inalámbrico para monitorizar el consumo de energía eléctrica del