Aktarma organları#

giriiş#

Aktarma organları, robotun nasıl hareket ettiğini ve döndüğünü kontrol eden tekerlekler ve motorlardan oluşur. Aktarma organları, Code Base 2.0, Super Car veya özel bir robot gibi tasarımlarda bulunabilir.

Aktarma organları, çarpışmaları tespit etmek ve robotun hassas bir şekilde hareket etmesine ve dönmesine yardımcı olmak için Beyindeki Atalet Sensörünü kullanır. Her projenin başlangıcında, aktarma organı Atalet Sensörünü otomatik olarak kalibre eder. Kalibrasyon sırasında robotu yaklaşık 2 saniye boyunca hareketsiz tutun, böylece robot doğru şekilde hareket edebilir ve dönebilir.

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 — Göz Sensörü bir nesne algılayana veya robot bir çarpışma algılayana kadar robotu ileri 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 döndürür. Robot, hedef yöne ulaşmak için en kısa yönde dönecektir.

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

  • set_stopping — Robotun hareket etmeyi nasıl durduracağını belirtir: fren yaparak, süzülerek veya tutunarak.

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

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

Getter’lar — Hareket durumunu kontrol edin.

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

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

  • get_velocity — Robotun ne kadar hızlı sürdüğünü -100% ile 100% arasında bir yüzde olarak döndürür.

  • get_yaw — Robotun mevcut yaw değerini döndürür.

  • get_roll — Robotun mevcut zarını döndürür.

  • get_pitch — Robotun mevcut eğimini döndürür.

  • get_crashed — Robotun bir kaza tespit edip etmediğini Boolean değer olarak döndürür.

  • is_stopped — Robotun hareketinin bitip bitmediğ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.

# Build Used: Code Base 2.0
def main():
    # Drive forward then stop
    drivetrain.drive(FORWARD)
    wait(2, SECONDS)
    drivetrain.stop()

# Start threads — Do not delete
start_thread(main)

drive_for#

drive_for komutu, robotu belirli bir mesafe boyunca ileri veya geri hareket ettirir.

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 bir tam sayı veya ondalık sayı olabilir.

units

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

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.

# Build Used: Code Base 2.0
def main():
    # Drive back and forth
    drivetrain.drive_for(FORWARD, 100, MM)
    drivetrain.drive_for(REVERSE, 4, INCHES)
    

# Start threads — Do not delete
start_thread(main)

drive_until#

drive_until komutu, Göz Sensörü bir nesne algılayana veya robot bir çarpışma algılayana kadar robotu ileri doğru hareket ettirir.

Usage:
drivetrain.drive_until(condition, wait)

Parametreler

Tanım

condition

Robotu durduran koşul: OBJECT veya CRASH.

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.

# Build Used: Code Base 2.0
def main():
    # Turn right after a crash
    drivetrain.drive_until(CRASH)
    drivetrain.turn_for(RIGHT, 90)

# Start threads — Do not delete
start_thread(main)

turn#

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

Usage:
drivetrain.turn(direction)

Parametreler

Tanım

direction

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

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

# Start threads — Do not delete
start_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 yapılır.

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

Parametreler

Tanım

direction

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

angle

Robotun döndüğü derece sayısı. Bu bir tam sayı veya ondalık sayı olabilir.

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.

# Build Used: Code Base 2.0
def main():
    # Turn right then left
    drivetrain.turn_for(RIGHT, 90)
    drivetrain.turn_for(LEFT, 90)

# Start threads — Do not delete
start_thread(main)

turn_to_heading#

Yön, robotun beyninin 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.

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

VEX GO Kod Tabanı 2.0, yön yönlerini gösteriyor: 0 derece ileri, 90 derece sağa, 180 derece geriye ve 270 derece sola.

Usage:
drivetrain.turn_to_heading(angle, wait)

Parametreler

Tanım

angle

Robotun bakması gereken yönü, -359 ile 359 derece arasında bir tam sayı olarak belirtin.

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.

# Build Used: Code Base 2.0
def main():
    # Turn to face the cardinal directions
    drivetrain.turn_to_heading(90)
    wait(1, SECONDS)
    drivetrain.turn_to_heading(180)
    wait(1, SECONDS)
    drivetrain.turn_to_heading(270)
    wait(1, SECONDS)
    drivetrain.turn_to_heading(0)

# Start threads — Do not delete
start_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 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.

Sağa ve sola dönen okları gösteren bir VEX GO Kod Tabanı 2.0. Sol ok "eksi"yi, sağ ok ise "artı"yı gösteriyor.

Usage:
drivetrain.turn_to_rotation(angle, wait)

Parametreler

Tanım

angle

Robotun döneceği dönüş açısı (derece cinsinden). Bu bir tamsayı olabilir.

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.

# Build Used: Code Base 2.0
def main():
    # Make one full turn to the right
    drivetrain.turn_to_rotation(360)
    # Make another full turn to the right
    drivetrain.turn_to_rotation(720)
    # Make one full turn to the left, returning to 360 degrees
    drivetrain.turn_to_rotation(360)
