DETECTOR DE OBSTÁCULOS

Objetivo:

Programar el coche micro:bit para que avance y se pare frente a un obstáculo.

Construcción:

Conecta el sensor ultrasonido a la placa de expansión:

  • Pin 8 – Trig
  • Pin 16 – Echo

Programación:

CONTROL REMOTO POR GIROSCOPIO

Objetivo:

Controlar los movimientos del coche con otra placa microbit. Tendremos en cuenta la inclinación de la placa para enviar las órdenes de movimiento al coche.

Programación:

Antes de realizar esta actividad, recomendamos realizar el ejercicio «mensajes radio» para comprender el funcionamiento del control por radiofrecuencia.

Debemos programar dos placas: Una que funcionará como mando a distancia, y otra que estará incorporada en el coche y se encarga de realizar los movimientos del coche.

Programación del mando:

Logotipo hacia abajo: Al posicionar la placa microbit con el logotipo hacia abajo, dibujamos una flecha hacia adelante y enviamos un mensaje al coche para indicarle que tiene que avanzar.

Logotipo hacia arriba: Al posicionar la placa microbit con el logotipo hacia arriba, dibujamos una flecha hacia atrás y enviamos un mensaje al coche para indicarle que tiene que retroceder.

Inclinación a la derecha: Al posicionar la placa microbit inclinada hacia la derecha, dibujamos una flecha hacia la derecha y enviamos un mensaje al coche para indicarle que tiene que girar en ese sentido. 

Inclinación a la izquierda: Al posicionar la placa microbit inclinada hacia la izquierda, dibujamos una flecha hacia la izquierda y enviamos un mensaje al coche para indicarle que tiene que girar en ese sentido.

Al agitar el mando: Dibujamos un cuadrado y enviamos la orden de parar.

Programación del coche:

El coche se comunica con el mando por radiofrecuencia.

Al recibir avanza: Cuando el coche recibe la orden de avanzar, dibuja una flecha en el sentido de avance y mueve los motores. Al estar colocados un motor enfrente del otro los parámetros son contrarios, es decir, para un motor avanza con una velocidad 50 y el otro motor avanza con velocidad -50.

Al recibir retrocede: Cuando el coche recibe la orden de retroceder, dibuja una flecha en el sentido de retroceso y mueve los motores. Su velocidad será al revés que en avance. Cuando un motor se movía a 50, ahora se mueve a -50, y viceversa. Así cambiamos el sentido de giro.

Utilizamos una variable para registrar si el coche está avanzando (0) o retrocediendo. (1). Necesitamos este dato para hacer correctamente los giros, ya que la orden no es igual si estamos avanzando o retrocediendo.

Al recibir derecha: Dibujo la flecha hacia la derecha. Si estaba avanzando, paro el motor de la derecha. Si estaba retrocediendo paro el motor de la izquierda. 

Al recibir izquierda: Dibujo la flecha hacia la izquierda. Si estaba avanzando, paro el motor de la izquierdo. Si estaba retrocediendo paro el motor de la derecho.

Al recibir para: Dibuja un cuadrado y detén los dos motores.

COCHE CON CONTROL POR PULSADORES Y SENSORES

Objetivo:

Programar el coche para que atienda a las siguientes órdenes:

  • Al tocar el logo, el coche avanza / retrocede.
  • Al presionar el botón A, el coche gira a la izquierda.
  • Al presionar el botón B, el coche gira a la derecha.
  • Al tapar el sensor de luz, el coche se para.

Programación:

Avanzar y retroceder: Para cambiar el sentido de la marcha, utilizamos el sensor de contacto del logo. Al tocarlo, el coche retrocede si estaba avanzando, o avanza si estaba retrocediendo.

Utilizamos una variable para indicar el sentido de la marcha actual. Cuando el coche avanza, la variable vale 0 y cuando el coche retrocede, la variable vale 1.

Al tocar el sensor de contacto

– Si la variable vale 0, cambia el sentido de los motores (-50 y 50), pon 1 en la variable y el coche retrocederá.

– Si la variable vale 1, cambia el sentido de los motores (50 y -50), pon 0 en la variable y el coche avanzará

 

Girar a la derecha: Para girar a la derecha, ponemos a 0 la velocidad del motor P2. Tenemos en cuenta si el coche avanzaba o retrocedía para que respete el sentido de giro. Para ello utilizamos la variable sentido

Girar a la izquierda: Para girar a la izquierda, ponemos a 0 la velocidad del motor P1. Tenemos en cuenta si el coche avanzaba o retrocedía para que respete el sentido de giro. Para ello utilizamos la variable sentido

Parar: Si detectamos un nivel de luz igual a cero, significa que estamos tapando la esquina superior derecha de la placa, que es donde se ubica el sensor de luz. En ese caso, detenemos ambos motores.

