martes, 25 de marzo de 2008

Mi robot de sumo "Stealthbot"

MI ROBOT DE SUMO “STEALTHBOT”

Tengo que decir, que me enteré del concurso de microbots de la Universidad de Deusto por mi profesor de informática, Iker Etxebarría. Eso fue ya hace 2 años. El año pasado acudí al concurso, pero únicamente como observador. La verdad es que es muy interesante hacer esto, ya que así tomas ideas y ves cómo funciona la dinámica del concurso.

Bueno, pues yo empecé a preparar el concurso en verano, en Agosto de 2007. Puede pareceros mucho tiempo, pero realmente lo único que hice desde entonces hasta Diciembre de ese mismo año fue idear sistemas y mecanismos, mirar componentes, sensores, motores etc. Aprendí muchísimo y posiblemente sólo por eso haya merecido la pena presentarse al concurso. En ese tiempo, hice bocetos, diseños y plasmé todas mis ideas. De todo este trabajo sólo el 10 % habrá sido de utilidad para el proyecto. Pero merece la pena. Hasta Diciembre no empecé en serio.

En Diciembre, mis compañeros y yo teníamos ya pensado todo lo que necesitábamos comprar, así que lo pedimos (de varias tiendas, una de ellas en el extranjero). Por tanto, no dispusimos de todos los materiales hasta finales de enero. Fue entonces cuando empecé el montaje. Mientras lo montaba iba probando todos los sensores.

Hasta la semana anterior al concurso no tuve todo montado. Una vez ya montado, ese fin de semana, comencé a programarlo. Pero el martes cuando lo probé, no funcionaba bien. Había hecho algo muy complejo, con 3 microcontroladores y 2 de ellos interconectados. Por tanto decidí desmontar todo. Desmonté toda la electrónica y la volví a montar, todo esto el martes y parte del miércoles. El miércoles, una vez ya montado lo programé y entonces si funcionaba. Por la tarde y hasta las tantas de la noche estuve mejorando el programa y asegurando todo. Y por fin el jueves, día del concurso. Como veis casi volví a hacer todo 2 días antes del concurso.

El día del concurso pasamos la prueba (yo y otros 3 compañeros míos del Colegio Vizcaya) de clasificación (no tuvimos que pasar una el martes, ya que éramos pocos, pero si tuvieron que pasarla los universitarios) para comprobar que todo funcionaba. Estuvimos charlando con universitarios y profesores de la uni y visitando algunos laboratorios. Si que hicimos alguna modificación, pero cosa de poco (yo por lo menos, mis compañeros alguna más).

Más información: Concurso de microbots



1. Diseño del robot:

Para diseñarlo tuve en cuenta todas las claves que menciono en el manual “Cómo construir un robot de sumo”. Tuve muy en cuenta las reglas, es más, mi robot pesaba 2 kg 850 gr. y medía 20x20 cm., justo. Tras el Brainstorm, comencé a diseñarlo. Muchos bocetos, de los cuales apenas utilicé ninguno. Pero puede que sean útiles en un futuro. Pensé en crear yo mi propia estructura, pero debido a que tenía poco tiempo empleé una comercial. Así evitas fallos de que no encajen piezas o que estén sueltas.

Algunos bocetos míos (no aplicados)

Además, puse un sistema de amplificación de superficie. Dos servos, con una placa de madera, giraban 90 grados (ya que al empezar tienen que estar replegados) y de ellos colgaba una superficie de papel, que sirve para que el contrario detecte más robot del que hay, así, quizá ataque a uno de los papeles y mi robot puede echarle fuera ya que le cogería de lado.
Todos los sensores, además, están colocados en unas cajitas, para impedir que se puedan mover. Estas cajitas se sujetan a la estructura mediante velcro, un material muy usado en este robot (es muy útil y, en mi opinión, muy recomendable).
Los bumpers tienen una prolongación hecha con piezas de mecano, cola termofusible y cinta aislante (otro material imprescindible). Los portapilas están sujetos a la estructura mediante velcro, con un sistema que permite cambiar todas las pilas sin desmontar nada.

2. Componentes:

