Q-Scout y sus sensores

Sitio: Campus Virtual
Curso: Curso: Creando con Q-Scout: Programación y Robótica - Nivel 2-CAPITAL
Libro: Q-Scout y sus sensores
Imprimido por: Invitado
Día: jueves, 19 de septiembre de 2024, 19:42

1. Introducción

En este curso de robótica educativa, vamos a profundizar en el uso del kit educativo Q-Scout y su arquitectura, así como en su programación en el entorno de programación en bloque MyQode. Durante el nivel I, aprendimos a programar al robot para ejecutar una serie de instrucciones básicas, cómo avanzar, girar, tocar notas, cambiar luces y repetir acciones. Sin embargo, en ese nivel, nuestro Q-Scout se limitaba a seguir órdenes sin tener en cuenta su entorno o tomar decisiones autónomas.

En el nivel II, vamos a llevar nuestra programación al siguiente nivel al enseñarle al robot a percibir su entorno utilizando sus sensores de ultrasonido e infrarrojos, lo que le permitirá detectar obstáculos y seguir líneas. Con estas nuevas habilidades, podremos desarrollar proyectos más complejos y prácticos para los estudiantes.

Por último, veremos cómo podemos utilizar estas habilidades en la elaboración de propuestas educativas que estimulen el aprendizaje y el desarrollo de habilidades valiosas como el trabajo en equipo, el pensamiento crítico, la resolución de problemas y la comunicación. Este curso será una experiencia divertida e interactiva que te permitirá aprender nuevas habilidades y técnicas de enseñanza que podrás aplicar en tu salón de clases. ¡Bienvenidos!

2. Recordando un poco

Nuestro robot

El Q-Scout es un conjunto de herramientas de robótica educativa diseñado para estudiantes de nivel primario. Cuenta con una estructura metálica a la que se pueden añadir diversas piezas de expansión, como vigas, placas y sensores adicionales, lo que permite una amplia variedad de actividades para los estudiantes.

El kit incluye varios componentes, como un sensor ultrasónico, luces programables RGB, un sensor seguidor de línea y un zumbador incorporado en la placa Q-Mind. 



Nuesto entorno de Programación: MyQode

Para programar el Q-Scout, se utiliza MyQode, que está basado en Scratch 3.0. Este programa ofrece una interfaz intuitiva que permite a los estudiantes programar fácilmente mediante el uso de bloques que se arrastran y sueltan.


Nuestros programas

Todo programa en MyQode empieza con el bloque “Comenzar” y debajo van todos los demás bloques que conformarán nuestro programa.


.




4. Ahora empecemos con lo nuevo: Los sensores

Los sensores robóticos se utilizan para estimar la condición y el entorno de un robot. Estas señales se pasan a un controlador para permitir el comportamiento apropiado. Los sensores en robots se basan en las funciones de los órganos sensoriales humanos. 

Físicamente nuestro robot tiene la posibilidad de percibir su entorno por medio de dos (se pueden comprar otros más), un sensor ultrasónico y un sensor seguidor de líneas. 

El sensor ultrasónico


El sensor ultrasónico es un componente esencial del kit de robótica educativa Q-Scout. Este módulo permite detectar la distancia entre el robot y un objeto utilizando ondas ultrasónicas. Al emitir ondas ultrasónicas, el sensor puede percibir el entorno y recibir las ondas que se reflejan de los objetos cercanos. Y mediante un cálculo poder establecer la distancia a la que se encuentra un objeto. 


Los datos obtenidos por el sensor ultrasónico se pueden utilizar en una rutina de programación para realizar diversas tareas. Por ejemplo, podemos programar el robot para que evite obstáculos automáticamente al detectar objetos cercanos. 

El sensor ultrasónico se conecta a la placa Q-Mind utilizando un Cable RJ45 de 120 mm, lo que lo hace fácilmente integrable en el kit de robótica Q-Scout. Además, la placa Q-Mind también cuenta con un zumbador incorporado que se puede utilizar junto con el sensor ultrasónico para crear diferentes señales de alerta y retroalimentación para el usuario. 

El sensor infrarrojo

El sensor seguidor de línea es otro de los componentes fundamentales del kit de robótica educativa Q-Scout. Este módulo permite al robot detectar líneas negras sobre un fondo blanco o viceversa, lo que lo hace ideal para proyectos de robótica que involucren el seguimiento de líneas en pistas específicas

El sensor seguidor de línea está formado por dos pares de sensores de luz infrarroja, cada uno compuesto por un LED emisor y un LED receptor. Al emitir luz infrarroja y medir la cantidad de luz que se refleja, el sensor puede detectar la diferencia de contraste entre la línea y el fondo y enviar señales a la placa Q-Mind para que el robot ajuste su trayectoria.


La conexión del sensor seguidor de línea a la placa Q-Mind se realiza mediante un Cable RJ45 de 120 mm, lo que lo hace fácilmente integrable en el kit de robótica Q-Scout. Además, los estudiantes pueden programar el Q-Scout utilizando MyQode para desarrollar rutinas que permitan al robot seguir líneas específicas, cambiar de dirección y evitar obstáculos.

En resumen, el sensor seguidor de línea es un componente clave del kit de robótica Q-Scout que permite a los estudiantes explorar conceptos de robótica avanzados, como la percepción sensorial, la retroalimentación y el control de movimiento. Con el sensor seguidor de línea, los estudiantes pueden crear proyectos emocionantes y divertidos que les permiten desarrollar habilidades en programación, robótica y STEAM.

4.1. Bloques condicionales de programación: ¿Cómo hacemos que tome decisiones?

Para que nuestro Q-Scout pueda tomar una decisión en función de lo que percibe por medio de sus sensores, es necesario utilizar unos bloques llamados condicionales. Estos bloques requieren de que el programador defina una condición para que se ejecute una serie de instrucciones que se encuentran dentro del bloque condicional. 

Este bloque como resultado de evaluar una condición puede obtener como resultado (valores lógicos o booleanos)  un verdadero o un falso. En el caso de que resulte verdadero se va a ejecutar las instrucciones dentro del bloque condicional, si la evaluación de la condición resultara ser falsa no se ejecutaría el conjunto de instrucciones dentro del bloque condicional y se pasaría directamente al próximo bloque que se encuentra debajo.  

Vamos con un ejemplo para que se entienda mejor. 

Este programa se puede interpretar de la siguiente manera: El Q-Scout va a avanzar y luego se preguntará ¿el valor que me indica el sensor ultrasónico (recordemos que es la distancia a la que se encuentra un obstáculo frente a él) es menor a 10 (nos referimos a centímetros)? Si la respuesta a esa pregunta resulta ser que sí (verdadero), entonces el robot se va a detener y tocar una nota (seria como un aviso). Ahora bien, si la respuesta a la pregunta resultaràáser que no (falso), entonces el Q-Scout ignoraria a los bloques (detener movimiento y tocar nota) dentro del bloque condicional y seguiría con la intruciòn o bloque que sigue, en este caso el de girar a la derecha. Y como todo está dentro de un bloque de repetir por siempre, el proceso se vuelve a repetir indefinidamente. 

Bloques condicionales

Antes de iniciar juguemos un rato para entender mejor: 

https://pilasbloques.program.ar/online/#/desafio/242 

https://pilasbloques.program.ar/online/#/desafio/246 

Como pudimos apreciar hay dos bloques que le permiten decidir a Churrasco, los bloques condicionales, el simple y el doble o compuesto.

El simple es el que ya vimos y explicamos más arriba. 

Este evalúa una condición y solo en el caso de que resulte verdadera va a ejecutar los bloques que se encuentren dentro, y si fuera falso los va a ignorar. Ahora bien, ¿qué pasa si queremos que nuestro amigo robótico tenga la posibilidad de hacer dos cosas diferentes o de seguir uno de dos caminos posibles en función de la evaluación de una condición?. Para ello necesitamos utilizar el bloque de condiciòn doble o compuesto. 

