Hareket#

giriiş#

VEX AIM Kodlama Robotu, holonomik bir tahrik sistemi kullanarak ileri, geri, sola, sağa veya belirli bir açıda hareket ederken aynı zamanda bağımsız olarak dönebilme özelliğine de sahiptir. Hareket yöntemleri, robotun nasıl hareket ettiğini ve döndüğünü, ne kadar hızlı hareket ettiğini ve x ve y konumlarının nasıl izlendiğini kontrol eder.

0 ile 315 derece arasında dairesel pusula kadranı, lacivert ekranlı koyu gri bir ekranı çevrelemektedir. Robotun ön tarafı pusula kadranında 0 dereceye bakmaktadır.

Aşağıda mevcut yöntemlerin listesi bulunmaktadır:

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

  • move_at — Robotu belirli bir açıda sonsuza dek hareket ettirir.

  • move_for — Robotu belirli bir açıda belirli bir mesafe boyunca hareket ettirir.

  • move_with_vectors — Robotu vektör tabanlı x, y ve dönüş değerlerini kullanarak 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 — Robotu belirli bir yöne doğru çevirir.

  • stop_all_movement — Robotun tüm hareketlerini durdurur.

Değiştiriciler — Robot hareket değerlerini ayarlar.

Getter’lar — Robotun durumunu ve konumunu döndürür.

  • get_x_position — Robotun mevcut x koordinatını döndürür.

  • get_y_position — Robotun mevcut y koordinatını döndürür.

  • is_move_active — Robotun hareket halinde olup olmadığını döndürür.

  • is_turn_active — Robotun dönüp dönmediğini döndürür.

  • is_stopped — Robotun hareket etmediğini veya dönmediğini döndürür.

Eylemler#

move_at#

move_at komutu, robotu belirli bir açıda sonsuza dek hareket ettirir. Açı, robotun mevcut konumuna göre belirlenir. Robot, farklı bir açıda hareket etme, dönme veya durma gibi başka bir işlem verilene kadar hareket etmeye devam edecektir.

Kullanım:

robot.move_at(angle, velocity, units)

Parametreler

Tanım

angle

Robotun hareket ettiği açı (derece cinsinden). Bu değer -360 ile 360 ​​arasında bir tam sayı veya ondalık sayı olabilir.

velocity

İsteğe bağlı. %0 PERCENTkullanılırken %0 ile %100 arasında veya MMPSkullanılırken saniyede 0 ile 200 milimetre arasında hareket edilecek hız. Bu bir tamsayı veya ondalık sayı (float) olabilir. Hız belirtilmezse, robot mevcut hareket hızında hareket eder.

units

İsteğe bağlı. Hız birimi: % PERCENT (varsayılan) veya MMPS (milimetre/saniye).

# Move right, then move forward and stop.
robot.move_at(90)
wait(1,SECONDS)
robot.move_at(0)
wait(1,SECONDS)
robot.stop_all_movement()

# Move right slowly, move in reverse quickly and stop.
robot.move_at(90, 25)
wait(2, SECONDS)
robot.move_at(180, 100, PERCENT)
wait(1, SECONDS)
robot.stop_all_movement()

# Move diagonally to the right and stop.
robot.move_at(45.33)
wait(1,SECONDS)
robot.stop_all_movement()

move_for#

move_for komutu, robotu belirli bir açıda ve belirli bir mesafe boyunca hareket ettirir. Açı, robotun mevcut konumuna göre belirlenir. Proje, bir sonraki kod satırı çalışmadan önce robotun hareketini tamamlamasını bekleyecektir.

Kullanım:

robot.move_for(distance, angle, velocity, units, wait)

Parametreler

Tanım

distance

Robotun kat ettiği mesafe, milimetre (mm) cinsinden. Bu, tam sayı veya ondalık sayı (float) olabilir.

angle

Robotun hareket ettiği açı (derece cinsinden). Bu değer -360 ile 360 ​​arasında bir tam sayı veya ondalık sayı olabilir.

velocity

İsteğe bağlı. %0 PERCENTkullanılırken %0 ile %100 arasında veya MMPSkullanılırken saniyede 0 ile 200 milimetre arasında hareket edilecek hız. Bu bir tamsayı veya ondalık sayı (float) olabilir. Hız belirtilmezse, robot mevcut hareket hızında hareket eder.

units

