Robotica Facil. Robots, kits, circuitos, sensores, motores, etc.. SR1 Robot Multifuncional Robótica Fácil  
Página Principal Novedades Ayuda Ver Carrito Catálogo
Kits Robots Circuitos electrónicos Sensores robotica Motores y servos para robots Ruedas y Orugas para robots
Soportes y hardware Tornillos y separadores Libros robotica Radio Modem, Transmisores de Vídeo Robots Fotograficos
Fuentes de Alimentacion Componentes electrónicos Varios robotica Proyectos de Robotica Tutoriales de Robotica
Transmisión de datos vía rádio para robots

Radio modem empleados para transmitir datos via radio a los robots

 COMO ENVIAR Y RECIBIR DATOS ENTRE EL PC Y EL ROBOT 

Por Pablo Pompa

Una de las tareas mas comunes dentro del mundo de la robótica es el envío de datos entre diferentes robots o bien entre el robot y el PC que actúa a modo de estación de control central. La transmisión de datos vía radio se diferencia del clásico control teledirigido a radio control básicamente en dos cosas, en el primer caso la comunicación suele ser bidireccional, es decir que tanto el robot, como el ordenador transmiten y reciben datos. En el caso de los modelos radio controlados la información siempre viaja desde el mando de control únicamente. Otra gran diferencia es el tipo de dato o información que se envía. En el caso de los robots, la información consiste en bytes de datos que contienen información de comandos, textos, valores numéricos, datos de sensores, etc en definitiva información de formato y valor variable que se puede ajustar a las necesidades de cada proyecto. En el caso de los sistemas de radio control, la información prácticamente se limita a enviar la señal PWM correspondientes a cada uno de los canales y que no suele ser mas de 10 en el mejor de los casos. Esta información es muy útil y suficiente cuando se están controlando servos y circuitos sencillos, pero no sirve para enviar datos e información variable.

Para transmitir datos desde un robot a un ordenador, lo mejor con diferencia, es emplear un radio módem que se encargue de todo el proceso de la comunicación vía aérea y que consigue que el proceso resulte muy sencillo de implementar en cualquier robot que sea capaz de enviar datos por un puerto serie. Otra posibilidad es emplear módulos de radio híbridos que se encargan de la trasmisión y recepción de los datos, pero que no incluyen ningún sistema para el control de errores y la gestión de los datos, por lo que todo el proceso es necesario hacerlo entonces en el procesador, lo que no resulta nada práctico en la mayoría de los casos.

Entre los diferentes radio módem del mercado, hay varios módulos muy populares que destacan por su facilidad de uso, bajo consumo y alta velocidad de transferencia. Estos módulos suelen ir acompañados de otro modulo similar que es el que se conecta al PC. Estos módulos se pueden encontrar en la sección de transmisores de nuestro catalogo y presentan la siguientes características comunes:

  • Los módulos que se montan en los robots, tienen una alimentación de 5V (ojo 5V estabilizados, ver esquema mas adelante).
  • El tipo de comunicación es serie, con niveles de tensión TTL (entre 0 y 5V), por lo que no se pueden conectar directamente a un interfaz serie RS232 que tiene niveles de tensión de ±12V.
  • La señal de los datos esta invertida, por lo que es necesario utilizar algún tipo de inversor para restaurar la señal correctamente, además los inversores protegen los pines de entrada y salida de los radiomódem y evitan averías.
  • El protocolo de comunicación es transparente para el usuario, limitándose en todos los casos a hacer una pequeña pausa después de mandar los datos desde el microcontrolador.
  • El radio módem se encarga de garantizar que los datos recibidos son validos y correctos. En caso contrario los datos son descartados y sencillamente se pierden.

Radio modem multicanal de 19200 baudios

TRANSMITIR DATOS VIA RADIO

