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
Control de Robot desde PC.

Programa en Visual Basic para controlar 8 reles por USB. Clic para ampliar

Control de los circuitos de un robot desde Visual Basic.

Por Pablo Pompa

Hoy en día es posible controlar todos los componentes de un robot desde nuestro PC de forma que el robot incluya los sensores, los controladores y los motores, y el PC pone la "inteligencia" que controla todo el robot y lo mejor de todo es que podemos hacerlo incluso sin cables, vía radio y con tan solo una conexion USB.

Lo primero que hay que tener claro es que lo que tratamos de hacer es un ejemplo de como controlar diferentes circuitos y sensores desde nuestro PC, para ello hemos seleccionado algunos de los componentes mas populares en los robots y hemos realizado un programa modular en que se muestra como se controla todo. Los circuitos que incluye el robot son:

MD23 Controlador de motores doble de 3 +3 amperios.

SRF02 Sensor de ultrasonidos simple (compatible con el SRF08 y el SRF10)

CMPS03 Sensor brújula digital.

TPA81 Sensor térmico de 8 pixeles.

RLY08 Circuito de control de 8 reles.

LCD03 Display LCD de 4 líneas de 20 caracteres con teclado.

SD21 Circuito de control para 21 servos

La forma y cantidad de circuitos empleados en cada robot depende de cada uno y de sus necesidades, lo que significa que los elementos son opcionales y solo se incluyen a modo de ejemplo. Por ejemplo es posible hacer un robot que solo tenga un controlador de motores MD23 y un sensor de ultrasonidos, o bien que tenga 8 sensores de ultrasonidos y 2 sensores térmicos y nada mas, etc. En nuestro caso hemos puesto los necesario para que nuestro prototipo esté lo mas completo posible.

Algunos de los circuitos con bus I2C que se pueden controlar con el programa propuesto. Clic para ampliar.

Una particularidad de todos los circuitos anteriores es que todos tienen conexión I2C que es una conexion tipo bus que solo necesita 2 hilos para interconectar todos los circuitos entre si. Todos los circuitos actúan como esclavos de un circuito principal llamado Master que es el que controlamos desde el PC y que en este caso se trata del circuito USBI2C. El master es el circuito que siempre inicia la conversación con el resto de los módulos, los esclavos, que lo que hacen es obedecer y contestar a las peticiones que hace el modulo master o principal.

De igual forma si lo que queremos es utilizar un solo componente y conectarlo al PC, necesitaremos utilizar el componente elejido junto con el circuito USBI2C. Por ejemplo si queremos conectar un display LCD03 al pc por USB, lo que hacemos es conectar el display al circuito USBI2C y luego este al PC mediante un cable USB. Para controlarlo utilizaremos el programa proporcionado en este ejemplo o directamente extraemos la parte que nos interesa y hacemos nuestro propio programa según nuestras necesidades ya que se incluye el programa fuente del mismo.

Aspecto del prototipo de robot controlado vía radio  desde el PC. Clic para amplair.

Cableada o Vía Radio

Una posibilidad adicional es que la comunicación se realice vía radio, en este caso lo único que tenemos que sustituir es el modulo USBI2C por un RF4 transceptor de datos USB en el lado del PC y un CM02 transceptor de datos I2C en el lado del robot. EL resto de los componentes así como el programa de control siguen siendo el mismo por lo que pasar de una versión a la otra es una operación muy sencilla.

Lo único que hay que tener en cuenta entre ambos modos de funcionamiento es que en el caso del modulo USBI2C este ya incluye las dos resistencias de polarización del bus I2C, mientras que en el caso del transceptor de datos USB CM02, no las incluye por lo que seria necesario incluir las dos resistencias de 1K8 ohmios entre los pines SDA y +5V y SCL y +5 v.

El CM02 es un transceptor de datos que ademas cuenta con su propio regulador de tension lo que nos permite alimentar varios circuitos desde el mismo. Clic para ampliar.

