Aktarma organları#

giriiş#

123 Robotu, hareket etmesini ve dönmesini sağlayan iki tekerlekli bir tahrik sistemine sahiptir. Tahrik sistemi yöntemleri, robotun nasıl hareket edeceğini kontrol eder.

Aktarma organı mesafeyi iki şekilde ölçebilir: adım ve mm (milimetre). Bir adım, 123 Field’da bir kareye eşittir.

Aktarma organlarını kodlamanın birçok yolu vardır. Aşağıda tüm aktarma organı kodlama yöntemlerinin listesi bulunmaktadır:

İşlemler — Robotu hareket ettir ve döndür.

  • drive — Robotu sonsuza dek ileri veya geri hareket ettirir.

  • drive_for — Robotu belirli bir mesafe boyunca ileri veya geri hareket ettirir.

  • drive_until — Robotu bir nesne, çarpışma veya çizgi algılayana kadar ileri veya geri hareket ettirir.

  • turn — Robotu sonsuza dek sola veya sağa döndürür.

  • turn_for — Robotu belirli sayıda derece sola veya sağa döndürür.

  • turn_to_heading — Robotu -359 ile 359 derece arasında belirli bir yöne doğru çevirir.

  • stop — Robotun hareketini durdurur.

Değiştiriciler — Aktarma organı ayarlarını düzenleyin.

  • set_timeout — Robotun bir hareketi bitirmek için ne kadar süre deneyeceğini ayarlar.

  • set_heading — Robotun mevcut yönünü yeni bir yöne değiştirir.

Getter’lar — Hareket durumunu kontrol edin.

  • is_stopped — Robotun hareket etmeyi durdurup durdurmadığını Boolean değer olarak döndürür.

  • get_heading — Robotun 0 ile 359 derece arasındaki mevcut yönünü döndürür.

Eylemler#

drive#

drive robotu sonsuza dek ileri veya geri hareket ettirir. Robot, dönme veya durma gibi başka bir işlem verilene kadar hareket etmeye devam edecektir.

Usage:
robot.drive(direction)

Parametreler

Tanım

direction

Robotun hareket yönü: FORWARD veya REVERSE.

# Drive for 2 seconds.
robot.drive(FORWARD)
wait(2, SECONDS)
robot.stop()

drive_for#

drive_for komutu, robotu belirli bir mesafe boyunca ileri veya geri hareket ettirir. Proje, bir sonraki kod satırı çalışmadan önce robotun hareketini tamamlamasını bekleyecektir.

Usage:
robot.drive_for(direction, distance, unit)

Parametreler

Tanım

direction

Robotun hareket yönü: FORWARD veya REVERSE.

distance

Robotun kat ettiği mesafe. Bu bir tam sayı veya ondalık sayı olabilir.

unit

Mesafe birimi: MM (milimetre) veya STEPS (123 Alan üzerinde bir kare).

# Drive back and forth.
robot.drive_for(FORWARD, 3, STEPS)
robot.drive_for(REVERSE, 3, STEPS)

drive_until#

drive_until komutu, robotu bir nesne, çarpışma veya çizgi algılayana kadar ileri veya geri hareket ettirir.

Usage:
robot.drive_until(direction)

Parametreler

Tanım

direction

Robotun hareket yönü: FORWARD veya REVERSE.

# Reverse after a crash.
robot.drive_until(FORWARD)
robot.drive_for(REVERSE, 1, STEPS)

turn#

turn robotu sonsuza dek sola veya sağa döndürür. Robot, sürüş veya durma gibi başka bir işlem verilene kadar dönmeye devam edecektir.

Usage:
robot.turn(direction)

Parametreler

Tanım

direction

Robotun dönüş yönü: LEFT veya RIGHT.

# Turn for 2 seconds.
robot.turn(RIGHT)
wait(2, SECONDS)
robot.stop()

turn_for#

