Robot Maqueen para Micro:bit


 Maqueen es un kit de robótica ideal programable con la placa micro:bit (no incluida) para iniciarse en la programación gráfica y la robótica móvil trabajando las STEM y se combina con la versatilidad y la sencillez de micro:bit. El reducido tamaño del chásis, el acabado de buena calidad, las multiples prestaciones integradas y el que sea plug-and-play ayudan a captar inmediatamente la atención fomentando su curiosidad e interés por la ciencia y el pensamiento lógico.

Viene totalmente montado a falta de conectar las ruedas y las pilas, por lo tanto no es necesario soldar y se puede poner a funcionar en pocos minutos con los códigos de ejemplo. Es necesario pinchar una placa micro:bit para poder utilizar el robot. La misma placa también ofrecerá la posibilidad de usar sus diversos sensores e inventar diferentes juegos. Se programa directamente con el entorno visual Makecode de Microsoft. Es adecuado para niños con edad a partir de 8 Años.

Conoce tu nuevo micro: Maqueen

Aquí vienen todas las cosas que hacen al Maqueen algo genial.


  1. Sensor de línea: 2 sensores digitales blanco y negro (Niveles alto y bajo)
  2. Buzzer: Tonos y música para tu proyecto
  3. Infrarrojo: Receptor infrarrojo para controlar tu Maqueen (Decodificador NEC)
  4. LEDs indicadores frontales: 2 LEDs color rojo difuso
  5. LEDs RGB multicolor de ambiente: 4 LEDs capaces de hacer hasta 16 millones de colores
  6. Sensor de distancia ultrasónico: 1SR04, SR04P (5V)
  7. Conector para comunicación I2C: sólo funciona con 3.3V
  8. Puertos para servomotor: 2 líneas
  9. Conector para pines digitales multipropósito
  10. Conector para micro:bit

Características:

  •  Alimentación: 3.5V a 5V DC ( Necesita 3 pilas AAA - No incluidas )
  •  2 Sensores de infrarrojo
  •  1 Zumbador
  •  Receptor infrarrojo (NEC decoder)
  •  2 Luces LED programables
  •  4 LEDs RGB programables
  •  Sensor de distancia SR04
  •  Conector I2C para expansiones
  •  2 motores N20 metálicos con reductora de 1:150
  •  Máxima revoluciones: 133 RPM
  •  Control de motores variable por PWM
  •  Funda protectora para lo smotores con tonrillos M3
  •  Programación: Entorno gráfico Makecode
  •  Dimensiones: 81 x 85 x 44mm
  •  Peso: 75.55 gramos
  •  Voltaje de alimentación: 3.5V a 5V DC (Tres pilas AAA o una batería de lítio 3V a 3.7V).
  • Interfaces Gravity (P1, P2)
  • 2 Micro-motores de engranajes de metal con relación 1:150, 133rpm, controlados por PWM
  • Brackets para los motores con insertos M3
  • Dimensiones: 81mm x 85mm x 44mm/3.19in x 3.35in x 1.73in
  • Masa: 75.55gr

 Fuente:330ohms

 

 

Robot seguidor de luz

El reto consiste en que le robot persiga una fuente luminosa a partir de cierto umbral de luz. Recordamos que el sensor de luz de la micro:bit se encuentra en la matriz de leds.


 

Robot evita obstáculos

El reto consiste en que el robot evite obstáculos que estén a menos de 20 cm del mismo. Además cuando los evita lo hará aleatoriamente a derechas o izquierdas.



Robot seguidor de líneas

El reto consiste en hacer un siguelíneas negras, las líneas del circuito deben ser más anchas que la distancia entre los sensores infrarrojos de suelo del robot.


 

Control de motores

Se trata que el robot haga la siguiente secuencia de movimiento de forma indefinida:

  •     Adelante durante 1 segundo.
  •     Derecha durante 1 segundo.
  •     Izquierda durante 1 segundo.
  •     Atrás durante 1 segundo.


Dado gráfico

Un proyecto con dados que usa el patrón de puntitos de un dado en lugar de números.


 