Una ventaja adicional del modulo CM02 es que tiene un interruptor de encendido y cuenta con su propio regulador de 5 Voltios, lo nos permite alimentar el modulo con tensiones entre 6 y 12 voltios y además disponer de 5 voltios y 200 mA para alimentar los otros circuitos del robot conectados al bus I2C. Este circuito también cuenta con un registro para medir la tensión de la batería, por lo que es posible saber el estado de la misma remotamente para un mayor control del robot.

Otro detalle que hay que tener en cuenta es que las conexiones del CM02 son de 4 pines y las del USBI2C son 5 pines por lo que hay que prestar atención a la hora de hacer las conexiones con los diferentes circuitos. Lo mismo pasa con el circuito de control de motores MD23 que incluye su propia alimentación desde la batería por lo que solo será necesario conectar los dos hilos del bus I2C SDA y SCL y la tierra común para todos los circuitos.

Al igual que pasa con el modulo CM02, el MD23 incluye su propio regulador de tensión y también proporciona 300 mA adicionales para alimentar circuitos externo. Esto quiere decir que en la practica y con solo una batería de 12 V tenemos la alimentación necesaria para los motores y para el resto de los circuitos, sin necesidad de mas reguladores ni fuentes de alimentación

Es muy importante consultar las paginas de mas información de cada uno de los circuitos para ver las conexiones de cada modulo. De igual forma es recomendable conectar un modulo de cada vez y probar con el programa que todo funciona perfectamente antes de añadir otro elemento, con lo que conseguiremos minimizar los riesgos y facilitaremos mucho la tarea de descubrir fallos y errores.

En el caso de que utilicemos mas de un circuito del mismo tipo en el montaje, es necesario asignar a cada uno de ellos una dirección diferente dentro del bus I2C. Por ejemplo en nuestro prototipo hemos empleado 5 sensores de ultrasonidos SRF02 por lo que lo primero que hemos hecho es asignar a cada uno una nueva dirección con la ayuda del programa. Lo único que hay que tener encuenta es que a la hora de hacer un cambio de dirección SOLO PUEDE HABER UN SOLO CIRCUITO CONECTADO al bus I2C, ya que de lo contrario se pueden producir resultados inesperados.

El programa

El programa de control esta escrito utilizando Visual Basic 6, que es uno de los lenguajes mas conocidos y populares entre los aficionados a la robótica por su facilidad de uso y sencillez de aprendizaje. Se incluye el proyecto completo tanto en versión compilada y lista para instalar en cualquier ordenador con Windows, como el código fuente comentado para facilitar su comprensión y entendimiento.

Aspecto del programa de control. Clic para ampliar

El programa está dividido en módulos por lo que es fácilmente adaptable a otras necesidades, además el código fuente esta comentado para ayudar a entender cada una de sus partes. Quitando unas cuantas rutina comunes que son basicamente las que inician el puerto serie y las que mandan y reciben los datos desde el mismo, todas las demas son independientes para cada uno de los diferentes circuitos. Veamos algunos comentarios.

MD23

El controlador de motores tiene varios modos de funcionamiento, incluyendo la posibilidad de controlar los dos motores de forma simultanea y que sea el controlador el que se encargue de hacer los giros de forma automática. También cuenta con varios registros especiales para cambiar la velocidad de aceleración, quitar la auto velocidad, es decir que aumente o disminuya la potencia del motor hasta que este consiga la velocidad programada, o activar el seguro de auto stop por poner solo algunos ejemplos. Lo mejor es leer la documentación del producto para ver todos los registros disponible. Además de las ordenes de control directo, también se ha añadido la posibilidad de leer los contadores de los encoder de los motores, el consumo eléctrico de los mismos y la tensión de la batería Para controlar el movimiento del robot se pueden emplear los botones de acceso directo adelante o atrás y los de giro hacia los lados, o directamente pulsado con el raton sobre el cuadro superior. Cuanto mas lejos esté del eje central mas rápido irán los motores.

