Está en la página 1de 13

Práctica 02.

- Comunicación serial con Matlab

Francisco Javier Díaz Galindo


Pedro Antonio Montor Láscares
Mario Ortíz Rosas

17 de septiembre de 2013
Índice general

1. Introducción 2

2. Marco Teórico 3
2.1. Convertidor Analógico-digital (A/D) . . . . . . . . . . . . . . . . 3
2.2. Matlab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.3. Arduino . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

3. Desarrollo y resultados 5

4. Conclusiones 10

Bibliografía 11

Lista de Figuras 12

Lista de Tablas 13

1
Capítulo 1

Introducción

En la actualidad el uso de sistemas digitales es altamente elevado, el proce-


samiento de señales se hace con la computadora prácticamente. Es por eso que
es necesario saber como adquirir estas señales, cuales son los parámetros que
interfieren en la adquisicón de estas señales y como visualizarlo en la PC es lo
que se realizará en la presente práctica.

2
Capítulo 2

Marco Teórico

Aquí se presentará la teoría de una manera reducida de los elementos que


conforman nuestro sistema, para información más detallada se puede consultar
la bibliografía.

2.1. Convertidor Analógico-digital (A/D)


Un convertidor analógico-digital, también conocido como codificador es un
dispositivo que convierte una señas analógica en una señal digital, usualmente
una señal codificada numéricamente. Dicho convertidor se necesita como una in-
terfaz entre un componente analógico y uno digital. Con frecuencia un circuito
de muestre y retención es una parte integral de un convertidor A/D disponible
comercialmente. La conversión de una señal analógica en la señal digital corres-
pondiente (número binario) es una aproximación, ya que la señal analógica
puede adoptar un número infinito de valores, mientras la señal digital
puede formar un conjunto de dígitos finitos. Este proceso de aproximación
se pueden formar mediante un conjunto finito de dígitos está limitada. [1]

2.2. Matlab
MATLAB es un acrónimo de Matrix Laboratory. Actualmente es uno de
los entornos de programación más usados en el campo académico como en la
industria para la realización de cálculos poderosos y creación de interfaces.
El lenguaje de programación proporciona un sencillo acceso a algoritmos nu-
méricos que incluyen matrices, considerado como un lenguaje de programación
matemático de alto nivel integrado en un entorno gráfico amigable, visualiza-
ción de datos, funciones, gráficas 2D y 3D, procesamientos de imágenes, video,
computación numérica, etc. Particularmente, en ingeniería es una herramien-
ta muy poderosa para realizar aplicaciones en mecatrónica, robótica, control y
automatización.[2]

3
Figura 2.1: Logo de Matlab

2.3. Arduino
La tarjeta de instrumentación ARDUINO tiene una plataforma con base
a un microcontrolador ATMEGA 328-P y ambiente gráfico de programación
con la ventaja que posee arquitectura abierta para sofware y hardware. Tiene
los componentes electónicos y programación requerida para realizar control,
procesamiento digital de señales, adquisición de lecturas de sensores, puertos
digitales I/O, entradas y salidas analógicas, timers, interfaz para computadora
USB. El software de la tarjeta es gratuito y se puede programar desde MATLAB.

Figura 2.2: Logo de Arduino

4
Capítulo 3

Desarrollo y resultados

El desarrollo de la siguiente práctica será basado en el siguiente diagrama


de flujo, mostrado en la figura 3.1:
Lo que se busca es mostrar el fácil procedimiento para lograr la transmisión
serial entre la tarjeta de aquisicón de datos y el software. Para ello se conecta-
ron dos potenciómetros a la tarjeta Arduino Uno, dichoas valores analógicos se
transmiten al entorno de programación para una representación gráfica.
Los dos potenciómetros se encuentran conectados entre las terminales +5V
y Gnd (tierra) y la terminal central a las terminales analógicas A0 y A1.
El programa cargado en el Arduino Uno se muestra en el siguiente código,
la lectura de los valores analógicos se hacen por medio de las entradas A0 y A1,
y posteriormente se transmite a la computadora.

Listing 3.1: Código implementado para la adquisición de la señal generada por


 los potenciómetros. 
1 // d e f i n i r v a r i a b l e s
2
3 i n t out1 = 0 ;
4 i n t out2 = 0 ;
5
6 void setup ( ) {
7 // i n i c i a l i z a r p u e r t o s e r i e
8 S e r i a l . begin (9600);
9 }
10
11 v o i d l o o p ( ) {
12 // l e e r p i n e s
13 out1 = analogRead (A0 ) ;
14 out2 = analogRead (A1 ) ;
15 // e n v i a r
16 S e r i a l . p r i n t ( out1 ) ;
17 Serial . print ( " , " );
18 S e r i a l . p r i n t l n ( out2 ) ;

5
19 // e s p e r a r
20 delay ( 2 0 ) ;
21 }
 
Ya que se logra la lectura de los valores analógicos se leen dichos valores deste
MATLAB, normalmente el puerto para configurar es el COM 3, pero en este caso
será el COM 7. Posteriormente se tiene que definir un tiempo de adquisición; de
igual manera es importante mencionar que el protocolo de comunicación serial
necesita definir una velocidad de transferencia de datos, fijada para este caso en
9600 baudios.

Listing 3.2: Código implementado para la obtención de la N muestra del sistema


 digital. 