COCHE – RUTA CIRCULAR

Objetivo:

Programar el coche microbit para que realice una ruta con forma circular.

Programación:

Para programar el movimiento de los motores, es necesario agregar la extensión «servo».

Los servomotores están conectados a los pines P1 y P2.

Dentro del bloque «al iniciar», creamos un bucle que se repite 4 veces, donde el coche avanzará y realizará un giro hacia la derecha.

Para mover los motores, utilizamos el bloque «continuo servo», indicando qué motor vamos a girar y a qué velocidad.

Utilizamos el bloque pausa para indicar durante cuánto tiempo se va a mover el motor.

Puedes parar los motores con el bloque «detener servo»

MOTORES

OBJETIVO

La plataforma contiene dos motores con ruedas que podemos programar para que el robot se desplace. Vamos a ver cómo programar a microbit para realizar desplazamientos en línea recta y giros.

BLOQUES

Sección Mbit_Robot

Pulsando en esta sección accedemos a los bloques para programar los movimientos del coche.

Bloque CarCtrlSpeed

El coche se mueve a la velocidad indicada.

 

Pulsando en la flecha podemos seleccionar distintos sentidos de giro de los motores:

Forward:

Back:

Turn left:

Turn right:

Stop:

Rotate left:

Rotate right:

Avanza hacia adelante

Retrocede marcha atrás

Gira a la izquierda

Gira a la derecha

Para

Vuelta a la izquierda

Vuelta a la derecha

 

PROGRAMACIÓN

Probamos cada una de las instrucciones relacionadas con el movimiento del vehículo. Para que el coche se mueva no debemos olvidar poner detrás de cada instrucción de movimiento un tiempo de espera que será el tiempo que el vehículo estará realizando cada movimiento antes de cambiar de dirección

SERVOMOTORES

OBJETIVO

Ampliar el coche microbit añadiéndole servomotores tanto de 180º como de rotación continua.

Un servomotor de 180º es un motor cuyo eje se posiciona en un ángulo concreto que le indiquemos por programación.

Identificados con la serigrafía J2, J3 y J4, localizamos en la placa un conjunto de pines que podemos utilizar para la conexión de servomotores tanto de rotación continua como de 180º. Cada salida J tiene asociados 3 pines: GND, V y datos. Conectaremos los servomotores respetando la regla de colores:

 

Conector Coche Microbit

Negro

Rojo

Amarillo

Cable Servomotor

Marrón

Rojo

Naranja

 

GND

5V

DATOS

BLOQUES

Bloque Servo_Car

En la sección Mbit_Robot localizamos el bloque Servo_Car. Este bloque lo utillizaremos para indicar al coche el ángulo en el que queremos posicionar al servomotor.

 

Servomotor contínuo:

  • Si value = 0, el motor girará contínuamente en un sentido
  • Si value = 180, el motor girará contínuamente en sentido contrario
  • Si value = 90, el motor se para

Servomotor 180º:

El servomotor se posiciona en el ángulo que se indique, entre 0 y 180º

  • La salida S1 del bloque Servo_Car se corresponde con el pin J2 del coche
  • La salida S2 del bloque Servo_Car se corresponde con el pin J3 del coche
  • La salida S3 del bloque Servo_Car se corresponde con el pin J4 del coche

Bloque al presionar el botón A / B

Microbit incluye en a propia placa dos pulsadores serigrafiados como A y B. Utilizamos este bloque para indicar a la placa que cuando alguien presione un pulsador concreto qué acciones debe realizar.

PROGRAMACIÓN

1. El pulsador A hace girar el motor en un sentido y el B en sentido contrario

Resultado en un servomotor 180º

Resultado en un servomotor contínuo

SENSOR ULTRASONIDO

OBJETIVO

El coche microbit contiene un sensor ultrasonido cuya finalidad es la detección de obstáculos frente al coche.

Para utilizar el sensor ultrasonido, se recomienda alimentar el coche con una batería externa.

A continuación programaremos microbit para realizar lecturas del sensor ultrasonido.

BLOQUES

Sección Mbit Sensor

En esta sección encontraremos módulos específicos para la lectura de los sensores del coche

Para leer la distancia calculada por el sensor ultrasonido hasta el obstáculo más cercano, utilizaremos el módulo Ultrasonic, indicando en Trig el pin 14 y en Echo el pin 15

PROGRAMACIÓN

1. Micro:bit muestra una cara contenta si detecta un obstáculo cerca

Para crear la estructura lógica del programa utilizamos un bloque condicional que localizaremos en la sección Logic.

El operador de comparación < lo localizarás en la misma sección.

SENSOR DE LÍNEA

