Skip to main content

Davranış Tabanlı Programlama

Karmaşık davranışların birden fazla basit davranışın kullanımına nasıl dayandığını gösteren akış şeması diyagramı. Birden fazla örneği göstermek için birçok dallanma yolu vardır. Karmaşık eylemlerden basit eylemlere doğru giden bir yol şöyledir: 'Kendi kendine giden bir aracı çalıştırmak', 'Belirli bir yere seyahat etmek', 'Beş saniye ileri gitmek', 'Robot tekerleklerini hareket ettirmek', 'Bir motoru döndürmek'.
Karmaşık davranışlar birden fazla basit davranışın kullanılmasına dayanır.

Programlama Karmaşıklığı

Robotlar çok çeşitli görevleri yerine getirmek üzere tasarlanabilir. Bunlardan bazıları çok basit işlerdir, örneğin otomatik bir kapıyı açmak gibi. Diğerleri ise çok daha karmaşık olabilir; örneğin, kentsel bir ortamda hareket eden otonom bir araba gibi. Görev ne kadar karmaşık olursa olsun, daha basit görevlere bölünebilir. Bu görevlere davranış denir ve robotik programlamanın yapı taşlarıdır.

Davranış, bir robotun hareket etme biçimidir ve robotun nasıl inşa edildiğine veya programlandığına bağlı olarak karmaşıklık derecesi değişebilir. VEX V5 Speedbot gibi basit bir mobil robotun yalnızca iki motoru varken, Clawbot'un Kol ve Pençe için iki ek motor da dahil olmak üzere dört motoru vardır. Her iki robotun davranışları, belirlenen hedeflere ulaşmak için bu motorların döndürülmesini içerecek. Daha fazla tasarım ve programlama ile bu basit davranıştan başlayıp daha karmaşık davranışlar yapabilirsiniz.

Aşağıda Speedbot ve Clawbot için basit olandan karmaşığa doğru artan robot davranışlarının bir listesi bulunmaktadır. Parantez içinde her birini oluşturan daha basit davranışları görebilirsiniz.

  • Belirli bir porta atanmış bir motoru döndürün
  • İleri sürüş (Aktarma Organlarını kullanarak hem sol hem de sağ motorları döndürün)
  • 5 metre ilerleyin (ileri sürün, sonra durun)
  • Uzaktaki bir nesneyi yakalayın (2 metre seyahat edin, yakalamak için pençe motorunu döndürün)
  • Bir nesneyi alın ve yüksek bir rafa koyun (uzaktaki bir nesneyi yakalayın, arkanızı dönün, 2 metre ilerleyin, nesneyi kaldırmak ve bırakmak için kol ve pençe motorlarını kullanın)

Daha karmaşık davranışların nasıl daha basit davranışlara dönüştürülebileceğini görebilirsiniz. Bunlar her türlü karmaşık görevin yapı taşları haline gelir.

Öğretmen İpuçları simgesi Öğretmen İpuçları

  • Öğrencilere karmaşık robot davranışlarını daha küçük, basit adımlara bölmelerini söyleyin. Bu işleme ayrışma denir.

  • Öğrencilere karmaşık davranışları daha basit görevlere ayırmanın planlama ve programlamanın önemli bir parçası olduğunu açıklayın.

  • Yeterli ders zamanı varsa öğrencilerin kendi projelerini yürütmelerine izin verin.

Öğrenmenizi Genişletin simgesi Öğrenmenizi Genişletin

Bu etkinliği hesaplamalı düşünme ve ayrıştırma ile ilişkilendirmek için öğrencilerden, bir robotun aşağıdaki etkinlikleri tamamlamak için gerçekleştireceği davranış adımlarını haritalandırmalarını veya listelemelerini isteyin:

  • Etkinlik Bir: 1 metre ilerleyin ve başlangıç noktasına geri dönün.

  • Etkinlik İki: Robotun 60 cm önünde bulunan bir kutuyu çevirin.

  • Üçüncü Etkinlik: Bir nesneyi alın, sallayın, 30 cm ilerleyin, nesneyi yere koyun ve başlangıç noktasına geri dönün.

Tartışmayı Motive Et simgesi Tartışmayı Motive Edin

Öğrenciler yukarıdaki Öğrenmenizi Genişletin etkinlikleri için listeledikleri davranış adımlarını paylaşmalıdırlar. Aşağıdaki soruların her biri, herhangi bir aktiviteden veya tüm aktivitelerden sonra sorulabilir.

S:Her grup bu aktiviteyi başarıyla tamamlamak için hangi adımları veya davranışları listeledi?
C:Öğrenciler, aktiviteyi veya görevi tamamlamak için gereken basit robot davranışlarını (ileri, geri sürüş, sola veya sağa dönüş) listelemenin yanı sıra, robotun kat etmesi gereken uzunluğu ve kolun hareketini ve hızını da dikkate almalılar. Öğrenciler her adımı temsil edecek şekilde davranış listelerini oluşturmalıdırlar.

S:Bu etkinlik için çözümler (adım listeleri) arasındaki benzerlikler ve farklılıklar nelerdi?
C:Öğrenciler çözümlerine dayanarak karşılaştırmalar yapacaklar. Öğrencilerin paylaştığı adımları organize etmenin iyi bir yolu Venn diyagramı olabilir. Öğrencilerin çoğunluğu belirli bir adımı adlandırırsa, bunu dairelerin üst üste geldiği merkeze ekleyin. Eğer sadece bir veya birkaç öğrenci belirli bir adımı adlandırırsa, bunu bir daireye veya diğerine ekleyin. Tamamlandığında, merkezdeki adımlar güvenilir bir şekilde basit olmalı ve daha fazla parçalanamamalıdır; ancak yalnızca bir dairede listelenen adımlar muhtemelen olabilecekleri kadar basit değildir. Ancak bu kalıp, sınıfın karmaşık davranışları en basit adımlara bölme konusundaki deneyimine bağlı olarak tersine de çevrilebilir.

S:Başarılı çözümlerle benzerlikler var mıydı? Eğer öyleyse, bunlar nelerdi?
A:En başarılı çözümler, en fazla ayrıntı ve ayrıntıyı içerenlerdi. Robot, en küçük bileşenlerine ayrılmış, çok özel davranışlara sahip bir dilde programlanmıştır. Örneğin, bir robotun "1 metre yol kat edip başlangıç noktasına geri dönmesi" yaygın bir ifade olabilir, ancak bu üst düzey tanımlama programlama sırasında kolayca çevrilemez. Bunu biraz daha ayrıntılı açıklamak gerekirse: 1 metre ileri gidiyor, 180 derece dönüyor ve 1 metre ileri gidiyor. Ancak bu bile yeterince hassas olmayabilir ve programlamaya hazır olmak için bu ayrıntı düzeyine ihtiyacınız vardır: sürüşü ve dönüş hızlarını %40'a ayarlayın, 1 metre ileri sürün, 3 saniye bekleyin, 180 derece sola dönün, 1 saniye bekleyin ve 1 metre ileri sürün. Karmaşık davranışları programlanabilir robot davranışlarına dönüştürmek için ne kadar çok parçalara ayırırsak, bir projeyi tamamlamak için o kadar iyi hazırlanmış oluruz.