PORTABOT: Un robot telecontrolado sencillo y potente
En esta página vamos a tratar de describir como crear un robot telecontrolado o teleoperado de forma sencilla. Para ello principalmente necesitaremos un ordenador portátil, conexión Wifi y un microcontrolador con motores para mover el sistema.


En la figura 1 se puede observar el resultado final del proyecto Portabot. Este sistema aprovecha la tecnología Wifi para comunicarse muy fácilmente con otros robots, con el sistema de telecontrol, etc.

Por otro lado, está dotado de una webcam para dotar de visión al robot, un sonar para dotarlo de orientación y un sensor de ultrasonidos para detectar a que distancia real están los objetos visionados por la webcam.

Aritza Etxebarria Ruiz: PORTABOT: Un robot telecontrolado sencillo y potente (Portabot, robot colaborador, wifi, telecontrol, webcam, sonar, brújula, visión, GPS, PDA, puerto serie)

FIGURA 1. Resultado final del proyecto Portabot

El robot, al estar basado en un ordenador portátil basado en la arquitectura x86, con sistemas operativos modernos, como Linux, Windows XP, etc. permite realizar todo tipo de acciones de una forma muy sencilla. Por ejemplo, podemos controlar el robot a través del acceso a escritorio remoto, conectar un GPS para calcular la posición exacta del robot o dirigirlo hacia cualquier parte del mundo, colocar una tarjeta de red GPRS para estar conectado en cualquier momento y en cualquier lugar, y accesible desde cualquier parte del mundo,

El desarrollo de todas estas potencialidades, se tratarán en próximos proyectos. Entre los siguientes proyectos a desarrollar nos encontramos con los siguientes:

Portabots colaboradores Un proyecto en el que trataremos de hacer que los portabots colaboren para realizar tareas de forma conjunta, desarrollando un protocolo de comunicación específico para los portabots.
Portabot GPS Añadir al sistema un GPS y hacer que navegue hasta unas coordenadas dadas. Además deberá evitar los obstáculos que encuentre.
Portabot GPRS Añadir al sistema una tarjeta GPRS y desarrollar un protocolo de comunicación que sea económico en la transmisión de datos. Para recibir el vídeo podría enviarse a través de un sistema tradicional con un modulador de audio/video.
PDAbot Sustituir el portátil por un PDA

Pero por ahora, vamos a empezar por la configuración básica del portabot. En la figura 2 ahora podemos observar el sistema de control básico del robot portabot.

Aritza Etxebarria Ruiz: PORTABOT: Un robot telecontrolado sencillo y potente (Portabot, robot colaborador, wifi, telecontrol, webcam, sonar, brújula, visión, GPS, PDA, puerto serie)

FIGURA 2. Sistema de control básico del robot portabot

Consiste en un programa desde el cual enviamos los comandos de avanzar, retroceder, girar izquierda y derecha para controlar el movimiento del robot. Así mismo, el robot muestra la imagen capturada por la webcam y los datos devueltos por la brújula electrónica y el sensor de distancia.

Lo primero que vamos a desarrollar, será el chasis sobre el cual montaremos el robot, este chasis está controlado por un microcontrolador de la empresa Parallax llamado Basic Stamp 2. Es el encargado de recibir las órdenes del portátil (Avanza, Izquierda, Derecha y Retrocede), ejecutarlas y enviar los datos recibidos por los sensores al portátil.

La comunicación del portátil con el Basic Stamp, se realizara mediante una conexión serie.

Si nuestro portátil no tiene conexión serie, deberemos colocar un adaptador de USB a Serie. La lista de materiales necesarios es la siguiente:

Material
Precio
Donde comprar
(no tengo comisión ;-))
Listón de madera de pino de 2 metros x 3 cm. (aprox.)
1,50 €
Tiendas de bricolaje
Tarjeta de control Home Work (incluye BS2, protoboard, conector serie...)
48,00 €
www.microcontroladores.com
Driver para motores basado en el controlador L293B *
16,00 €
www.microcontroladores.com
2 Servomotores de rotación continua
2 x 15,00 €
www.microcontroladores.com
2 ruedas de parallax
2 x 3,00 €
www.microcontroladores.com
1 medidor ultrasónico SRF04 **
29,00 €
www.microcontroladores.com
1 Compás electrónico **
40,00 €
www.microcontroladores.com
Material diverso (cola blanca, cable rígido de colores, 1 portapilas, 2 ruedas locas, tornillería diversa, una pila de 9v y 4 de 1,5v (mejor recargables))
9,50 €
Tiendas de electrónica y bricolaje.
TOTAL
180,00 €
Vaya tela.