İsteğe bağlı. Hız birimi: % PERCENT (varsayılan) veya MMPS (milimetre/saniye).

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.

# Move right, then move forward.
robot.move_for(50, 90)
robot.move_for(100, 0)

# Move in reverse slowly, then move forward quickly.
robot.move_for(100, 180, 25)
robot.move_for(100, 0, 100, PERCENT)

# Drive forward and blink all LEDs red.
robot.move_for(100, 0, wait=False)
robot.led.on(ALL_LEDS, RED)
wait(0.5, SECONDS)
robot.led.on(ALL_LEDS, BLACK)
wait(0.5, SECONDS)
robot.led.on(ALL_LEDS, RED)
wait(0.5, SECONDS)
robot.led.on(ALL_LEDS, BLACK)

move_with_vectors#

Vektör, bir şeyin ne kadar hızlı hareket ettiğini ve hangi yönde hareket ettiğini tanımlamanın bir yoludur. move_with_vectors komutu, robotu vektör tabanlı hareket kullanarak hareket ettirir. Robot, düzgün bir hareket oluşturmak için ileri, sağa ve dönüş hızı değerlerini birleştirir. Robot, farklı bir açıyla hareket etme, dönme veya durma gibi başka bir eylem verilene kadar bu vektörü kullanarak hareket etmeye devam edecektir.

Not: Bu yöntem hareket ve dönüş hızı değerlerini doğrudan ayarlar, bu nedenle set_move_velocity veya set_turn_velocity kullanmaz.

Kullanım:

robot.move_with_vectors(forward, rightward, rotation)

Parametreler

Tanım

forward

Robotun y ekseni boyunca hızı, -100% ile 100% arasındadır. Negatif değerler robotu geriye, pozitif değerler ise ileriye doğru hareket ettirir.

rightward

Robotun x ekseni boyunca hızı, -100% ile 100% arasındadır. Negatif değerler robotu sola, pozitif değerler ise sağa hareket ettirir.

rotation

Robotun dönüş hızı, -100% ile 100% arasındadır. Negatif değerler robotu saat yönünün tersine, pozitif değerler ise saat yönünde döndürür.

# Move at 15°
robot.move_with_vectors(48.3, 12.95, 0)
wait(2, SECONDS)
robot.stop_all_movement()

# Move at 45° while turning counterclockwise.
robot.move_with_vectors(50, 50, -30)
wait(2, SECONDS)
robot.stop_all_movement()

# Scaling movement using the controller joystick
while True:
    # Move forward (and backwards) slower than axis1 input
    forward   = controller.axis1.position() * 0.7
    
    # Move right (and left) faster than axis2 input
    rightward = controller.axis2.position() * 1.5    

    robot.move_with_vectors(forward, rightward, 0)

    wait(5, MSEC)

turn#

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

Kullanım:

robot.turn(direction, velocity, units)

Parametreler

Tanım

direction

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

velocity

İsteğe bağlı. %0 PERCENTkullanılırken %0 ile %100 arasında veya DPSkullanılırken saniyede 0 ile 150 derece arasında dönüş hızı. Bu bir tamsayı veya ondalık sayı (float) olabilir. Hız belirtilmezse, robot mevcut dönüş hızında döner.

units

İsteğe bağlı. Hız birimi: DPS (saniyede derece, varsayılan) veya PERCENT.

# Turn left, then stop.
robot.turn(LEFT)
wait(1, SECONDS)
robot.stop_all_movement()

# Turn left quickly, turn right slowly, then stop.
robot.turn(LEFT, 80)
wait(2, SECONDS)
robot.turn(RIGHT, 20, PERCENT)
wait(3, SECONDS)
robot.stop_all_movement()

turn_for#

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

Kullanım:

robot.turn_for(direction, angle, velocity, units, wait)

Parametreler

Tanım

direction

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

angle

Robotun dönüş yaptığı derece sayısı, -360 ile 360 ​​derece arasında değişir. Bu değer tam sayı veya ondalık sayı (float) olabilir.

velocity

İsteğe bağlı. %0 PERCENTkullanılırken %0 ile %100 arasında veya DPSkullanılırken saniyede 0 ile 150 derece arasında dönüş hızı. Bu bir tamsayı veya ondalık sayı (float) olabilir. Hız belirtilmezse, robot mevcut dönüş hızında döner.

units

