Servo Programlama Temelleri

Pozisyon Hareketlerini Programlama

test_servo.setPosition(1); satırını OpMode'un while döngüsüne ekleyin.

while (opModeIsActive()) {
    test_servo.setPosition(1);
    telemetry.addData("Status", "Running");
    telemetry.update();
}

Build Everything seçeneğini seçerek kodu derleyin.


Hızlı Kontrol!

Hadi programımızı deneyelim. Ne olduğunu gözlemlemek için bir dakika ayırın.

Programımızı ilk kez çalıştırdığımızda, servo kendini pozisyon 1'e taşımış ve o pozisyonda kalmış olmalıdır. Ancak, programı tekrar çalıştırdığımızda ne oluyor? Servo hareket ediyor mu?

Eğer servo beklendiği gibi hareket etmediyse, bağlantılarınızı ve porta yerleştirme işlemlerini yapılandırmanızla karşılaştırarak tekrar kontrol edin.


Sıfıra Geri Döndürme

test_servo.setPosition(); komutunun amacı, servonun pozisyonunu ayarlamaktır. Eğer servo, kod çalıştırıldığında zaten ayarlanmış pozisyonda bulunuyorsa, pozisyonunu değiştirmeyecektir.

Hadi test_servo.setPosition(0); satırını eklemeyi deneyelim.

Bu durumda, kod her tekrarlandığında servonun sıfıra dönmesini istemiyoruz. Peki bu satırı nereye eklemeliyiz?

Programlama Temelleri bölümünde OpMode'un farklı bölümlerini tartıştığımızı hatırlayın. Servonun sadece BİR KEZ sıfırlanmasını istediğimiz için, bunu kod ilk etkinleştirildiğinde ama Play tuşuna basılmadan önce yapılmasını isteyeceğiz.

public void runOpMode() {
    control_Hub = hardwareMap.get(Blinker.class, "Control Hub");
    arm = hardwareMap.get(DcMotor.class, "arm");
    leftmotor = hardwareMap.get(DcMotor.class, "leftmotor");
    rightmotor = hardwareMap.get(DcMotor.class, "rightmotor");
    test_motor = hardwareMap.get(DcMotor.class, "test_motor");
    test_servo = hardwareMap.get(Servo.class, "test_servo");
    test_touch = hardwareMap.get(TouchSensor.class, "test_touch");
    
    test_servo.setPosition(0);

    telemetry.addData("Status", "Initialized");
    telemetry.update();

    // Oyun başlamadan önce bekle (sürücü PLAY'e basar)
    waitForStart();

    // Oyun sonlanana kadar çalıştır (sürücü STOP'a basar)
    while (opModeIsActive()) {
        test_servo.setPosition(1);
        telemetry.addData("Status", "Running");
        telemetry.update();
    }
}

Test yatağında bu OpMode'u çalıştırmayı deneyin ve şu soruyu düşünün: Bu çalıştırma önceki çalıştırmadan nasıl farklı?


Başlangıç Pozisyonuna Ayarlama

Birçok uygulamada, servonun bilinen bir pozisyonda (örneğin sıfır pozisyonunda) başlaması, bir mekanizmanın doğru çalışması için faydalıdır. Servoyu başlangıç pozisyonuna ayarlamak, OpMode çalıştırıldığında doğru pozisyonda olmasını sağlar.

Bir sonraki bölüme geçmeden önce, başlangıç pozisyonunun ayarlanmasının nerelerde yararlı olabileceğini düşünmek için bir dakika ayırın!


Herhangi bir sorunuz varsa sormaktan çekinmeyin! 😊

Last updated