{% load static %} {% load i18n %}

{% trans "Sigue Lineas IR Poli-Robot en Python" %}

{% trans "Tiempo de estudio" %} {% trans "Dificultad" %}
2 {% trans "horas" %}

{% trans "Contenido" %}


{% trans "1 -Qué vas a aprender en esta unidad" %}

{% trans "En este ejercicio deberás programar nuestro robot GoPiGo para que sea capaz de seguir una línea negra pintada sobre un suelo blanco. El GoPiGo debe ser programado de forma que utilice sus sensores para obtener información del entorno continuamente, y sus actuadores para ejecutar las acciones necesarias para poder ir siguiendo el trazado de la línea de acuerdo a la información obtenida por los sensores." %}

{% trans "Para lograr este objetivo vas a necesitar aprender:" %}

  1. {% trans "Qué son y cómo funcionan los sensores de infrarrojos" %}
  2. {% trans "Cuáles son las funciones que necesitamos para leer los sensores infrarrojos en Kibotics" %}
  3. {% trans "Cómo programar una toma de decisiones en python" %}

{% trans "En una primera fase programarás el GoPiGo simulado en un mundo 3D, para poder ensayar haciendo cambios a tu programa hasta que consigas que siga el trazado de la línea con facilidad. Tras completar con éxito la primera fase, estarás listo para probar tu programa en el robot GoPiGo real !!!" %}

{% trans "2. Los sensores de infrarrojos" %}

{% trans "Los sensores de infrarrojos son unos de los sensores imprescindibles en robótica. Además también vamos a poder encontrarlos en nuestro día a día." %}

2.1- {% trans "¿Qué es un sensor de infrarrojos?" %}

{% trans "Un sensor de infrarrojos es un detector de un tipo de luz que nuestro ojo no es capaz de ver que es la luz infrarroja. Como ya sabréis la luz del sol, en su espectro visible (es decir, lo que el ojo humano es capaz de ver), está compuesta de diferentes colores, los que vemos en el arcoiris. Cada color se caracteriza por una frecuencia diferente de la radiación solar." %}

{% trans "Sin embargo, el sol no sólo emite radiación en esas frecuencias que nosotros vemos. Un intervalo de esas frecuencias es el infrarrojo, que se llama así porque si la viésemos estaría antes del rojo en el arcoiris." %}

{% trans "Un sensor de infrarrojos del tipo de los que usamos en robótica suele estar formado por dos partes:" %}

  1. {% trans "Un LED que emite una luz infrarroja. Vamos a llamarlo emisor." %}
  2. {% trans "El sensor propiamente dicho, que al detectar luz infrarroja genera una corriente eléctrica. Lo llamaremos receptor." %}

{% trans 'El sensor funciona de la siguiente manera. El emisor está constamente emitiendo luz infrarroja. Si esa luz "rebota" contra alguna superfície el detector la recibe y envía una señal eléctrica. Así es cómo podemos detectar obstáculos.' %}

2.2- {% trans "Uso de los sensores infrarrojos" %}

{% trans "Los sensores de infrarrojos son muy económicos y sencillos de usar. ¡Están por todas partes!:" %}

2.3- {% trans "Detectando el color negro" %}

{% trans "Uno de los usos más típicos de los sensores infrarrojos en robótica es la detección del color negro. Vamos a entender por qué." %}

{% trans "Como decíamos anteriormente el detector de luz infrarroja detecta la luz infrarroja que emitió el emisor y que ha rebotado en un objeto. Cuando ese objeto es de color negro, esa luz infrarroja emitida es absorbida completamente por el objeto negro y por lo tanto no rebota nada y nuestro receptor no recibe luz. Para el sensor infrarrojo un objeto negro es equivalente a que no haya objeto." %}

{% trans "Puede parecernos un fenómeno extraño, sin embargo estamos acostumbrados a ello. Pensad en qué ocurre cuando en verano bajo el sol abrasador nos vestimos de negro, nuestra ropa absorbe todo el calor. No es una idea refrescante vestirse de negro en el calor del verano." %}

{% trans "Pues de la misma manera que nuestra ropa negra absorbe el calor del sol, la línea negra absorbe la radiación infrarroja y hace que el receptor de nuestro sensor no detecte nada." %}

2.4- {% trans "Detectando una línea negra con los sensores infrarrojos" %}

{% trans "Vamos a usar los 2 sensores de Infrarrojos (abreviado IR) que tiene el GoPiGo en su parte frontal apuntando al suelo, uno en la parte izquierda y otro en la parte derecha. Estos sensores son capaces de detectar si el suelo es oscuro (negro) o claro (blanco) por medio de la emisión/detección de rayos infrarrojos. Para ello, en el programa debes llamar a siguiente función:" %}

{% trans "Función" %} {% trans "Descripción" %}
{% trans "leer_ir()" %} {% trans "Lee los dos sensores de IR y nos devuelve un valor entre 0 y 3" %}

{% trans "El valor entre 0 y 3 que devuelve la función depende de las lecturas de los dos sensores de IR, de acuerdo a la siguiente tabla:" %}

{% trans "lectura IR izquierdo" %} {% trans "lectura IR derecho" %} {% trans "valor de leer_ir()" %}
{% trans "negro" %} {% trans "negro" %} 0
{% trans "negro" %} {% trans "blanco" %} 1
{% trans "blanco" %} {% trans "negro" %} 2
{% trans "blanco" %} {% trans "blanco" %} 3

{% trans "Estos cuatro valores que nos devuelve la función get_ir() se corresponden con las siguientes situaciones del PiBot con respecto a la línea negra:" %}

{% trans "valor = 0" %} {% trans "valor = 1" %} {% trans "valor = 2" %} {% trans "valor = 3" %}

{% trans "Más información: Píldora sensor IR" %}

{% trans "3 - Actuadores del GoPiGo a utilizar" %}

{% trans "Vamos a usar los motores que incorpora el GoPiGo (uno en cada rueda motriz) para hacer que se mueva según nuestras necesidades. Para ello, en el programa debes llamar a las siguientes funciones:" %}

{% trans "Función" %} {% trans "Descripción" %}
{% trans "avanzar" %}(v) {% trans "Hace que el GoPiGo avance en línea recta con una velocidad lineal igual a v expresada en metros/segundo" %}
{% trans "retroceder" %}(v) {% trans "Hace que el GoPiGo retroceda en línea recta con una velocidad lineal igual a v expresada en metros/segundo" %}
{% trans "girar_izquierda" %}(w) {% trans "Hace que el GoPiGo gire a la izquierda sobre su eje (sin avanzar) con una velocidad angular igual aw expresada en radianes/segundo" %}
{% trans "girar_derecha" %}(w) {% trans "Hace que el GoPiGo gire a la derecha sobre su eje (sin avanzar) con una velocidad angular igual aw expresada en radianes/segundo" %}

{% trans "NOTA:" %} {% trans "Recordamos que $2\pi$ radianes equivalen a 360 grados." %}

{% trans "Estas funciones se corresponden con los siguientes comportamientos del GoPiGo:" %}

{% trans "avanzar" %} {% trans "retroceder" %} {% trans "girar_izquierda" %} {% trans "girar_derecha" %}

{% trans "Disponemos también de una última función, no por ello menos importante:" %}

{% trans "Función" %} {% trans "Descripción" %}
{% trans "parar()" %} {% trans "Hace que el GoPiGo se detenga (si estaba avanzando, retrocediendo o girando)" %}

{% trans "4 - Programar una decisión" %}

{% trans "Uno de los elementos básicos de cualquier lenguaje de programación es la posibilidad de tomar una decisión en función de un valor que se calcula. En python podemos hacerlo con la instrucción if" %}


        {% trans "instrucción" %}
        if {% trans "condición:" %}
            {% trans "instrucción si se cumple la condición (True)" %}
        else:
            {% trans "instrucción si no se cumple la condición (False)" %}
        {% trans "instrucción" %}
        

{% trans "5 - Pistas para resolver el ejercicio" %}

{% trans "¿Puedes conseguir que el GoPiGo siga la línea negra? ¡Inténtalo, es divertido!" %}

{% trans "6 - Recopilando" %}

{% trans "Al terminar esta unidad ¡¡habrás programado uno de los comportamientos básicos de un robot: un siguelíneas!! Y habrás aprendido a trabajar con los sensores de infrarrojos y a programar tomas de decisiones en python." %}

{% trans "7 - ¿Sabías que...?" %}

{% trans "Nuestro ojo no puede percibir la luz infrarroja. Sin embargo las cámaras de los móviles sí suelen ser sensibles al espectro infrarrojo. Si enfocamos con la cámara del móvil un sensor de infrarrojo (que tenga emisor, claro) podemos ver en la imagen que se ve el emisor y la luz infrarroja, que la cámara del móvil pinta en color morado habitualmente." %}

{% trans "Haz la prueba y verás." %}

{% trans "8- Vídeo de ejemplo" %}

{% include "pills/python/ir_sensor_pill.html" %}