İsteğe bağlı. Hız birimi: DPS (saniyede derece, varsayılan) veya PERCENT.

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.

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

# Turn left quickly, then turn right slowly.
robot.turn_for(LEFT, 90, 100)
robot.turn_for(RIGHT, 180, 15, PERCENT)

# Turn right and blink all LEDs blue.
robot.turn_for(RIGHT, 180, wait=False)
robot.led.on(ALL_LEDS, BLUE)
wait(0.5, SECONDS)
robot.led.off(ALL_LEDS)
wait(0.5, SECONDS)
robot.led.on(ALL_LEDS, BLUE)
wait(0.5, SECONDS)
robot.led.off(ALL_LEDS)

turn_to#

Yön, robotun baktığı yönü derece cinsinden ifade eder. turn_to komutu, robotu 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.

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.

Kullanım:

robot.turn_to(heading, velocity, units, wait)

Parametreler

Tanım

heading

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

velocity

İsteğe bağlı. %0 PERCENTkullanılırken %0 ile %100 arasında veya DPSkullanılırken saniyede 0 ile 150 derece arasında dönüş hızı. Bu bir tamsayı veya ondalık sayı (float) olabilir. Hız belirtilmezse, robot mevcut dönüş hızında döner.

units

İsteğe bağlı. Hız birimi: DPS (saniyede derece, varsayılan) veya PERCENT.

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.

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

# Turn to face backward slowly, then face forward quickly.
robot.turn_to(180, 25)
wait(1, SECONDS)
robot.turn_to(0, 90, PERCENT)

# Turn around quickly and blink all LEDs green.
robot.turn_to(180, 100, wait=False)
robot.led.on(ALL_LEDS, GREEN)
wait(0.5, SECONDS)
robot.led.off(ALL_LEDS)
wait(0.5, SECONDS)
robot.led.on(ALL_LEDS, GREEN)
wait(0.5, SECONDS)
robot.led.off(ALL_LEDS)

stop_all_movement#

stop_all_movement robotun tüm hareketlerini durdurur.

Kullanım:

robot.stop_all_movement()

Parametreler

Tanım

Bu yöntemin parametresi yoktur.

# Turn right, then stop moving
robot.turn(RIGHT)
wait(1, SECONDS)
robot.stop_all_movement()

Mutatörler#

set_move_velocity#

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

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

A move velocity of 100% is equivalent to 200 millimeters per second.

Kullanım:

robot.set_move_velocity(velocity, units)

Parametreler

Tanım

velocity

PERCENTkullanılırken %0’dan %100’e, MMPSkullanılırken ise saniyede 0’dan 200 milimetreye kadar hareket hızı. Bu bir tamsayı veya ondalık sayı (float) olabilir.

units

İsteğe bağlı. Hız birimi: % PERCENT (varsayılan) veya MMPS (milimetre/saniye).

# Move forward at the default velocity,
robot.set_move_velocity(50)
robot.move_for(100, 0)
wait(1, SECONDS)
# Move slower than the default velocity
robot.set_move_velocity(20)
robot.move_for(100, 0)
wait(1, SECONDS)
# Move faster than the default velocity
robot.set_move_velocity(100)
robot.move_for(100, 0)

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ızla (saniyede 75 derece) dönmesiyle başlar.

Kullanım:

robot.set_turn_velocity(velocity, units)

Parametreler

Tanım

velocity

The velocity to turn with from 0% to 100% when using PERCENT, or from 0 to 150 degrees per second when using DPS. This can be an integer or decimal (float).

units

İsteğe bağlı. Hız birimi: DPS (saniyede derece, varsayılan) veya PERCENT.

# Turn around at default velocity
robot.set_turn_velocity(50)
robot.turn_for(RIGHT, 180)
wait(1, SECONDS)
# Turn around slower than the default velocity
robot.set_turn_velocity(20)
robot.turn_for(RIGHT, 180)
wait(1, SECONDS)
# Turn around faster than the default velocity
robot.set_turn_velocity(100)
robot.turn_for(RIGHT, 180)

set_xy_position#

set_xy_position komutu, robotun mevcut x ve y konumlarını yeni değerlere değiştirir.

Örneğin, robot başlangıç ​​noktasından uzaklaşmışsa, x’i 0’a ve y’yi 0’a ayarlamak, robotun mevcut konumunu yeni 0, 0 pozisyonu yapar. Ardından robot, bu yeni değere göre gelecekteki pozisyonları takip edebilir.

Kullanım:

robot.set_xy_position(x, y)

Parametreler

Tanım

x

Robot için ayarlanacak x konum değeri, milimetre cinsinden. Bu değer tam sayı veya ondalık sayı (float) olabilir.

y

Robot için ayarlanacak y-konum değeri, milimetre cinsinden. Bu değer tam sayı veya ondalık sayı (float) olabilir.

# Set the robot's current position
# Move forward and print the new coordinate
robot.set_xy_position(100, 50)
robot.move_for(150, 0)
robot.screen.print("X:", robot.get_x_position())
robot.screen.next_row()
robot.screen.print("Y:", robot.get_y_position())

Getters#

get_x_position#

get_x_position robotun mevcut x koordinatını milimetre cinsinden döndürür.

Projenin başlangıcında robotun x-konumu 0 olarak ayarlanır. Robot sola veya sağa hareket ettikçe x-konumu değişir ve set_xy_position yöntemi kullanılarak ayarlanabilir.

Kullanım:

robot.get_x_position()

Parametreler

Tanım

Bu yöntemin parametresi yoktur.

# Print the start and end x-value 
# of the robot's position after moving
robot.screen.print("Start X:", robot.get_x_position())
robot.move_for(200, 90)
robot.screen.next_row()
robot.screen.print("End X:", robot.get_x_position())

get_y_position#

get_y_position , robotun mevcut y koordinatını milimetre cinsinden döndürür.

Projenin başlangıcında robotun y-konumu 0 olarak ayarlanır. Robot ileri veya geri hareket ettikçe y-konumu değişir ve set_xy_position yöntemi kullanılarak ayarlanabilir.

Kullanım:

robot.get_y_position()

Parametreler

Tanım

Bu yöntemin parametresi yoktur.

# Print the start and end y-value 
# of the robot's position after moving
robot.screen.print("Start Y:", robot.get_y_position())
robot.move_for(200, 0)
robot.screen.next_row()
robot.screen.print("End Y:", robot.get_y_position())

is_move_active#

is_move_active , robotun hareket halinde olup olmadığı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 ediyor.

  • False — Robot hareket etmiyor.

Bu yöntem, move_for gibi wait parametresine sahip Hareket yöntemleriyle birlikte çalışır.

Kullanım:

robot.is_move_active()

Parametreler

Tanım

Bu yöntemin parametresi yoktur.

# Blink all the LEDs when the robot is moving.
robot.move_for(200, 0, wait=False)

while robot.is_move_active():
    robot.led.on(ALL_LEDS, ORANGE)
    wait(0.5, SECONDS)
    robot.led.on(ALL_LEDS, CYAN)
    wait(0.5, SECONDS)

robot.led.off(ALL_LEDS)

is_turn_active#

is_turn_active , robotun dönüp dönmediğini Boolean 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 dönüyor.

  • False — Robot dönmüyor.

Bu yöntem, turn_for ve turn_to gibi wait parametresine sahip Hareket yöntemleriyle birlikte çalışır.

Kullanım:

robot.is_turn_active()

Parametreler

Tanım

Bu yöntemin parametresi yoktur.

# Blink all the LEDs while the robot is turning
robot.turn_for(RIGHT, 180, wait=False) 

while robot.is_turn_active():
    robot.led.on(ALL_LEDS, GREEN)
    wait(0.5, SECONDS)
    robot.led.on(ALL_LEDS, CYAN)
    wait(0.5, SECONDS)

robot.led.off(ALL_LEDS)

is_stopped#

is_stopped , robotun hareket etmediğini veya dönmediğ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 etmiyor veya dönmüyor.

  • False — Robot hareket ediyor veya dönüyor.

Kullanım:

robot.is_stopped()

Parametreler

Tanım

Bu yöntemin parametresi yoktur.

# Blink all the LEDs while the robot is moving or turning

def light_show():
    # Flash LEDs while the robot is moving or turning
    while not robot.is_stopped():
        robot.led.on(ALL_LEDS, GREEN)
        wait(.5, SECONDS)
        robot.led.on(ALL_LEDS, PURPLE)
        wait(.5, SECONDS)

    robot.led.off(ALL_LEDS)

robot.move_for(200, 0, wait=False)
light_show()

robot.turn_for(RIGHT, 180, wait=False)
light_show()