Yo usé un Basic Stamp 2, principalmente por lo fácil que es programarlo. Aunque he de reconocer que tiene 2 pegas: es un poco caro (48 € + IVA) y que no permite usar entradas analógicas de manera sencilla. Pero para iniciados es magnífico, así como para aquellos que no quieran tener que soldar, ya que dispone de una protoboard. Se programa con el puerto serie (necesitamos un cable, pero viene acompañado con la placa al comprarla) y sería mejor si fuese USB.
Yo, para sumo, he dividido en 4 aspectos las funciones del robot: detección del contrario, situación, empuje/resistencia (para sacar tú al otro de la pista sin que te saque el a ti) y engaño (para que el otro no te detecte). Además de la lógica (Basic Stamp 2).
Para la detección del contrario usé: Un sensor de ultrasonidos SRF05 (18 €, comprado en MSE Bilbao), 2 sensores infrarrojos GP2D15 (10 € cada uno) y 4 bumpers (2.2 € cada uno, comprados en MSE Bilbao). El ultrasonido es un sensor ideal para detectar a largas distancias, pero tiene algún problema: es irregular. Sin embargo, no necesitan ninguna circuitería externa. Tienen 4 puntos, uno a +5 V (vdd) otra a GND (Vss) y 2 a unas patitas (entradas). Una controlará la emisión y otra la recepción. Hay opción de usarlos con una sola patita, pero para ello hay que seleccionar otro modo.

Sensor ultrasónico

Los sensores infrarrojos Sharp son muy interesantes. Ofrecen una gama de distancia muy interesante. Los que yo usé son digitales (0 y 1) y detectan cualquier cosa situada entre 2 y 25 cm. Pueden llegar hasta 80, pero es difícil manipularlos, ya que hay que modificar la distancia de las ópticas (soltando un tornillo). Estos necesitan una resistencia de 12 K. Una a +5 V, otra a GND y la otra a +5 v con una resistencia de 12 K y a una patita (entrada). Para estos sensores es interesante tener un conector JST, para que sea más fácil conectarlos.

Sensor infrarrojo (distancia)

Los bumpers requieren una resistencia de 10 K (cada uno). Una de las clavijas conectada con GND y la otra con una resistencia de 10 K a Vdd y a una patita (entrada).

Bumper

En el apartado de situación pensé en emplear unos cny70, sin circuitería y construirla yo mismo. Para ello compré 4 cny70 (1,10 € cada uno) y además necesitaba un inversor trigger-Schmidt 74HC14, y una resistencia de 220 y otra de 10 K (esto para cada bumper, menos el inversor). Conseguí montarlo y funcionaba, pero los resultados eran bastante peores que con el sensor MSE- S110.1 (8 € cada uno). Usé 2 prestados por mi profesor Iker.

Sensor infrarrojo (blanco/negro)

Estos no necesitan nada adicional, uno va a +5 v, otro a GND y otro a una entrada (patita).

En el apartado engaño use pintura negra para todo el robot (así si el contrario usa un sensor infrarrojo insensible al negro, no me detectará) y el sistema de amplificación de superficie del que ya he hablado, para el cual necesité 2 servos parallax de rotación continua de 15 € cada uno, que también me presto Iker, así como un Basic Stamp 1 (también prestado) para controlarlos. Estos tienen 3 cables: negro a GND, blanco a patita (salida) y rojo a +5 v. No necesitan nada adicional.

Servo

En el apartado empuje/resistencia, empleé unas ruedas de neopreno, con unos adaptadores para anclarlas al eje de los 4 motores DC (corriente continúa) que usé. Los motores es necesario controlarlos, ya que lo que hacen es girar en un sentido o en otro según se le aplique – + o viceversa. Para ello es necesario un driver de motores. Yo iba a usar el MSE A100, que sirve para controlar 2 motores (yo iba a usar 4 motores, pero como los 2 de cada lado van igual pues sólo necesitas una controladora). Pero este driver tiene como tope 1 amperio por canal de intensidad. Y mis motores consumían más. Incluso aunque usase 2 de estos drivers me pasaba, y lo más probable es que los fundiera en seguida. Cuando más consumen los motores es cuando están bloqueados (intentan girar pero no pueden), algo típico en sumo cuando ambos contrincantes se encuentran frontalmente y empujan.
Por tanto usé el driver MD22 (MSE Bilbao, 65 €). Este driver controla 2 motores (lo que yo necesito, ya que 2 se controlan igual) y permite 5 amperios por canal. Necesita +5v y Gnd, así como 2 salidas (patitas), una para controlar cada motor (se controla mediante PULSOUT), en vez de las 4 que usaba el otro. Este driver lo que hace es que cuando le mandas una orden la repite constantemente hasta que le mandes otra. En los motores, entre el polo positivo y el negativo puse un supresor de ruido que sirve para eliminar interferencias entre los motores y el driver.

Driver MSE A100

Driver MD22

Además de esto compré madera, una plancha de aluminio y pilas de tipo D y de 9 voltios (y portapilas para ambas).

Pilas tipo D con portapilas

3. Montaje:

En cuanto tuve todas las piezas, comencé a montarlas. Empecé con la estructura y los motores, después el driver, los sensores y por último el microcontrolador. He de admitir que era complicado hacerlo, ya que este se encontraba tapado y oculto. Cuando conectaba algo al Basic Stamp apuntaba la patita a la cual lo había conectado. Usé una protoboard adicional cerca de los sensores, y de allí les proporcionaba GND y +5 v (para reducir el cableado).
Antes de montar todo, fui probando cada sensor por separado, para comprobar que todos funcionaban.

Pruebas de varios sensores

4. Programación y funcionamiento:

Yo teniendo en cuenta los sensores que tenía, realicé un algoritmo. Básicamente, lo que el robot hacia era mirar continuamente los sensores. Si cualquiera de los CNY70 detectaba blanco (la línea) retrocedía y giraba algo menos de 180 grados. Si detectaban algo los bumpers delantero o trasero avanzaba o retrocedía continuamente, ya que el contario estaba delante o detrás. Si detectaba algo por un bumper lateral, avanzaba un poco y giraba (para cogerle al otro). Si detectaba algo por alguno de los dos GP2D15 giraba hacia ese, ya que significaba que le detectaba por un lado pero no por el otro. Cuando le detectaba con los 2 avanzaban. Y si no detectaba nada por ningún sensor, pues giraba mientras miraba el ultrasonido, si este detectaba algo inferior a 100 cm avanzaba. Cada vez que se movía o hacía cualquier cosa, miraba los demás sensores, para que no hubiese una confusión y se saliese del ring sin querer.

-Programa de la placa que controlaba los 2 servos:

' {$STAMP BS1}
PAUSE 5000
SYMBOL MotorIzq = 0
SYMBOL MotorDer = 2
OUTPUT MotorIzq
OUTPUT MotorDer
FOR B0 = 1 TO 12
PULSOUT MotorIzq,1
PAUSE 20
NEXT
FOR B0 = 1 TO 11
PULSOUT MotorDer , 300
PAUSE 20
NEXT
END

- Programa de la placa principal:

