Aktarma organları#

giriiş#

Tahrik sistemi, VR Robotunun nasıl hareket edeceğini ve döneceğini kontrol eder. Tahrik sistemi ileri veya geri hareket edebilir, sola veya sağa dönebilir, belirli bir yöne dönebilir ve kendi dönüşünü takip edebilir.

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.

  • 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.

  • turn_to_rotation — Robotu belirli bir dönüşe döndürür.

  • stop — Robotun hareketini durdurur.

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

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

  • set_rotation — Robotun mevcut dönüşünü yeni bir dönüşe değiştirir.

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

  • set_drive_velocity — Robota ne kadar hızlı süreceğini söyler.

  • set_turn_velocity — Robota ne kadar hızlı döneceğini söyler.

Getters — Aktarma organlarının durumunu kontrol edin.

  • heading — Robotun mevcut yönünü 0 ile 359,99 derece arasında döndürür.

  • rotation — Robotun mevcut dönüşünü döndürür.

  • is_done — Robotun hareketinin tamamlanıp tamamlanmadığını Boolean değer olarak döndürür.

  • is_moving — Robotun hareket edip etmediğini Boolean değer olarak 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:
drivetrain.drive(direction)

Parametreler

Tanım

direction

Robotun hareket yönü: FORWARD veya REVERSE.

def main():
    # Drive forward then stop
    drivetrain.drive(FORWARD)
    wait(2, SECONDS)
    drivetrain.stop()

# VR threads — Do not delete
vr_thread(main)

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:
drivetrain.drive_for(direction, distance, units, wait)

Parametreler

Tanım

direction

Robotun hareket yönü: FORWARD veya REVERSE.

distance

Robotun kat ettiği mesafe. Bu, integer veya ondalık sayı (float ) olabilir.

units

İsteğe bağlı. Mesafe birimi: INCHES (varsayılan) veya MM (milimetre).

wait

İsteğe bağlı. wait=True (varsayılan) robot hareket etmeyi bitirene kadar projenin bir sonraki kod satırının çalışmasını bekler. wait=False bir sonraki kod satırının hemen çalışmasını sağlar.

def main():
    # Drive forward and backward
    drivetrain.drive_for(FORWARD, 200, MM)
    drivetrain.drive_for(REVERSE, 200, MM)

# VR threads — Do not delete
vr_thread(main)

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:
drivetrain.turn(direction)

Parametreler

Tanım

direction

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

def main():
    # Turn right and left, then stop
    drivetrain.turn(RIGHT)
    wait(2, SECONDS)
    drivetrain.turn(LEFT)
    wait(2, SECONDS)
    drivetrain.stop()

# VR threads — Do not delete
vr_thread(main)

turn_for#

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

Usage:
drivetrain.turn_for(direction, angle, units, wait)

Parametreler

Tanım

direction

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

angle

Robotun döndüğü derece sayısı. Bu integer 3, 0, 1, 1, 2, 3, 0, 1, 3, 0 …float , 0

units

İsteğe bağlı. Döndürme birimi: DEGREES (varsayılan).

wait

İsteğe bağlı. wait=True (varsayılan) robotun dönüşü tamamlanana kadar bir sonraki kod satırının çalışmasını bekler. wait=False bir sonraki kod satırının hemen çalışmasını sağlar.

def main():
    # Turn the robot right and left
    drivetrain.turn_for(RIGHT, 90, DEGREES)
    wait(1, SECONDS)
    drivetrain.turn_for(LEFT, 90, DEGREES)

# VR threads — Do not delete
vr_thread(main)

turn_to_heading#

Yön, robotun baktığı yönü derece cinsinden ifade eder. turn_to_heading komutu, robotu -359 ile 359 derece arasında belirli bir yöne çevirir. Robot, hedef yöne ulaşmak için en kısa yöne dönecektir.

Robotun 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:
drivetrain.turn_to_heading(angle, units, wait)

Parametreler

Tanım

angle

Robotun bakması gereken yön, derece cinsinden. Bu, -359 ile 359 arasında bir tamsayı integer ) veya ondalık sayı (float) olabilir.

units

İsteğe bağlı. Döndürme birimi: DEGREES (varsayılan).

wait

İsteğe bağlı. wait=True (varsayılan) robotun dönüşü tamamlanana kadar bir sonraki kod satırının çalışmasını bekler. wait=False bir sonraki kod satırının hemen çalışmasını sağlar.

def main():
    # Turn to face the cardinal directions
    drivetrain.turn_to_heading(90, DEGREES)
    wait(1, SECONDS)
    drivetrain.turn_to_heading(180, DEGREES)
    wait(1, SECONDS)
    drivetrain.turn_to_heading(270, DEGREES)
    wait(1, SECONDS)
    drivetrain.turn_to_heading(0, DEGREES)

# VR threads — Do not delete
vr_thread(main)

turn_to_rotation#

turn_to_rotation robotu belirli bir dönüşe döndürür.

Dönme, robotun ne kadar döndüğünü derece cinsinden ölçer. Bir projenin başlangıcında, dönme değeri 0 dereceye ayarlanır. Dönme ayrıca set_rotation yöntemi kullanılarak da ayarlanabilir.

Dönme değerleri mutlaktır. Bu, dönüş yönünün robotun mevcut dönüşüne bağlı olduğu anlamına gelir. Sağa dönmek dönmeyi artırır, sola dönmek ise dönmeyi azaltır.

Örneğin, robot 0 dereceden başlarsa ve 720 derece döndürürseniz, iki kez sağa dönecektir. Ardından 360 derece döndürürseniz, 360, 720’den küçük olduğu için bir kez sola dönecektir.

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

Usage:
drivetrain.turn_to_rotation(angle, units, wait)

Parametreler

Tanım

angle

Robotun döneceği dönüş açısı (derece cinsinden). Bu, integer , 2, 3, 4, 4, 4, 5, 6, 7, 8, 9, 1, 1, 1, 1, 1, 1, 1, 1float…

units

İsteğe bağlı. Döndürme birimi: DEGREES (varsayılan).

wait

İsteğe bağlı. wait=True (varsayılan) robotun dönüşü tamamlanana kadar bir sonraki kod satırının çalışmasını bekler. wait=False bir sonraki kod satırının hemen çalışmasını sağlar.

def main():
    # Turn left, then spin in a circle
    # clockwise and face right
    drivetrain.turn_to_rotation(-90, DEGREES)
    wait(1, SECONDS)
    drivetrain.turn_to_rotation(450, DEGREES)

# VR threads — Do not delete
vr_thread(main)

stop#

stop robotun hareketini durdurur.

Usage:
drivetrain.stop()

Parametreler

Tanım

Bu yöntemin parametresi yoktur.

def main():
    # Drive forward then stop
    drivetrain.drive(FORWARD)
    wait(2, SECONDS)
    drivetrain.stop()

# VR threads — Do not delete
vr_thread(main)

Mutatörler#

set_heading#

Yön, robotun baktığı yönü derece cinsinden ifade eder. 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, sağa dönük bu pozisyonu yeni 0 derece yapar. Ardından robot, bu yeni yöne göre diğer pozisyonlara dönebilir.

Usage:
drivetrain.set_heading(heading, units)

Parametreler

Tanım

heading

Robot için ayarlanacak yön değeri, derece cinsinden. Bu, integer veya ondalık sayı (float ) olabilir.

units

İsteğe bağlı. Yön birimi: DEGREES (varsayılan).

def main():
    # Face the new 0 degrees
    drivetrain.set_heading(90, DEGREES)
    drivetrain.turn_to_heading(0, DEGREES)

# VR threads — Do not delete
vr_thread(main)

set_rotation#

Dönme, robotun ne kadar döndüğünü derece cinsinden ölçer. Bir projenin başlangıcında, dönme değeri 0 dereceye ayarlanır. set_rotation komutu, robotun mevcut dönme değerini yeni bir değere değiştirir.

Örneğin, robot sağa doğru iki tam tur atmışsa, dönüş değeri 720 derece olacaktır. Dönüşü 0 dereceye ayarlamak, bu dönüş değerini 720’den 0 dereceye sıfırlayacaktır. Ardından robot, bu yeni değere göre dönüş yapabilir.

Usage:
drivetrain.set_rotation(rotation, units)

Parametreler

Tanım

rotation

Robot için ayarlanacak dönüş değeri, derece cinsinden. Bu, integer veya ondalık sayı (float ) olabilir.

units

İsteğe bağlı. Döndürme birimi: DEGREES (varsayılan).

def main():
    # Spin counterclockwise two times
    drivetrain.set_rotation(720, DEGREES)
    drivetrain.turn_to_rotation(0, DEGREES)

# VR threads — Do not delete
vr_thread(main)

set_timeout#

set_timeout , robotun bir hareketi tamamlamak için ne kadar süre 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:
drivetrain.set_timeout(value, units)

Parametreler

Tanım

value

Robotun bir hareketi tamamlamak için deneyebileceği süre. Bu, pozitif bir tamsayı integer veya ondalık sayı (float )) olabilir.

units

İsteğe bağlı. Zaman birimi: SECONDS (varsayılan) veya MSEC (milisaniye).

def main():
    # Turn right after driving forward
    drivetrain.set_timeout(1, SECONDS)
    drivetrain.drive_for(FORWARD, 25, INCHES)
    drivetrain.turn_for(RIGHT, 90)

# VR threads — Do not delete
vr_thread(main)

set_drive_velocity#

set_drive_velocity komutu robota ne kadar hızlı gideceğini söyler. Daha yüksek bir yüzde robotun daha hızlı, daha düşük bir yüzde ise daha yavaş gitmesini sağlar.

Her proje, robotun varsayılan olarak %50 hızda hareket etmesiyle başlar.

Not: Daha yüksek hız, robotun daha hızlı hareket etmesini sağlar, ancak hassasiyeti azalabilir. Daha düşük hız ise robotun daha yavaş hareket etmesini sağlar, ancak hassasiyeti artabilir.

Usage:
drivetrain.set_drive_velocity(velocity, units)

Parametreler

Tanım

velocity

Sürüş hızı %0 ile %100 arasında değişir. Bu değer integer (ondalık sayı),float (ondalık sayı) olabilir.

units

İsteğe bağlı. Hız birimi: PERCENT (varsayılan).

def main():
    # Drive forward at different velocities
    # Default velocity
    drivetrain.drive_for(FORWARD, 150, MM)
    wait(1, SECONDS)
    # Drive slower
    drivetrain.set_drive_velocity(20, PERCENT)
    drivetrain.drive_for(FORWARD, 150, MM)
    wait(1, SECONDS)
    # Drive faster
    drivetrain.set_drive_velocity(100, PERCENT)
    drivetrain.drive_for(FORWARD, 150, MM)

# VR threads — Do not delete
vr_thread(main)

set_turn_velocity#

set_turn_velocity komutu robota ne kadar hızlı döneceğini söyler. Daha yüksek bir yüzde robotun daha hızlı dönmesini, daha düşük bir yüzde ise robotun daha yavaş dönmesini sağlar.

Her proje, robotun varsayılan olarak %50 hızda dönmesiyle başlar.

Not: Daha yüksek hız, robotun daha hızlı dönmesini sağlar, ancak hassasiyeti azalabilir. Daha düşük hız ise robotun daha yavaş dönmesini sağlar, ancak hassasiyeti artabilir.

Usage:
drivetrain.set_turn_velocity(velocity, units)

Parametreler

Tanım

velocity

The velocity to turn with from 0% to 100%. This can be an integer or decimal (float).

units

İsteğe bağlı. Hız birimi: PERCENT (varsayılan).

def main():
    # Turn at different velocities
    # Default velocity
    drivetrain.turn_for(RIGHT, 120, DEGREES)
    wait(1, SECONDS)
    # Turn slower
    drivetrain.set_turn_velocity(20, PERCENT)
    drivetrain.turn_for(RIGHT, 120, DEGREES)
    wait(1, SECONDS)
    # Turn faster
    drivetrain.set_turn_velocity(100, PERCENT)
    drivetrain.turn_for(RIGHT, 120, DEGREES)

# VR threads — Do not delete
vr_thread(main)

Getters#

heading#

Yön, robotun baktığı yönü derece cinsinden ifade eder. heading komutu, robotun mevcut yönünü 0 ile 359,99 derece arasında döndürür.

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

Usage:
drivetrain.heading(units)

Parametreler

Tanım

units

İsteğe bağlı. Yön birimi: DEGREES (varsayılan).

def main():
    # Display the heading after turning
    drivetrain.turn_for(RIGHT, 450, DEGREES)
    brain.print("Heading: ")
    brain.print(drivetrain.heading(DEGREES))

# VR threads — Do not delete
vr_thread(main)

rotation#

Dönme, robotun ne kadar döndüğünü derece cinsinden ölçer. Bir projenin başlangıcında, dönme değeri 0 dereceye ayarlanır. rotation komutu robotun mevcut dönme değerini döndürür.

Sağa dönmek dönüş açısını artırır, sola dönmek ise azaltır. Örneğin, sağa iki tam tur dönmek 720 derecelik bir dönüş sağlar.

Usage:
drivetrain.rotation(units)

Parametreler

Tanım

units

İsteğe bağlı. Döndürme birimi: DEGREES (varsayılan).

def main():
    # Display the rotation after turning
    drivetrain.turn_for(RIGHT, 450, DEGREES)
    brain.print("Rotation: ")
    brain.print(drivetrain.rotation(DEGREES))

# VR threads — Do not delete
vr_thread(main)

is_done#

is_done , robotun hareketinin tamamlanıp tamamlanmadığını Boolean bir değer olarak döndürür. Bu, robotun hareketine bağlı olarak diğer davranışların zamanlamasını kontrol etmek için kullanılabilir.

  • True — Robot hareket etmeyi bitirdi.

  • False — Robot hala hareket halinde.

Bu yöntem, wait parametresine sahip aşağıdaki Aktarma Organı yöntemleriyle birlikte çalışır: drive_for, turn_for, turn_to_heading ve turn_to_rotation.

Usage:
drivetrain.is_done()

Parametreler

Tanım

Bu yöntemin parametresi yoktur.

is_moving#

is_moving , robotun hareket edip etmediğini Boolean bir değer olarak döndürür. Bu, robotun hareketine bağlı olarak diğer davranışların zamanlamasını kontrol etmek için kullanılabilir.

  • True — Robot hareket ediyor.

  • False — Robot hareket etmiyor.

Usage:
drivetrain.is_moving()

Parametreler

Tanım

Bu yöntemin parametresi yoktur.