OBJETIVO

Programaremos el coche microbit para que circule sobre una línea negra de cinta aislante sin salirse sea cual sea el trazo del recorrido.

En su base, el coche microbit dispone de dos sensores capaces de detectar líneas negras sobre un fondo blanco. Para realizar la lectura del sensor de línea y programar el robot en base a los datos del sensor, utilizaremos los siguientes bloques

BLOQUES

Sección Mbit_Robot

Pulsando en esta sección accedemos a los bloques para programar el coche.

Line_Sensor direct

Este bloque lo utilizamos para comprobar si un sensor está encima de una línea negra o blanca.

Tendremos que indicar cual de los dos sensores estamos leyendo (left o right) y si evaluamos la línea blanca o negra (white o black)

Sección Lógica

Los robots tienen la capacidad de tomar decisiones en función del entorno que les rodea. Para poder crear esa capacidad de decisión disponemos de bloques en la sección de lógica que nos ayudarán a programar la inteligencia del robot

Si ... entonces ...

En el hexágono "verdadero" introducimos una condición.
Si la condición se cumple, se realizarán los bloques que introduzcamos a continuación.
Si posteriormente queremos añadir un grupo de instrucciones "si no", pulsamos en +

Si ... entonces ... si no...

En el hexágono "verdadero" introducimos una condición.
Si la condición se cumple, se realizarán los bloques que introduzcamos a continuación.
Si no se cumple se realizarán los bloques que introduzcamos a continuación del si no

Unión de condiciones

Podemos utilizar operadores lógicos para unir varias condiciones

Y

La evaluación de la unión de las condiciones es verdadera si ambas condiciones lo son

O

Para que la evaluación de la unión de las dos condiciones se verdadera, basta con que una de las dos condiciones que se unen se cumpla


PROGRAMACIÓN

1. Encender los LEDS en color blanco si algún sensor está sobre una línea blanca

Evalúa el estado de los dos sensores de línea

Si el sensor izquierdo está sobre la línea blanca, o el sensor derecho está sobre la línea blanca, entonces mostrará una luz blanca en los leds. 

Si no (es decir, si ningún sensor está sobre una línea blanca) entonces mostrará una luz roja en los leds

2. Programar un coche que siga una línea negra

Mientras que el coche se encuentre sobre una línea negra, avanzará en línea recta. Cuando el coche detecta que uno de los sensores está sobre una zona blanca, rectifica su dirección girando ligeramente hacia el lado contrario al sensor.

AUDIO

Con el coche micro:bit podemos realiza la reproducción de melodías utilizando los siguientes bloques:

Bloque Music_Car

Se encuentra dentro de la sección Mbit_robot. Este bloque reproduce la melodía seleccionada. Hay 20 melodías disponibles.

Sección Music

Agrupa un conjunto de bloques que para crear tus propias melodías.

Bloque Play Tone

Se encuentra dentro de la sección Music y permite la reproducción de notas musicales que nosotros seleccionemos.


Ejemplos de programación

1. Reproducir la melodía de cumpleaños feliz

Podríamos componer nuestra propia melodía «cumpleaños feliz»

LEDS RGB SMD

OBJETIVO

El coche microbit incluye en su parte delantera 3 LEDs RGB de tipo SMD que pueden iluminarse con luces de diferentes colores. A continuación veremos los bloques necesarios para su programación

BLOQUES

Sección Neopixel

En esta sección encontraremos los bloques necesarios para la programación de los 3 LEDs RGB incorporados en el frontal del coche

Estructura de LEDs

Dentro de la sección Mbit_robot encontraremos el bloque RGB Car Program que utilizaremos para gestionar los 3 LEDs RGB

Bloque set pixel color

Pertenece a la sección Neopixel y su función es configurar el color de la luz de cada uno de los 3 RGBs de la placa. 

Para poder utilizarla con los LEDs RGB del coche, en lugar de strip, utilizaremos el bloque RGB Car Program que se encuentra en la sección Mbit_Robot.

Bloque Show

Una vez configurado el color del LED RGB SMD, utilizaremos este bloque para encender el LED. No olvides incluir la estructura RGB Car Program en lugar de strip

Bloque clear

Apaga los LEDS RGB SMD de la estructura de LEDs RGB Car Program


PROGRAMACIÓN

1. Enciende cada LED de un color diferente

Utilizaremos el bloque set pixel color

Para encender un led, indicaremos el número del LED (0, 1, 2) y el color de la luz (seleccionar desde el desplegable).

Una vez configurado el color, con el bloque Show encenderemos el LED del color seleccionado.

2. Parpadeo de un LED

Para conseguir que uno de estos 3 LEDs RGB parpadee, utiliizamos los bloques show y clear.