1
2 % c r e a c i ó n de o b j e t o s e r i e , para l e e r d a t o s d e l a r d u i n o
3
4 %b o r r a r p r e v i o s
5 d e l e t e ( i n s t r f i n d ( { ’ Port ’ } , { ’COM7 ’ } ) ) ;
6 %c r e a r o b j e t o s e r i e
7 s = s e r i a l ( ’COM7 ’ , ’ BaudRate ’ , 9 6 0 0 , ’ Terminator ’ , ’CR/LF ’ ) ;
8 warning ( ’ o f f ’ , ’MATLAB: s e r i a l : f s c a n f : u n s u c c e s s f u l R e a d ’ ) ;
9 % abrir puerto
10 fopen ( s ) ;
11
12 %p a r é m e t r o s de medidas
13 tmax= 1 5 ; %tiempo de c a p t u r a en s
14 rate = 33; %r e s u l t a d o e x p e r i m e n t a l ( comprobar )
15
16 %p r e p a r a r l a f i g u r a
17
18 f = f i g u r e ( ’Name ’ , ’ Captura ’ ) ;
19 a = a x e s ( ’XLim ’ , [ 0 tmax ] , ’YLim ’ , [ 0 5 . 1 ] ) ;
20 l 1 = l i n e ( nan , nan , ’ C o l o r ’ , ’ r ’ , ’ LineWidth ’ , 2 ) ;
21 l 2 = l i n e ( nan , nan , ’ C o l o r ’ , ’ b ’ , ’ LineWidth ’ , 2 ) ;
22
23 x l a b e l ( ’ Tiempo␣ ( s ) ’ )
24 y l a b e l ( ’ V o l t a j e ␣ (V) ’ )
25 t i t l e ( ’ Captura ␣ de ␣ v o l t a j e ␣ en ␣ tiempo ␣ r e a l ␣ con ␣ Arduino ’ )
26 g r i d on
27 h o l d on
28
29 %n u c l e o d e l programa
30
31 %i n i c i a l i z a r
32 v1 = z e r o s ( 1 , tmax∗ r a t e ) ;
33 v2 = z e r o s ( 1 , tmax∗ r a t e ) ;
34 i = 1;
35 t = 0;
36

6
37 %e j e c u t a r b u c l e cronometrado
38 t i c
39 w h i l e t<tmax
40 t = toc ;
41 %l e e r d e l p u e r t o s e r i e
42 a = f s c a n f ( s , ’ %d, %d ’ ) ;
43 v1 ( i ) = a ( 1 ) ∗ 5 / 1 0 2 4 ;
44 v2 ( i ) = a ( 2 ) ∗ 5 / 1 0 2 4 ;
45 % d i b u j a r en l a f i g u r a
46 x = l i n s p a c e (0 , i / rate , i ) ;
47 s e t ( l 1 , ’ YData ’ , v1 ( 1 : i ) , ’ XData ’ , x ) ;
48 s e t ( l 2 , ’ YData ’ , v2 ( 1 : i ) , ’ XData ’ , x ) ;
49 drawnow
50 %s e g u i r
51 i = i + 1;
52 end
53 % r e s u l t a d o d e l cronometro
54 c l c ;
55 f p r i n t f ( ’ %g ␣ s ␣ de ␣ c a p t u r a ␣ a ␣ %g ␣ cap / s ␣ \n ’ , t , i / t ) ;
56
57 %s a v e f i g u r e ( ’ c a p t u r a _ m u l t i ’ , ’ s ’ , [ 4 . 5 3 ] , ’ po ’ , ’ − dpdf ’ )
58
59 %Limpiar e s c e n a d e l crimen
60 f c l o s e ( s ) ;
61 d e l e t e ( s ) ;
62 c l e a r s ;
 
Los resultados de la lectura y conversión de los datos adquiridos se muestran
en la siguiente figura.

7
Figura 3.1: Diagrama de flujo del proceso de adquisición de las señales.

8
Figura 3.2: Sistema conectado al Arduino.

Figura 3.3: Aquí podemos ver las señales muestradas ya en Matlab y este caso
solo pusimos 10 segundos del muestreo.

9
Capítulo 4

Conclusiones

El ambiente de programación de MATLAB es muy amigable y cuenta con


una interfaz gráfica que permiten revisar, analizar y registrar datos. Cabe aclarar
que es recomendable personalizar el ambiente para una fácil interacción con
manejos de datos.

10
Bibliografía

[1] Ogata, Katsuhiko (1996). Sistemas de Control en Tiempo discreto. 2da.


Edición. Editorial Prentice Hall Hispanoamericana S. A.

[2] Reyes Cortés, F.; Cid Monjaraz, J. & Vargas Soto, E. (2013). Mecatrónica,
Control y Automatización. Alfaomega: México.
[3] Reyes Cortés, F. (2012). MATLAB Aplicado a Robótica y Mecatrónica. Al-
faomega: México.

11
Índice de figuras

2.1. Logo de Matlab . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4


2.2. Logo de Arduino . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

3.1. Sistema conectado al Arduino. . . . . . . . . . . . . . . . . . . . 7


3.2. Aquí podemos ver las señales muestradas ya en Matlab y este
caso solo pusimos 10 segundos del muestreo. . . . . . . . . . . . . 9

12

También podría gustarte