Blog chmura tagów
Szukaj drogi (EdPy)
Szukaj drogi (EdPy)

Jak zwykle zaczynamy od zmiany sposobu określania odległości:

Ed.DistanceUnits = Ed.TIME

Następnie w nieskończonej pętli włączamy czujnik wykrywania przeszkód i każemy robotowi jechać do przodu ze średnią prędkością:

while True:
    Ed.ObstacleDetectionBeam(Ed.ON)
    Ed.Drive(Ed.FORWARD, Ed.SPEED_5, Ed.DISTANCE_UNLIMITED)

Przeszkodę wykrywamy za pomocą odpowiedniego instrukcji warunkowej:

    if Ed.ReadObstacleDetection() == Ed.OBSTACLE_AHEAD:

W podporządkowanym bloku umieszczamy instrukcje opisujące zachowanie robota po wykryciu przeszkody. Najpierw wyłączamy czujnik rozpoznawania przeszkód, następnie cofamy robota, a po zatrzymaniu nakazujemy mu obrót w lewo:

        Ed.ObstacleDetectionBeam(Ed.OFF)
        Ed.Drive(Ed.BACKWARD, Ed.SPEED_8, 1000)
        Ed.Drive(Ed.STOP, 0, 0)
        Ed.DriveRightMotor(Ed.FORWARD, Ed.SPEED_1, 1200)

Stopień obrotu robota można kontrolować za pomocą trzeciego parametru w funkcji DriveRightMotor. Określa on w milisekundach czas ruchu. Gdybyśmy chcieli, aby robot obracał się w prawo, należałoby użyć funkcji DriveLeftMotor. Warto poeksperymentować!

Poniżej film ilustrujący opisany kod.

do góry
Sklep jest w trybie podglądu
Pokaż pełną wersję strony
Sklep internetowy Shoper.pl