En este caso, el bloque va a evaluar la condición y de resultar verdadera va a ejecutar un conjunto de bloques o de instrucciones y sino (es decir, falso) va a ejecutar otro conjunto de bloques o instrucciones. Veamos un ejemplo.

Este programa se puede interpretar de la siguiente manera: El Q-Scout va a avanzar y luego se preguntará ¿el valor que me indica el sensor ultrasónico (recordemos que es la distancia a la que se encuentra un obstáculo frente a él) es menor a 10 (nos referimos a centímetros)? Si la respuesta a esa pregunta resulta ser que sí (verdadero), entonces el robot se va a detener y tocar una nota (seria como un aviso). Ahora bien, si la respuesta a la pregunta resultara ser que no (falso), entonces el Q-Scout realizaría lo definido en la otra parte del bloque condicional, en este caso, girar a la derecha. Y como todo está dentro de un bloque de repetir por siempre, el proceso se vuelve a repetir indefinidamente. 

Bloques condicionales anidados

Los bloques condicionales anidados consisten en tener una instrucción condicional dentro de otra, es decir, dependiendo de la veracidad o falsedad de la primera condición se deriva otra condición. De esta manera nos queda una condición dentro de otra.

¿Cómo hacemos para que nuestro Q-Scout tenga la posibilidad de seguir más de dos caminos?

Podemos incluir un bloque condicional dentro de otro de esta forma el Q-Scout tendría tres posibilidades. A esto se llama anidamiento

 Veamos un ejemplo: 

Aqui vemos que si un valor es mayor a cero prenderà la luz de color rojo, que si es menor que cero prenderá la luz de color amarilla y sino es mayor ni menor a cero entonces es igual a cero y entonces prenderá la de color verde. 

Si quisiéramos que nuestro amigo robótico tenga más de tres posibles caminos a seguir solo tendríamos que añadir otro bloque condicional compuesto dentro de el último. 

Si tienes problemas para comprender la lógica del anidamiento puedes armar las diferentes condiciones de forma separada utilizando el bloque condicional simple. 

Operadores

Como pudiste notar en las condiciones de los programas de ejemplos se utilizó un bloque con esta forma , el mismo se utiliza para comparar o relacionar un valor con otro y poder definir si el primer valor es menor que el segundo valor. Esta relación o comparación puede resultar verdadera o falsa. 

Para poder acceder a los bloques operadores debemos ir al área de “bloques de construcción” y dentro de la sección llamada “operadores” y dentro nos vamos a encontrar con los siguientes: 

Los primero son los llamados operadores aritméticos y son los utilizados para operar valores numéricos, es decir, para sumarlos, restarlos, dividirlos y multiplicarlos. 

El segundo grupo corresponde a los operadores relacionales, como su nombre indica sirven para establecer relaciones entre valores. Con ellos podemos decir si un valor es menor, mayor o igual a otro. 

Por último, en el tercer grupo encontramos los operadores lógicos y nos van a servir para trabajar con las condiciones dentro de los bloques condicionales en principio.

El operador "Y" se utiliza para unir dos bloques booleanos y ambos deben ser verdaderos para que el resultado sea verdadero. Si solo uno o ninguno de los bloques es verdadero, el resultado será falso. Este operador se puede apilar para probar múltiples condiciones.

El operador "O" devuelve verdadero si al menos una de las condiciones es verdadera. Si ninguna de las condiciones es verdadera, el resultado será falso. Este operador también se puede apilar para probar múltiples condiciones.

El operador "NO" invierte el valor booleano de la entrada, devolviendo el valor opuesto. En este curso no utilizaremos este operador…por el momento.


4.2. Sensor ultrasónico y los bloques condicionales

