Controlar dos motores CC



Con un solo bloque, “Mover”, que encontramos en el apartado “3dBot”, podemos dar las ordenes de avanzar, retroceder, girar, rotar sobre sí mismo y parar. ¡Así de sencillo!

De la misma forma, se puede seleccionar la velocidad de entre tres possibles opciones:

Vamos a realizar una serie de ejercicios para practicar todo lo que hemos aprendido hasta ahora y mezclar los temas de funciones, variables,…

#01 ¡A bailar!

El siguiente programa hace que el robot rote sobre si mismo constantemente:

#02 ¡Creando secuencias de movimientos!

Vamos a empezar a estar las piernas y las ruedas… con unos movimientos sencillos de calentamiento. Poco a poco haremos que estas secuencias dependan de estímulos externos y condiciones más elaboradas.

El robot va a realizar los siguientes movimientos:

  1. Ir en línea recta durante un segundo
  2. Girar a la izquierda durante 1s
  3. Volver a ir en línea recta otro segundo
  4. Girar a la derecha 1s



#03 Giro y control de los leds rojo, amarillo y verde: Semáforo loco

Empieza el espectáculo: Leds, cámaras y… ¡Acción!

Ahora nuestro robot va a rotar todo el tiempo a la izquierda, mientras sus tres leds se encienden y apagan de forma secuencial. ¡Recuerda que el ritmo desenfrenado lo marcas tú!

Ten en cuenta que el robot va a estar rotando a la izquierda todo el tiempo, independientemente de lo que hagan los leds, ya que nunca las ordenamos que pare.

#04 Giros del robot

Para poder conocer todos los sentidos de giro posibles que puede hacer el robot, os proponemos que realicéis los programas de los movimientos siguientes.

#05 Señalizando la marcha atrás

Este programa tiene dos partes fundamentales:

  • Avance hacia delante con el piloto verde encendido.
  • Marcha atrás con el piloto rojo encendido y un pitido intermitente de señalización de maniobra “peligrosa”.


Vamos a presentar una versión del programa en la que creamos dos funciones, y otra, en la que se realiza el programa completo directamente en el bucle (sin funciones). La diferencia en este caso no es significativa, ya que no es un programa extenso ni se realizan muchas repeticiones.

Por cierto, cuidado porque lo peligroso puede acabar siendo el pitido… para los oídos.

Programa con funciones

Se definen dos funciones: “ir hacia delante” e “ir hacia atrás”. El programa completo es el siguiente:

Programa sin funciones

#06 En busca de la luz

Vamos a jugar un poco con los niveles de luz. Imagina 3dbot Arduino tiene un sensor de luz (LDR) que detecta las variaciones de iluminación y las traduce en señales de tensión. En el apartado “acts:3dbot” se encuentra el bloque que se encarga de programar este sensor.

Además, en apartado “Lógica” encontramos un bloque que nos permite realizar comparaciones que NO dependen de operaciones matemáticas directas, es decir, comparaciones de estados, valores, etc. Haciendo clic sobre la flecha dibujada en el bloque, se abre un desplegable con diferentes opciones de comparación:

Vamos a combinar este último bloque con funciones ya aprendidas, para comparar un valor de iluminación fijado por nosotros, con el valor de iluminación que esté leyendo el robot. En este caso, vamos a guardar los valores de iluminación leídos en la variable “Luminosidad”.

Ahora, sacamos el bloque de números del apartado “Matemáticas”, para realizar la comparación, y lo incluimos en el bloque general:

Si hay luz, ¡avanza!

En este caso vamos a hacer que, si el valor de luz detectado es superior a una cifra (en este ejemplo 300) el robot avance en línea recta. Si el valor es menor, se mantenga parado.

Podéis usarlo, por ejemplo, para hacer que se mueva solo cuando se le enfoque con la linterna del teléfono móvil en una habitación con poca luz.

Si tras cargar el programa el robot se mueve todo el tiempo (aunque no se le enfoque con la linterna), querrá decir que el nivel de luz de la sala es mayor que ese 300 incluido en el programa. Ene ese caso, simplemente habrá que augmentarlo hasta conseguir el resultado deseado.

Por otro lado, solo con cambiar el operando de la comparación, conseguiremos el efecto contrario, que el robot avance cuando haya poca luz y se pare cuando el nivel suba: