Skip to main content

Lección 2: Uso de operadores de comparación

En esta lección, aprenderá sobre los operadores de comparación y su uso en un proyecto con datos del sensor de distancia. Luego, creará un proyecto que navegue el robot VR hasta la letra 'A' usando el sensor de distancia con bucles mientras y el operador mayor que (>). En el mini-reto, aplicarás estas habilidades para navegar desde el comienzo del laberinto de la pared hasta el número '1'.

Una vista de arriba hacia abajo del patio de recreo del laberinto de pared con el robot de realidad virtual en la ubicación inicial en la parte inferior central del patio de recreo. La letra A está directamente a la izquierda del robot, separada por una pared corta. El número 1 está hacia la esquina derecha del robot, separado por una pared vertical y horizontal.

Resultados de aprendizaje

  • Identifica que mayor que (>), menor que (<) e igual a (==) son operadores de comparación que comparan dos valores, conocidos como operandos.  
  • Identifique que el operador mayor que (>) compara dos valores e informa Verdadero si el valor izquierdo es mayor que el valor derecho.
  • Identifique que el operador menor que (<) compara dos valores e informa Verdadero si el valor izquierdo es menor que el valor derecho.
  • Identifique que los operadores mayor que (>) o menor que (<) informan un valor Verdadero o Falso cuando se usan como condición en un bucle while .
  • Describa cómo crear un proyecto que tenga un impulso de robot de realidad virtual hasta que el valor del sensor de distancia sea inferior a una cierta cantidad.

Operadores de comparación

Los operadores menor que (<), mayor que (>) e igual a (==) comparan dos valores, también conocidos como operandos. El valor a la izquierda del operador es el primer operando, y el valor a la derecha es el segundo operando. Los operadores informan valores booleanos y devuelven un valor verdadero cuando la comparación es correcta y falso cuando la comparación NO es correcta.

  • En estos ejemplos que utilizan el operador less than (<), cuando el enunciado es numéricamente correcto, informará True.A filas de menos de operadores: la fila superior dice 50 menos de 25 y está etiquetada como "informes falsos". La fila inferior dice 25 menos de 50 y está etiquetada como "informes verdaderos".
  • De manera similar, en estos ejemplos que usan el operador mayor que (>), la instrucción numéricamente correcta informará Verdadero.Para filas de más de operadores: la fila superior lee 50 más de 25 y está etiquetada como "informes verdaderos". La fila inferior dice 25 mayor que 50 y está etiquetada como "informes falsos".
  • El operador igual a (==) informa verdadero cuando los dos valores son exactamente iguales y falso cuando no lo son.A filas de igual a operadores: la fila superior dice 50 = = 50 y está etiquetada como "informes verdaderos". La fila inferior dice 25 = =  50 y está etiquetada como "informes falsos".
    • Tenga en cuenta que el signo de doble igual significa "igual a" y compara los dos valores. Un signo único igual es un operador de asignación que asigna un valor a una variable.

Los operadores de comparación pueden comparar decimales, enteros o comandos de informes numéricos.

Uso de operadores de comparación con datos de sensores de distancia

Los operadores de comparación son particularmente útiles cuando se utilizan datos numéricos de un sensor, como el sensor de distancia, para que el robot VR tome una decisión. En la unidad anterior, los datos del sensor de parachoques se utilizaron para hacer girar el robot VR cuando se pulsó el sensor de parachoques. Sin embargo, con un operador de comparación, podemos utilizar los datos del sensor de distancia para hacer que el robot VR gire en una ubicación más precisa. Esto es útil para evitar chocar contra las paredes o para hacer que el robot VR navegue a un lugar específico en un patio de recreo. 

Los datos del sensor de distancia se pueden utilizar como uno de los valores en el operador de comparación.

front_distance.get_distance(MM) > 50

Por ejemplo, si quisiéramos que el robot VR se dirigiera hacia un objeto, como una pared, y luego se detuviera cuando estuviera cerca del objeto, podríamos hacerlo usando un operador de comparación y la función get _distance. Esencialmente, le estamos pidiendo al robot VR que conduzca mientras la distancia entre el robot y el objeto es mayor que un valor umbral, como 50 milímetros (mm).Una vista de cerca del centro inferior del Wall Maze Playground, con el VR Robot en el cuadrado de inicio. Una flecha verde se extiende desde la parte frontal del robot hasta aproximadamente 50 mm desde la primera pared opuesta, lo que ilustra dónde la distancia de obtención superior a 50 mm se considera verdadera. Una flecha roja se extiende desde la parte frontal de la flecha verde hasta la pared, lo que ilustra dónde la distancia de obtención superior a 50 mm indica que es falsa.

Mientras que el sensor de distancia informa que está a  más de 50 milímetros (mm), o el valor es mayor que (>) 50, el robot VR puede conducir libremente. Cuando el sensor de distancia informa que está  más cerca de 50 milímetros (mm), o el valor no es mayor que (>) 50, el robot VR debe detenerse o girar antes de chocar con la pared. 

Para su información

Elegir qué operador de comparación utilizar puede ser una elección estilística. El operador mayor que (>) se utilizó en el ejemplo anterior para que el proyecto fuera lo más claro y legible posible. Mientras el robot VR esté a una distancia superior a 50 milímetros, conduzca hacia adelante. Podría lograr el mismo objetivo invirtiendo el orden de los valores en el operador y utilizando un operador menor que (<).

mientras que > 50  front_distance.get_distance(MM):

Aquí, el robot VR conduciría mientras 50 milímetros fuera mayor que el valor informado por el sensor de distancia. El robot VR realizaría el mismo comportamiento, sin embargo, el proyecto es un poco menos claro y legible. 

Dependiendo de los datos del sensor que esté utilizando, es posible que el operador igual a (==) no haga que el Robot VR funcione como pretendía. Por ejemplo, si el objetivo es que el robot VR se detenga a 50 milímetros de un objeto, puede pensar en usar el operador igual a (==).

while front_distance.get_distance(MM) == 50:

Sin embargo, en el laberinto de pared, por ejemplo, usar un operador igual a (==) con el sensor de distancia requeriría una lectura tan precisa del sensor, que sería exactamente de 50 milímetros, que la velocidad del robot VR haría casi imposible obtener ese nivel de precisión en tiempo real. Por lo tanto, es probable que el VR Robot continúe conduciendo más allá del umbral porque, ya sea que informe un valor de 100 milímetros o 25 milímetros, ninguno de ellos es igual a 50 mm, por lo que el operador nunca informa como Verdadero. 

Los operadores de comparación y el problema del laberinto de pared

Se puede utilizar un bucle while con operadores de comparación y el sensor de distancia, de modo que el robot VR verifique continuamente los datos del sensor y evalúe la comparación. Esto puede permitir que el robot VR realice un comportamiento mientras un valor está por encima o por debajo de un cierto umbral. En el laberinto de pared, el resultado deseado es que el robot VR avance mientras el sensor de distancia está a más de 50 milímetros (mm) de la pared. Luego, debe detenerse o girar para continuar a través del laberinto.

def main():
    while front_distance.get_distance(MM) > 50:
        drivetrain.drive(FORWARD)
        wait(5, MSEC)
    drivetrain.stop()

En este ejemplo de videoclip, el bucle mientras en el proyecto que se muestra a la izquierda mantendrá al robot VR avanzando desde la ubicación de inicio, siempre que se cumpla la condición y la distancia entre el robot VR y el objeto más cercano (la primera pared opuesta) se informe como mayor a 50 milímetros (mm). El robot se detiene cuando se acerca a la primera pared y la distancia informada es inferior a 50 mm.

Archivo de vídeo

Esta imagen explica el flujo del proyecto anterior:

  • Mientras el sensor de distancia esté a más de 50 milímetros (mm) de la pared, el operador informa Verdadero y permanece en el bucle mientras
  • Cuando está a menos de 50 milímetros (mm) de la pared, el operador informa Falso y sale del bucle while .

Diagrama de flujo del proyecto del bucle while en el proyecto anterior. El bucle while continuará funcionando cuando la distancia desde la pared sea superior a 50 mm, y esa condición sea cierta, lo que hará que el robot avance. Cuando la distancia de la pared no es mayor a 50, la condición informa falso, y el proyecto existe el bucle while, haciendo que el robot deje de conducir.

Seleccione el botón Siguiente para continuar con el resto de esta lección.