Sensores infrarrojos

Introducción

Robobo cuenta con varios infrarrojos que le permiten detectar si hay objetos cerca: cinco en la parte delantera y tres en la parte trasera. Cuanto más altos sean los valores devueltos por un infrarrojo, más cerca estarán los objetos de alrededor.

Elementos de programación

1. Enumerado IR

Representa la lista de infrarrojos de la base de Robobo, que se corresponden con la imagen siguiente:

          • BackR: ‘Back-R’. Trasero derecho.
          • BackC: ‘Back-C’. Trasero central.
          • FrontR: ‘Front-R’. Frontal derecho medio.
          • FrontRR: ‘Front-RR’. Frontal derecho extremo.
          • FrontC: ‘Front-C’. Frontal central.
          • FrontL: ‘Front-L’. Frontal izquierdo medio.
          • FrontLL: ‘Front-LL’. Frontal izquierdo extremo.
          • BackL: ‘Back-L’. Trasero izquierdo.

2. Método readIRSensor

readIRSensor()
Lee el valor medido por el sensor infrarrojo indicado.

Parámetros:
id (IR): El sensor del que se quiere obtener el valor. Ver Enumerado IR.

Devuelve:
• Valor medido (int). Los valores son positivos. Cuanto mayor es el valor devuelto, menor es la distancia a la que se encuentra el objeto detectado. Este valor también depende de condiciones ambientales, como la iluminación.

Ejemplo de Uso

El siguiente programa hace que Robobo se mueva hacia delante hasta que encuentre un obstáculo cercano en el sensor delantero central (el valor de 100 es orientativo, y debe ser ajustado al nivel de luz y al tipo de objeto a detectar). Cuando eso ocurre, se mueve hacia atrás durante 1 segundo para separarse del obstáculo, luego gira en el sitio 180º aproximadamente y, finalmente, se mueve en dirección contraria durante 2 segundos.

from robobopy.Robobo import Robobo
from robobopy.utils.IR import IR

rob = Robobo("localhost")
rob.connect()

rob.moveWheels(30,30)

while rob.readIRSensor(IR.FrontC) < 100:
    rob.wait(0.1)

rob.moveWheelsByTime(-20,-20,1)
rob.moveWheelsByTime(28,-28,1)
rob.moveWheelsByTime(30,30,2)

3. Método readAllIRSensor

readAllIRSensor()

Lee el valor de todos los sensores infrarrojos.

Devuelve:
• Valores medidos (dict): Es un diccionario con los valores medidos por todos los sensores IR de la base.
Las claves del diccionario son de tipo string e indican el sensor IR correspondiente (ver Enumerado IR).
Los valores del diccionario son de tipo int e indican el valor medido por el IR correspondiente.

Ejemplo de Uso

El siguiente programa hace que Robobo se mueva hacia adelante hasta que encuentra un obstáculo cercano en el sensor delantero central (el valor de 100 es orientativo, y debe ser ajustado al nivel de luz y al tipo de objeto a detectar). Cuando eso ocurre, se para.

from robobopy.Robobo import Robobo

rob = Robobo("localhost")
rob.connect()

rob.moveWheels(30,30)

while (rob.readAllIRSensor()==[]):
    rob.wait(0.1)

while rob.readAllIRSensor()['Front-C'] < 100:
    rob.wait(0.1)

rob.stopMotors()
Robobo
Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.