LabGNU

LabGNU queda parado indefinidamente

Debido a la falta de tiempo me veo obligado a abandonar este proyecto de forma indefinida. La idea es seguir trabajando en el, pero no se cuando. Seguramente el año que viene vuelva a presentarme al CUSL con este proyecto, para entonces al igual ya tengo algo desarrollado.

De cualquier forma, si hay alguien interesado en trabajar en este tema, puede ponerse en contacto conmigo y así podría pasarle lo poco que he avanzado.

Implementación de VISA en GNU/Linux

Después de un periodo sin escribir nada en mi blog me gustaría retomar el ritmo y seguir publicando más información referente a mi proyecto para el III CUSL.

Tras revisar varios sitios y algunos documentos sobre instrumentación virtual, parece evidente que el siguiente paso para conseguir una implementación libre de LabGNU será crear una librería VISA abierta. Buscando he podido encontrar OpenVISA (para C), pero parece que está abandonada desde hace tiempo. También existe una librería para python llamada PyVISA, pero que será poco útil de momento, ya que su funcionamiento se lo debe a un módulo de python (parte del mismo proyecto) llamado vpp43, que por lo poco que he mirado parece que se apoya en una librería externa propietaria del fabricante de hardware. El objetivo de este módulo es adaptar las llamadas a la librería propietaría desde el lenguaje python. También le veo un gran inconveniente, y es que los nombres de las funciones cambian, por lo que por ejemplo la función estándar definida por la especificación VISA como viRead, en python sería read, y esto pasa con todas las funciones. De momento queda descartado el uso de este proyecto en LabGNU.

De momento creo que lo principal es tener una implementación de VISA abierta, y salvo que OpenVISA tenga un grado suficiente de madurez, tendré que empezar a construirla. En esta primera fase del proyecto creo que me contentaré con la implementación tenga soporte para RS-232 y según el tiempo disponible GPIB o USB.

De momento esto es todo lo que he podido hacer, ya que el tiempo libre que tengo es menor cada día.

Publicados los proyectos para el III CUSL

Ya ha sido publicada la lista de los proyectos aceptados para el III Concurso Universitario de Software Libre. Entre ellos se encuentra el proyecto que yo presento, LabGNU.

Comentar que me han parecido interesantes muchos proyectos, como por ejemplo "Biblioteca de conexión de Arduinos con el protocolo X10" y "Shield y software para la interconexión de Arduinos vía CanBus", ambos en torno a Arduino. También he notado que hay varios proyectos que tratan el tema del lenguaje de signos y muchos videojuegos.

En cuanto a temas parecidos a lo que pretendo con LabGNU, he visto un proyecto llamado "Spectral" y que en palabras de sus autores, será un "software que permite visualizar en pantalla las componentes espectrales de la señal presente en los datos de entrada, obteniendo de ellas parámetros acusticos". Al igual me viene bien parte del código para implementar alguna caja de LabGNU.

En cuanto a mi proyecto, de momento estoy aún contemplando posibilidades, ya que cuanto más leo sobre instrumentación virtual, más me doy cuenta de lo extenso que es el tema. Debido a la falta de una implementación en C/C++ de VISA, lo más seguro será que en una primera etapa me centre en implementar VISA para al menos el puerto serie y si puedo USB. Posteriormente empezaría la parte de LabGNU en sí misma.

En cuando tenga un poco más claro todo iré informando.

Protocolos para instrumentación

Ya he empezado a buscar información sobre los protocolos y estádares (de norma y de facto) que existen para la comunicación de datos en equipos de instrumentación y la verdad es que hay literatura para un rato...

En una primera búsqueda de información he podido dar con los siguientes protocoles y tipos de conexiones:

  • IEEE-488
    También conocido como GPIB o HP-IB, creado por HP a finales de los 60 y estandarizado por el IEEE en 1975. Posteriormente, en el 2003, National Instruments introdujo una extensión que era compatible hacia atrás, y que permitía velocidades de hasta 8Mbit/s, era conocida como HS-488. La interfaz de conexión es mediante un conector paralelo de 24 pines.
  • LXI
    Este nuevo estandar se creó para sustituir a GPIB. Se desarrollo por un consorcio creado por las grandes compañías de instrumentación y electrónica como Agilent, National Intruments y EADS entre otras muchas. Se basa en una interfaz LAN (incluyendo enlaces inalámbricos), un protocolo para controlar el tiempo con alta precisión (IEEE 1588, PTP) y un sistema de disparo cableado basado en LVDS.
  • VXI
    Es una plataforma estandar abierta basada en VMEBus. Además se define un tipo de chasis común para que las tarjetas de distintos fabricantes puedan ser instaladas en el mismo sistema. Eran un tarjetas grandes parecidas a los actuales racks de servidores.
  • PXI
    Es una plataforma modular en la que los distintos módulos se basan en conexiones CompactPCI (similar a PCI). La gran ventaja es que en un mismo sistema PXI pueden instalarse módulos de distintos fabricantes.
  • VISA
    Tras la creación de VXI se decidió especificar también la forma en la que se comunicaban PC e instrumentos de test y medidas, para ello se creo VISA (Virtual Instrument Software Architecture) como un estandar abierto. Principalmente está pensado para comunicarse a través de interfaces típicamente de instrumentos de test y medidad, como VXI o GPIB. Actualmente existen especificaciones para interfaces típicas de PCs, tal y como USB (USBTMC) o TCP/IP (VXI-11).

De momento creo que con todo esto ya tengo para hacerme una idea. Lo siguiente será indagar sobre USBTMC, ya que pienso que es lo más importante en la primera etapa del proyecto. También tendré que buscar mucha más información sobre VISA y ver si hay algo en referencia al puerto serie (que me ha extrañado no ver por ningún lado).

Mi proyecto para el III CUSL: LabGNU

Este año no tenía pensado presentarme al III CUSL, pero tras darle vueltas a la cabeza y motivado por la falta de software libre en mi escuela, me he inscrito con un proyecto al que he llamado LabGNU.

Con LabGNU pretendo crear un alternativa al conocido software LabVIEW de National Instruments. Para el que no lo sepa LabVIEW es un software que nos sirve para crear instrumentos virtuales a medida entre otras muchas cosas. Mediante el uso de unas tarjetas de adquisición de datos conectadas por USB, PCI o cualquier otro tipo de puerto, capturamos los datos para su posterior procesamiento y presentación en el ordenador.

Una de las peculiaridades de LabVIEW es que se programa con un lenguaje gráfico basado en un modelo de cajas que se interconectan unas con otras. Si por ejemplo alguien conoce el entorno de desarrollo de Lego Mindstorms o Lego NXT sabrá a lo que me refiero, pues ese entorno es una adaptación de LabView.

Además del software, con este proyecto pretendo crear algunas placas de adquisición de datos, aunque seguramente sean de bajas prestaciones, pues hay poco tiempo y el solo diseño del software ya se va a llevar un gran parte del tiempo.

Como se aprecia es un proyecto muy ambicioso, por lo que al igual se queda en mucho menos, pero al menos hay que intentarlo.

Más detalles dentro de poco.

Distribuir contenido