Motor Gücü vs. Robot Hareketi

Şu anda, motorlarımız programımızın başında tam ileri gücüyle çalışacak şekilde ayarlanmış durumda. Referans olarak, aşağıdaki resim ileri ve geri arasındaki tam hareket skalasını göstermektedir:

Bu bilgiyi alalım ve ilk başta bir motoru oyun kumandamızla hareket ettirmeyi programladığımız zamanı hatırlayalım. O bölümde, motorumuz joystick'in hangi yönde ne kadar hareket ettiğine bağlı olarak farklı güç seviyelerinde dönebilirdi. Ancak, bu kurulumda yaşadığımız problemi hatırlıyor musunuz?

Önceki kodumuzu kullanırken, motorumuz sadece joystick y-ekseni boyunca hareket ettiğinde dönüyordu. Sola veya sağa hareket etmek motoru çalıştırmaya başlamazdı, ancak diyagonal hareketlerde biraz titreme başlardı.

İşte burada, kodumuza biraz matematik eklemek devreye giriyor. Hatırlayın, arcade sürüşünde her iki motor da tek bir joystick ile kontrol ediliyordu. Robotumuzun, her iki motor için ne kadar güç verilmesi gerektiğini ve hangi yönde hareket etmeleri gerektiğini hesaplayabilmesi gerekiyor. Neyse ki, her şeyi doğru şekilde ayarladığımızda robotumuz program çalışırken hesaplamaları kendisi yapabilecek!

Sonunda, motorların farklı hareket biçimlerine tepki vererek şu tür durumları yaratabilmeliyiz:

Hızlı Kontrol!

Robotumuzun nasıl hareket ettiği, her motorun ne kadar güç aldığına bağlıdır. Devam etmeden önce, mevcut programımızla robotun, bloğundaki değerleri değiştirdiğimizde nasıl tepki verdiğini keşfedebiliriz.

  • rightmotor gücünü 0.3 ve leftmotor gücünü 1 yaptığımızda ne olur?

  • leftmotor gücünü 0.5 ve rightmotor gücünü 1 yaptığımızda ne olur?

  • leftmotor gücünü -0.4 ve rightmotor gücünü 0.4 yaptığımızda ne olur?

Farklı kombinasyonlarla test yaptıktan sonra, motorlar arasındaki gücün hareketi nasıl etkilediğine dair hızlı bir özet yapalım:

Güç Karşılaştırması

Robot Hareketi

rightMotor gücü = leftMotor gücü

rightMotor gücü > leftMotor gücü

Sola Dönüş

rightMotor gücü < leftMotor gücü

Sağa Dönüş

rightMotor gücü = leftMotor gücü

Düz İleri veya Geri Hareket

Joystick ile Güç Belirleme

Motorlarımıza sabit bir sayısal değer atamak yerine, ve blokları robotumuzun joystick hareketlerini bir güç seviyesine dönüştürmesine yardımcı olacaktır.

Arcade sürüşü için amacımız, joystick girdilerinin şu motor çıktılarıyla hesaplanmasıdır:

Joystick Yönü (x, y)

rightmotor

leftmotor

Hareket

(0, 1)

1

1

İleri

(0, -1)

-1

-1

Geri

(-1, 0)

1

-1

Sola Dönüş

(1, 0)

-1

1

Sağa Dönüş

Bu tablodaki çıktıları almak için, gamepad değerlerinin her motor için anlamlı bir şekilde atanması gerekir. Bunu yapmak için, kodumuzda zaten oluşturduğumuz değişkenleri kullanarak iki denklem kuracağız:

rightmotor = y - x leftmotor = y + x

Last updated