Bir robotun gerçekten robot olması için, çevresini algılayabilir ve etkileyebilir olması gerekiyor. Bu nedenle sensörler robotik için; bir robotu akıllı hale getirmek için nasıl kullanılacaklarını anlamak ise robotçular için hayati öneme sahiptir.
Robotics’e yeni giriş yapmış Makerlar için sensörlerin nasıl çalıştığından bahsedeceğimiz bu yazı, bir robotun nasıl programlanacağını anlamaya başlamak için size yardımcı olacak.
Sensor seçimi
Fiziksel olarak algılanması gereken birçok algılayıcı var. ancak HC-SR04 Ultrasonik Mesafe sensörünü ucuz, basit ve robotikte yaygın olarak kullandığı için tavsiye edebiliriz. Bu sensörün aynı zamanda çok uygun bir Arduino kütüphanesi bulunuyor.
Robot Modelini Tanımlama
Bu sensör mesafeleri algılayabildiği için öncelikle çarpmaları önleyen basit bir robotla başlayalım. Bu robot ileri ve geri hareket edebilir ve her iki yöne de dönebilir. Robottun ön tarafında mesafe sensörü bulunur. Robotumuzu tanımladığımıza göre artık nasıl hareket ettireceğimize bakmaya başlayalım.
Algıla, Düşün, Harekete Geç nedir?
Algıla, Düşün, Harekete Geç birçok robotik problemi çözmek için kullanılabilecek bir karar döngüsü ve son derece basit. Bu durumda, robotun önüne herhangi bir engel olup olmadığını hissetmesini istiyoruz. Daha sonra ileriye doğru hareket edip etmeyeceği, dönüp dönmeyeceği konusunda karar vermesi gerekiyor. Bundan sonra da bu karar üzerinde hareket etmeye devam edecek. Bu mantık, neredeyse herhangi bir davranış için herhangi bir sensörlü herhangi bir robot için de geçerli.
Aslında bunu robotu kontrol etmek için yazabileceğiniz bir koda dönüştürmek için daha spesifik olmamız gerekiyor. Robot için aşağıdaki gibi basit bir davranış oluşturalım:
- Robot, herhangi bir engele 3 cm’den az yaklaştığını algılar.
- Hiçbir engel yoksa, ileriye doğru hareket eder.
- Bir engel varsa geriye doğru hareket eder.
Bu davranışları koda çevirmek çok kolaydır. Ancak bu davranış kodları bir duvara vardığında robotun “sıkışıp kalmasına” neden olacak. Duvarı algılayana kadar ileriye doğru ilerleyecek, sonra geriye doğru hareket edecek, sonra tekrar ilerleyecek ve bu sonsuza kadar devam edecek.
Davranışı aşağıdaki şekilde değiştirelim.
- Robot, herhangi bir engele 3 cm’den az yaklaştığını algılar.
- Hiçbir engel yoksa, ileriye doğru hareket eder.
- Bir engel varsa sola döner, ardından 1. adıma döner.
Bu davranış sonunda robot 3 cm’den yakın duvarı olmayan bir yön bulana kadar devam edecektir.
Basit bir robotla bile, karmaşık Algıla, Düşün, Harekete Geç modelleri tasarlanarak akıllı davranışlar yaratılabilir. Çünkü akıllı olan yazılımdır!
Mevcut davranışımız biraz verimsiz, çünkü robot sağa dönmek için üç kez sola dönmek zorunda. Davranışımızı aşağıdaki şekilde değiştirelim; yukarıdaki üç aşamayı izleyen dördüncü adım:
- Bir engel varsa sola döner, ardından 1. adıma döner.
- Robot, herhangi bir engele 3 cm’den az yaklaştığını algılar.
- Hiçbir engel yoksa, ileriye doğru hareket eder.
- Bir engel varsa sola döner ve tekrar algılar.
- Herhangi bir engel yoksa ileri gider ve ‘loop’ yeniden başlar.
- Bir engel varsa, sağa döner ve tekrar algılar.
- Herhangi bir engel yoksa ileri gider ve ‘loop’ yeniden başlar.
- Eğer bir engel varsa, robot hiçbir engel yok olana kadar sağa dönmeye devam eder.
Şimdi robotumuz, bir duvarın olup olmadığını görmek için her iki yönü de kontrol ederek daha verimli hareket edebilir. Bu davranışı koda çevirmek ve robotlarla oynamaya başlamak işin basit kısmı! Ve tabii ki daha fazla mesafe sensörü ve davranışları daha sofistike hale getirmek için farklı sensör türleri bile ekleyebilirsiniz. Sadece davranışı Algıla, Düşün, Harekete Geç bölümlerine ayırmayı unutmayın ve gerisini halledeceksiniz.