La transmisión de datos vía radio es muy similar a la transmisión de datos vía cable, aunque hay algunas importantes diferencias y particularidades que hay que tener en cuenta. Estas particularidades son:

  • Tanto la transmisión como la recepción son semi dúplex, es decir que se puede transmitir o recibir, pero no hacer las dos cosas a la vez.
  • El máximo número de bytes que se pueden enviar en cada paquete es limitado. Si se sobrepasa este número, los bytes excedentes se perderán y no serán transmitidos.
  • Los datos que han sido recibidos y descodificados, son enviados desde el transceptor de radio al microcontrolador tan pronto se reciben. Si el microcontrolador no recepciona los datos del módulo de radio, estos se perderán.
  • Antes de enviar datos desde el microcontrolador al módulo de radio, es necesario recibir todos los datos que tenga el módulo de radio en su bufer de recepción, de lo contrario, los datos transmitidos se perderán y no se enviarán vía radio.
  • Los datos transmitidos se comprueban en el receptor mediante técnicas de crc. Si los datos recibidos no son correctos, se descarta completamente el paquete recibido, perdiéndose la transmisión de los datos.
  • Es necesario hacer una pausa cuya duración tiene que ser al menos el doble de la duración de un byte. A 19200 baudios esta pausa tiene que ser superior a 1,04 ms.
  • La velocidad de comunicación entre el microcontrolador del robot y el radio módem es o puede ser diferente a la que emplean los radiomodem para comunicarse entre si vía radio.

Además de estas diferencia, hay que tener en cuenta que a diferencia de lo que pasa cuando se utiliza un cable, la fiabilidad de la comunicación esta completamente ligada a la distancia que hay entre el transmisor y el receptor. Así en el caso de los cables, la transmisión llega correctamente hasta el receptor en un 99,9% de los casos. En el caso de la radio, este porcentaje puede ser parecido cuando el transmisor y el receptor están muy cercas y va empeorando hasta el 100 % de fallos cuando se encuentran fuera de cobertura. Además otro factor son las interferencias producidas por otros dispositivos, o bien cuando hay muchos robots transmitiendo a la vez. Para resolver este tipo de incidencias, es necesario implementar en el software algún tipo de control que limite el tiempo que se esta esperando una orden o una respuesta.

Radio modem multicanal de 900 Mhz.

¿QUE ES UN RADIO MODEM?

Un radiomódem o módem radio como lo llaman algunos, es un módulo electrónico que incluye por un lado un microcontrolador de control y por otro un transmisor y un receptor de radio que son controlados por el procesador. EL microcontrolador se comunica con el mundo exterior mediante una conexión serie cuya velocidad varia dependiendo del modelo, aunque la mayoría pueden comunicar a 9600 y 19200 baudios. El microcontrolador empleado suele ser un Atmel o bien un PIC y normalmente se conecta directamente con los pines de conexión del radio módem, por lo que es muy recomendable usar algún tipo de circuito bufer para proteger el micro y evitar averías. Como normalmente la señal entregada por el radio módem está invertida, basta con añadir algún tipo de puerta inversora que también actúe como bufer.

La velocidad a la que se comunica el radiomodem por el aire es independiente de la velocidad de conexión local y varia de un modelo a otro, aunque la mayoría se comunica con velocidades superiores a los 19200 baudios, por lo que no presentan grandes retardos en las comunicaciones. Lo que si hay que tener en cuenta es que el tiempo total de la transmisión es la suma del tiempo que se tarda en enviar los datos desde el robot al radio módem, mas el tiempo que tardan en viajar los datos por el aire desde un radiomódem al otro, mas el tiempo que se tarda en recibir los datos por el PC. Además hay que añadir unos cuantos milisegundos mas necesarios para las operaciones de control de errores y de protocolo de los radiomodems.

Radio Modem para el PC con conexion USB

EL PROGRAMA DE CONTROL

El programa de control, en realidad son dos, uno en el lado del ordenador y otro en el lado del robot. Para ver como se realiza el proceso, se ha preparado dos programas diferentes que tienen la particularidad de funcionar con todos los radiomodems de nuestro catálogo. Consulte la siguiente sección para ver el esquema de conexión y las particularidades de cada caso.

Comenzando por el programa del robot, se ha realizado una rutina muy básica en Basixc pensada para cargarla en un Microcontrolador BasicX24 S310205. El programa es muy simple y lo que hace es recibir vía radio una serie de comandos, que son identificados. Luego devuelve vía radio una confirmación de que ha recibido el mensaje. Como puede verse en el programa, es muy sencillo y muestra de una forma practica como recibir una orden desde el ordenador central. El tamaño de los comandos puede cambiarse, pero resulta muy practico utilizar ordenes de longitud fija, ya que facilita la programación considerablemente. Si se tienen que pasar parámetros, es recomendable igualmente utilizar siempre la misma longitud en las ordenes , tanto si hay, como si no hay parametros que pasar. Lo que se hace es rellenar los bytes con datos ficticios cuando el comando no tenga parámetros, de forma que se mantenga siempre el mismo tamaño de ordenes. Esto obviamente es solo una sugerencia y cada cual puede emplear el método que mas le convenga.