* El driver para motores es fácilmente desarrollable. Si no tienes experiencia, tiempo o ganas, cómprate el módulo, en caso contrario, ahorrarás unos 12,00 € haciéndolo por tu cuenta.

** Estos módulos son opcionales. Si no los incluimos no tendremos medida de la orientación ni la distancia al objeto más cercano pero nos ahorraremos 69€.

Total ahorro opcional: 81 €. Precio mínimo del proyecto: 99€.

Como la conexión entre distintos robots, se va a realizar desde el portátil, el subsistema del chasis se puede implementar como se quiera. Con otro microcontrolador, sin microcontrolador controlándolo por el puerto paralelo, ... que podrían abaratar el coste del proyecto, pero que sin duda alguna, lo complicarían bastante más. El objetivo de este proyecto es que sea lo más fácil posible para poder introducir en el mundo de la robótica al mayor número de personas posible.

Primer paso: El chasis.

Para soportar el ordenador, construiremos un chasis de madera como el de la fotografía. Sobre dicho chasis colocaremos los motores y las ruedas locas en las esquinas opuestas a estos.

Aritza Etxebarria Ruiz: PORTABOT: Un robot telecontrolado sencillo y potente (Portabot, robot colaborador, wifi, telecontrol, webcam, sonar, brújula, visión, GPS, PDA, puerto serie)
FIGURA 3. Construimos un chasis sobre el que colocar el robot y colocamos 2 ruedas locas en la parte posterior del mismo.

Aritza Etxebarria Ruiz: PORTABOT: Un robot telecontrolado sencillo y potente (Portabot, robot colaborador, wifi, telecontrol, webcam, sonar, brújula, visión, GPS, PDA, puerto serie)
FIGURA 4. En la parte delantera colocamos 2 servomotores trucados con 2 ruedas de Parallax que tienen la altura perfecta para estabilizar el chasis.

El material utilizado en este paso han sido listones de madera de pino de 3cm. de ancho que hemos cortado a la medida del ancho y largo del portátil. Además hemos colocado las 2 ruedas locas y hemos colocado con el mismo listón de madera, una sujeción para los servomotores. Todas las piezas de madera las hemos unido con cola blanca y la sujeción de los motores a la madera mediante pequeños tornillos con sus tuercas correspondientes.

Segundo paso: Colocando el Basic Stamp, las pilas y los sensores

Aritza Etxebarria Ruiz: PORTABOT: Un robot telecontrolado sencillo y potente (Portabot, robot colaborador, wifi, telecontrol, webcam, sonar, brújula, visión, GPS, PDA, puerto serie)

A continuación colocamos tantos listones transversales como sean necesarios para colocar los elementos que necesitemos. En nuestro caso hemos colocado 2 para colocar la placa del Basic Stamp. Así mismo hemos colocado un portapilas para la alimentación de la placa del basic stamp y otro para la alimentación de los motores. Así mismo, hemos colocado un compás en la placa del Basic Stamp, un driver para los servomotores trucados, un SRF04 en la parte frontal y un interruptor para la alimentación de la placa.

Aritza Etxebarria Ruiz: PORTABOT: Un robot telecontrolado sencillo y potente (Portabot, robot colaborador, wifi, telecontrol, webcam, sonar, brújula, visión, GPS, PDA, puerto serie)
FIGURA 4. El chasis del robot con el Basic Stamp 2, sensores y actuadores. Falta unirlo al portátil por el puerto serie.

Tercer paso: Programando el Basic Stamp 2

El basic stamp 2 tiene la misión de obedecer las órdenes del portátil que llevará encima de él. Para ello, principalmente, lo que hará será escuchar las órdenes recibidas por el puerto serie y ejecutar las acciones correspondientes. Dichas órdenes se resumen en la siguiente tabla:

