Brazo robótico "Snatcher"

MVI_6794.MOV

Guía de montaje

Programación a realizar

snatcher.pdf

El robot tiene que realizar al menos lo siguiente:

a) Moverse por una superficie buscando un bote.

b) Acercarse al bote y prepararse para cogerlo.

c) Detectar si el bote es blanco o si el bote es negro.

d) Si el bote es negro cogerlo, si es blanco dejarlo. Emitir el sonido “Black” o “White” según corresponda.

e) Dejar el bote negro a una distancia de 30 cm.

Dado que este proyecto conlleva una cierta complejidad en la programación, vamos a dejar unas pistas para ayudar a programar la fase de búsqueda y acercamiento.

Dado que este proyecto conlleva una cierta complejidad en la programación, vamos a dejar unas pistas para ayudar a programar la fase de búsqueda y acercamiento.

1ºLocalizar el objeto más cercano.

Para buscar el objeto más cercano vamos a utilizar el sensor de rotación.

Este bloque cuenta el número de grados (una rotación completa es 360 grados) o de rotaciones completas que gira el motor. Mediante cables de datos, este bloque puede enviar el valor del número actual de grados o rotaciones.

Configuración del bloque Sensor de rotación:

  1. Elije el puerto que quieres leer (A, B o C).
  2. Elije leer el valor actual de un sensor de rotación.
  3. Conecta el cable de datos a la salida de grados (degrees).

En primer lugar vamos a declarar dos variables numéricas: Distancia y Dirección. Al empezar el programa declararemos que la variable Distancia vale 256 y la dirección 0. El sensor de rotación se reinicia.

Ahora vamos a hacer que el robot haga un giro de 180º sobre sí mimo y durante este movimiento iremos comprobando si la medida que nos da el sensor de US es menor que los 256 que hemos puesto como valor inicial. En el caso de que la medida proporcionada por el US sea menor se almacenará en la variable distancia. Como durante todo el bucle va a estar comprobando esta situación, si encuentra algún objeto a una distancia menor, almacenará la distancia de ese objeto más cercano.

Para conocer en que punto del giro se encuenta el objeto, se almacenará el la variable Dirección el valor del sensor de rotación en ese momento. El bucle termina cuando el sensor de rotación ha recorrido el ángulo necesario para que el robot gire los 180º sobre sí mismo. Este dato lo tenéis que calcular vosotros.

El programa sería algo así:

Una vez el robot sabe donde está el objeto más cercano por medio de las variables Distancia y Dirección, tiene que girar hasta situarse frente a él y acercarse a él.

En la última parte del programa Localizar objeto vamos a posicionar el robot justo delante del objeto detectado. Para ello vamos a restar el valor de la variable Dirección del valor del sensor de rotación. De esta forma sabremos los grados que hay que retroceder. Este valor se le proporciona al motor C y el programa espera a que la función finalice mientras que el motor B también gira en sentido inverso.

Es importante observar que si no se ha detectado ningún objeto, la variable Dirección no se ha modificado y por tanto sigue en 0. En este caso el robot retrocederá los 1000 grados girados en el rastreo de objetos situándose en la posición inicial.

2º Acercarse al objeto.

En esta fase tenemos que acercarnos al robot. De programa anterior tenemos el valor de la variable Distancia almacenado. Ahora tenemos que convertir el valor de la distancia en cm en ángulo de giro del robot. ¿Cuál será la relación entre ambas? Tienes que colocar el número que las relaciona en el número B del bloque multiplicador.

Si tras programas estos movimientos observas que el robot no se ajusta perfectamente frente al bote, prueba a realizar dos veces las rutinas de localización y acercamiento antes de coger el bote.