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: Devuelve: |
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: |
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()