' {$STAMP BS2}
' {$PBASIC 2.5}
OUTPUT 0
OUTPUT 2
INPUT 15
INPUT 14
INPUT 13
INPUT 12
INPUT 5
INPUT 4
INPUT 10
INPUT 9
Trigger PIN 7
Echo PIN 8
DISTANCIA VAR Word
samples VAR Nib
pWidth VAR Word
rawDist VAR Word
infra VAR Byte
ultra VAR Byte
posicioncontrario:
IF IN12 = 1 THEN delante
IF IN13 = 1 THEN detras
IF IN14 = 1 THEN derecha
IF IN15 = 1 THEN izquierda
GOTO posicioncontrario
delante:
PAUSE 4800
GOTO deteccion
detras:
PAUSE 4800
PULSOUT 0, 500
PULSOUT 2, 500
PAUSE 2100
PULSOUT 0, 750
PULSOUT 2, 750
GOTO deteccion
derecha:
PAUSE 4800
PULSOUT 0, 500
PULSOUT 2, 500
PAUSE 1100
PULSOUT 0, 750
PULSOUT 2, 750
GOTO deteccion
izquierda:
PAUSE 4800
PULSOUT 0, 1000
PULSOUT 2, 1000
PAUSE 1100
PULSOUT 0, 750
PULSOUT 2, 750
GOTO deteccion
deteccion:
PULSOUT 0, 1000
PULSOUT 2, 500
GOTO bumperscny70infrarrojos
bumperscny70infrarrojos:
IF IN15 = 1 THEN bumperizq
IF IN14 = 1 THEN bumperder
IF IN13 = 1 THEN bumperdet
IF IN12 = 1 THEN bumperdel
IF IN4 = 0 AND IN5 = 0 THEN amboscny
IF IN4 = 0 THEN amboscny
IF IN5 = 0 THEN amboscny
IF IN10 = 1 AND IN9 = 1 THEN infraambos
IF IN10 = 1 THEN infraizq
IF IN9 = 1 THEN infrader
IF IN15 = 0 AND IN14 = 0 AND IN13 = 0 AND IN12 = 0 AND IN4 = 1 AND IN5 = 1 AND IN10 = 0 AND IN9 = 0 THEN ultrasonidos
GOTO deteccion
bumperizq:
PULSOUT 0, 1000
PULSOUT 2, 500
PAUSE 300
IF IN4 = 0 AND IN5 = 0 THEN amboscny
IF IN4 = 0 THEN amboscny
IF IN5 = 0 THEN amboscny
PULSOUT 0, 1000
PULSOUT 2, 1000
PAUSE 1100
PULSOUT 0, 1000
PULSOUT 2, 500
PAUSE 300
GOTO deteccion
bumperder:
PULSOUT 0, 1000
PULSOUT 2, 500
PAUSE 300
IF IN4 = 0 AND IN5 = 0 THEN amboscny
IF IN4 = 0 THEN amboscny
IF IN5 = 0 THEN amboscny
PULSOUT 0, 500
PULSOUT 2, 500
PAUSE 1100
PULSOUT 0, 1000
PULSOUT 2, 500
PAUSE 300
GOTO deteccion
bumperdet:
PULSOUT 0, 500
PULSOUT 2, 1000
IF IN13 = 0 THEN deteccion
GOTO bumperdet
bumperdel:
PULSOUT 0, 1000
PULSOUT 2, 500
IF IN12 = 0 THEN deteccion
GOTO bumperdel
infrader:
PULSOUT 0, 500
PULSOUT 2, 500
PAUSE 300
PULSOUT 0, 750
PULSOUT 2, 750
GOTO bumperscny70infrarrojos
infraizq:
PULSOUT 0, 1000
PULSOUT 2, 1000
PAUSE 300
PULSOUT 0, 750
PULSOUT 2, 750
GOTO bumperscny70infrarrojos
infraambos:
PULSOUT 0, 1000
PULSOUT 2, 500
PAUSE 300
PULSOUT 0, 750
PULSOUT 2, 750
GOTO bumperscny70infrarrojos
amboscny:
PULSOUT 0, 500
PULSOUT 2, 1000
PAUSE 500
PULSOUT 0, 500
PULSOUT 2, 500
PAUSE 1000
IF IN4 = 0 AND IN5 = 0 THEN amboscny
IF IN4 = 0 THEN amboscny
IF IN5 = 0 THEN amboscny
PAUSE 1000
PULSOUT 0, 750
PULSOUT 2, 750
GOTO bumperscny70infrarrojos
ultrasonidos:
PULSOUT 0, 1000
PULSOUT 2, 500
LOW Trigger
rawDist = 0
FOR samples = 1 TO 10
PULSOUT Trigger, 5 ' 10
RCTIME Echo, 1, pWidth
rawDist = rawDist + (pWidth / 10)
PAUSE 10
NEXT
DISTANCIA = rawDist / 30
IF IN15 = 1 THEN bumperizq
IF IN14 = 1 THEN bumperder
IF IN13 = 1 THEN bumperdet
IF IN12 = 1 THEN bumperdel
IF IN4 = 0 AND IN5 = 0 THEN amboscny
IF IN4 = 0 THEN amboscny
IF IN5 = 0 THEN amboscny
IF IN10 = 1 AND IN9 = 1 THEN infraambos
IF IN10 = 1 THEN infraizq
IF IN9 = 1 THEN infrader
IF DISTANCIA <= 100 THEN ultradet IF DISTANCIA >= 100 THEN girosult
GOTO ultrasonidos
ultradet:
PULSOUT 0, 1000
PULSOUT 2, 500
GOTO ultrasonidos
girosult:
PULSOUT 0, 500
PULSOUT 2, 500
PAUSE 200
IF IN4 = 0 AND IN5 = 0 THEN amboscny
IF IN4 = 0 THEN amboscny
IF IN5 = 0 THEN amboscny
PAUSE 200
IF IN4 = 0 AND IN5 = 0 THEN amboscny
IF IN4 = 0 THEN amboscny
IF IN5 = 0 THEN amboscny
PAUSE 200
GOTO ultrasonidos


Vista trasera

Vista frontal

Vista desde arriba

Vista lateral

Video del concurso: http://www.ikeretxebarria.net/Deusto_2008.html

Agradecer a Iker Etxebarría su ayuda en este proyecto, tanto en conocimientos como en materiales. A pesar de que yo hice todo el robot, el me prestó varios materiales y me resolvió varias dudas.
Aclarar que el nombre del robot “Stealthbot” (traducción en castellano “Robot invisible”) se debe a que mi idea original era la de un robot que fuese muy difícil de detectar, algo que al final rechacé, pero mantuve el nombre.
En el concurso, tuve un problema, ya que en la final, el otro robot me golpeó un bumper y este se quedo enganchado. El otro tiro de él y se desenganchó GND, por tanto el bumper leía continuamente 1 (que el otro estaba empujándole lateralmente) y por ello avanzaba y giraba todo el rato, estando en un bucle.
---------------------------------------------------------------------------------
Autor: Sergio Porres González
http://roboticamaselectronica.blogspot.com/

Este documento ha sido realizado para orientar a posibles personas interesadas en la construcción de un robot de sumo o que estén interesados en la robótica en general. Si alguien quiere publicarlo, que contacte con su autor: sergioporres@telefonica.net
---------------------------------------------------------------------------------

Manual: Cómo construir y programar un robot de sumo

CÓMO CONSTRUIR Y PROGRAMAR UN ROBOT DE SUMO PARA UN CONCURSO DE MICROBÓTICA


Si hemos decidido participar en uno de estos concursos (repartidos por toda España), tenemos que preparar bien nuestro microbot, para tratar de conseguir un rendimiento óptimo. Para ello, es bueno seguir ciertas directrices, que nos facilitarán el trabajo y probablemente nos ayuden a conseguir un mejor resultado. Yo hice esto y lo considero de gran ayuda.

1. Leer las reglas y plantear los objetivos a realizar:

Es decir, en que consiste la prueba, el objetivo de la prueba. Para ello es necesario leer las reglas ya que no se puede diseñar cualquier cosa, sino que normalmente las reglas imponen ciertas restricciones de peso, tamaño, etc. Dependiendo de la prueba que sea, habrá que lograr una u otra cosa. La normativa de sumo del concurso de microbots de la universidad de Deusto: http://www.microbots.deusto.es/normativas/NormativaSumo.pdf


Por ejemplo, aquí hay medidas límite (20 x 20, pero sin límite de altura) y peso (máximo 3 Kg.). Además no se puede dañar al robot contrario, ni usar nada arrojadizo… El ring mide 175 cm de diámetro y es negro con una línea blanca delimitando el borde (para no salirse). Además el robot debe esperar 5 segundos sin moverse antes de empezar. En sumo, el objetivo es echar del ring al contrario, antes de que el te eche a ti.

Webs de concursos:
http://www.microbots.deusto.es/
http://aess.upc.es/index.php
http://www.madridbot.org/


Pista de sumo


2. Brainstorm:

Esto es una tormenta de ideas. Hay que tener en cuenta la prueba y apuntar y anotar todas las ideas que se nos ocurran, aunque parezcan descabelladas, ya se rechazarán después. Si ya tienes cierta experiencia esto resultará más fácil, si eres inexperto, puedes preguntarle a alguien o informarte a través de Internet. Este es uno de los pasos más importantes, las ideas originales pueden ser realmente útiles. Esto dependerá obviamente de la prueba a la que haya que presentarse, por ello es muy importante conocer las reglas para poder aprovecharlas mejor, pero sin infringirlas.

3. Bocetos y diseños previos:

Una vez tengamos ya las ideas acerca de cómo va a ser el robot, hay que empezar a diseñar cada uno de los sistemas por separado, y después hacer un boceto global de todo el robot. Así observaremos mejor el resultado final, esto se puede hacer tanto en papel como en diseños en Autocad u otro programa de diseño (incluso el Paint sería útil). Tienes que decidir si vas a comprar la estructura o si la vas a construir tú mismo, en caso de que vayas a diseñar tu propia estructura, tienes que tener en cuenta todo lo que vas a usar. Tienes que tener en cuenta muchas cosas:
- La estructura: De qué material, plástico, metal, madera (cuanto más resistente mejor); con qué forma (lo más adecuado es dividirla en niveles) y que respete las medidas.
- Los motores y ruedas: según los que vayas a usar, tienes que sujetarlos bien y que acoplar las ruedas a los ejes de los motores.
- Los sensores: donde van a ir colocados, es conveniente que estén bien sujetos para que no se muevan.
- La alimentación: Pilas o baterías, donde van a ir colocadas, teniendo en cuenta el peso que añadirán.
- La electrónica: donde estará el driver para motores, el microcontrolador etc., y que todos los sensores tengan cables suficientemente largos como para llegar hasta ellos.
- El resto de sistemas mecánicos que añadas: donde irán sujetos y como funcionarán.
En caso de usar una comercial, te será más sencillo, aunque también tienes que montarla.


Boceto de mi robot


4. Características importantes para la prueba:

Dependiendo de a que prueba vayas a presentarte hay ciertas cosas muy a tener en cuenta, que da igual donde sea el concurso ya que esto se mantiene. Por ejemplo en rastreadores velocistas la velocidad de tus motores (rpm) será muy importante, así como la capacidad de reacción. En sumo en mi opinión hay varias:

- Se requiere un sistema infrarrojo para la detección de la línea que delimita el ring, el cual servirá al robot para no salirse de él y por tanto perder el combate.
- Además es necesario el uso de algún sistema para detectar al robot contrario, bien sean bumpers, ultrasonidos o infrarrojos.
- La adherencia y agarre son muy importantes y deben ser tomados muy en cuenta, así como la potencia de los motores. El objetivo es empujar al otro robot y que no te expulse a ti, por tanto gran parte de los esfuerzos deben dirigirse en mejorar ese aspecto. Para ello deberíamos usar unos motores/servos de gran Par motor y unas ruedas anchas (o de oruga) y de un material adherente (goma o neopreno). Si pudiésemos, sería recomendable emplear una reductora (para aumentar el par motor disminuyendo las rpm. Para saber más acerca de esto: http://f1adslzone.blogspot.com/2007/06/tutoriales-transmisin.html

- La rigidez estructural también debe ser considerable, manteniéndose en perfecto estado tras varios combates, sin romperse o doblarse. Para ello se pueden usar piezas de Mecano, Lego etc.
- El reparto de pesos y el centro de gravedad (lo más bajo posible) influirán en el comportamiento dinámico del robot. Por ello, el robot no debe ser muy alto, y el peso (mediante lastres) debe estar situado a ser posible abajo. Además el peso debe repartirse, no estar situado justo encima de una rueda, que soportará más peso que el resto y eso puede hacer que traccione más que las demás.
- La estabilidad también debe ser un factor a tener en cuenta, ya que sino tu robot podría llegar a volcar (no es broma, ya ha pasado). Para ello, el centro de gravedad debe ser bajo y las ruedas deben estar en los extremos, lo más separadas posibles. Es mejor que el robot esté muy cerca del suelo, apenas levantado.
- Sería interesante reducir las posibilidades de que el otro te detecte, pero esto no es tan sencillo.
- La alimentación también tiene mucha importancia, ya que los motores consumen bastante, así que es necesario un driver para motores (lo que hace es controlar los motores más fácilmente y proporcionarle más alimentación) y alimentación adicional. Cuanto mayor sea la intensidad más par motor obtendremos, mientras que un mayor voltaje proporciona más rpm. Las pilas se agotan en seguida, por tanto es mejor usar alcalinas o pilas grandes (de tipo C o D), pero no de 9 voltios, ya que tienen poca intensidad. Hay que tener en cuenta el peso de las pilas, dónde irán colocadas y que no sobrepase el límite.


Diferentes ruedas LEGO


Pilas de tipo D


5. Dividir en varios aspectos la utilidad de cada elemento hardware:

Yo, para sumo, he dividido en 4 aspectos las funciones del robot: detección del contrario (bumpers, ultrasonidos…), situación (cny70, para no salirse del ring), empuje/resistencia (motores, ruedas… para sacar tú al otro de la pista sin que te saque el a ti) y engaño (para que el otro no te detecte). Así, al comprar los materiales que necesitemos y al programar, nos resultará más sencillo saber que aspectos globales hay que mejorar y cuales son nuestros puntos fuertes, para basar en ellos nuestra programación.


Basic Stamp 2

Arduino NG

6. Hacer un presupuesto, y dependiendo de él, comprar lo mas necesario y útil:

Como probablemente vuestro presupuesto no sea ilimitado, tendréis que dejar cosas sin comprar ya que sino no os será posible pagar todo. Por tanto, es necesario hacer una selección y escoger lo más necesario. Hay que tener en cuenta que para años próximos esos materiales seguirán siendo útiles y podréis invertir más dinero para comprar las partes que no pudisteis en su momento. Habrá que decidir que microcontrolador usar: Basic Stamp, Arduino, Lego (Mindstorm, NXT) o usar algún PIC. Tienes que decidir que sensores, motores etc. comprar. Además de comprar los materiales necesarios para la estructura, en caso de que vayas a construirla tu mismo. Es decir, todo el hardware. Este proceso es complejo, y hay que tener muy claro que necesitas, aquí ya no hay vuelta atrás. Deberías mirar las hojas técnicas de cada sensor para saber sus características y cual es el que más te conviene.


Sensor Infrarrojo (distancias)


Driver para motores


7. Buscar en Internet/tiendas físicas los materiales necesarios para la construcción del robot:

Una vez que ya hayas decidido que sensores, placa etc. usar, debes buscar en Internet o en alguna tienda física para comprarlos. No hay muchas tiendas, pero es recomendable buscar para encontrar el precio más económico. Incluso mirar en el extranjero, pero esto tiene la pega de unos gastos de envío considerables y la posibilidad de aranceles en la aduana.

Tiendas:

http://www.msebilbao.com/tienda/index.php ---- productos Parallax
http://mindstorms.lego.com/ ------Lego Mindstorm
http://www.parallax.com/ -----Parallax (sensores, microcontroladores…)
http://pcb-europe.net/catalog/index.php?cPath=29 ---Arduino (Italia)
http://www.micropik.com/ ----- componentes electrónicos
http://www.eurobotcenter.com/servinicio ---productos de robótica
http://www.robot-electronics.co.uk/ ---- productos devantech (UK)
http://www.robotmarketplace.com/store.html -productos de robótica (USA)
http://www.superrobotica.com/ ---- productos de robótica

Páginas Web de interés:

http://roboticamaselectronica.blogspot.com/ ---- mi blog, con más información
http://www.ikeretxebarria.net/Home.html ---sobre robótica, Mac y Linux
http://www.todomicrostamp.com/ --- acerca de los micros Basic Stamp
http://www.arduino.cc/es/ ---- sobre Arduino, en castellano

8. Una vez recibidas las piezas, comenzar con el montaje y/o soldadura en caso de usar una PCB:

En cuanto tengamos las piezas debemos comenzar a montarlo. Tiene que ser muy seguro, es decir, que no haya cosas colgando, ni tornillos sueltos. Para los iniciados es mejor usar un microcontrolador ya montado, y para aquellos más expertos una PCB, donde suelden todos los componentes. Esto debe acabarse un mes antes como mínimo para tener suficiente tiempo para realizar el resto de tareas que quedan. Sería recomendable ir probando cada cosa mientras se monta, ya que si montamos alguna cosa mal, después tendremos que desmontar todo para buscar el fallo. Así será mucho más fácil. Para los que usen protoboard, también es necesario, ya que quizá alguna resistencia esté mal colocada y eso después puede suponer un problema.

Robot de sumo de Alex Arroyo


9. Durante el montaje, hay que realizar un esquema eléctrico, o al menos apuntar todo lo que se ha montado y dónde:

Yo no hice un esquema eléctrico, pero sí apunté todo. Depende de donde hayamos colocado cada cosa, por ejemplo un bumper. Habría que saber en que entrada lo hemos colocado para después programarlo bien. Hay muchos ejemplos de esquemas eléctricos pero, sobre todo para aquellos iniciados, será complicado. Hay que tener en cuenta que los sensores pueden necesitar algunas resistencias, por tanto es necesario mirar las características y hojas técnicas antes de montarlos.


Esquema eléctrico (no es el mío)

10. Una vez completado el montaje hay que programar:

Aquí hay varias cosas que hacer:
Primero hay que definir el algoritmo, es decir, que quieres que haga el robot. Esto dependerá de los sensores que tengas, de los motores… de toda la parte hardware. Cuantas más cosas, se podrá realizar un algoritmo más complejo. Se pueden crear algoritmos muy largos y complejos o unos mucho más sencillos.
Una vez hayamos escrito el programa (en el lenguaje que hayamos usado, bien sea C, ensamblador, PBasic…) hay que depurarlo, es decir, quitar los fallos sintácticos (palabras o instrucciones mal escritas). Hay algunos programas que lo hacen solos (por ejemplo, el editor Basic Stamp).
Por último, hay que comprobar que no haya errores semánticos, es decir, que el robot haga lo que queremos que haga, para ello, lo mejor es probarlo y así, además de corregir posibles errores, podremos mejorar nuestro algoritmo.
También recomiendo comentar el programa, así nos será más fácil detectar dónde están los fallos y será más sencillo de comprender para otras personas.


Robot de sumo de Alex


11. Una vez ya completo:

Se puede pensar en añadir alguna cosa más (si tenemos tiempo y dinero) y en probarlo para observar su rendimiento. En cualquier caso no debería modificarse nada los días anteriores al concurso a no ser que no funcione, ya que si modificamos algo y luego no funciona, no tendremos tiempo de reacción para ponerlo como estaba.

Robot de sumo de Sergio Porres


Video de un concurso: http://www.ikeretxebarria.net/Deusto_2008.html


Voy a daros algunas recomendaciones, basadas en mi experiencia en su mayoría:

-Que el puerto serie/usb de la placa sea fácilmente alcanzable, así podremos variar el programa de forma sencilla.
-Asegurar la protoboard (en caso de usarla, poner cables, que sin tener ninguna función eléctrica sirvan para que otros no se salgan), pero es mejor soldar todo (aunque tiene el inconveniente de que después hay que desoldarlo todo). En ambos casos, los cables no deben sobresalir, sino estar muy apurados.
-No cambiar nada el último día (a no ser que no funcione). En caso de equivocarnos, no tendremos tiempo de arreglarlo y si no hay tiempo para probarlo habrá que arriesgarse en el concurso para saber si funciona o no.
-Hay que apuntarse al concurso con antelación y mandar un email a los organizadores en caso de tener cualquier duda.
-Llevar pilas de sobra así como todas las herramientas que podamos necesitar para hacer algún arreglo antes de la prueba. Las pilas se agotan fácilmente, así que es conveniente llevar de repuesto, para que no disminuya el rendimiento del robot.
- Que todo el hardware este seguro y no se despegue o caiga nada, lo cual podría suponer una descalificación (nada de chapuzas).
- Buscar en Internet toda la información que podamos (así como en libros) ya que se aprende mucho y es muy enriquecedor (sobre todo para los más inexpertos).
- Leer las hojas técnicas y características de todo lo que vayamos a usar (motores, sensores, etc.) para saber exactamente cómo funcionan y qué necesitan. Así evitaremos sorpresas.

--------------------------------------------------------------------------------
Autor: Sergio Porres González
http://roboticamaselectronica.blogspot.com/

Este documento ha sido realizado para orientar a posibles personas interesadas en la construcción de un robot de sumo o que estén interesados en la robótica en general. Si alguien quiere publicarlo, que contacte con su autor: sergioporres@telefonica.net
--------------------------------------------------------------------------------

Documento relacionado: “Mi robot de sumo Stealthbot” : http://roboticamaselectronica.blogspot.com/2008/03/mi-robot-de-sumo-stealthbot.html

sábado, 15 de marzo de 2008

CONCURSO DE MICROBOTS DE LA UNIVERSIDAD DE DEUSTO 2008

Bueno, pues un año más, la universidad de Deusto, ha organizado un concurso de microbótica. El concurso tenía 4 pruebas: Sumo, minisumo, rastreadores -velocistas y relevos. Un año más y gracias a nuestro profesor de informática Iker Etxebarría (al que tengo que agradecer todo su esfuerzo y conocimientos prestados) algunos alumnos del Colegio Vizcaya hemos participado en dicho concurso.
Es posible que os parezca muy extraño que unos adolescentes de 15 años hayamos podido participar en dicho concurso, y no sois los únicos, ya que en el concurso mucho alucinaban cuando les decíamos que todavía estudiábamos en Secundaria (ESO) y ya nos interesaban estas cosas (también tenemos cosas buenas los adolescentes, no solo nos importa la juerga... jeje).
Bueno, pues decir que además de presentarnos (lo que supone un gran reto para nosotros) quedamos 2º en la categoría de sumo (mi robot "Stealthbot"), 1º en la de rastreadores (con "Smartbot"), 4º en rastreadores ("Xupibot") y 4º en minisumo ("Iñakitxu"). Además del premio al mejor robot no universitario (300 €). En total nos llevamos 700 € entre todos.
Recibieron un premio el 1º (250 €), 2º (150 €) y 3º (100 €) de cada categoría (además de una copa). Probablemente ya conocereis todas las pruebas pero por si acaso, os pongo el enlace del concurso: http://www.microbots.deusto.es/
En breves colgaré el proyecto de mi robot, así como el de algún compañero mío que también participó.
Agradecer a la universidad de Deusto la oportunidad que nos ha dado. A pesar de nuestros limitados conocimientos, hemos conseguido construir y programar robots muy interesantes, como constatan los resultados obtenidos. Todo gracias al trabajo que hemos invertido porque nos encanta.
Fue una experiencia muy interesante y recomiendo a todo el mundo a quien le guste este mundillo que se anime y participe, yo pienso hacerlo de nuevo y quizá me anime a ir a concursos de otras universidades. Y los universitarios deberían ponerse las pilas, haber si el año que viene aumenta el nivel y el espectáculo. Ya hay un video del concurso (de Iker Etxebarría):


Este video es solamente una parte, para verlo pincha aquí

La mayoría de las pruebas se caracterizaron por la falta de fiabilidad de los robots participantes. Hubo una ronda previa el martes, pero nosotros no tuvimos que acudir ya que no eramos universitarios. Aun así tuvimos que pasar una prueba para comprobar que todo funcianaba. Charlamos con universitarios y profesores, ademas de echar un vistazo a sus laboratorios. En fin, un día interesante.

FOTOS:


Prueba de relevos


Prueba de sumo


Prueba de rastreadores


Los 4 robots del Colegio Vizcaya


Los 4 robots del Colegio Vizcaya


Prueba de minisumo

CONCURSO DEL AÑO PASADO





Robot de sumo del año pasado siendo pesado

Rastreador de hace 2 años