Un detalle que hay que tener en cuenta es que la instrucción Debug.Print del microcontrolador BasicX24 no funciona correctamente con los radio módem, ya que introduce pausas entre los caracteres que se envían por el puerto serie lo que provoca que se pierdan bytes. En lugar de emplear esta instrucción, lo que hay que hacer es abrir el puerto Comm1 del BasicX24 y escribir los bytes a enviar en el bufer de salida. Un ejemplo de como se hace es el siguiente:

Preparando el puerto serie del BasicX24

Como puede verse lo que se hace es crear dos bufer y luego abrir el puerto a 19200 baudios que es la velocidad de trabajo por defecto del BasicX24. Ahora lo que se hace es utilizar la expresión:

Call PutQueueStr (OutBuff, "Datos" & chr(13) & chr(10))

La expresión 'Datos' es la que se sustituye por los caracteres a enviar. Los dos últimos caracteres son opcionales, pero equivalen a un retorno de carro y un avance de línea, que provoca que el cursor salte al siguiente renglón depués de mostrar los datos en la pantalla del PC, para mayor claridad.

Puede descargar el programa para el BasicX24 Aquí

En el lado del PC se utiliza un programa realizado en Visual Basic y que puede descargarse aquí incluyendo el código fuente. El programa es muy sencillo y lo único destacable es la utilización de un timer que incrementa una variable una vez por segundo. Entonces cada vez que se va a recibir la respuesta del robot a un comando enviado desde el PC, lo que se hace es poner la variable a cero y luego vigilar que se recibe la respuesta del robot antes de que pasen 3 segundos. Si no se recibe nada, es que el robot no ha recibido la orden, o bien si la ha recibido, pero la respuesta no llega por que esta fuera del alcance o por cualquier otro motivo.

El programa es solo un ejemplo muy sencillo de que como enviar ordenes al robot, pero puede modificarse para incluir comandos complejos y recibir datos de longitud variable. Tal y como está, funciona bien con todos los radiomodem de nuestro catalogo.

Imagen del programa utilizado para probar el radio modem

EJEMPLOS PRACTICOS DE RADIO MODEM

En esta sección se muestra de forma practica como utilizar los diferentes radio módem conectándolos a un microcontrolador BasicX24 y a un PC. Para las pruebas se emplean los dos programas descritos anteriormente.

Antes de comenzar, una aclaración importante acerca del tema de la alimentación Cuando en un circuito electrónico se habla de alimentación a 5V, esto significa que debe ser una alimentación estabilizada y filtrada y no vale utilizar pilas directamente, o alimentadores no estabilizados. La mayoría de los circuitos que funcionan a 5V, dejan de funcionar por debajo de los 4,8V y SE ESTROPEAN IRREMEDIABLEMENTE por encima de los 5,5V. De ahí la importancia de utilizar una buena fuente de alimentación Esto es importante resaltarlo pues aunque a mucha gente le parezca obvio, sigue siendo la causa de muchas averías en circuitos y sensores. En los esquemas propuestos, se ha sacado la alimentación de 5V de la propia placa del sistema de desarrollo que se ha utilizado para hacer las pruebas. Quien no disponga de este circuito y no tenga una fuente de alimentación, puede construir una fácilmente con el siguiente esquema, que resulta suficiente para las pruebas que se van a realizar.

Esquema eléctrico de fuente de alimentación de 5V

Caso 1: Radiomodem con conexión USB en el PC y conexión serie en el robot.

Caso 2: Radiomodem con conexión serie en ambos extremos a 433 Mhz.

Caso 3: Radiomodem con conexión serie en ambos extremos a 903 Mhz.

 

Transmisión de datos vía rádio para robots
Ir a la Página Principal de www.SuperRobotica.com

Camaras, cctv, televigilancia, domótica, cámaras espías, transmisores, video por ip, video remoto

Actualizada el 29/12/2023 © 2002 - 2023 INTPLUS ®. Todos los derechos reservados