<?xml version="1.0" encoding="ISO-8859-1"?><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<front>
<journal-meta>
<journal-id>0120-5609</journal-id>
<journal-title><![CDATA[Ingeniería e Investigación]]></journal-title>
<abbrev-journal-title><![CDATA[Ing. Investig.]]></abbrev-journal-title>
<issn>0120-5609</issn>
<publisher>
<publisher-name><![CDATA[Facultad de Ingeniería, Universidad Nacional de Colombia.]]></publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id>S0120-56092006000100013</article-id>
<title-group>
<article-title xml:lang="es"><![CDATA[Control y adquisición serial de señales ultrasónicas con Matlab]]></article-title>
<article-title xml:lang="en"><![CDATA[Control and serial acquisition of ultrasonic signals with Matlab]]></article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Restrepo G.]]></surname>
<given-names><![CDATA[Andrés D.]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Loaiza C.]]></surname>
<given-names><![CDATA[Humberto]]></given-names>
</name>
<xref ref-type="aff" rid="A02"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Caicedo B.]]></surname>
<given-names><![CDATA[Eduardo F.]]></given-names>
</name>
<xref ref-type="aff" rid="A02"/>
</contrib>
</contrib-group>
<aff id="A01">
<institution><![CDATA[,Universidad Santiago de Cali Grupo de Instrumentación Electrónica (GIE) ]]></institution>
<addr-line><![CDATA[ ]]></addr-line>
</aff>
<aff id="A02">
<institution><![CDATA[,grupo de investigación en Percepción y Sistemas Inteligentes (PSI)  ]]></institution>
<addr-line><![CDATA[ ]]></addr-line>
</aff>
<pub-date pub-type="pub">
<day>00</day>
<month>04</month>
<year>2006</year>
</pub-date>
<pub-date pub-type="epub">
<day>00</day>
<month>04</month>
<year>2006</year>
</pub-date>
<volume>26</volume>
<numero>1</numero>
<fpage>103</fpage>
<lpage>109</lpage>
<copyright-statement/>
<copyright-year/>
<self-uri xlink:href="http://www.scielo.org.co/scielo.php?script=sci_arttext&amp;pid=S0120-56092006000100013&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://www.scielo.org.co/scielo.php?script=sci_abstract&amp;pid=S0120-56092006000100013&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://www.scielo.org.co/scielo.php?script=sci_pdf&amp;pid=S0120-56092006000100013&amp;lng=en&amp;nrm=iso"></self-uri><abstract abstract-type="short" xml:lang="es"><p><![CDATA[Este artículo pretende brindar una introducción a la característica del programa MATLAB, a partir de la versión 6.1, de permitir la transferencia de datos a través del puerto serial para leerlos o escribirlos directamente desde su entorno, ya sea con el fin de soportar varias interfaces comerciales de instrumentación, o para manejar los puertos COM del PC. El trabajo toma como referencia un sistema microcontrolado diseñado con el fin de lograr un reconocimiento de formas de obstáculo mediante ecos ultrasónicos.]]></p></abstract>
<abstract abstract-type="short" xml:lang="en"><p><![CDATA[This article intends to introduce features of Matlab (version 6.1 onwards) which lets data be transferred through a serial port for reading it or writing it directly from Matlab. This can be done for supporting several commercial instrumentation interfaces or driving PC COM ports. This work is based on a micro-controlled system designed in such a way that the shape of an object can be recognised by ultrasonic echoes.]]></p></abstract>
<kwd-group>
<kwd lng="es"><![CDATA[adquisición de datos]]></kwd>
<kwd lng="es"><![CDATA[pseudovisión ultrasónica]]></kwd>
<kwd lng="es"><![CDATA[señal ultrasónica]]></kwd>
<kwd lng="es"><![CDATA[puerto serial]]></kwd>
<kwd lng="es"><![CDATA[matlab]]></kwd>
<kwd lng="es"><![CDATA[sistemas microcontrolados]]></kwd>
<kwd lng="es"><![CDATA[familia HC11]]></kwd>
<kwd lng="en"><![CDATA[data acquisition]]></kwd>
<kwd lng="en"><![CDATA[sonar pseudo-vision]]></kwd>
<kwd lng="en"><![CDATA[ultrasound]]></kwd>
<kwd lng="en"><![CDATA[serial port]]></kwd>
<kwd lng="en"><![CDATA[Matlab]]></kwd>
<kwd lng="en"><![CDATA[microcontroller system]]></kwd>
<kwd lng="en"><![CDATA[HC11 family]]></kwd>
</kwd-group>
</article-meta>
</front><body><![CDATA[  <font size = "2" face = "verdana">     <p>    <center><font size = "4"><b> Control y adquisición serial de señales ultrasónicas con  Matlab </b></font></center></p>     <p>    <center><font size = "3"><b> Control and serial acquisition of ultrasonic signals with Matlab </b></font></center></p>     <p><b>   Andrés D. Restrepo G.<sup>1</sup>, Humberto Loaiza C.<sup>2</sup> y Eduardo F. Caicedo B.<sup>3</sup> </b></p>     <p>    <br><sup>1</sup> Ingeniero Electrónico y Magíster en Automática de la Universidad del Valle. Profesor del programa de Ingeniería Electrónica y vinculado al Grupo de Instrumentación Electrónica (GIE) de la Universidad Santiago de Cali. <a href = "mailto:adareg@telesat.com.co">adareg@telesat.com.co</a>; <a href = "mailto:adareg378@yahoo.com">adareg378@yahoo.com</a>     <br><sup>2</sup> Ingeniero Electricista y Magíster en Automática de la Universidad del Valle. Ph.D. en Robótica y Visión Artificial de L'Université d'Evry, Francia. Profesor titular de la Escuela de Ingeniería Eléctrica y Electrónica de la Universidad del Valle. y vinculado al grupo de investigación en Percepción y Sistemas Inteligentes (PSI). Director del PPIEE de la misma Universidad. <a href = "mailto:hloaiza@eiee.univalle.edu.co">hloaiza@eiee.univalle.edu.co</a>     <br><sup>3</sup> Ingeniero Electricista de la Universidad del Valle, Magíster en Informática Industrial y Doctor Ingeniero en Informática Industrial de la Universidad Politécnica de Madrid. Profesor titular de la Escuela de Ingeniería Eléctrica y Electrónica de la Universidad del Valle y vinculado al grupo de investigación en Percepción y Sistemas Inteligentes (PSI). Director del Departamento de Educación Desescolarizada de la misma Universidad. <a href = "mailto:ecaicedo@eiee.univalle.edu.co">ecaicedo@eiee.univalle.edu.co</a> </p> <hr size = "1">     ]]></body>
<body><![CDATA[<p><b> RESUMEN </b></p>     <p>   Este artículo pretende brindar una introducción a la característica    del programa MATLAB, a partir de la versión 6.1, de permitir la transferencia    de datos a través del puerto serial para leerlos o escribirlos directamente    desde su entorno, ya sea con el fin de soportar varias interfaces comerciales    de instrumentación, o para manejar los puertos COM del PC. El trabajo    toma como referencia un sistema microcontrolado diseñado con el fin de    lograr un reconocimiento de formas de obstáculo mediante ecos ultrasónicos.</p>     <p> <b>Palabras clave:</b> adquisición de datos, pseudovisión ultrasónica,    señal ultrasónica, puerto serial, matlab, sistemas microcontrolados,    familia HC11.</p> <hr size = "1">     <p><b> ABSTRACT </b></p>     <p>   This article intends to introduce features of Matlab (version 6.1 onwards) which    lets data be transferred through a serial port for reading it or writing it    directly from Matlab. This can be done for supporting several commercial instrumentation    interfaces or driving PC COM ports. This work is based on a micro-controlled    system designed in such a way that the shape of an object can be recognised    by ultrasonic echoes.</p>     <p> <b>Keywords:</b> data acquisition, sonar pseudo-vision, ultrasound, serial port, Matlab,    microcontroller system, HC11 family</p> <hr size = "1">     <p>Recibido: mayo 10 de 2005    <br>   Aceptado: octubre 2 de 2005</p>     <p><font size = "3"><b> Introducción </b></font></p>     <p>   Las características de MATLAB se ven potenciadas cuando se cuenta con    una tarjeta de adquisición de datos; sin embargo, existen aplicaciones    que no requieren demasiada precisión y en las cuales una costosa tarjeta    de adquisición puede ser reemplazada por un hardware menos complejo y    más barato. Ejemplo de esto es el hardware que se describe en la sección    de descripción del sistema de exploración ultrasónica,    consistente en un circuito con microcontrolador (&#181;C) y una interfaz a MATLAB,    diseñados para implementar un sistema de pseudovisión ultrasónica    cuyo objetivo es lograr un reconocimiento de la forma del objeto irradiado (Restrepo,    2005a y Restrepo, 2005b). Tomando esta aplicación como referencia se    mostrará la forma de implementar una interfaz serial manejada directamente    desde MATLAB, explicando en las secciones de control de la secuencia de exploraciones    y adquisición de muestras respectivamente el control de la exploración    ultrasónica y la adquisición de las señales de eco. Luego,    en el apartado: apartes del código en matlab, se revelan detalles del    código de los procedimientos para establecer la comunicación entre    MATLAB y el hardware de adquisición, terminando entonces con las conclusiones    de esta exposición.</p>     ]]></body>
<body><![CDATA[<p><font size = "3"><b> Descripción del sistema de exploración ultrasónica </b></font></p>     <p>   La <a href="#fig01">Figura 1</a> muestra un diagrama general del circuito mencionado en el que pueden    reconocerse las siguientes etapas básicas: </p>    <p>   - Módulos de Emisión Ultrasónica. </p>    <p>   - Módulos de Recepción Ultrasónica. </p>    <p>   - Etapa Microcontrolada. </p>    <p>   - Interfaz con MATLAB</p>     <p><a name="fig01"></a></p>     <p></p>     <p>    <center><img src="img/revistas/iei/v26n1/1a13f1.jpg"></center></p>     ]]></body>
<body><![CDATA[<p></p>     <p><b> Módulos de Emisión Ultrasónica. </b></p>     <p>El funcionamiento del módulo (<a href="#fig02">Figura 2</a>) se sintetiza de esta manera:    una señal de disparo /TRIG manejada por el &#181;C inicia la emisión    de un tren de pulsos de igual frecuencia que la de resonancia del elemento piezoeléctrico    del transductor (Restrepo, 1999 y Gwirs<i> et al</i>.).</p>     <p><a name="fig02"></a></p>     <p></p>     <p>    <center><img src="img/revistas/iei/v26n1/1a13f2.jpg"></center></p>     <p></p>     <p>Cuando le llega este pulso de disparo, el módulo se sincroniza con la    onda cuadrada de entrada de tal forma que todos los pulsos de emisión    resulten del mismo ancho. La cantidad de estos pulsos (2, 4 u 8 pulsos) puede    ajustarse con jumpers que seleccionan las líneas adecuadas de un contador    binario. De otra parte, se cuenta con una línea de salida que puede usarse    como señal de desactivación de la recepción durante la    zona muerta del sistema pulso &#150; eco.</p>     <p><b> Módulos de recepción ultrasónica. </b></p>     ]]></body>
<body><![CDATA[<p>Este receptor (<a href="#fig03">Figura 3</a>) consiste en un recortador seguido por un primer amplificador    de ganancia fija que además filtra las frecuencias superiores a 40KHz;    a continuación, una red RC filtra cualquier posible componente inferior    a 40KHz para que posteriormente una segunda etapa de amplificación, que    puede configurarse como Amplificador de Ganancia Programable (PGA), lleve a    la señal de eco a una amplitud de voltaje adecuado (salida eco). Después    de un nuevo desacople de DC, aparece un rectificador activo de media onda (salida    <i>eco_rect</i> ), para continuar con un filtro pasa &#150; bajos de 2do orden con    el fin de obtener a través de la salida <i>envolv</i>, la envolvente del eco.</p>     <p><a name="fig03"></a></p>     <p></p>     <p>    <center><img src="img/revistas/iei/v26n1/1a13f3.jpg"></center></p>     <p></p>     <p>Por último se tiene un detector ajustable de umbral que genera la señal    de detección de eco (DETEC). En el desarrollo del estudio sobre el reconocimiento    de formas con ultrasonido se deseaba tener toda la información del eco    tal cual es captado, razón por la cual se eligió la salida eco    para ser digitalizada.</p>     <p><b> Etapa microcontrolada. </b></p>     <p>   Esta etapa (<a href="#fig04">Figura 4</a>), controla la emisión de cada transmisor ultrasónico,    adquiere la señal captada durante el intervalo de recepción, almacena    las muestras digitales, y se comunica con el PC a través del puerto serial.</p>     <p><a name="fig04"></a></p>     ]]></body>
<body><![CDATA[<p></p>     <p>    <center><img src="img/revistas/iei/v26n1/1a13f4.jpg"></center></p>     <p></p>     <p>El corazón de la misma lo constituye el &#181;C de 8 bits 68HC11A8 de MOTOROLA    (M86HC11Reference Manual., 1991 y Restrepo, 1999), del cual, se utilizan dos    canales de conversión A/D con sus respectivas protecciones, uno por cada    receptor; además, dos salidas digitales, una por cada emisor, para generar    los pulsos de Disparo de Emisión con un ancho de 24 &#181;s. Como memoria    externa de programa se tiene una EEPROM 28C64, mientras que para el almacenamiento    de las 2000 muestras digitales se emplea una RAM 6116. Así mismo, el    sistema de Comunicación Serial Asíncrona (SCI) del &#181;C es ideal    para establecer una comunicación bidireccional con el PC a través    del puerto serial con velocidades de hasta 250Kbaudios con un cristal de 16MHz.    Todo el sistema está basado en una frecuencia de reloj de 16MHz, lo que    a su vez genera un período de muestreo de 8&#181;s.</p>     <p><b> Interfaz con MATLAB. </b></p>     <p>   La comunicación serial RS-232 entre el microcontrolador y el PC se estableció    a una velocidad de 9.6Kbaudios, con ayuda del integrado MAX232. El mando general    del sistema y la lectura de datos corre por cuenta de una función en    MATLAB desarrollada con las instrucciones del toolbox de Instrumentación    (Instrument Control Toolbox, Version 1. MATHWORKS). Adicionalmente y para controlar    la interacción entre el programa en MATLAB y el &#181;C se creó un    conjunto de 6 comandos, mostrados a continuación con sus nombres y valores    decimales: </p>    <p>   - REQUERIMIENTO DE RECONOCIMIENTO = 170 </p>    <p>   - RECONOCIMIENTO INICIAL = 85 </p>    <p>   - EMISIÓN =240 </p>    ]]></body>
<body><![CDATA[<p>   - SE&Ntilde;AL DETECTADA = 15 </p>    <p>   - LECTURA DE MUESTRAS = 51 </p>    <p>   - NUEVA EXPLORACIÓN = 204</p>     <p><font size = "3"><b> Control de la secuencia de exploraciones </b></font></p>     <p>   Los transductores ultrasónicos están ubicados en las esquinas    de un rectángulo imaginario, similar al implementado en Kleeman, 2001.    A través de los dos receptores en la parte inferior del montaje se obtienen    dos puntos de vista del eco producido por la reflexión de la onda generada    en uno solo de los emisores en la parte superior; por consiguiente, teniendo    dos emisores se recogerán en total cuatro perspectivas del objeto irradiado,    o sea, cuatro señales de eco.</p>     <p>En la <a href="#fig05">Figura 5</a> se presenta el esquema de exploración llevada a cabo    en cuatro pasos claramente distinguibles. Fue necesario emitir dos veces con    el mismo transductor debido a que muestrear dos canales a la vez haría    incrementar al doble el período de muestreo del &#181;C por efecto de la multiplexación    de los canales análogos. El esquema de exploración se implementa    tanto en la función desarrollada para MATLAB como en el Programa Principal    del &#181;C.</p>     <p><a name="fig05"></a></p>     <p></p>     <p>    <center><img src="img/revistas/iei/v26n1/1a13f5.jpg"></center></p>     ]]></body>
<body><![CDATA[<p></p>     <p>Durante la exploración y en cada emisión se toman y se almacenan    en RAM 2000 muestras de la señal de eco captada por la línea de    recepción activa, más una muestra del nivel de DC en dicha línea    justo antes de iniciar una nueva emisión. Esta muestra será usada    para compensar el offset introducido por los circuitos con el fin de trabajar    con conversores unipolares. En conclusión, durante cada vaciado de RAM    se transmiten serialmente 2001 bytes.</p>     <p><font size = "3"><b> Adquisición de muestras </b></font></p>     <p>   El diagrama de flujo de la <a href="#fig06a">Figura 6a</a> corresponde al programa ejecutado en el    PC para la exploración, en el cual cada bloque de Emisión <i>Txi</i>    &#150; Recepción <i>Rxj</i> comparte el diagrama de flujo de la <a href="#fig06b">Figura 6b</a>.</p>     <p><a name="fig06a"></a></p>     <p></p>     <p>    <center><img src="img/revistas/iei/v26n1/1a13f6a.jpg"></center></p>     <p></p>     <p><a name="fig06b"></a></p>     ]]></body>
<body><![CDATA[<p></p>     <p>    <center><img src="img/revistas/iei/v26n1/1a13f6b.jpg"></center></p>     <p></p>     <p>   El programa se implementó como una función de nombre explorus1.m,    ejecutándose de esta forma: </p>     <p>    <center><img src="img/revistas/iei/v26n1/1a13a1.gif"></center></p>     <p>   La variable ultrason corresponde al objeto definido para manejar el puerto serial,    y la variable margent es un valor real que representa el tiempo en milisegundos    que debe esperar la rutina antes de iniciar una nueva emisión. Por su    parte, la variable ecos contendrá las 8000 muestras provenientes de las    cuatro emisiones que componen una exploración completa. Cada conjunto    de 2000 muestras es almacenado en una variable de nombre eco_Tx#Rx# donde: Tx#    y Rx# representan respectivamente el transmisor y el receptor activos en dicha    exploración parcial. Al final, los cuatro vectores fila anteriores se    reúnen formando las filas de una matriz de dimensión 4x2000 bautizada    con el nombre de ecos.</p>     <p>Existen dos casos que conllevan a dar por terminada la ejecución de    esta función: el primero consiste en un valor erróneo del comando    recibido, mientras que el segundo se da cuando se ha alcanzado un tiempo determinado    de espera sin que ningún dato llegue al PC, o sin que lleguen completas    las 2001 muestras de eco.</p>     <p><font size = "3"><b> Apartes del código en Matlab </b></font></p>     ]]></body>
<body><![CDATA[<p>   A continuación se presentan algunas instrucciones importantes para establecer    la comunicación a través de MATLAB. La primera instrucción    que debe verse es: </p>     <p>    <center><img src="img/revistas/iei/v26n1/1a13a2.gif"></center></p>     <p>   La función serial permite crear el objeto (al cual se le ha dado el nombre    <b>ultrason</b>) que contendrá todas las características del puerto físico    que se usará y el tipo de interfaz. Al requerirse el manejo de uno de    los puertos seriales del PC, se pasa como argumento de la función el    nombre que identifica a dicho puerto (COM1) según las definiciones del    toolbox. Si se va a usar cualquier otra interfaz de instrumentación reconocida    por MATLAB, se pasa como argumento el nombre que le identifica. Como toda variable    tipo objeto, <b>ultrason</b> va a tener una lista de propiedades configurables por    el usuario. Para ver la lista de estas propiedades puede usarse la función    set en esta forma: </p>     <p>    <center><img src="img/revistas/iei/v26n1/1a13a3.gif"></center></p>     <p>   La misma función permite ajustar el valor o cualidad para una propiedad    específica. De esta manera, desde la aplicación que corra en MATLAB    es posible alterar la configuración del puerto sin necesidad de hacerlo    desde el sistema operativo. Por ejemplo, para ajustar la rata de baudios a 9600bps    basta con hacer: </p>     <p>    <center><img src="img/revistas/iei/v26n1/1a13a4.gif"></center></p>     <p>   es válido también: <b>ultrason.BaudRate=9600;</b></p>     ]]></body>
<body><![CDATA[<p>Adicionalmente, fue necesario ajustar el tamaño del <i>buffer</i> de entrada,    ya que por defecto es de 512 bytes de capacidad, y el número total de    bytes que se leerán de la RAM es de 2001. Por tanto, se ejecuta la siguiente    instrucción, dejando una cierta holgura en la capacidad del buffer: </p>     <p>    <center><img src="img/revistas/iei/v26n1/1a13a5.gif"></center></p>     <p>Una vez que se han ajustado las propiedades requeridas para el puerto, es necesario    habilitarlo (conectarlo o abrirlo) para la lectura y escritura de datos mediante    la orden: </p>     <p>    <center><img src="img/revistas/iei/v26n1/1a13a6.gif"></center></p>     <p>   Mientras tanto, la lectura y la escritura asíncronas se realizan empleando    las funciones <b>fread</b> y <b>fwrite</b>, las cuales trabajan con datos binarios de distintos    tipos; por defecto los datos son de tipo caracter o enteros de 8 bits.</p>     <p>Antes de entablar con el hardware el enlace de comunicación con el comando    REQUERIMIENTO_ RECONOCIMIENTO, es aconsejable detectar al inicio de cada exploración    completa, si en el puerto existen bytes no leídos con el fin de asegurar    que el primer caracter que llegue después del envío de dicho comando    sea la respuesta de reconocimiento del &#181;C. Para ello, se necesita ahora obtener    el valor actual de la propiedad de bytes disponibles del puerto: </p>     <p>    <center><img src="img/revistas/iei/v26n1/1a13a7.gif"></center></p>     ]]></body>
<body><![CDATA[<p>El comando get también puede utilizarse para el propósito de    indagar por el valor de una propiedad del puerto: </p>     <p>    <center><img src="img/revistas/iei/v26n1/1a13a8.gif"></center></p>     <p>Mientras tanto, la función <b>fread</b> necesita como argumentos, el nombre    del objeto que representa al puerto, el número de bytes que se leerán    y el tipo de dato que se recuperará.</p>     <p>En este momento, ya es seguro enviar el comando de petición de reconocimiento: </p>     <p>    <center><img src="img/revistas/iei/v26n1/1a13a9.gif"></center></p>     <p>   Como se observa, la función <b>fwrite</b> necesita como argumentos: el nombre    del objeto, el dato a enviar y el tipo de dato.</p>     <p>De otra parte, puesto que el &#181;C está programado para responder siempre    a cualquiera de los comandos que le envíe el PC, como una medida de seguridad    se implementa una rutina de espera que aborta toda la operación si se    excede un tiempo máximo determinado. </p>     <p>    ]]></body>
<body><![CDATA[<center><img src="img/revistas/iei/v26n1/1a13a10.gif"></center></p>     <p>   La función <b>clock</b> entrega el tiempo actual basado en el reloj del PC,    mientras que etime compara el tiempo actual (mediante <b>clock</b>) con otro instante    previo y entrega la diferencia en segundos. En este caso, si después    de 5 segundos no ha llegado nada al buffer de entrada al puerto (<b>ultrason.bytesavailable==0</b>)    se cancela todo el procedimiento de exploración. Al mismo tiempo es vital    que se realicen las operaciones contrarias a las que se hicieron para la activación    del puerto serial, detalle que se retoma más adelante. Si se recibe un    dato en el puerto dentro del tiempo permitido, se ejecuta entonces la lectura    correspondiente: </p>     <p>    <center><img src="img/revistas/iei/v26n1/1a13a11.gif"></center></p>     <p>Ahora, se compara el dato leído con el comando que debería haber    llegado (rutina de comprobación), que en este punto corresponde al de    RECONOCIMIENTO_INICIAL:</p>     <p>    <center><img src="img/revistas/iei/v26n1/1a13a12.gif"></center></p>     <p>En general, después de cada envío de un comando hacia el &#181;C se    ejecuta una rutina de espera y después de una lectura de un comando enviado    por el &#181;C se corre una pequeña rutina de comprobación, ambas similares    a las anteriores. Enseguida se continúa con el proceso de exploración    enviando el comando de EMISION:</p>     <p>    <center><img src="img/revistas/iei/v26n1/1a13a13.gif"></center></p>     ]]></body>
<body><![CDATA[<p>   Ante el comando anterior el &#181;C, en este prototipo inicial del sistema ultrasónico,    sabe qué transductor debe excitar para armar la secuencia correcta de    emisiones y recepciones, de acuerdo al esquema de exploración explicado    en el punto 3. Luego se lee el comando de respuesta (SENAL_DETECTADA):</p>     <p>    <center><img src="img/revistas/iei/v26n1/1a13a14.gif"></center></p>     <p>   Después de la comprobación, se ordena el vaciado de la memoria    RAM donde se almacenaron las muestras obtenidas de la señal de eco correspondiente:</p>     <p>    <center><img src="img/revistas/iei/v26n1/1a13a15.gif"></center></p>     <p>   Puesto que son 2001 muestras en total, la rutina de espera cambia con respecto    a las anteriores en la siguiente línea:</p>     <p>    <center><img src="img/revistas/iei/v26n1/1a13a16.gif"></center></p>     <p>   Si no existe ninguna contingencia, se procede con la lectura de las muestras:</p>     ]]></body>
<body><![CDATA[<p>    <center><img src="img/revistas/iei/v26n1/1a13a17.gif"></center></p>     <p>Se finaliza el proceso de emisión &#150; recepción con la organización    de las muestras de eco en un vector y la compensación del offset, y antes    de iniciar una nueva emisión se espera el tiempo que se pasó como    argumento en la variable <b>margent</b>. Todo el procedimiento se repite hasta completar    las cuatro emisiones y se envía el comando de NUEVA_EXPLORACION para    dejar listo al &#181;C ante una nueva exploración. Una vez que esto sucede,    debe hacerse lo pertinente para inhabilitar las operaciones de lectura y escritura    sobre el puerto, liberar el mismo o borrarlo definitivamente. De hecho, para    culminar la función explorus se inhabilita (se desconecta o se cierra)    el puerto serial, se quita de la memoria el espacio reservado para el objeto    creado, y finalmente se quita el mismo del WORKSPACE, mediante las órdenes    respectivas:</p>     <p>    <center><img src="img/revistas/iei/v26n1/1a13a18.gif"></center></p>     <p>En realidad, la función <b>explorus</b> es invocada por un programa principal,    por lo que la creación de la variable objeto para manejar el puerto,    la liberación de memoria y la eliminación del mismo objeto, pueden    ejecutarse en el programa principal; mientras tanto, la conexión y desconexión    del puerto corre por cuenta de la función explorus. Esta estrategia permite    mantener el puerto serial disponible mientras el programa principal se ejecute    para que en cualquier momento se pueda hacer una exploración, evitando    siempre la situación en la que se intente abrir el puerto cuando no ha    sido previamente cerrado, ya que se producirá un error. En la <a href="#fig07">Figura    7</a> aparece un ejemplo de visualización de las señales de eco captadas.</p>     <p><a name="fig07"></a></p>     <p></p>     <p>    <center><img src="img/revistas/iei/v26n1/1a13f7.jpg"></center></p>     ]]></body>
<body><![CDATA[<p></p>     <p><font size = "3"><b> Conclusiones </b></font></p>     <p>   En el presente artículo se ha presentado un sistema barato de adquisición    de señales ultrasónicas desarrollado alrededor de un &#181;C de 8 bits    de la familia HC11 de MOTOROLA, y controlado directamente desde MATLAB a través    del puerto serial. La ventaja principal de aprovechar esta cualidad de transferencia    serial de datos, consiste en que se puede tener una interfaz completa que interactúe    con un hardware específico usando únicamente los comandos y funciones    de MATLAB, y desapareciendo la necesidad de desarrollar programas en otros lenguajes    para que sean invocados por la herramienta al realizar las tareas de comunicación    con el exterior del PC. Si bien esta característica es aprovechable en    la medida en que la velocidad de ejecución de las rutinas de adquisición    en MATLAB no constituya un elemento crítico para el buen funcionamiento    de la aplicación que haga uso de ella, cabe la posibilidad como trabajo    futuro de experimentar con la interfaz USB, más veloz, a través    de los llamados puertos COM virtuales. Específicamente, el Sistema Ultrasónico    de Reconocimiento de Formas presentado en el artículo tuvo un desempeño    exitoso haciendo uso de esta utilidad, permitiendo que con un solo click en    una interfaz gráfica de MATLAB se hiciera todo el proceso, desde explorar    el obstáculo hasta obtener un resultado de su ubicación y su forma.</p>     <p><font size = "3"><b> Bibliografía </b></font></p>     <!-- ref --><p>   Kleeman, L., Advanced Sonar Sensing, Proceedings 10th International Symposium    Robotics Research, Lorne Victoria Australia, Noviembre 2001, pp. 286-295.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000157&pid=S0120-5609200600010001300001&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>Gwirc, S.; Ferdeghini, F; Comastri, A y Lupi, D., Sensores Ultrasónicos:    Respuesta a Distintas Formas de Onda, Centro de Investigación y Desarrollo    en Electrónica e Informática (CITEI), Instituto Nacional de Tecnología    Industrial, Argentina., &#091;on line&#093; <a href="http://sumar.utic.com.ar/ondas.pdf">http://sumar.utic.com.ar/ondas.pdf</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000158&pid=S0120-5609200600010001300002&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>Instrument Control Toolbox, Version 1., MATHWORKS.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000159&pid=S0120-5609200600010001300003&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>M86HC11Reference Manual., Rev.3, MOTOROLA INC, 1991.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000160&pid=S0120-5609200600010001300004&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>Restrepo, A. y Millán, J., Medición de Nivel en Líquidos    Inmiscibles con un Sensor Ultrasónico Inteligente, Tesis de Ingeniería    Electrónica, Escuela de Ingeniería Eléctrica y Electrónica,    Universidad del Valle, 1999.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000161&pid=S0120-5609200600010001300005&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>Restrepo, A. D., Concepción de un Sistema de Pseudovisión Ultrasónica    Aplicando Técnicas Frecuenciales y de Inteligencia Computacional, Tesis    de Maestría, PPIEE, Universidad del Valle. Cali, Colombia, 2005a.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000162&pid=S0120-5609200600010001300006&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>Restrepo, A., Loaiza, H. y Caicedo, E., Sistema Ultrasónico de Reconocimiento    de Formas basado en Técnicas Frecuenciales e Inteligencia Computacional,    Memorias del X Simposio de Señales, Imágenes y Visión Artificial,    Universidad del Valle, octubre de 2005b.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000163&pid=S0120-5609200600010001300007&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> ]]></body><back>
<ref-list>
<ref id="B1">
<nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Kleeman]]></surname>
<given-names><![CDATA[L.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Advanced Sonar Sensing]]></article-title>
<source><![CDATA[]]></source>
<year></year>
<conf-name><![CDATA[ 10th International Symposium Robotics Research]]></conf-name>
<conf-date>Noviembre 2001</conf-date>
<conf-loc>Lorne Victoria</conf-loc>
</nlm-citation>
</ref>
<ref id="B2">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Gwirc]]></surname>
<given-names><![CDATA[S.]]></given-names>
</name>
<name>
<surname><![CDATA[Ferdeghini]]></surname>
<given-names><![CDATA[F]]></given-names>
</name>
<name>
<surname><![CDATA[Comastri]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
<name>
<surname><![CDATA[Lupi]]></surname>
<given-names><![CDATA[D.]]></given-names>
</name>
</person-group>
<source><![CDATA[Sensores Ultrasónicos: Respuesta a Distintas Formas de Onda]]></source>
<year></year>
<publisher-name><![CDATA[Centro de Investigación y Desarrollo en Electrónica e Informática (CITEI), Instituto Nacional de Tecnología Industrial]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B3">
<nlm-citation citation-type="book">
<source><![CDATA[Instrument Control Toolbox: Version 1]]></source>
<year></year>
<publisher-name><![CDATA[MATHWORKS]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B4">
<nlm-citation citation-type="book">
<source><![CDATA[M86HC11Reference Manual: Rev.3]]></source>
<year>1991</year>
<publisher-name><![CDATA[MOTOROLA INC]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B5">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Restrepo]]></surname>
<given-names><![CDATA[A.]]></given-names>
</name>
<name>
<surname><![CDATA[Millán]]></surname>
<given-names><![CDATA[J.]]></given-names>
</name>
</person-group>
<source><![CDATA[Medición de Nivel en Líquidos Inmiscibles con un Sensor Ultrasónico Inteligente]]></source>
<year></year>
</nlm-citation>
</ref>
<ref id="B6">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Restrepo]]></surname>
<given-names><![CDATA[A. D.]]></given-names>
</name>
</person-group>
<source><![CDATA[Concepción de un Sistema de Pseudovisión Ultrasónica Aplicando Técnicas Frecuenciales y de Inteligencia Computacional]]></source>
<year></year>
</nlm-citation>
</ref>
<ref id="B7">
<nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Restrepo]]></surname>
<given-names><![CDATA[A.]]></given-names>
</name>
<name>
<surname><![CDATA[Loaiza]]></surname>
<given-names><![CDATA[H.]]></given-names>
</name>
<name>
<surname><![CDATA[Caicedo]]></surname>
<given-names><![CDATA[E.]]></given-names>
</name>
</person-group>
<article-title xml:lang="es"><![CDATA[Sistema Ultrasónico de Reconocimiento de Formas basado en Técnicas Frecuenciales e Inteligencia Computacional]]></article-title>
<source><![CDATA[]]></source>
<year></year>
<conf-name><![CDATA[ X Simposio de Señales, Imágenes y Visión Artificial]]></conf-name>
<conf-date>octubre de 2005</conf-date>
<conf-loc> </conf-loc>
</nlm-citation>
</ref>
</ref-list>
</back>
</article>