ORDEN DEL PC ACCIÓN DEL BASIC STAMP
L El basic stamp 2 lee el valor de sus sensores (SRF04 y compás) y devuelve su valor.
A El robot avanza
R El robot retrocede
D El robot gira a derecha
I El robot gira a izquierda
P El robot para
F Finaliza el programa
S El Basic Stamp, espera hasta recibir este comando, y en cuanto lo recibe empieza a procesar el resto de comandos.

He aquí el programa fuente:

'{$STAMP BS2}
'{$PBASIC 2.5}
' PORTABOT 0.1 Abril de 2005
'===============================
' Autor: Aritza Etxebarria Ruiz
' ikercv@yahoo.es
'===============================
' CONSTANTES
'===============================


'===============================
' INICIALIZACIÓN LÍNEAS E/S
'===============================
'MOTORES
OUTPUT 0
OUTPUT 1
OUTPUT 2
OUTPUT 3
'LED DE COMUNICACIÓN
OUTPUT 4
'ENTRADA DEL COMPASS
INPUT 5
'SEÑALES DEL SRF04
Trigger PIN 10
Echo PIN 11

'===============================
' VARIABLES
'===============================
'DATO RECIBIDO POR EL PUERTO SERIE
DATO VAR Byte
'RECIBE EL DATO DEL COMPASS
bearing VAR Word
'DATO RECIBIDO DEL SRF04
DISTANCIA VAR Word
'NUMERO DE MUESTREOS DEL SRF04
samples VAR Nib
'ANCHO DEL PULSO RECOGIDO DEL SRF04
pWidth VAR Word
'DISTANCIA MEDIDA POR EL SRF04
rawDist VAR Word

'===============================
' PROGRAMA PRINCIPAL
'===============================
'EL ROBOT ESPERA LA INICIALIZACIÓN DEL PC
'CUANDO RECIBE LA I, ENCIENDE EL LED DE CONEXIÓN OK
'Y COMIENZA EL BUCLE PRINCIPAL
DISTANCIA = 0
START:
DEBUGIN DATO
IF DATO = "S" THEN
GOSUB CONECTADO
ELSE
DEBUG "ERROR",CR
GOTO START
ENDIF

'===============================
' BUCLE PRINCIPAL
'===============================

INICIO:
'LEEMOS UN DATO POR EL PUERTO SERIE
'Y EJECUTAMOS LA RUTINA CORRESPONDIENTE
DEBUGIN DATO
IF DATO = "L" THEN
GOSUB LEE
ENDIF
IF DATO = "A" THEN
GOSUB AVANZA
ENDIF
IF DATO = "P" THEN
GOSUB PARA
ENDIF
IF DATO = "I" THEN
GOSUB IZQUIERDA
ENDIF
IF DATO = "D" THEN
GOSUB DERECHA
ENDIF
IF DATO = "R" THEN
GOSUB RETROCEDE
ENDIF
IF DATO ="F" THEN
GOTO FINALIZAR
ENDIF



GOTO INICIO

'===============================
' SUBRUTINAS
'===============================
CONECTADO:
'ENCENDEMOS UN LED DURANTE MEDIO SEGUNDO
'PARA SABER QUE SE HA CONECTADO EL PC CON EL BS2
OUT4 = 1
PAUSE 500
OUT4 = 0
RETURN

AVANZA:
OUT0 = 0
OUT1 = 1
OUT2 = 1
OUT3 = 0
RETURN

RETROCEDE:
OUT0 = 1
OUT1 = 0
OUT2 = 0
OUT3 = 1
RETURN

PARA:
OUT1 = 0
OUT2 = 0
OUT0 = 0
OUT3 = 0
RETURN

DERECHA:
OUT0 = 1
OUT1 = 0
OUT2 = 1
OUT3 = 0
RETURN

IZQUIERDA:
OUT0 = 0
OUT1 = 1
OUT2 = 0
OUT3 = 1
RETURN

