Pular para o conteúdo
Português (Brasil)

Sensor de distância

Um sensor de distância mede a distância, em metros, até o primeiro objeto à sua frente, até 0,8 m. O robô inicial tem três: leftDist, frontDist e rightDist, olhando para a esquerda, para a frente e para a direita.

Três sensores de distância vistos de cima, virados para a esquerda, para a frente e para a direita

from controller import Robot
robot = Robot()
timeStep = int(robot.getBasicTimeStep())
frontDist = robot.getDevice("frontDist") # Get the sensor by name
frontDist.enable(timeStep) # Enable it
while robot.step(timeStep) != -1:
print("Front:", round(frontDist.getValue(), 3), "m")

Um ladrilho tem 12 cm de largura, então, quando o robô está no meio de um ladrilho, uma parede ao seu lado fica a cerca de 5 cm. Este programa verifica os três sensores e mostra quais deles veem uma parede:

from controller import Robot
robot = Robot()
timeStep = int(robot.getBasicTimeStep())
# Keep the sensors in a dictionary, to use them by name
sensors = {}
for name in ["leftDist", "frontDist", "rightDist"]:
sensors[name] = robot.getDevice(name)
sensors[name].enable(timeStep)
WALL = 0.07 # Closer than 7 cm counts as a wall next to the robot
while robot.step(timeStep) != -1:
walls = [name for name, sensor in sensors.items() if sensor.getValue() < WALL]
print("Walls:", walls)

Os sensores medem a partir de onde estão no robô, não a partir do seu centro. Mostre os valores perto de uma parede para escolher os seus próprios limiares.