Blog de indusele

Pero, ¿cómo se produce la comunicación entre Arduino y Labview?

Después de ver un ejemplo básico de encendido de un LED en Arduino a través de un scada realizado en Labview, hoy voy a explicar en qué se basa la comunicación entre estos dos programas ya que , pese a ser algo muy teórico, puede ser de gran ayuda en aplicaciones más complejas:

Comunicación serie de Arduino

La comunicación serial se suele emplear para comunicar Arduino con un ordenador u otros dispositivos. Todas las placas Arduino tienen al menor un puerto serie también nombrado como UART el cual comunica los pines digitales 0(RX) y 1(TX) con el ordenador a través de USB. UART significa “Universal Asynchronous Receiver-Transmitter” y es un controlador de puertos y dispositivos en serie. Normalmente se encuentra integrado en la placa base y sirve para manejar las interrupciones de los dispositivos conectados al puerto serie y convertir los datos en formato paralelo en formato serie para que puedan ser transmitidos a través de los puertos y viceversa. Los UART son programables y debe configurarse la velocidad, la paridad, la longitud y los bits de parada. El UART viene incluido en el hardware de Arduino integrado en el chip, el cual permite la comunicación incluso mientras se trabaja en otras tareas, siempre que haya un espacio en el buffer de serie de 64 bytes:

“Para entender el uso del buffer normalmente se usa el ejemplo de la sala de espera del médico. Esta sala de espera es el buffer, que tiene una capacidad de 64 pacientes. Cada paciente es 1 byte. El médico va atendiendo cada paciente uno por uno por orden de llegada. La enfermera que deja entrar a los pacientes a la sala de espera son los baudios (la velocidad de recibir datos), cuando más grande sea la velocidad, más gente entra en la sala. Si la sala está completa con 64 pacientes y llegan más, estos serán rechazados (drop o loss).” (Diymakers, 2014)

El puerto es el nombre genérico para definir las interfaces, físicos o virtuales, que permiten la comunicación entre dos ordenadores o dispositivos. El puerto serie (o puerto serial) es una interfaz de comunicaciones de datos digitales donde la información es transmitida bit a bit, es decir, envía un único bit a la vez en lugar de varios bits simultáneos como ocurre con la transmisión en paralelo que envía varios bits simultáneamente. Esta secuencia de bits es la forma de enviar la información a través de los dispositivos.

La transferencia de datos a través de los puertos de serie se emplea con frecuencia asociándose sobre todo al estándar RS-232; no obstante, últimamente se ha optado por la comunicación USB la cual manda los datos como un flujo en serie debido a que es más rápida la transmisión. En el caso de Arduino MEGA se caracteriza por usar un microcontrolador ATmega16U2 que está programado como un convertidor de USB a serie, lo que significa que no utiliza el chip controlador de USB a serial FTDI debido a que la conversión se realiza a través de programación.

Hay que tener en cuenta, además, que Arduino MEGA tiene tres puertos adicionales además del RX(0) Y TX0(1):

Serial1 en los pines 19(RX) y 18(TX)

Serial2 en los pines 17(RX) y 16(TX)

Serial3 en los pines 15(RX) y 14(TX)

Además, para usar estos pines para comunicarse con un ordenador, se necesitará un adaptador adicional de USB a serie por no estar conectado al adaptador de la MEGA.

La biblioteca SoftwareSerial permite la comunicación en serie en cualquiera de los pines digitales del MEGA 2560. Este recurso de software permite la comunicación con múltiples puertos con velocidades de transmisión de hasta 115200 bps aunque tiene un par de limitaciones:

·  Durante el uso de múltiples puertos, sólo se puede recibir un dato y no varios a la vez.

·  No todos los pines soportan interrupciones, sólo se pueden emplear para RX: 0, 11, 12, 13, 14, 15, 50, 51, 52, 53, A8 (62), A9 (63), A10 (64), A11 (65), A12 (66), A13 (67), A14 (68), A15 (69).

¿Qué comandos debo emplear para la comunicación serie?

En las próximas semanas incluiré un ejemplo básico de encendido y apagado de un led a través de Labview y basado en toda la teoría que hemos visto hoy. ¡Hasta pronto!

“El hombre vulgar, cuando emprende una cosa, la echa a perder por tener prisa en terminarla.” Lao Tse

Comentarios

No hay ningún comentario

Añadir un Comentario: