Está en la página 1de 8

Tengo que decir, que me enter del concurso de microbots de laUniversidad de Deusto por mi profesor de informtica, Iker Etxebarra.

Eso fue ya hace 2 aos. El ao pasado acud al concurso, pero nicamente como observador. La verdad es que es muy interesante hacer esto, ya que as tomas ideas y ves cmo funciona la dinmica 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 ao fue idear sistemas y mecanismos, mirar componentes, sensores, motores etc. Aprend muchsimo y posiblemente slo por eso haya merecido la pena presentarse al concurso. En ese tiempo, hice bocetos, diseos y plasm todas mis ideas. De todo este trabajo slo el 10 % habr sido de utilidad para el proyecto. Pero merece la pena. Hasta Diciembre no empec en serio. En Diciembre, mis compaeros y yo tenamos ya pensado todo lo que necesitbamos 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. Haba hecho algo muy complejo, con 3 microcontroladores y 2 de ellos interconectados. Por tanto decid desmontar todo. Desmont toda la electrnica y la volv a montar, todo esto el martes y parte del mircoles. El mircoles, 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, da del concurso. Como veis casi volv a hacer todo 2 das antes del concurso. El da del concurso pasamos la prueba (yo y otros 3 compaeros mos del Colegio Vizcaya) de clasificacin (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 modificacin, pero cosa de poco (yo por lo menos, mis compaeros alguna ms).

DISEO DEL ROBOT Para disearlo tuve en cuenta todas las claves que menciono en el manual Cmo construir un robot de sumo. Tuve muy en cuenta las reglas, es ms, mi robot pesaba 2 kg 850 gr. y meda 20x20 cm., justo. Tras el Brainstorm, comenc a disearlo. 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 tena poco tiempo emple una comercial. As evitas fallos de que no encajen piezas o que estn sueltas. Adems, puse un sistema de amplificacin 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 ms robot del que hay, as, quiz ataque a uno de los papeles y mi robot puede echarle fuera ya que le cogera de lado. Todos los sensores, adems, estn 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 opinin, muy recomendable). Los bumpers tienen una prolongacin hecha con piezas de mecano, cola Algunos bocetos mos (no aplicados)

termofusible y cinta aislante (otro material imprescindible). Los portapilas estn sujetos a la estructura mediante velcro, con un sistema que permite cambiar todas las pilas sin desmontar nada.

COMPONENTES Yo us un Basic Stamp 2, principalmente por lo fcil que es programarlo. Aunque he de reconocer que tiene 2 pegas: es un poco caro (48 + IVA) y que no permite usar entradas analgicas de manera sencilla. Pero para iniciados es magnfico, 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 acompaado con la placa al comprarla) y sera mejor si fuese USB. Yo, para sumo, he dividido en 4 aspectos las funciones del robot: deteccin del contrario, situacin, empuje/resistencia (para sacar t al otro de la pista sin que te saque el a ti) y engao (para que el otro no te detecte). Adems de la lgica (Basic Stamp 2). Para la deteccin 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 algn problema: es irregular. Sin embargo, no necesitan ninguna circuitera externa. Tienen 4 puntos, uno a +5 V (vdd) otra a GND (Vss) y 2 a unas patitas (entradas). Una controlar la emisin y otra la recepcin. Hay opcin de usarlos con una sola patita, pero para ello hay que seleccionar otro modo. 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 difcil 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 ms fcil conectarlos. 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). En el apartado de situacin pens en emplear unos CNY70, sin circuitera y construirla yo mismo. Para ello compr 4 CNY70 (1,10 cada uno) y adems necesitaba un inversor triggerSchmidt74HC14, 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 MSES110.1 (8 cada uno). Us 2 prestados por mi profesor Iker. Estos no necesitan nada adicional, uno va a +5 v, otro a GND y otro a una entrada (patita). En el apartado engao 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 amplificacin de superficie del que ya he Sensor infrarrojo (blanco/negro) hablado, para el cual necesit 2 servos Parallax de rotacin continua de 15 cada uno, que tambin me presto Iker, as como un Basic Stamp 1 (tambin prestado) para controlarlos. Estos tienen 3 cables: negro a GND, blanco a patita (salida) y rojo a +5 v. No necesitan nada adicional.

Sensor ultrasnico

Sensor infrarrojo (distancia)

Bumper

En el apartado empuje/resistencia, emple unas ruedas de neopreno, con unos adaptadores para anclarlas al eje de los 4 motores DC (corriente contina) que us. Los motores es necesario controlarlos, ya que lo que hacen es girar en un sentido o en otro segn 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 slo necesitas una controladora). Pero este driver tiene como tope 1 amperio por canal de intensidad. Y mis motores consuman ms. Incluso aunque usase 2 de estos drivers me pasaba, y lo ms probable es que los fundiera en seguida. Cuando ms consumen los motores es cuando estn bloqueados (intentan girar pero no pueden), algo tpico en sumo cuando ambos contrincantes se encuentran frontalmente y empujan. Driver MSE A100 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 MD22

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

MONTAJE En cuanto tuve todas las piezas, comenc a montarlas. Empec con la estructura y los motores, despus 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 haba 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.

PROGRAMACIN Y FUNCIONAMIENTO Yo teniendo en cuenta los sensores que tena, realic un algoritmo. Bsicamente, lo que el robot hacia era mirar continuamente los sensores. Si cualquiera de los CNY70 detectaba blanco (la lnea) retroceda y giraba algo menos de 180 grados. Si detectaban algo los bumpers delantero o trasero avanzaba o retroceda continuamente, ya que el contario estaba delante o detrs. 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 ningn sensor, pues giraba mientras miraba el ultrasonido, si este detectaba algo inferior a 100 cm avanzaba. Cada vez que se mova o haca cualquier cosa, miraba los dems sensores, para que no hubiese una confusin 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

Imgenes del robot de sumo "Stealthbot" (haz clic en las imgenes para ver una ampliacin):

Vista trasera

Vista frontal

Vista desde arriba

Vista lateral

También podría gustarte