LEE:
'LECTURA DEL COMPASS
PULSIN 5, 1, bearing
bearing = (bearing-500)/50
DEBUG "COMPAS-", DEC3 bearing ,CR
'LECTURA DEL SRF04
LOW Trigger
rawDist = 0 ' clear measurement
FOR samples = 1 TO 5 ' take five samples
PULSOUT Trigger, 5 ' 10 uS trigger pulse
RCTIME Echo, 1, pWidth ' measure pulse
rawDist = rawDist + (pWidth / 5) ' simple digital filter
PAUSE 10 ' minimum period between
NEXT ' take sonar reading
DISTANCIA = rawDist / 30 ' convert to centimeters
DEBUG "DISTAN-", DEC3 DISTANCIA ,CR
RETURN

FINALIZAR: 'PARAMOS MOTORES Y PERIFÉRICOS
GOSUB PARA
OUT5 = 0
END 'FIN DEL PROGRAMA.

Cuarto paso: Programando el PC

Una vez programado el Basic Stamp 2. Pasamos a programar el PC. Lo haremos en Visual Basic 6. Principalmente el programa enviará distintos comandos de movimiento en función del botón pulsado por el usuario y periódicamente enviará de forma automática un comando L para que el Basic Stamp le envíe los datos recogidos por los sensores.

Puede descargar el programa fuente desde aquí (25 Kb. incluye también el programa del Basic Stamp).

Quinto paso: Controlando remotamente el sistema.

Una vez programado el PC, conectaremos robot y portátil a través del puerto serie. Cambiaremos la configuración del portátil para que al cerrar la tapa del mismo, no hiberne. Y además conectaremos la cámara web. Una vez arrancados ambos sistemas procederemos a conectarnos remotamente a través del escritorio remoto de windows a nuestro portátil y así poder controlar el robot.

Aritza Etxebarria Ruiz: PORTABOT: Un robot telecontrolado sencillo y potente (Portabot, robot colaborador, wifi, telecontrol, webcam, sonar, brújula, visión, GPS, PDA, puerto serie)

Futuros trabajos

Esta plataforma, puede ser muy interesante para adentrarse en el mundo de la robótica. Podremos trabajar muchos aspectos como el de la visión artificial, la navegación guiada, navegación autónoma, reconocimiento de patrones, lugares,... Animamos a todos aquellos que realicen proyectos de este estilo a que se pongan en contacto con el autor para compartir dichas experiencias.

Bibliografía

Página personal del autor: www.ikeretxebarria.net


Palabras claves: Portabot, robot colaborador, wifi, telecontrol, webcam, sonar, brújula, visión, GPS, PDA, puerto serie

Comentarios de los lectores a este proyecto:

21/06/2005 - Alex Diaz
Ole... Ole... Ole... No mas palabras... Un trabajo muy elaborado y creativo... Estoy pensando en comprar 4 listones :) Muy bueno, Un saludo

26/06/2005 - anonim
hola, podrian hacer lo mismo para un planeador radi ocontrol de aeromodelismo, con gps para programar una ruta, acer fotos en x,y posiciones y volver al radio de control, para cualkier duda un mail :P

27/06/2005 - Aritza Etxebarria
Pues por poder hacer supongo que sí. De hecho, en la web de Parallax tienen algún ejemplo en el que a un avión de radiocontrol le han colocado un GPS. Allí tendrás más información al respecto. www.parallax.com Saludos

28/12/2005 - ruben
Estupendo por el proyecto. mil felicitaciones la pregunta seria si se podria aplicar sensor de humedad, y altitud ya que el proy. se utilizaria en el recorrido de una linea transportadora de petroleo, saludos.

28/12/2005 - Iker Etxebarria
No conozco sensores de altitud, pero se le podría colocar muy fácilmente un GPS. Por otro lado, un sensor de humedad también sería sencillo de implementar.

18/02/2006 - Siraf
Hola: Yo soy un aficionado que estoy embarcado en un proyecto de este estilo desde hace bastante tiempo, y ya me encuentro en la recta final. He dedicado más dinero que tiempo por mi ignorancia sobre el tema, pero espero que pronto vea la luz mi "niño". En unos días espero poder colgar algunas fotos y recibir consejos de los que realmente sabeis del tema. Un saludo.

18/02/2006 - Iker Etxebarria
Hola Siraf, espero que te animes pronto y seguro que puedes contar con Lorenzo (el webmaster de todomicrostamp) que te prepara una página web con la información de tu proyecto y te la publica por aquí como hizo con este proyecto mío.

