USO DEL PROGRAMA PROCESSING PARA GRAFICAR DATOS CAPTURADOS CON
UN MICROPROCESADOR ARDUINO
USO DEL PROGRAMA PROCESSING PARA GRAFICAR DATOS CAPTURADOS CON
UN MICROPROCESADOR ARDUINOAlberto E. Villalobos Chaves
[email protected]
La captura de informacin analgica se ha facilitado y abaratado
mucho con la aparicin de los microprocesadoresArduinoque nos
permiten por ejemplo leer en tiempo real los valores de voltaje
generados por una fotocelda o el cambio de resistencia elctrica
producido por un sensor de temperatura, por poner solo dos
ejemplos.
Una de las ventajas del Arduino es que las conexiones elctricas
no se hacen por soldadura sino por simple insertado de los
conectores desde los elementos electrnicos externos (sensores,
resitencias, capacitores, etc) hasta los puertos de la placa
Arduino lo que permite armar y desarmar con facilidad prototipos
del circuito que se quiera desarrollar.
Otra de las caractersticas es que se puede programar el
procesador del Arduino para que capture y procese la informacin de
la forma en que ms nos convenga para nuestros propsitos e incluso
interactuar con esta a travs de una Interfase Grfica de Usuario
(GUI).
Es precisamente de una GUI que he diseado para graficar los
datos capturados por el Arduino y que he llamado "DatArduino 1.0"
de lo que trata esta entrada a mi blog.
Para ejemplificar el uso deDatArduino 1.0capturaremos y
procesaremos los datos de voltaje relacionados con un sensor
detemperatura de un radiador automotriz (Figura 1).
Figura 1: Sensor de temperatura de un radiador automotriz
El circuito utilizado en este ejemplo, que se esquematiza en la
Figura 2 y se muestra fsicamente en la Figura 3, se basa en la
propiedad del sensor de temperatura de cambiar su resistencia
elctrica cuando vara la temperatura.
Figura 2: Esquema del circuito divisor de corriente, as como las
conexiones al sensor de temperatura y al Arduino
Para poder aprovechar este fenmeno utilizamos un circuito
divisor de voltaje en el que el voltaje suministrado por el puerto
de poder del Arduino (5V) es dividido por una resistencia entre el
sensor de temperatura y el puerto analgico del Arduino (A0).
A mayor temperatura a la que es sometido el sensor, menor su
resistencia lo que afecta la razn de divisin de voltaje y por tanto
la seal de voltaje que es capturada por el puerto analgico del
Arduino.
Figura 3: Fotografa del sistema Sensor-Circuito Divisor de
Voltaje-Arduino
Para instruir al Arduino los parmetros de captura y transmisin
de los datos a la computadora se escribi un pequeo script ("Abrir
Puerto Analgico") utilizando la versin 1.0.3 delIDE de Arduino.
La interfaz GUI diseada para graficar, interaccionar y salvar la
informacin capturada (DatArduino 1.0) se program utilizando
"Processing 2.0b8" y lalibrera G4Pde creacin de GUI para
Processing. (Figura 4).
Figura 4: Interfaz Grfica de UsuarioDatArduino 1.0utilizada para
graficar, manipular y salvar la informacin capturada por un
procesador Arduino
Comandos y Salidas del Programa:
1-
El botn "Iniciar" le indica al programa buscar los puertos
seriales disponibles en la computadora y seleccionar uno que est
libre para iniciar la graficacin de la informacin digital
transmitida por el Arduino. El campo de texto "Nombre del Archivo"
es para escribir el nombre que le queremos dar al archivo
capturado, mismo que se guardar en formato txt, dat y csv en la
carpeta donde est el archivo pde DatArduino_1_0.pde, si se corri
con Processing o el archivoDatArduino_1_0.exe , si se utiliz la
versin exportada a windows que esta en la carpeta
"application.windows32". Si no se selecciona nombre el programa por
default asignar el nombre "Nemo".
El botn "Capturar" inicia la captura reseteando el tiempo a
cero.
El botn "Salvar" salva los datos capturados con el nombre
seleccionado en los formatos txt, dat y csv segn se indic
anteriormente.
El botn "Salir" termina el programa.
2-
El campo "Tiempo Final de Captura (min):" es el tiempo al que el
programa salvar automticamente los datos con el nombre de archivo
seleccionado. Por default est seleccionado 30 minutos pero en
cualquier momento que se desee salvar, se puede usar el botn
"Salvar" para guardar la captura. Se indica tambin en este sector
del GUI el voltaje medido en milivoltios, el nmero de mediciones o
datos capturados y el tiempo transcurrido desde que se acces por
primera vez al puerto serial o desde que se oprimi el botn
"Capturar", as como la razn de captura en datos por segundo.
3-
La perilla de "Escala" amplifica la seal graficada sin alterar
el valor capturado que ser el que se salve. La perilla "Zero"
cambia la posicin vertical de la grfica sin alterar el valor
capturado.
4-
El control de deslizamiento "Exp.Horizontal" expande la escala
en sentido horizontal sin alterar el valor capturado. El control de
deslizamiento "Despla.Horizontal" desplaza horizontalmente el
grfico sin alterar el valor capturado.
El botn "Reset" regresa los valores de los controles de
deslizamiento a punto inicial.
En el Video 1 se observa la captura de los datos que genera el
sensor de temperatura al tocarlo con la mano y las manipulaciones a
la forma de la grfica al utilizar los comandos mostrados
anteriormente.
Video 1: Graficacin de los datos capturados con un
microprocesador Arduino de un sensor de temperatura automotrz en el
que se observa el uso de los comandos deDatArduino 1.0La
configuracin Arduino - GUI expuesta es lo suficientemente funcional
como para permitir realizar proyectos de carcter cientfico en los
que se requiera registrar datos generados por sensores de los
muchos que ahora hay disponibles para los procesadores Arduino,
adems es lo suficientemente verstil como para programarle nuevas
funcionalidades como podra ser el filtrado de los datos a fin de
eliminar ruido, o el anlisis de los datos por procedimientos
matemticos.
Referencias1.
http://arduino.cc/en/pmwiki.php?n=Tutorial/ToComputer2.
http://arduino.cc/en/pmwiki.php?n=Tutorial/Graph3.
http://espaciodecesar.com/2013/04/28/cinco-termmetros-a-la-vez-con-arduino/4.
http://www.crcibernetica.com/sensors/Descarga del cdigo y la
aplicacin (Dropbox):
1. Abrir Puerto Analgico2. DatArduino 1.0