Ana Sayfa · Akademi · Robotik ve Kodlama · Robotik Sistemler · Algılama–Karar–Hareket Döngüsü

Algılama–Karar–Hareket Döngüsü

Bir robotun sürekli sensör okuyup karar vererek harekete geçmesini sağlayan döngüyü öğren.

DERS PUSULASI

Bu sayfayı ne için kullanacaksın?

Ana fikir

Bir robot, aynı üç adımı sürekli tekrar ederek çalışır: sensörle algılar , koşula bakarak karar verir ve motorlarla hareket eder — sonra baştan başlar.

Üretilecek kanıt

Kağıt üzerinde bir robot davranışı tasarla — kod yazmana gerek yok. Görev: Bir robot, önündeki mesafe sensörüyle bir masanın kenarına kadar ilerlesin. Kenara 10 santimetre kalınca dursun ve mavi LED'i yaksın. Kenar temizlenirse (mesafe yeniden büyürse) tekrar ilerlesin. Sözde kodu döngü olarak yaz. Şu üç adımın her turda göründüğünden emin ol: Algıla: hangi…

Kontrol tuzağı

Döngüyü unutmak Sensörü sadece bir kez okuyup gerisini tek seferlik yazmak. O zaman robot ilk ölçümde takılır ve çevre değişse bile tepki vermez. Üç adım her zaman bir döngü içinde olmalı. Karar adımını atlamak Sensörü okuyup doğrudan motoru sürmek, arada koşul olmadan. Bu durumda robot "algılar" ama "düşünmez" —…

Sonraki bağlantı

Şasi ve Mekanik Tasarım: Robotun gövdesini, tekerleklerini ve dişlilerini planlamak — sağlam ve dengeli bir robotun nasıl kurulduğu.

Modül kaynakları: Python Tutorial · Arduino Learn

SeviyeBaşlangıç
Yaş10–16
Süre25–35 dk
Ön koşulRobotun Temel Parçaları
İçerikStandart ders · 1.395 kelime
Son güncelleme

Bir cümlelik özet

Bir robot, aynı üç adımı sürekli tekrar ederek çalışır: sensörle algılar, koşula bakarak karar verir ve motorlarla hareket eder — sonra baştan başlar.

Neden önemli?

Bir robotu bir masa oyuncağından ayıran şey, çevresini fark edip ona göre davranabilmesidir. Işıkları yanıp sönen bir kutu her zaman aynı şeyi yapar. Robot ise duvara yaklaştığında durur, çizgiyi görünce döner, engel kalkınca yeniden ilerler.

Bu davranışın arkasında tek bir fikir vardır: algıla–karar ver–hareket et döngüsü (İngilizcesi *sense–decide–act*). Robot bu üç adımı bir kez değil, saniyede belki yüzlerce kez tekrarlar. Döngü ne kadar hızlı ve düzenli dönerse robot çevreye o kadar akıcı tepki verir.

Bu ders, önceki modüllerde öğrendiğin iki fikri birleştirir. Algoritma modülünden koşul (eğer ... ise) ve tekrar (döngü) yapılarını hatırlıyorsun. Elektronik ve sensör modüllerinden bir mesafe sensörünün nasıl veri verdiğini biliyorsun. Robotik, bu parçaları tek bir çalışan sistemde bir araya getirmektir.

Döngünün üç adımı

Robotun beynindeki temel akış her zaman aynı sırayla ilerler. Her adımı ayrı ayrı tanıyalım.

1. Algıla (sensörü oku)

Robot önce bir soru sorar: "Şu an çevrede ne oluyor?" Cevabı sensörlerden gelir. Bu bir sayı olabilir: mesafe sensöründen gelen "18 santimetre", ışık sensöründen gelen bir parlaklık değeri ya da bir düğmenin basılı olup olmadığı bilgisi.

Bu adımda robot hiçbir karar vermez. Sadece bir ölçüm alır ve bir değişkende saklar. Tıpkı sen yola çıkmadan önce pencereden dışarı bakıp havayı gözlemlemen gibi.

2. Karar ver (koşula bak)

Robot elindeki ölçümü bir kuralla karşılaştırır. Burada algoritma modülünden bildiğin koşul devreye girer:

Eğer mesafe 15 santimetreden küçükse
  "çok yakın" kararını ver
Değilse
  "yol açık" kararını ver

Karar adımı ölçümü bir eyleme çevirir. Sensör "18" dediğinde robot bunun ne anlama geldiğini bilmez; anlamı veren, senin yazdığın koşuldur. Aynı ölçüm, farklı bir kuralda farklı karara yol açabilir.

3. Hareket et (motoru sür)

Karar verildikten sonra robot bir şey yapar: motorları ileri döndürür, durur, geri gider ya da yön değiştirir. Bir LED yakmak veya sesli uyarı vermek de birer harekettir.

Bu adımda önceki iki adımın sonucu fiziksel dünyaya yansır. Robotun tekerlekleri döner, çevre değişir — ve bir sonraki turda sensör bu yeni durumu tekrar ölçer.

Ve tekrar: döngü hiç durmaz

Üç adım bittiğinde robot baştan başlar. İşte bu yüzden buna döngü diyoruz. Robot kapatılana kadar algıla–karar–hareket sırası tekrar tekrar döner.

Sonsuza kadar tekrarla:
  1. Sensörü oku
  2. Koşula göre karar ver
  3. Motoru sür

Algoritma dersinden hatırla: sonsuz döngü, bilerek kullanıldığında ve güvenli bir durdurma yöntemi (kapatma düğmesi) olduğunda uygundur. Robotlarda ana döngü genellikle bilerek sonsuzdur; robotu güç düğmesinden kapatarak durdururuz.

Somut örnekler

Örnek 1: Duvara çarpmayan robot

Bir robotun önünde mesafe sensörü var. Amaç basit: ilerle, ama bir engele çok yaklaşınca dur.

Önce sözde kodla mantığı yazalım:

Sonsuza kadar tekrarla:
  mesafe = ön sensörü oku
  Eğer mesafe 15 santimetreden küçükse
    motorları durdur
    kırmızı LED'i yak
  Değilse
    ileri git

Aynı mantığı kısa bir Arduino (C++) döngüsüyle yazabiliriz. Buradaki loop() fonksiyonu zaten tekrar tekrar çalışır — Arduino'nun kendi döngüsü, bizim algıla–karar–hareket turumuzdur:

void loop() {
  int mesafe = mesafeOku();   // ALGILA: sensörden cm değeri
  if (mesafe < 15) {          // KARAR: engel yakın mı?
    dur();                    // HAREKET: motorları durdur
    digitalWrite(LED, HIGH);  // kırmızı uyarı
  } else {
    ileriGit();               // HAREKET: yola devam
    digitalWrite(LED, LOW);
  }
}

Dikkat et: mesafeOku, dur ve ileriGit bizim daha önce yazdığımız yardımcı fonksiyonlardır. Kodun okunması, sözde koddaki üç adımla birebir aynıdır. Dil değişse de mantık aynı kalır — tıpkı algoritma dersindeki tek/çift örneğinde olduğu gibi.

Örnek 2: Çizgi izleyen robot

Şimdi biraz daha akıllı bir davranış. Altında iki ışık sensörü olan bir robot, yerdeki siyah çizgiyi takip etsin. Sol sensör çizgiyi görürse robot fazla sola kaymış demektir; sağa düzeltmelidir.

Sonsuza kadar tekrarla:
  sol = sol sensörü oku
  sag = sağ sensörü oku
  Eğer sol çizgiyi görüyorsa
    sağa doğru düzelt
  Değilse eğer sag çizgiyi görüyorsa
    sola doğru düzelt
  Değilse
    düz ilerle

Burada aynı algıla–karar–hareket döngüsü var; sadece iki sensör okuyoruz ve kararda birden fazla koşul (değilse eğer) kullanıyoruz. Robot çizginin üstünde küçük düzeltmeler yaparak ilerler. Döngü çok hızlı döndüğü için gözümüze akıcı bir takip gibi görünür.

İki örnekte de yapı aynıdır: oku, karşılaştır, hareket et, tekrarla. Değişen tek şey hangi sensörü okuduğun ve koşulun ne olduğudur.

Mini uygulama

Kağıt üzerinde bir robot davranışı tasarla — kod yazmana gerek yok.

Görev: Bir robot, önündeki mesafe sensörüyle bir masanın kenarına kadar ilerlesin. Kenara 10 santimetre kalınca dursun ve mavi LED'i yaksın. Kenar temizlenirse (mesafe yeniden büyürse) tekrar ilerlesin.

Sözde kodu döngü olarak yaz. Şu üç adımın her turda göründüğünden emin ol:

  1. Algıla: hangi sensörü okuyorsun ve değeri nereye kaydediyorsun?
  2. Karar: koşulun ne? Hem "eğer" hem de "değilse" durumunu düşün.
  3. Hareket: her kararda motor ve LED ne yapıyor?

Bitince kendine sor: Robotu bir uçurumun kenarına koysam bu mantık güvenli mi? Yoksa mesafe sensörünü aşağı bakacak şekilde mi çevirmeliyim?

Sık yapılan hatalar

Döngüyü unutmak

Sensörü sadece bir kez okuyup gerisini tek seferlik yazmak. O zaman robot ilk ölçümde takılır ve çevre değişse bile tepki vermez. Üç adım her zaman bir döngü içinde olmalı.

Karar adımını atlamak

Sensörü okuyup doğrudan motoru sürmek, arada koşul olmadan. Bu durumda robot "algılar" ama "düşünmez" — ölçüm hiçbir işe yaramaz. Okuma ile hareket arasında mutlaka bir kural olmalı.

"Değilse" durumunu düşünmemek

"Eğer yakınsa dur" yazıp yolun açık olduğu durumu unutmak. O zaman robot bir kez durunca bir daha hareket edemez. İyi bir koşul her iki sonucu da ele alır.

Döngüyü bekletmeden çok hızlı döndürmek

Bazı sensörler ölçüm için kısa bir süreye ihtiyaç duyar. Döngü hiç beklemeden çok hızlı dönerse okumalar hatalı gelebilir. Genellikle her tura küçük bir bekleme (gecikme) eklenir.

Motoru mantıkla aynı güçten beslemeye çalışmak

Motorlar Arduino'nun kontrol pininden doğrudan beslenemez; çektikleri akım çok yüksektir. Bunun neden tehlikeli olduğunu güvenlik notunda açıklıyoruz.

Güvenlik notu

Hareket eden bir robot, ekrandaki bir programdan farklıdır — gerçekten çarpar, düşer ve sıkıştırır. Bu yüzden test ederken şunlara dikkat et:

Ders özeti

Kontrol soruları

  1. Algıla–karar–hareket döngüsünün üç adımı nedir ve hangi sırayla çalışır?
  2. "Algıla" adımında robot bir karar verir mi? Bu adımda ne olur?
  3. Aşağıdaki sözde kodda karar adımını gösteren satır hangisidir?
   mesafe = ön sensörü oku
   Eğer mesafe 15'ten küçükse
     dur
  1. Arduino'da robotun ana davranışını genellikle hangi fonksiyonun içine yazarız ve bu fonksiyon neden döngü için uygundur?
  2. Motorları neden Arduino'nun kontrol pininden değil, ayrı bir pil ve motor sürücüden besleriz?

Cevaplar

  1. Üç adım algıla, karar ver ve hareket et sırasıyla çalışır. Robot önce sensörü okur, sonra koşula bakarak karar verir, sonra motoru sürer — ve tekrar başa döner.
  2. Hayır, karar verilmez. "Algıla" adımında robot yalnızca sensörden bir ölçüm alır ve onu bir değişkende saklar. Kararı bir sonraki adım verir.
  3. Karar adımı Eğer mesafe 15'ten küçükse satırıdır. İlk satır algılama (okuma), dur ise harekettir.
  4. Ana davranışı loop() fonksiyonunun içine yazarız. loop(), Arduino tarafından robot açık olduğu sürece tekrar tekrar çağrılır; bu yüzden algıla–karar–hareket turu için doğal bir döngü sağlar.
  5. Motorlar Arduino'nun kontrol pininin verebileceğinden çok daha fazla akım çeker. Bu akımı doğrudan pinden çekmek Arduino'ya zarar verir. Motor sürücü, ayrı pilden gelen gücü güvenli biçimde motorlara aktarır; Arduino yalnızca kontrol sinyali gönderir. İki devrenin ortak GND'ye bağlanması gerekir.

Kaynak ve doğrulama notu

“Algılama–Karar–Hareket Döngüsü” dersi için doğrulama odağı Döngünün üç adımı ile 2. Karar ver (koşula bak) arasındaki ilişkinin örnekler üzerinde tutarlı çalışmasıdır. Robot davranışı yalnız kodla açıklanamaz; mekanik yapı, güç sistemi, sensör konumu ve zemin koşulları birlikte değerlendirilmelidir. Test sonuçları aynı parkurda birkaç tekrar yapılarak kaydedilmelidir.

Sonraki ders

Şasi ve Mekanik Tasarım: Robotun gövdesini, tekerleklerini ve dişlilerini planlamak — sağlam ve dengeli bir robotun nasıl kurulduğu.

Quiz’i BaşlatRobotik Sistemler bölümüne dön
SORU HAVUZU

Bu dersi 10 soruyla pekiştir

Bu ders için 20 soruluk bir havuz hazırlandı. Her başlangıçta 10 soru ve seçenekler yeniden karıştırılır.