18/02/2006 - Lorenzo M. Oliver
Bienvenido, Siraf. Desde luego que puedes contar desde ya con una página exclusiva para tu proyecto; y si quieres, mientras terminas con tu "criatura", puedes ir contándonos desde un blog todas tus experiencias. Tan sólo tienes que inventarte un título para tu blog y solicitarlo aquí. Tanto para tu proyecto como para lo que nos vayas comentando en tu blog te garantizo la máxima difusión, que para esto están los webmasters ;-)

22/02/2006 - Luis - Siraf
Gracias por la bienvenida, he rellenado la solicitud de blog, y he empezado a "semidesmontar" mi proyecto, para poder realizar las fotos más o menos en un orden de fabricación, para poder esplicar paso a paso mis chapuzas.

02/05/2006 - kristian
all designs todos los disenos de robots con camara de internet

02/06/2006 - xocoyotzin bautista
en un buen trabajo

22/11/2006 - Rodrigo Najarro
hey quisiera molestarte me parece interesante tu proyecto, yo pensaba hacer algo igual, pero quisiera saber debido a tu amplio conocimiento en este tema, si se puede controlar un pic por wifi sin la laptop q tu usaste, si existe otro metodo me puedes explicar te lo agradecere. yo quiero manejar un carrito por una palm y colocarle un pic al carrito pero quiero enviarle instrucciones por medio de wifi, entonces por eso quiero controlar el pic por wifi, gracias

22/11/2006 - Iker Etxebarria
Para controlarlo por Wifi, yo te recomendaría un sistema embebido y no un PIC. Aunque creo que hay modelos de PIC que disponen de pila TCP/IP, me parece que se conectan por cable y no por wifi. Si quieres WIFI, usa un sistema embebido con Linux, etc. En google tienes mucha información. Yo no he trabajado nunca con ellos, pero en teoría me parece la mejor solución para tu proyecto. Otra alternativa es trabajar con radiofrecuencia, no es igual, pero podrías hacer un módulo emisor conectado al PDA y otro receptor conectado al carrito. Tienes en www.parallax.com módulos de radiofrecuencia muy fáciles de usar y conectar.

18/01/2007 - lorenzo
MUY BUEN TRABAJO LOS FELICITO ME GUSTARIA QUE ME SIGUIERAN MANDANDO

20/01/2007 - nelson
exelente..... trabajo

31/03/2007 - nelson
hola amigo es un buen trabajo el tuyo ya lo probe y me funciona claro con siertas modificaciones mi gran preocupacion es la siguiente si me puedes responder estoy realizando una interfas desde visual basic pero nose como hacer para enviar desde el mismo los datos para un servo especifico ya que cuento con varios algo asi... "servo, angulo" desde ya te agradesco...

01/04/2007 - Iker Etxebarria
El programa ahora trabaja con 7 instrucciones A - Avanza I - Izquierda D - Derecha R - Retrocede S-Para y F - Finaliza. Tendrías que añadir otra por ejemplo L para que después si recibe L vuelva a leer 3 números donde tu pasarías el ángulo para un servomotor, K000 para otro servo y así indefinidamente.

09/04/2007 - CARLOS
Este proyecto me parece muy interesante y muy prometedor para el futuro, exitos.

27/04/2007 - Fernorte
Hola Iker, Me gusta mucho este proyecto , ¿podrías explicar las conexiones con la placa driver de los motores? Gracias

27/04/2007 - Iker Etxebarria
Gracias Fernorte. La conexión es sencilla. Con 4 líneas controlamos 2 motores. La placa necesita alimentación normal (+5v y Tierra) y la alimentación proveniente de una fuente que alimente los motores. De esa fuente externa (otra pila, u otras cuatro pilas como en mi caso) se une la tierra con la tierra anterior y el polo + se conecta en una entrada de la placa llamada Vin. Luego los 4 pines de la placa Basic Stamp P0,P1,P2 y P3 se conectan en las entradas de la placa E1,E2,E3 y E3. Y los motores se conectan a las salidas S1,S2,S3 y S4. Eso es todo. Aquí hay un documento que lo explica: http://www.msebilbao.com/tienda/product_info.php?cPath=27_99&products_id=58

