Los bloques de actuación de la base Robobo son cinco:

Todos ellos están relacionados con acciones que pueden realizar actuadores de la base Robobo, tanto los motores como los LEDs.

Stop _ Motors

  • Función: Detiene el motor indicado en el campo de selección desplegable. 
  • CAMPOS:
    • SELECCIÓN DE MOTOR: Permite escoger entre los 4 motores existentes en Robobo:
      • all: detiene todos los motores en funcionamiento.
      • wheels: detiene los motores de las 2 ruedas.
      • pan: detiene el motor del PAN.
      • tilt: detiene el motor del TILT.
  • Ejemplo de funcionamiento:

El siguiente programa arranca un movimiento recto de Robobo sin tiempo de finalización (bloque move wheels at speed) y, a continuación, se queda esperando a que el valor del sensor infrarrojo central (IR value at sensor Front-C) sea mayor de 200 (objeto cercano). Cuando esto ocurre, el bloque stop wheels motors para los motores de las ruedas.

Move wheels at speed R _ L _ for _

 

  • Función: Mueve las ruedas de Robobo. Este bloque sirve para establecer la velocidad del motor de la rueda derecha (R) y de la rueda izquierda (L), y durante cuánto tiempo se aplican. 
  • CAMPOS:
    • velocidad rueda derecha (R): 
      • Número entero que indica la velocidad de giro del motor de la rueda derecha.
      • Rango: valores enteros de -100 a 100. Los valores negativos mueven la rueda hacia atrás. Los valores de mayor magnitud (valor absoluto), darán mayor velocidad de giro.
      • Advertencia: valores altos de velocidad hacen que Robobo se mueva muy rápido, lo cual aumenta la probabilidad de dañar la base o el smartphone por un impacto.
    • velocidad rueda izquierda (L): 
      • Número entero que indica la velocidad de giro del motor de la rueda izquierda.
      • Rango: valores enteros de -100 a 100. Los valores negativos mueven la rueda hacia atrás. Los valores de mayor magnitud (valor absoluto), darán mayor velocidad de giro.
      • Advertencia: valores altos de velocidad hacen que Robobo se muy rápido, lo cual aumenta la probabilidad de dañar la base o el smartphone por un impacto.
    • TIEMPO:
      • Número real que indica el tiempo en segundos durante el cual se aplica la velocidad a los motores de las ruedas. Este valor solo tiene efecto si el modo de funcionamiento es seconds (bloqueante).
      • Rango: cualquier valor positivo.
    • Modo de funcionamiento: Existen dos modos de funcionamiento posibles:
      • Seconds: modo bloqueante, es decir, Robobo moverá las ruedas con la velocidad indicada en los campos R y L durante el tiempo establecido en el campo tiempo y, a continuación, parará ambos motores.
      • Non-stop: modo no-bloqueante, es decir, Robobo iniciará el movimiento con la velocidad de las ruedas indicada en los campos R y L de forma indefinida. Por tanto, en este modo no se tiene en cuenta el valor del campo tiempo. El modo non-stop implica que las ruedas deben ser detenidas utilizando el bloque stop motors.
  • EjemploS de funcionamiento:

Para conseguir que Robobo se mueva recto hacia adelante, se debe poner el mismo valor de velocidad positiva en ambos motores (programa de la izquierda). Para que se mueva recto hacia atrás, se debe utilizar el mismo valor de velocidad, pero negativa (programa de la derecha):

Otras combinaciones de valores positivos y negativos, darán lugar a movimientos curvos. Los dos siguientes programas hacen los mismo, que Robobo gire sobre sí mismo en el sitio, aproximadamente 180º. La combinación de velocidad y tiempo se debe ajustar para lograr el giro deseado:

Los ejemplos anteriores utilizan el modo bloqueante, y hacen que Robobo realice un movimiento predefinido, durante un tiempo fijo. El modo bloqueante no se puede utilizar en aquellos casos donde el movimiento depende de los valores de los sensores, porque no se conoce la duración a priori. Por ejemplo, el siguiente programa arranca un movimiento recto de Robobo sin tiempo de finalización (non-stop) y continúa con el mismo movimiento hasta que el valor del sensor infrarrojo central (IR value at sensor Front-C) sea mayor de 200 (objeto cercano). Cuando esto ocurre, el bloque stop wheels motors detiene los motores de las ruedas.

Move pan to _ at speed _

 

  • Función: Mueve el motor PAN del soporte del smartphone. Este motor permite que el smartphone gire hacia la derecha y hacia la izquierda sin necesidad de girar las ruedas de la base, como se muestra en la siguiente imagen:

 

  • CAMPOS:
    • ángulo de giro: 
      • Número entero que indica el ángulo de giro del motor PAN.
      • Rango: valores enteros de -160 a 160, siendo 0 el valor de inicio (como se muestra en la imagen). Los valores negativos giran el PAN hacia la izquierda, mientras que los valores positivos giran el PAN hacia la derecha.
    • Velocidad de giro: 
      • Número entero que indica la velocidad de giro del motor PAN.
      • Rango: valores enteros de 0 a 100. Cuanto mayor es la velocidad para un ángulo de giro dado, menos tiempo tardará Robobo en poner el motor PAN en dicho ángulo. 
    • Modo de funcionamiento: Existen dos modos de funcionamiento posibles:
      • Blocking: Modo bloqueante. En este modo, el robot continúa con la ejecución de este bloque hasta que se alcanza el ángulo establecido, sin saltar al bloque siguiente.
      • Non-blocking: Modo no-bloqueante, es decir, se inicia el movimiento del motor PAN establecido e inmediatamente se lanza la ejecución del bloque que exista a continuación. Esto implica que el robot puede ejecutar el movimiento de otro motor mientras se realiza el movimiento del PAN.
  • Ejemplo de funcionamiento:

El programa de la izquierda mueve el motor PAN a 120º, y al terminar dicho movimiento, mueve a Robobo hacia adelante durante 3 segundos. El programa de la derecha hace el mismo movimiento de PAN, pero de manera simultánea con el movimiento hacia adelante.

Move tilt to _ at speed _

  • Función: Mueve el motor TILT del soporte del smartphone. Este motor permite que el smartphone gire hacia delante y hacia atrás, como se muestra en la siguiente imagen:

  • CAMPOS:
    • ángulo de giro
      • Número real que indica el ángulo de giro del motor TILT.
      • Rango: de 26 a 109, siendo 90 el valor de inicio (como se muestra en la imagen anterior). Los valores menores de 90 giran el TILT hacia la arriba, mientras que los valores mayores de 90 giran el TILT hacia la abajo.
    • Velocidad de giro: 
      • Número real que indica la velocidad de giro del motor TILT.
      • Rango: de 0 a 100. Cuanto mayor es la velocidad para un ángulo de giro dado, menos tiempo tardará Robobo en poner el motor TILT en dicho ángulo. 
    • Modo de funcionamiento: Existen dos modos de funcionamiento posibles:
      • Blocking: modo bloqueante. En este modo, el robot continúa con la ejecución de este bloque hasta que se alcanza el ángulo establecido, sin saltar al bloque siguiente.
      • Non-blocking: modo no-bloqueante, es decir, se inicia el movimiento del motor TILT establecido e inmediatamente se lanza la ejecución del bloque que exista a continuación. Esto implica que el robot puede ejecutar el movimiento de otro motor mientras se realiza el movimiento del TILT.
  • Ejemplo de funcionamiento:

El programa de la izquierda mueve el motor TILT a 90º, y al terminar dicho movimiento, mueve el PAN a 180º. El programa de la derecha hace el mismo movimiento de TITL y PAN, pero de manera simultánea.

Set led _ color to _

  • Función: Enciende o apaga el LED de la base elegido en el campo selección de LED al color elegido en el campo selección de color.

  • CAMPOS:
    • selección de led
      • Rango: se pueden encender de manera individual los LEDs de la base (la imagen anterior muestra la localización de los LEDs y su nombre) o bien todos juntos (all).
    • selección de color: 
      • Hay 8 colores posibles para los LEDs: blanco, rojo, azul, cyan, magenta, amarillo, verde y naranja. También es posible apagar los LEDs utilizando este comando, si escogemos off en el color.
  • Ejemplo de funcionamiento:

El siguiente programa enciende cada LED de la base a un color diferente durante un segundo (bloque wait), después los apaga todos y repite esta secuencia 10 veces.