Hız (Velocity) Ayarlama
Programımızda Hız Ayarlama
Hız, SDK içindeki kapalı döngü kontrolüdür ve motorların gerekli hızda çalışmasını sağlamak için encoder tıklamalarını kullanır. Belirli bir hız ayarlandığında, motorlar, hedef hızına ulaşmak için gereken gücü ve hızı hesaplar.
Bir hız ayarlamak için motorunuzun maksimum RPM'sinin ne kadar olduğunu bilmek önemlidir. Class Bot V2 için motorlar 300 RPM'ye kadar çalışabilir. Drivetrain kullanıyorsanız, hızı biraz daha düşük tutarak daha iyi kontrol elde edebilirsiniz. Bu örnekte, hızı 175 RPM olarak ayarlayacağız.
RPM (dakikada devir) hız birimidir ve bu değeri tıklama başına saniyeye (TPS - Ticks per Second) dönüştürmek gereklidir. Bunun için RPM'yi 60'a bölüp, ardından bu dönüşümle COUNTS_PER_WHEEL_REV (tekerlek başına tık sayısı) ile çarparız.
Adım 1: Ticks per Second (TPS) Hesaplama
175 RPM'yi saniyeye çevirelim:
TPS=17560×COUNTS_PER_WHEEL_REVTPS = \frac{175}{60} \times COUNTS\_PER\_WHEEL\_REV
Adım 2: Yeni Bir Değişken Olarak TPS Eklenmesi
Bu hesaplamayı bir değişken olarak eklemek için şu adımları izleyebilirsiniz:
public void runOpMode() {
leftmotor = hardwareMap.get(DcMotor.class, "leftmotor");
rightmotor = hardwareMap.get(DcMotor.class, "rightmotor");
rightmotor.setDirection(DcMotor.Direction.REVERSE);
leftmotor.setMode(DcMotor.RunMode.STOP_AND_RESET_ENCODER);
rightmotor.setMode(DcMotor.RunMode.STOP_AND_RESET_ENCODER);
int leftTarget = (int)(610 * COUNTS_PER_MM);
int rightTarget = (int)(610 * COUNTS_PER_MM);
double TPS = (175 / 60) * COUNTS_PER_WHEEL_REV;
waitForStart();
}Adım 3: Power (Güç) Değişkeninden Velocity (Hız) Değişkenine Geçiş
Motorlar için güç (setPower) yerine hız (setVelocity) kullanacağız. Bu işlemde, setVelocity() fonksiyonuna TPS parametresini ekleyeceğiz.
DcMotor vs. DcMotorEx
Hız ayarlama fonksiyonu, DcMotorEx arayüzüne ait bir fonksiyondur. Bu arayüz, motorların daha gelişmiş fonksiyonlarını, örneğin kapalı döngü kontrol fonksiyonlarını içerir.
Dolayısıyla, setVelocity() fonksiyonunu kullanabilmek için motorları DcMotorEx olarak tanımlamalıyız. Aşağıda, değiştirmeniz gereken kısmı görebilirsiniz:
Ve motorları DcMotorEx olarak alalım:
DcMotorEx, DcMotor'ın bir genişlemesidir, bu nedenle DcMotor'a özgü fonksiyonlar DcMotorEx üzerinde de çalışacaktır.
Tam Program Kodu:
Last updated