Los bloques de sensorización de la base de Robobo son los siguientes:

Todos ellos están relacionados con información que puede captar Robobo mediante los sensores situados en la base. Es importante utilizar la ventana de monitorización para comprobar los valores que devuelven estos sensores en tiempo real en cada entorno concreto.

Reset sensor _

  • Función: Reinicia el valor del sensor indicado en el campo selección de sensorEste bloque afecta también a los sensores del smartphone, por lo que su descripción aparece también en dicha sección.
  • CAMPOS:
    • SELECCIÓN DE SENSOR: 
      • all: Reinicia todos los sensores.
      • IR: Reinicia el valor de los sensores infrarrojo a 0.
      • acceleration: Reinicia el valor del acelerómetro a 0 en los tres ejes (x,y,z).
      • brightness: Reinicia el valor del sensor de luz ambiente a 0.
      • claps: Reinicia el contador de palmadas a 0.
      • face: Reinicia el sensor de distancia a la cara a 0 y el de la posición (x,y) a (0,0).
      • fling: Reinicia el sensor de ángulo de desplazamiento táctil sobre la pantalla a 0.
      • orientation: Reinicia los ángulos de orientación del smartphone (yaw, pitch, roll) a 0.
      • tap: Reinicia el sensor de zona de contacto sobre la pantalla a NONE.
  • Ejemplo de funcionamiento:

Este bloque es útil con aquellos sensores que guardan el último valor leído o bien que almacenan un valor de manera continuada como, por ejemplo, el sensor de palmadas o en el sensor de distancia a la cara. En el siguiente ejemplo se muestra un programa que lee las palmadas captadas y, mientras sean menos de 5, enciende los LEDs de la base en azul. En cuanto sean 5 o más, enciende los LEDs en rojo y espera 3 segundos. Para que el programa continúe de forma indefinida, es necesario reiniciar el valor del sensor de palmadas:

IR value at sensor _

  • Función: Devuelve el valor medido por el sensor infrarrojo (IR) indicado en el campo selección de sensor. 
    • RangoDe 0 a inf (sin límite). Cuanto más grande es el valor, menor es la distancia a la que se encuentra el objeto detectado. Por tanto, este valor es una especie de intensidad de energía reflejada, por lo que si vale 0 significa que no se detecta ningún objeto. 
    • Advertencia: El funcionamiento de los sensores infrarrojos depende del nivel de luz ambiente y del material del objeto a detectar, por lo cual el valor devuelto por este sensor debe ser calibrado en cada entorno particular.

  • CAMPOS:
    • SELECCIÓN DE SENSOR: 
      • Existen 8 sensores infrarrojos en la base de Robobo nombrados según se muestra en la imagen anterior. Los sensores Front-C, Front-LL, Front-RR y Back-C está orientados en paralelo al suelo, es decir, detectan los objetos que tienen delante, pero no detectan posibles huecos en el suelo. Por otro lado, los sensores Front-L, Front-R, Back-L y Back-R tienen una orientación de 45º respecto al suelo para poder detectar dichos huecos, y así evitar caídas desde altura, por ejemplo. Esta orientación influye a la hora de utilizar un sensor u otro para detectar obstáculos.
  • EjemploS de funcionamiento:

El siguiente programa hace que Robobo se mueva hacia adelante hasta que encuentra un obstáculo cercano en el sensor delantero central (el valor de 200 debe ser ajustado al nivel de luz y al tipo de objeto). Cuando eso ocurre, se mueve hacia atrás durante 1 segundo para separase del obstáculo, luego gira en el sitio 180º y, finalmente, se mueve en dirección contraria durante 2 segundos:

Base Battery Level

  • Función: Devuelve el nivel de batería de la base Robobo.
    • Rango: de 0 a 100, de modo que cuanto mayor es el valor, mayor es el nivel de batería de la base.
  • CAMPOS:
    • Ninguno.
  • Ejemplo de funcionamiento:

A continuación se muestre un programa típico que podría estar en ejecución permanente controlando el nivel de batería cada 5 minutos (300 segundos), y que emite un aviso cuando dicho nivel baja de un cierto umbral. En este caso, el aviso consiste en encender los LEDS en color rojo de manera intermitente:

_ wheel position

  • Función: Devuelve la posición del motor seleccionado en el campo selección de rueda. Esta posición corresponde a los grados de giro de la rueda desde su reinicio.
    • RangoDe -inf a inf (sin límite). Hay que tener en cuenta que una vuelta completa de la rueda son 360 grados. Si la rueda gira hacia atrás, los grados de giro disminuyen, pudiendo ser negativos.
  • CAMPOS:
    • SELECCIÓN DE RUEDA: Se puede seleccionar el motor de la rueda derecha o de la izquierda.
  • Ejemplo de funcionamiento:

Con este bloque podemos conocer la distancia aproximada que recorre Robobo. En este ejemplo, se utiliza este bloque para hacer que el robot se pare cuando la rueda derecha ha dado 2 vueltas completas (720 grados). Si conocemos la longitud de la circunferencia de la rueda, podemos determinar fácilmente la distancia recorrida:

pan position

  • Función: Devuelve la posición del motor PAN. Esta posición corresponde a los grados de giro del motor desde su reinicio.
    • Rango: de 27 a 339, acorde con los ángulos permitidos para este motor, siendo 180 el valor de inicio (como se muestra en la imagen). Los valores menores de 180 indican que el PAN está girado hacia la izquierda, mientras que los valores mayores de 180 indican que está hacia la derecha.

  • CAMPOS:
    • Ninguno.
  • Ejemplo de funcionamiento:

En este ejemplo, se mueve el motor PAN a un valor aleatorio dentro de su rango de operación y, a continuación, se encienden los LEDs del lado de la base correspondiente al giro realizado. Podemos ver, por tanto, que este bloque nos permite conocer la orientación del smartphone respecto a la base en cualquier momento:

TILT position

  • Función: Devuelve la posición del motor TILT. Esta posición corresponde a los grados de giro del motor desde su reinicio.
    • Rango: de 26 a 109, acorde con los valores permitidos para este motor, siendo 90 el valor de inicio (como se muestra en la imagen). Los valores menores de 90 indican que el soporte del smartphone está girado hacia la atrás, mientras que los valores mayores de 90 indican que está hacia delante.

 

  • CAMPOS:
    • Ninguno.
  • Ejemplo de funcionamiento:

En este ejemplo, se mueve el motor TILT a un valor aleatorio dentro de su rango de operación y, a continuación, se encienden los LEDs delanteros o traseros de la base en función de si el TILT está por encima o por debajo de 90 grados. Podemos ver, por tanto, que este bloque nos permite conocer la orientación del smartphone respecto a la base en cualquier momento: