Skip to main content

Programlama Karmaşıklığı

Robotlar çok çeşitli görevleri yerine getirecek şekilde tasarlanabilir. Bu görevlerden bazıları, otomatik bir kapıyı açmak gibi çok basittir. Diğerleri ise kentsel ortamda gezinen otonom bir araba gibi çok daha karmaşık olabilir. Görev ne kadar karmaşık olursa olsun, daha basit görevlere bölünebilir. Bu görevler davranışlar olarak bilinir ve robotik programlamanın yapı taşlarıdır.

Davranış, bir robotun hareket etme şeklidir ve robotun nasıl oluşturulduğuna veya programlandığına bağlı olarak karmaşıklığı değişebilir. VEX V5 Speedbot gibi basit bir mobil robotun yalnızca iki motoru bulunurken Clawbot'un, Kol ve Pençe için iki ek motor dahil olmak üzere dört motoru vardır. Her iki robotun da davranışları, belirlenen hedeflere ulaşmak için bu motorların döndürülmesini içerecektir. Daha fazla tasarım ve programlamayla bu basit davranıştan başlayıp daha karmaşık davranışlar gerçekleştirebilirsiniz.

Aşağıda hem Speedbot hem de Clawbot için basitten 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 bağlantı noktasına atanmış bir motoru döndürün

  • İleriye doğru sürün (Güç Aktarma Organı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 ilerleyin, yakalamak için pençe motorunu döndürün)

  • Bir nesneyi alın ve yüksek bir rafa koyun (uzaktaki bir nesneyi alı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ışlardan herhangi birini nasıl daha basit davranışlara dönüştürebileceğinizi görebilirsiniz. Bunlar herhangi bir 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 ayırmalarını söyleyin. Bu süreç ayrışma olarak bilinir.

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

  • Yeterli ders saati varsa öğrencilerin özerk projelerini yürütmelerine izin verin.

Öğreniminizi Genişletin simgesi Öğreniminizi Genişletin

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

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

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

  • Üçüncü Aktivite: Bir nesneyi alın, sallayın, 30 cm ilerleyin, nesneyi yere bırakın ve başlangıç ​​noktasına dönün.

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

Öğrenciler yukarıdaki Öğrenmenizi Geliştirin bölümündeki etkinlikler için listeledikleri davranış adımlarını paylaşmalıdır. Aşağıdaki soruların her biri etkinliklerin herhangi biri veya tamamından sonra sorulabilir.

S: Bu aktiviteyi başarıyla tamamlamak için her grup hangi adımları veya davranışları listeledi?
A: Öğrenciler, aktiviteyi veya görevi tamamlamak için gereken basit robot davranışlarını (ileriye doğru gitme, geri gitme, sola dönme) listelemenin yanı sıra, robotun kat etmesi gereken uzunluğu ve kolun hareketini ve hızını da dikkate almalıdır. veya doğru). Öğrenciler her adımın temsil edileceği şekilde davranış listelerini oluşturmalıdır.

S: Bu aktivitenin çözümleri (adım listeleri) arasındaki benzerlikler ve farklılıklar nelerdi?
A: Öğrenciler kendi çözümlerine göre karşılaştırma yapacaklardır. Venn diyagramı öğrencilerin paylaştığı adımları organize etmenin iyi bir yolu olabilir. Öğrencilerin çoğunluğu belirli bir adımı söylerse, bunu dairelerin üst üste geldiği merkeze ekleyin. Yalnızca bir veya birkaç öğrenci belirli bir adımı adlandırırsa, bunu bir çevreye veya diğerine ekleyin. Tamamlandığında, merkezdeki adımlar güvenilir bir şekilde basit olmalı ve daha fazla parçalanamayacak durumda olmalıdır; oysa dairelerden yalnızca birinde listelenen adımlar muhtemelen olabilecekleri kadar basit olmayacaktır. Ancak bu model, sınıfın karmaşık davranışları en basit adımlarına ayırma konusundaki deneyimine bağlı olarak tersine çevrilebilir.

S: Başarılı çözümler arasında benzerlikler var mıydı? Öyleyse, onlar neydi?
A: En başarılı çözümler, en fazla detay ve spesifikliği içeren çözümlerdi. Robot, en küçük bileşenlerine ayrılmış çok özel davranışlara sahip bir dilde programlanmıştır. Örneğin, bir robotun "1 metre hareket ettiğini ve başlangıç ​​noktasına geri döndüğünü" söylemek yaygın olabilir, ancak bu üst düzey açıklama programlama sırasında kolaylıkla tercüme edilemez. Bunu daha da parçalara ayırmanız gerekiyor: 1 metre ileri gidiyor, 180 derece dönüyor ve 1 metre ileri gidiyor. Ancak bu bile yeterince kesin olmayabilir ve programlamaya hazır olmak için bu düzeyde ayrıntıya 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 doğru sürün. Programlamaya hazır robot davranışları haline getirmek için karmaşık davranışları ne kadar parçalara ayırırsak, projeyi tamamlamaya o kadar hazırlıklı oluruz.