Si se conecta un circuito MD23 con sus correspondientes motores podemos ver fácilmente como afecta cada una de las opciones seleccionadas y como sacarle el mayor partido a este interesante sistema de tracción para robot.

SRF02

Este es sin duda uno de los sensores de distancia mas populares no solo por sus características eléctricas y su capacidad de medición, si no por el hecho de utilizar un solo elemento transductor de ultrasonido para hacer la medición que ahorra espacio y simplifica el montaje. En nuestro prototipo se han empleado 5 de estos sensores con el fin de tomar controlar tanto el frontal como los dos laterales del robot. Para ello lo primero ha sido cambiar la dirección a 4 de los 5 sensores, para que fueran diferentes dentro del bus. Esto se ha conseguido conectando un solo circuito cada vez en el bus I2C y luego empleando el botón de cambiar dirección que aparece en el modulo General. Una vez que se tienen todos los sensores con su correspondientes direcciones, se realiza la medida simultanea de los 5 desde el botón "Medir Distancias", mostrandose el resultado en centímetros junto a la representación gráfica de cada sensor.

CMPS03

La brújula digital es un circuito muy practico y fácil de utilizar que nos devuelve el valor en grados en que se encuentra el robot con respecto al Norte Magnético. La brújula puede ser una ayuda muy importante cuando se trata de hacer navegación en interiores ya que permite saber en todo momento hacia donde dirigirse tras salvar los obstáculos correspondientes.

TPA81

Este sensor de temperatura de 8 pixeles es capaz de medir la distancia de un objeto a distancia lo que resulta muy útil para un robot pues permite detectar puntos calientes sin necesidad de hacer contacto, además el sensor tiene 8 pixeles alineados verticamente que le posibilitan una mayor capacidad de discriminación de las diferentes fuentes de calor.

RLY08

Este circuito incluye 8 reles que se pueden conectar y desconectar a voluntad, por lo que resulta muy útil para manejar toda clase de aparatos y dispositivos con interfaces mediante contactos. Los reles son de pequeña potencia, pero suficiente para la mayoría de las aplicaciones. Si es necesaria una mayor capacidad de maniobra, lo mejor es emplear relés de mayor tamaño cuya bobina sea comandada por los reles del circuito RLY08.

LCD03

Este display lcd tiene doble interfaces serie y I2C, en el caso que nos ocupa, estaremos utilizando este ultimo protocolo, por lo que se debe prestar atención a la configuración del puente de modo que se encuentra en la parte trasera y que permite seleccionar un interfaz u otro. Además de poder mandar cualquier texto al display, también se han implementado botones para limpiar la pantalla, encender y apagar la iluminación de fondo y botón denominado teclado, que al pulsarlo espera a que se pulse un código de 4 cifras en el teclado del display y despues lo muestra en la pantalla. Esta ultima opción es solo un ejemplo de como utilizar el teclado opcional que se puede conectar en el display.

SD21

El circuito controlador de servos SD21 es capaz de controlar hasta un máximo de 21 servos de una forma muy sencilla. En este caso se han incluido un control deslizante por cada uno de los canales de forma que podemos controlar la posición de cada uno de los 21 canales. Hay un también un control deslizante común que controla la velocidad de todos los canales, con lo que se pueden conseguir movimientos mas suaves.

Vista del interior del robot en el que se puede ver la bateria de plomo y algunos de los circuitos. Clic para ampliar.

Por ultimo recordar que el proposito del programa es servir de ejemplo y punto de partida para que cada uno pueda hacer su propio programa especifico para cada robot o aplicación.

Puede descargar el programa RobotI2C completo incluyendo el código fuente aquí.

 

Control de Robot desde PC.
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 31/10/2014 © 2002 - 2014 INTPLUS ®. Todos los derechos reservados