Agita tu micro:bit para generar números aleatorios.

Este programa usa el acelerómetro del micro:bit para hacer que ocurra algo al agitarlo. Iniciar la creación de un número aleatorio entre 1 y 6 y mostrarlo en la pantalla LED.


En lugar de mostrar el número, este programa usa selección para mostrar puntos en la pantalla que, igual que los dados de verdad, representan el número que ha sido generado.

Cuando agitas el micro:bit, el programa genera un número aleatorio entre 1 y 6 y lo muestra en la pantalla LED.

 Descargar HEX

 

Funciones para controlar el moviento de un robot


 


 

Cuando se construyen robot móviles, se debe conseguir que se muevan lentamente, para que cuando el sensor correspondiente detecta la variable de entorno, el robot tenga tiempo de reaccionar y realice la acción de control. Si el robot se mueve muy rápido, puede ocurrir que, aunque detecte la variable, no le dé tiempo a reaccionar.

La forma más sencilla de controlar los cambios de dirección en un robot es disponer de dos motores independientes y una rueda loca. De esta manera  se pueden hacer cambios de dirección actuando sobre el sentido de giro de los motores.


Cómo se mueve un robot

Cuando las dos ruedas giran en el mismo sentido y misma velocidad, el robot avanza en línea recta.

Cuando las dos ruedas giran en el mismo sentido y distinta velocidad, el robot gira suavemente.



 

Si solo se hace girar una rueda el robot gira bruscamente deslizándose sobre la otra rueda.


 

Si las dos ruedas giran en distinta dirección y la misma velocidad, el robot gira bruscamente sobre el centro del eje.

 

Para controlar el movimiento de los motores vamos a utilizar el driver L293D .

Usaremos una serie de variables para definir los pines desde los que se controlan los motores. El control de sus velocidades requiere de pines digitales PWM.

En total vamos a necesitar seis pines, dos de ellos PWM, para controlar el funcionamiento del robot.

Pero dado que los motores que vamos a usar en el taller  hemos llegado a la conclusión que es más efectivo para el funcionamiento de nuestro robot el conectar los pines EA y EB, a +5 v y controlar solo el sentido de giro del motor, lo cual nos simplifica el funcionamiento del robot.

En la función setup() definimos si los pines van a ser entradas o salida.

pinMode(pinI1, OUTPUT);

pinMode(pinI2, OUTPUT);

pinMode(pinI3, OUTPUT);

pinMode(pinI4,OUTPUT);


Programamos el control de velocidad de los motores

Para controlar la velocidad y el sentido de giro de los motores de nuestro robot, vamos a definir siguientes funciones: GirarDerecha(), GirarIzquierda(), Avanzar() yRetroceder(). Cada una de ellas tiene un par de argumentos: la velocidad del motor (entre 0 y 255) y el sentido de giro.


1-. Giro violento hacia la IZQUIERDA


void GirarDerecha()

{

digitalWrite(pinI1, LOW);

digitalWrite(pinI2,HIGH);

digitalWrite(pinI3, LOW);

digitalWrite(pinI4,LOW);

}



2.- Gira a la DERECHA

void GirarIzquierda()

{

digitalWrite(pinI1, LOW);

digitalWrite(pinI2,LOW);

digitalWrite(pinI3, HIGH);

digitalWrite(pinI4,LOW);

}



3.- Avanza hacia adelante

void Avanzar()

{

digitalWrite(pinI1, HIGH);

digitalWrite(pinI2,LOW);

digitalWrite(pinI3, HIGH);

digitalWrite(pinI4,LOW);
}


4.- Retroceder

void Retroceder()

{

digitalWrite(pinI1, LOW);

digitalWrite(pinI2,HIGH);

digitalWrite(pinI3, LOW);

digitalWrite(pinI4,HIGH);
}


5.- Parar

void Parar()

{

digitalWrite(pinI1,LOW);

digitalWrite(pinI2,LOW);

digitalWrite(pinI3, LOW);

digitalWrite(pinI4,LOW);
}