Está en la página 1de 1

Comunicaci

on serial Arduino - Scilab


Universidad de Guadalajara - CUCEI
I7292 - Sistemas de Medicion
Ing. Roberto C. Barragan

En este documento se dar


an las indicaciones para poder realizar una comunicacion serial (puerto USB)
entre la computadora y alg
un otro dispositivo externo, que en este caso sera un Arduino. Antes de
comenzar sera necesario que se familiaricen con los siguientes temas:
Scripts - Introducci
on a Scilab, Cap. 4, pag. 22,23.

Ordenes
y control de flujo - Introduccion Scilab, Cap. 4, pags. 27-30.

Modulos ATOMS en Scilab


Lo primero que tienen que hacer es instalar la herramienta de comunicacion serial en Scilab, para hacer
esto necesitamos estar conectados a internet. Sigan los siguientes pasos:
1. Abrir Scilab.
2. Dar clic en Applications/Module manager - ATOMS.
3. Se abrira una ventana con nombre Main categories - ATOMS, en la lista del lado izquierdo buscamos la carpeta con nombre Signal Processing. Seleccionamos la herramienta Serial Communication
Toolbox y damos clic en Install.
4. Una vez instalado cerramos Scilab por completo y lo volvemos abrir. Si la herramienta ha sido
instalada correctamente en la consola de Scilab aparecera un mensaje que dice Start Serialport.

Programaci
on para la comunicaci
on serial
El siguiente codigo puede ejecutarse desde la consola de Scilab. Sin embargo, resulta mas practico utilizarlo
mediante scripts de programaci
on dentro del mismo Scilab. Sino tienes idea de lo que se esta hablando,
es porque no leste acerca de los temas que se mencionan al inicio del documento, te sugiero que los leas.
Script con el c
odigo para la comunicaci
on con el puerto serial.
clear;
clc;
clf;

// Borra todas las variables.


// Limpia la consola de Scilab.
// Cierra cualquier grafica de Scilab.

n=200;

// Numero de datos que se quieren almacenar.

h=openserial(COM4,"9600,n,8,2");
iniciar = input("Pulse 1 para iniciar: ")
i = iniciar;
while i < n
data(i) = strtod(readserial(h));
if data(i) == %nan
then data(i = data(i-1));
end
plot(i,data(i),b-o);
drawnow();
xpause(100000);
i=i+1;
end
closeserial(h)

// Abre el puerto de comunicacion serial.


// Captura la informacion ingresada en el teclado.

// Recepcion del dato.


// Verifica que el dato sea un numero.
// Si data(i) no es numero asigna el valor anterior.
// Grafica el ultimo dato recibido.
// Retardo en microsegundos.

// Cierra el puerto de comunicacion serial.

También podría gustarte