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