turn_for komutu, robotu belirli bir derece kadar sola veya sağa döndürür. Proje, bir sonraki kod satırı çalışmadan önce robotun dönüşünün tamamlanmasını bekleyecektir.

Usage:
robot.turn_for(direction, degrees)

Parametreler

Tanım

direction

Robotun dönüş yönü: LEFT veya RIGHT.

degrees

Döndürülecek derece sayısı. Bu bir tam sayı veya ondalık sayı olabilir.

# Turn left, then turn around to the right.
robot.turn_for(LEFT, 90)
robot.turn_for(RIGHT, 180)

turn_to_heading#

turn_to_heading komutu, robotu -359 ile 359 derece arasında belirli bir yöne doğru döndürür. Robot, hedef yöne ulaşmak için en kısa yöne doğru dönecektir.

Başlangıç ​​yönü 0 derecedir.

Proje, bir sonraki kod satırını çalıştırmadan önce robotun dönüş işlemini tamamlamasını bekleyecektir.

Usage:
robot.turn_to_heading(heading)

Parametreler

Tanım

heading

Robotun bakması gereken yön, -359 ile 359 derece arasındadır.

# Turn to face the cardinal directions.
robot.turn_to_heading(90)
wait(2, SECONDS)
robot.turn_to_heading(180)
wait(2, SECONDS)
robot.turn_to_heading(270)
wait(2, SECONDS)
robot.turn_to_heading(0)
wait(2, SECONDS)

stop#

stop robotun hareketini durdurur.

Usage:
robot.stop()

Parametreler

Tanım

Bu yöntemin parametresi yoktur.

# Stop driving after 4 seconds.
robot.drive(FORWARD)
wait(4, SECONDS)
robot.stop()

Mutatörler#

set_timeout#

set_timeout , robotun bir hareketi tamamlamak için kaç saniye deneyeceğini belirler. Robot bu süre içinde hareketi tamamlayamazsa, denemeyi bırakır ve bir sonraki kod satırına geçer. Bu, robotun bir harekette takılıp kalmasını önler.

Usage:
robot.set_timeout(time, unit)

Parametreler

Tanım

time

Hareket için tanınan süre. Bu süre tam sayı veya ondalık sayı olabilir.

unit

Zaman birimi: MSEC veya SECONDS.

# Turn right after driving for 1 second.
robot.set_timeout(1, SECONDS)
robot.drive_for(FORWARD, 1000, MM)
robot.turn_for(RIGHT, 90)

set_heading#

set_heading komutu, robotun mevcut yönünü yeni bir yön değerine değiştirir.

Örneğin, robot sağa doğru dönmüşse, yönü 0 dereceye ayarlamak, bu sağa dönük pozisyonu yeni 0 derece yapar.

Usage:
robot.set_heading(heading)

Parametreler

Tanım

heading

Robot için ayarlanacak yön değeri (derece cinsinden).

# Face the new 0 degree heading.
robot.set_heading(90)
robot.turn_to_heading(0)

Getters#

is_stopped#

is_stopped , robotun hareket etmeyi durdurup durdurmadığını bildiren bir Boolean döndürür.

  • True — Robot durduruldu.

  • False — Robot hala hareket halinde.

Usage:
robot.is_stopped()

Parametreler

Tanım

Bu yöntemin parametresi yoktur.

# Glow blue after a crash.
robot.drive_until(FORWARD)
while True:
    if robot.is_stopped():
        robot.led.glow(BLUE)
    else:
        robot.led.glow(GREEN)
    wait(0.05, SECONDS)

get_heading#

get_heading fonksiyonu, robotun şu anda baktığı yönü 0 ile 359 derece arasında tam sayı olarak döndürür.

Robotun başlangıç ​​yönü 0 derecedir.

Usage:
robot.get_heading()

Parametreler

Tanım

Bu yöntemin parametresi yoktur.

# Display the heading after turning.
robot.turn_for(RIGHT, 450)
console.print(robot.get_heading())