# Start threads — Do not delete
start_thread(main)

stop#

stop robotun hareketini durdurur.

Usage:
drivetrain.stop()

Parametreler

Tanım

Bu yöntemin parametresi yoktur.

# Build Used: Code Base 2.0
def main():
    # Drive forward then stop
    drivetrain.drive(FORWARD)
    wait(2, SECONDS)
    drivetrain.stop()

# Start threads — Do not delete
start_thread(main)

Mutatörler#

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 hassasiyetini artırır.

Usage:
drivetrain.set_drive_velocity(velocity)

Parametreler

Tanım

velocity

Sürüş hızı %0 ile %100 arasında değişir.

# Build Used: Code Base 2.0
def main():
    # Drive at different velocities
    drivetrain.drive_for(FORWARD, 100, MM)
    wait(1, SECONDS)
    # Drive slow
    drivetrain.set_drive_velocity(20)
    drivetrain.drive_for(FORWARD, 100, MM)
    wait(1, SECONDS)
    # Drive fast
    drivetrain.set_drive_velocity(100)
    drivetrain.drive_for(FORWARD, 100, MM)

# Start threads — Do not delete
start_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 hassasiyetini artırır.

Usage:
drivetrain.set_turn_velocity(velocity)

Parametreler

Tanım

velocity

Dönüş hızı %0 ile %100 arasında değişir.

# Build Used: Code Base 2.0
def main():
    # Turn at different velocities
    drivetrain.turn_for(RIGHT, 180)
    wait(1, SECONDS)
    # Turn fast
    drivetrain.set_turn_velocity(100)
    drivetrain.turn_for(RIGHT, 180)

# Start threads — Do not delete
start_thread(main)

set_stopping#

set_stopping , robotun hareket etmeyi nasıl durduracağını belirler: fren yaparak, süzülerek veya bekleyerek.

Usage:
drivetrain.set_stopping(brake)

Parametreler

Tanım

brake

Robotun nasıl duracağı:

  • BRAKE — Hemen durur.
  • COAST — Yavaşlayarak durur.
  • HOLD — Hemen durur ve tekerleklerin konumunu korur.

Bu yöntem kullanılmazsa, robot dururken BRAKE yöntemini kullanacaktır.

# Build Used: Code Base 2.0
def main():
    # Drive, then coast to a stop
    drivetrain.set_drive_velocity(100)
    drivetrain.set_stopping(COAST)
    drivetrain.drive(FORWARD)
    wait(2, SECONDS)
    drivetrain.stop()

# Start threads — Do not delete
start_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 süre tam sayı veya ondalık sayı olabilir.

units

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

# Build Used: Code Base 2.0
def main():
    # Drive as far as possible for 1 second before turning right
    drivetrain.set_timeout(1, SECONDS)
    drivetrain.drive_for(FORWARD, 25, INCHES)
    drivetrain.turn_for(RIGHT, 90)

# Start threads — Do not delete
start_thread(main)

set_heading#

Yön, robotun beyninin 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(value)

Parametreler

Tanım

value

Robot için ayarlanacak yön değeri (derece cinsinden). Bu değer 0 ile 359 arasında bir tam sayı olabilir.

# Build Used: Code Base 2.0
def main():
    # Face the new 0 degree heading
    drivetrain.set_heading(90)
    drivetrain.turn_to_heading(0)

# Start threads — Do not delete
start_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(value)

Parametreler

Tanım

value

Robot için ayarlanacak dönüş değeri (derece cinsinden). Bu bir tamsayı olabilir.

# Build Used: Code Base 2.0
def main():
    # Spin counterclockwise two times
    drivetrain.set_rotation(720)
    drivetrain.turn_to_rotation(0)

# Start threads — Do not delete
start_thread(main)

Getters#

get_heading#

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

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

VEX GO Beyni, yön gösteriyor: 0 derece ileri, 90 derece sağa, 180 derece geriye ve 270 derece sola.

Usage:
drivetrain.get_heading()

Parametreler

Tanım

Bu yöntemin parametresi yoktur.

# Build Used: Code Base 2.0
def main():
    # Display the heading while turning
    monitor_sensor("drivetrain.get_heading")
    drivetrain.turn_for(RIGHT, 450)


# Start threads — Do not delete
start_thread(main)

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

Sağa ve sola dönen okları gösteren bir VEX GO Kod Tabanı 2.0. Sol ok "eksi"yi, sağ ok ise "artı"yı gösteriyor.

Usage:
drivetrain.get_rotation()

Parametreler

Tanım

Bu yöntemin parametresi yoktur.

# Build Used: Code Base 2.0
def main():
    # Display the rotation while turning
    monitor_sensor("drivetrain.get_rotation")
    drivetrain.turn_for(RIGHT, 450)


# Start threads — Do not delete
start_thread(main)