27/04/2007 - fernorte
Gracias por tu respuesta. Aún lo estoy estrenando, intento hacer pruebas con la homework y el software pero tengo ligeras dudas. Que versión de software usas , que pbasic usas (version 2.5) , que chip es (supongo que bs2).He intentado titilar un led y me surge un problema al compilar.El portatil es viejo toshiba que lleva el puerto serie y paralelo fuera conectado al pc por tarjeta aunque no he tenido problemas anteriormente con el puerto com1. Tengo ganas de que se muevan los servos...y despues iré a que se muevan unos viejos motores de impresora de paso a paso...

27/04/2007 - Lorenzo M. Oliver
Fernorte, si sigues teniendo problemas al compilar, concrétanos el tipo de problema y a lo mejor te podemos ayudar.

02/05/2007 - fernorte
Hola a todos, ya he conseguido conectar la homework con el pc, mi portatil que es muy antiguo, no conectaba bien, he cambiado de equipo y ahora se comunica bien...aún estoy con titilar un led...gracias a todos

18/07/2007 - Moinabar
Hola Iker, muy buen proyecto, mi pregunta es... parta conectar los servos a las salidas del driver s1,s2,s3,s4, conectas el cable rojo y el negro?, o sea alimentacion y gnd y dejas sin conectar el cable de contrrol del servo?

18/07/2007 - Iker Etxebarria
Hola Monaibar, esos servos están trucados, es decir, les he quitado toda la electrónica para que se comporten como simples motores de contínua y sólo utilizan 2 cables.

08/09/2007 - Angel
Hola Iker, buen proyecto yo estoy enfrascado en uno bastante diferente pero me gustaria ver el codigo fuente de Visual basic ya que me ayudaria mucho, el problema es que tu pagina actualente esta inoperativa. Si lees esto me encantaria que me pasases el codigo para hecharle un vistazo gracias de todas formas y un saludo

08/09/2007 - Iker Etxebarria
Puedes encontrar el software en esta web en el apartado de descargas

16/09/2007 - Victor
Hola Iker, muy buena tu pagina, sabes soy nuevo en esto y estoy terminando mi carrera en automatizacion, me gustaria realizar este trabajo, pero me falta mas informacion. me ayudas.vale.

20/09/2007 - Omar
Hola Iker, soy de Argentina y nuevo en el mundo de la robotica, me gusto este proyecto, pero no encuentro el programa en VB, y tu página no esta en funcionamiento, me podrías explicar como descargarlo por favor, muchas gracias y saludos...

20/09/2007 - ruben
Hola iker soy docente de un coleg. en la parte oriental del departamento de San Martin Peru. quiero aplicarlo este proyecto con mis alumnos de 12 a 16 años pero su condicion economica no lo permite podria reciclar algunos componentes para poder enseñar y en q artefactos o equipos electronicos lo encontraria gracias.

23/11/2007 - devo
ola..me llamo devo y soy alumna de 4 de eso..el profesor de tecnologia nos mando hacer un trabajo y hemos elegido este...solo queria hacer unas preguntas...que medidas llevan los listones¿?¿?y si eso ....si puedes comentarnos por encima como hacerlo mejor.porfavor contexte

23/11/2007 - devo
ah!!!!y somos de españa,asturias aunk soy gallega..bsss

23/11/2007 - Iker Etxebarria
Encantado. Yo también soy profe de tecnología en 4º de ESO. Si quereis mas info podéis escribirme a ikercv2001@yahoo.es En cuanto a la medida de los listones depende de la medida del portátil que vayais a utilizar.

04/12/2007 - devo
ya he hemos empezado el trabao y no parece tan dificil.... gracias por contextar en el anterior mensae mandado

Nombre
   Email
Comentario
(máx. 200 caráct.)  
--> Introduce este número en la siguiente casilla   
Robótica con microcontroladores BASIC Stamp de Parallax. Cualquier nombre de productos o marcas registradas que puedan aparecer en este sitio web, aparecen con fines de identificación y están registradas por sus respectivas compañías. 'BASIC Stamp' es una marca registrada de Parallax, Inc. Aviso legal
Descarga en
PDF (650KB)
Autor/es:
Aritza Etxebarria Ruiz
Datos contacto:
Más trabajos del autor/es: