Dokunmatik Sensörlerin Programlanması
Bu bölüm, REV Dokunmatik Sensörü veya Limit Anahtarı kullanımına yöneliktir. Diğer 3. taraf dokunmatik sensörleri kullanırken gereksinimler farklılık gösterebilir.
REV Dokunmatik Sensörü, dijital port 1, 3, 5 veya 7'ye yapılandırılmalıdır.
Dokunmatik Sensör Temelleri
Aşağıdaki örnek kod dosya adı: HelloRobot_TouchSensor
Bir dokunmatik sensörün nasıl çalıştığını anlamak için temel bileşenlerden başlayalım!
Dokunmatik sensör tarafından toplanan bilgiler iki duruma ayrılır: doğru veya yanlış. Bu bilgiler, bir if/else koşullu ifadesi ile kullanılmak için mükemmeldir.
Aşağıdaki kod, dokunmatik sensörden gelen true/false durumunu toplar ve bu durumu bir if/else koşulu olarak kullanır:
if (test_touch.isPressed()){
// Dokunmatik sensör aktif
} else {
// Dokunmatik sensör pasif
}Bu kodu şu şekilde okuyabiliriz: “Eğer dokunmatik sensör aktifse ____ yap, değilse _____ yap.”
Dokunmatik sensör aktif =
trueDokunmatik sensör pasif =
false
Telemetry Eklemek
Robotun o anda ne yaptığını Driver Hub ekranında görebilmek her zaman faydalıdır. Program çalışırken bazı telemetry verilerini paylaşmasını talep edebiliriz.
Aşağıdaki kodda, dokunmatik sensörün durumu için bir telemetry.addData satırı eklenmiştir:

if (test_touch.isPressed()){
// Dokunmatik sensör aktif
telemetry.addData("Touch Sensor", "Is Pressed");
} else {
// Dokunmatik sensör pasif
telemetry.addData("Touch Sensor", "Is Not Pressed");
}Ekranda görüntülenen mavi yazı, tırnak içinde belirttiğimiz metindir. Örneğin, buton basıldığında robotumuzun “Hello World!” demesini sağlayabiliriz.

Tam Program
Programı tamamlamak için döngünün her çalışmasında telemetry'nin güncellenmesini sağlamamız gerekir. Bunun için telemetry.update(); ekleyerek programı sonlandırıyoruz:
// Oyun başlatılana kadar bekler (sürücü PLAY tuşuna basar)
waitForStart();
// Maç sona erene kadar çalışır (sürücü STOP tuşuna basar)
while (opModeIsActive()) {
if (test_touch.isPressed()){
// Dokunmatik sensör aktif
telemetry.addData("Touch Sensor", "Is Pressed");
} else {
// Dokunmatik sensör pasif
telemetry.addData("Touch Sensor", "Is Not Pressed");
}
telemetry.update();
}Dokunmatik Sensörün Limit Anahtarı Olarak Kullanılması
Dokunmatik sensörün en yaygın kullanımlarından biri, limit anahtarı olarak görev yapmasıdır. Bu, bir mekanizmanın (örneğin bir kolun) sınırına ulaştığını robotun algılamasını sağlar.
Aşağıdaki kod, motorun dokunmatik sensör basılana kadar hareket etmesini sağlar:
if (test_touch.isPressed()){
// Dokunmatik sensör aktif
test_motor.setPower(0);
telemetry.addData("Touch Sensor", "Is Pressed");
} else {
// Dokunmatik sensör pasif
test_motor.setPower(0.3);
telemetry.addData("Touch Sensor", "Is Not Pressed");
}Test edin! Sensör tetiklendiğinde ne olduğunu gözlemleyin.
Tersine Çevirme
Yukarıdaki örnekte, if/else ifadesi önce sensörün aktif olup olmadığını kontrol eder. Bu yapı, şu şekilde okunabilir:
"Eğer dokunmatik sensör aktifse motor gücünü 0 yap, değilse 0.3 yap."
Bu ifadeyi tersine çevirmek için ! operatörünü kullanabiliriz:
if (!test_touch.isPressed()){
// Dokunmatik sensör pasif
test_motor.setPower(0.3);
telemetry.addData("Touch Sensor", "Is Not Pressed");
} else {
// Dokunmatik sensör aktif
test_motor.setPower(0);
telemetry.addData("Touch Sensor", "Is Pressed");
}Bu kod, öncelikle dokunmatik sensörün pasif olup olmadığını kontrol eder. ! operatörü, verilen durumun tersini kontrol etmek için kullanılır.
Deneyin ve sonuçları gözlemleyin!
Last updated