Lewati ke konten
Bahasa Indonesia
Ini adalah dokumentasi untuk Erebus v26, yang bukan lagi versi terbaru.Lihat dokumentasi terbaru

Sensor jarak

Sensor jarak mengukur jarak, dalam meter, ke benda pertama di depannya, hingga 0,8 m. Robot pemula punya tiga sensor: leftDist, frontDist, dan rightDist, yang menghadap ke kiri, depan, dan kanan.

Tiga sensor jarak dilihat dari atas, menghadap ke kiri, depan, dan kanan

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")

Lebar satu ubin adalah 12 cm, jadi saat robot berada di tengah ubin, dinding di sampingnya berjarak sekitar 5 cm. Program ini memeriksa ketiga sensor, lalu mencetak sensor mana yang melihat dinding:

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)

Sensor mengukur dari posisinya di robot, bukan dari tengah robot. Cetak nilainya saat robot berada di dekat dinding untuk menentukan nilai ambangmu sendiri.