Los bloques de programación que necesitaremos para utilizar este sensor lo encontraremos en el área de “bloques de construcción” y dentro de la sección llamada “sensores”. Allí encontraremos el bloque “valor de sensor ultrasónico (cm) del puerto 1” (el valor del puerto debemos cambiarlo en función de donde hayamos conectado nuestro sensor en la placa de nuestro robot. 


Este sensor nos arroja un valor en cm que corresponde a la distancia en la que se encuentra un objeto u obstáculo frente a él. 

Condiciones para utilizar el sensor ultrasónico

Como ya sabemos el sensor ultrasónico mide la distancia (en centímetros) que hay entre nuestro robot y un obstáculo enfrente de èl, y que hay un bloque específico que almacena ese valor . Podemos comparar ese valor con cualquier otro que definamos y según necesitemos. 

Podemos preguntar si la distancia a la que está el obstáculo es mayor, menor e igual a 10 cm y como resultado de cualquiera podemos tener dos posibles valores (verdadero o falso). 

Ahora ¿cómo hacemos si queremos establecer rangos de distancias?. Muy fácil, combinamos operadores relacionales y lógicos. Por ejemplo, si queremos establecer un rango de distancias entre 10 y 20, lo tenemos que hacer de la siguiente manera.

Este rango está conformado por las distancias mayores a 10 y menores a 20. Es decir, que si el valor que arroja el sensor es 15 el resultado de esa combinaciòn seria VERDADERO, ahora bien, si arrojarà 23 el resultado sería FALSO. 

Ahora eso que aprendimos lo vamos a utilizar en los bloques condicionales. 

Esto se interpreta de la siguiente forma: 

SI LA DISTANCIA A LA QUE SE ENCUENTRA EL OBSTÁCULO ESTÁ ENTRE 10 Y 20 CM ENTONCES QUE VAYA HACIA ADELANTE Y SINO QUE SE DETENGA. 

4.3. Sensor siguelíneas y los boques condicionales

Como ya se dijo anteriormente, el sensor siguelìneas nos sirve para que nuestro robot pueda detectar líneas negras sobre un fondo blanco o viceversa, lo que lo hace ideal para proyectos de robótica que involucren el seguimiento de líneas en pistas específicas.

En este caso es más fácil escribir las condiciones ya que en la versión para PC nos vamos a limitar a utilizar el siguiente bloque.

Vamos a suponer que tenemos un escenario blanco con una línea negra para que siga nuestro auto robótico. 

Ante este escenario se nos puede presentar 4 situaciones: 

  1. Que ambos sensores infrarrojos detecten que están sobre la línea negra. En este caso nuestro robot debe seguir avanzando. 

  1. Que el sensor derecho detecte que está sobre la superficie blanca y el sensor izquierdo sobre la línea negra. En este caso nuestro robot debe girar levemente hacia la izquierda para mantenerse en el camino. 

  1. Que el sensor derecho detecte que está sobre la línea negra y el sensor izquierdo sobre la superficie blanca. En este caso nuestro robot debe girar levemente hacia la derecha para mantenerse en el camino. 

  1. Que ambos sensores infrarrojos detecten que están sobre la superficie blanca.  En este caso nuestro robot se debe detener para que una persona lo vuelva a colocar sobre el camino. 

Un programa básico para que el robot siga la línea podrían ser el siguiente:

Anidando bloques condicionales

Sin anidamiento de bloques condicionales

Pero si tenemos que trabajar desde el celular no tendremos ese magnífico bloque. Para poder utilizar el sensor siguelineas tendremos que ocupar el bloque “Valor del sensor siguelineas del puerto 2” que lo encontraremos dentro de la sección de sensores. 


Este bloque puede tomar cuatro posibles valores según lo detecte el sensor (recordar que está compuesto por dos pares de sensores infrarrojos). Estos pares nos permiten 4 alternativas de detección a ser programadas:

0 - Ambos pares detectan negro.

1- El par izquierdo detecta negro y el derecho blanco.

2- El par derecho detecta negro y el izquierdo blanco.

3- Ambos pares detectan blanco.

La programaciòn quedaría de la siguiente forma:

Anidando bloques condicionales

Sin anidar bloques condicionales




5. Nuevas capacidades requieren de nuevos escenarios

Los escenarios iniciales para nuestro querido Q-Scout se limitaban a vectores y matrices por los cuales se debían ir moviendo paso por paso. Además, la longitud de los pasos estaba determinada por la velocidad y el tiempo durante los cuales hacíamos girar sus motores. 

Un paso estaba determinado por: 

Para los nuevos escenarios es importante seguir teniendo en cuenta esto. El Q-Scout debe ir avanzando de a pequeños pasos para no tomar mucha fuerza y salirse del camino.

Los escenarios iniciales: 

Ahora que hemos crecido y desarrollado nuestras capacidades, así como nuestro robot, y también hemos adquirido mucha práctica, podemos experimentar con escenarios más flexibles y menos estructurados.

Los nuevos escenarios se van a caracterizar por presentar: 

  1. Obstáculos para que nuestro Q-Scout tenga la oportunidad de percibirlos y decidir  que hacer frente a ellos (claro que tu lo programas antes). 

  2. Seguir un camino indicado por una línea blanca o negra en escenarios oscuros o blancos respectivamente. 

  3. La complejidad de los mismos va a estar determinada por la extensión, curvatura y cantidad de obstáculos que presente el escenario. 

Algunos ejemplos de ellos son: 


¿Algo más que deba saber?

Como habrás notado los escenarios vistos antes y los de ahora difieren principalmente en la cantidad de pasos que debe dar nuestro auto para completar el desafío propuesto. y sin salirse de los límites del mismo. 

En el primer escenario teníamos que definir la cantidad de pasos (cuadros) que debía realizar nuestro Q-Scout pero en el segundo escenario no está claro cuántos pasos debe realizar ya que debe seguir líneas de longitudes y formas variables. El escenario elegido va a influir en el bloque de repetición que debemos implementar. 

Para escenarios como el primero debemos utilizar estructuras que repitan instrucciones un número determinado de veces. ¡Ojo! Esto no quita que podamos usar estas estructuras en los otros escenarios. 

Sin embargo, en los nuevos escenarios para la programación vamos a utilizar un bloque que repite instrucciones un número indeterminado de veces. 


6. A practicar un poco

Actividades Prácticas con el Sensor ultrasónico

Para el desarrollo de las actividades  hay que recordar lo que ya aprendimos  y pusimos en práctica durante el curso anterior. 

Para esta práctica van a tener que buscar un obstáculo que por lo menos tenga unos 20 cm de alto y 15 de ancho para que pueda ser captado por nuestro sensor ultrasónico. Luego, arma el siguiente escenario. 

Después, diseñá los programas para cada una de las actividades propuestas a continuación. 

Actividad nº 1: Haz que el robot avance hasta que esté a una distancia menor a 20 cm del obstáculo y luego se detenga.

Actividad nº 2: Haz que el robot avance y que mientras la distancia al obstáculo sea mayor a 20 cm prenda su leds de color verde. Y en caso contrario que prenda sus led de color rojo, toque una nota y se detenga. 

Actividades Prácticas con el Sensor Siguelineas

Arma los escenarios propuestos y programa al Q-Scout para que supere los desafíos propuestos. Recordá que el auto sigue líneas negras en fondos blancos o bien líneas blancas en fondos oscuros o negros. Tenlo en cuenta a la hora de armar el escenario y programar. 

Para realizar estas actividades ten encuesta la siguiente tabla: 

Valor del sensor siguelineas

Significado

Ambos pares detectan negro

El par izquierdo detecta negro y el derecho blanco

El par derecho detecta negro y el izquierdo blanco

Ambos pares detectan blanco


Actividad 1: Aquí debemos programar al auto para que siga una línea blanca.


Actividad nº 2: Aquí debemos programar al auto para que siga una línea negra.

Actividad  Integradora

Programá al Q-Scout para que siga una línea indefinidamente hasta que coloquemos un obstáculo a menos de 10 cm. Allí se deberá detener  y hasta que se quite el mismo.