Mostrando entradas con la etiqueta Mis robots. Mostrar todas las entradas
Mostrando entradas con la etiqueta Mis robots. Mostrar todas las entradas

miércoles, 15 de abril de 2009

Montaje de Stealthbot-zwei

Durante el montaje del robot, fui sacando fotos para que se viese el proceso de montaje y como se iba haciendo cada vez más grande hasta estar completado. Así mismo, se aprecian muchos de los materiales empleados en su montaje, con el consiguiente desorden que supuso para mi habitación… Aquí no mencionaré las mejoras implementadas respecto al del año pasado (aquí), ni como construí el del año pasado (aquí).


 Lo primero que hice fue conectar todos los motores con la controladora de motores, situada en el primer nivel del robot. Esta controladora sirve para controlar 2 motores, pero como los dos de cada lado giran en el mismo sentido siempre, es suficiente. A esta controladora habrá que conectar la alimentación suplementaria para los motores. 


Esto es una tarea que la mayoría de los aficionados a la electrónica tienen que sufrir habitualmente: soldar. Para ello necesitamos un soldador y estaño, que fundiremos para aplicarlo sobre las uniones que vayamos a realizar. Sería conveniente tener algún conocimiento previo antes de empezar, para no aprender como hice yo, a base de meter la pata y de alguna que otra quemadura… 


Aquí se aprecia el caos que se creó en mi habitación cuando estuve en proceso de construcción del robot. Se pueden ver la gran cantidad de piezas que conforman el bot, no sólo eléctricas sino también mecánicas. 


El robot va avanzando y cada vez se acerca más a su etapa final. Ya está en el segundo nivel, con varios sensores incorporados y una marabunta de cables (alimentación, sensores, controladora…) difícil de ordenar y comprender. Después de esto hay que colocar el microcontrolador, donde irán conectados la mayoría de ellos. 


El año pasado usé pilas convencionales de tipo D y no alcalinas (eran más pesadas) para los motores y 2 pilas en paralelo de 9 voltios  para la lógica. Como consecuencia, se agotaban cada cierto tiempo y tenía que volver a comprar más y este es el resultado. Más de 32 pilas de tipo D y unas 10 de 9 voltios. 


Por eso este año adquirí un cargador para pilas recargables NiMH (níquel metal hidruro) para los tipos AAA, AA, C, D y 9 voltios. Es decir, prácticamente toda la gama de pilas en el mercado salvo las de petaca de 4,5 voltios. Este cargador únicamente carga las de NiMH y no sirve para otros tipos tales como NiCd (níquel cadmio) o baterías de ión litio o li-po (litio polímero). Puede cargar a la vez 4 de cada tipo, excepto de 9 voltios que sólo carga de 2 en 2. El tiempo de carga para pilas de 2500 mA/h es de 16 horas aproximadamente. El cargador es de la marca Energizer. Sin embargo, y al ser importado, tuve que adquirir un transformador de 220 a 120 voltios (al voltaje al que funciona dicho cargador, la parte de color negro, por unos 8 €) y un adaptador para el enchufe (era distinto que los de España, la parte de color blanco). Hago hincapié en esto, puesto que un uso incorrecto de este aparato puede suponer estropearlo. Las pilas que adquirí fueron las recargables de tipo NiMH. 8 pilas de tipo D (las más grandes y cilíndricas) y 4 de tipo AA (estándar). Ambos tipos eran de 1,2 voltios cada una. Por tanto, disponía de 9,6 voltios para los motores y 4,8 voltios para la lógica. Esto era inferior a los 12 voltios y 6 del año pasado, pero a cambio aumentó la intensidad de corriente (amperios). En la lógica no hubo un cambio apreciable en el rendimiento, salvo que duraban considerablemente más sin agotarse. En los motores se redujo la velocidad (ya que un mayor voltaje provoca una mayor velocidad de giro) pero, a cambio, aumentó el par disponible, ya que la intensidad que otorgaban era mayor. Todas las pilas proporcionaban 2500 mA/h (miliamperios a la hora). Esto quiere decir que duran 1 hora en funcionamiento si otorgan 2,5 amperios continuamente, o que duran 2 horas si otorgan 1,25 A. Si se les requieren 5 amperios, durarán media hora. Para saber por qué elegí estas pilas y saber más acerca de pilas y baterías recargables pincha aquí. 


Aquí ya se puede observar a un robot casi completo a falta de la programación y de algunos pequeños cambios finales. Se alza imponente desde esta perspectiva, sobre todo gracias a las ruedas de grandes dimensiones. 


Aquí es cuando empiezo a cargar la programación, a través de un puerto serial del que dispone la placa Basic Stamp Homework Board. Además del pertinente cable, necesito un adaptador USB-serial ya que mi portátil no tiene puerto serie. 


En esta foto ya está completo, con la programación cargada y únicamente queda cambiarle las pilas por unas recargables (que reservo para el concurso). Hay que tener cuidado con esto, pues unas pilas recién cargadas o de distinto voltaje provocan una mayor o menor velocidad en el robot, variando por tanto su respuesta. Por ejemplo, en el mío, con pilas nuevas de 12 voltios o 9,6 voltios la velocidad varía de 0,35 m/s a 0,28 m/s, una variación considerable y apreciable en sus respuestas. 


Pues aquí acabó el montaje del robot, y tan sólo faltaba disputar el concurso. Para saber más sobre la participación de Stealthbot-zwei en el Concurso de Deusto, pincha aquí.

Stealthbot-zwei: cambios

En base a las conclusiones que saqué del año pasado, realicé ciertos cambios en el robot, para obtener mayor fiabilidad y rendimiento. Al final, volvió a pecar de falta de fiabilidad, así que el año que viene realizaré cambios más drásticos, como la soldadura del Basic Stamp o el uso de algún PIC o Arduino, ambos con mejores prestaciones que el Basic Stamp. Este año había pensado en emplear Arduino, pero al final rechacé la idea debido a la falta de tiempo, imposibilitándome usar sensores analógicos.

 

Programando a la bestia

Stealthbot-zwei se basaba en la plataforma del año pasado y presenta pocos cambios en lo que a la electrónica se refiere. Un cambio sustancial ha sido el empleo de pilas recargables de tipo D y AA de NiMH (níquel metal hidruro). Estas pilas son mucho más ligeras (dejando el peso sobrante para otros usos) y tienen una mayor intensidad. Las usadas fueron 8 pilas tipo D de 2500 mA/hora y 1,2 voltios, reduciendo el voltaje total de 12 a 9,6 voltios (el voltaje proporciona velocidad y, por tanto, esta disminuyó a cambio de incrementar el par de los motores) e incrementando la intensidad. Además la lógica se alimenta este año con 4 pilas tipo AA (normales) recargables también de 1,2 voltios cada una (4,8 voltios en total al estar en serie) y 2500 mA/hora. De esta forma ahorro dinero a medio plazo, puesto que no tengo que comprar tantas pilas sino que es suficiente con recargarlas. Los tiempos de carga son de aproximadamente 16 horas para cada 4 pilas (sean del tipo que sean, el cargador era capaz de cargar a la vez 4 pilas recargables NiMH del tipo AAA, AA, C, D o 9 voltios). Elegí estas pilas porque son baratas y dentro de mi presupuesto y uso, las más adecuadas en mi opinión (ver artículo sobre pilas recargables y baterias y normales). Son sencillas de usar, de capacidad aceptable y comunes en el mercado.

 

Pilas recargables NiMH tipo D

Mejoré el sistema de bumpers, asegurándolos con cinta aislante para darles consistencia y atándolos con cuerda, para limitar el recorrido máximo de estos (evitando que se el contrario tirase de ellos y los estropease). Además incorporé 1 muelle a cada bumper para limitar la carrera de éste y que recuperaran pronto la posición inicial sin trabarse. Además los bumpers estaban mejor anclados al robot que el año anterior.

 

Hice algunos cambios en la programación para hacerla más eficiente basándome en la del año anterior, eliminando partes superfluas y haciendo hincapié en aquellas tareas que peor desarrollaba el robot. 

El microcontrolador (Basic Stamp) se encontraba este año en un lugar más accesible, ya que anteriormente éste estaba oculto, lo que dificultaba el cambio de programación.

 

2º nivel del robot: microcontrolador

Así mismo, eliminé el sistema de placas laterales que descienden una vez iniciado el combate para ampliar de forma ficticia la superficie del robot, ya que analizando los beneficios (que el otro robot no te empuje de la mejor forma posible) y las desventajas (te detecta más rápidamente y puede engancharse y desprenderse, con la consecuente pérdida del combate), me dí cuenta de que no compensaba.

Probé varios sistemas antimedidas para evitar la detección por parte del contrario, confundiendo a infrarrojos y ultrasonidos, pero ninguna tuvo el éxito necesario para ser incorporado.

 

También trate de asegurar todo lo posible toda la parte mecánica, sujetando con bridas todas las partes que eran susceptibles de desprenderse, lo cual conllevaría a la pérdida del combate. También alargué todos los cables de la electrónica para evitar precisamente que se desconectaran y asegurándolos con cinta aislante, lo cual se demostró inútil ante la magnitud de las caídas que sufrió mi robot.

 

"Stealthbot-zwei" casi listo para el combate

He de decir que este año han vuelto a ser materiales imprescindibles en la construcción del robot la cinta aislante y el velcro, pero el año que viene, tratando de hacer caso a un profesor de la uni, intentaré reducir ambos para ganar en fiabilidad.

 

Estoy bastante contento con la mejora que ha experimentado Stealthbot del la primera a la segunda versión y, sin hacer grandes cambios, creo que ha tocado techo. No se puede hacer mucho más con lo que hay. Así que tendré que realizar cambios mayores si quiero aspirar a ganar el año que viene, tales como más fiabilidad, mejores sensores, cambio de microcontrolador etc. Haber si se organiza un curso en verano en la universidad de Deusto sobre PIC… De todas formas, allí nos verán el año que viene. A mí y a mi máquina. O, al menos, eso espero…

 

Para ver el montaje de Stealthbot-zwei pulsa aquí. Para ver su participación en el concurso pincha aquí.

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