get_velocity#

get_velocity , robotun ne kadar hızlı sürdüğünü -100% ile 100% arasında bir yüzde olarak döndürür.

Pozitif bir değer, robotun ileri yönde hareket ettiğini gösterir. Negatif bir değer ise robotun geri yönde hareket ettiğini gösterir.

Usage:
drivetrain.get_velocity()

Parametreler

Tanım

Bu yöntemin parametresi yoktur.

# Build Used: Code Base 2.0
def main():
    # Display the velocity of the robot before and while moving
    console.print("Start: ")
    console.print(drivetrain.get_velocity())
    console.new_line()
    drivetrain.drive(FORWARD)
    wait(0.5, SECONDS)
    console.print("Moving: ")
    console.print(drivetrain.get_velocity())
    drivetrain.stop()


# Start threads — Do not delete
start_thread(main)

get_yaw#

Yaw, robotun başlangıç ​​konumundan sola veya sağa ne kadar döndüğünü derece cinsinden ölçer. get_yaw robotun mevcut yaw değerini döndürür.

Sağa dönmek sapma değerini artırırken, sola dönmek sapma değerini azaltır.

Usage:
drivetrain.get_yaw()

Parametreler

Tanım

Bu yöntemin parametresi yoktur.

# Build Used: Super Code Base 2.0
def main():
    # Change the LED color based on the yaw while
    # moving the robot by hand
    monitor_sensor("drivetrain.get_yaw")
    while True:
        if drivetrain.get_yaw() > 0:
            bumper.set_color(GREEN)
        elif drivetrain.get_yaw() < 0:
            bumper.set_color(RED)
        else:
            bumper.set_color(NONE)

# Start threads — Do not delete
start_thread(main)

get_roll#

Roll, robotun sola veya sağa doğru ne kadar eğildiğini derece cinsinden ölçer. get_roll robotun mevcut roll değerini döndürür.

Beyin öne doğru bakacak şekilde konumlandırıldığında, sola doğru eğme yuvarlanma değerini artırırken, sağa doğru eğme yuvarlanma değerini azaltır.

Usage:
drivetrain.get_roll()

Parametreler

Tanım

Bu yöntemin parametresi yoktur.

# Build Used: Super Code Base 2.0
def main():
    # Change the LED color based on the roll while
    # moving the robot by hand
    monitor_sensor("drivetrain.get_roll")
    while True:
        if drivetrain.get_roll() > 0:
            bumper.set_color(GREEN)
        elif drivetrain.get_roll() < 0:
            bumper.set_color(RED)
        else:
            bumper.set_color(NONE)

# Start threads — Do not delete
start_thread(main)

get_pitch#

Pitch, robotun ileri veya geri doğru ne kadar eğildiğini derece cinsinden ölçer. get_pitch robotun mevcut pitch değerini döndürür.

Beyin öne doğru bakacak şekilde konumlandırıldığında, öne doğru eğilme perde değerini artırır, geriye doğru eğilme ise perde değerini azaltır.

Usage:
drivetrain.get_pitch()

Parametreler

Tanım

Bu yöntemin parametresi yoktur.

# Build Used: Super Code Base 2.0
def main():
    # Change the LED color based on the pitch while
    # moving the robot by hand
    monitor_sensor("drivetrain.get_pitch")
    while True:
        if drivetrain.get_pitch() > 0:
            bumper.set_color(GREEN)
        elif drivetrain.get_pitch() < 0:
            bumper.set_color(RED)
        else:
            bumper.set_color(NONE)

# Start threads — Do not delete
start_thread(main)

get_crashed#

get_crashed , robotun bir kaza tespit edip etmediğini Boolean değer olarak döndürür.

  • True — Bir kaza tespit edildi.

  • False — Bir kaza tespit edilmedi.

Usage:
drivetrain.get_crashed()

Parametreler

Tanım

Bu yöntemin parametresi yoktur.

# Build Used: Super Code Base 2.0
def main():
    # Drive until a crash
    drivetrain.drive(FORWARD)
    while not drivetrain.get_crashed():
        wait(50, MSEC)
    drivetrain.stop()
    drivetrain.turn_for(RIGHT, 90)

# Start threads — Do not delete
start_thread(main)

is_stopped#

is_stopped , robotun hareketinin bitip bitmediğ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 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, drive_until, turn_for, turn_to_heading ve turn_to_rotation.

Usage:
drivetrain.is_stopped()

Parametreler

Tanım

Bu yöntemin parametresi yoktur.

# Build Used: Code Base 2.0
def main():
    # Turn when the drivetrain is done moving forward
    drivetrain.drive_for(FORWARD, 100, MM, wait=False)
    wait(0.25, SECONDS)
    while True:
        if drivetrain.is_stopped():
            drivetrain.turn_for(RIGHT, 180)
            break
        else:
            console.print("Still moving...")
            wait(0.1, SECONDS)
            console.clear()

# Start threads — Do not delete
start_thread(main)