 |
|
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.

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.

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.

FIGURA
3. Construimos
un chasis sobre el que colocar el robot y colocamos 2 ruedas
locas en la parte posterior del mismo.
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

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.

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.

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
|
 |
|
|
 |
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
|
|
|
|