Atmega8 ile Kızılötesi Robot (Infrared Sensor Sharp GP2D2)
Bu basit robot projesinde bir adet 16Mhz kristal hızlı Atmega8 işlemci, 1 adet Sharp GP2D12 kızıl ötesi mesafe sensörü, iki adet modifiye edilmiş standart servo (hareket için) ve bir adet mini servo (sensörü döndürmek için) ve L293D entegre ile yapılmış motor sürücü devresi kullanılmıştır. Programın tamamı 576 byte dır. Programda yön bulmak için çok basit bir algoritma kullanılmıştır, robotun yön bulma yeteneği çok geliştirilebilir. Ayrıca labirent çözme (maze solving) deneylerinde kullanılabilir. Proje, Atmega işlemcilerin hardware PWM (Pulse Width Modulation) mödüllerinin nasıl kullanılacağını göstermesi açısından önemlidir. PWM modülleri ile servo motorları sürmek için öncelikle servo motorların nasıl çalıştıklarını anlamanız gerekir. Servo motorlar genel olarak her 20ms de bir 1 ila 2 ms arasında bir uzunlukta pulse bekler. 1 milisaniye uzunluğundaki pulse servoyu en 0 (sıfır) dereceye; 1.5 milisaniye uzunluğundaki pulse 90 dereceye ve 2 milisaniye uzunluğundaki pulse ise servoyu 180 dereceye konumlandırır (Resim 3). Servolar normal olarak 0 ile 180 derece açı arasında oldukça hassas olarak hareket ederler. Servo motorları sürekli olarak döner hale getirmek için modifiye edilmeleri gerekir. Servoların nasıl modifiye edileceği konusunda internette bol miktarda materyal bulabilirsiniz.
GP2D12 sensörü 10 cm ile 80 cm arasındaki nesnelerin uzaklıklarını ölçebilir, çıktısı mesafe ile orantılı analog voltajdır ve lineer değildir (Resim 2). Bu projede hassas mesafe ölçümü gerekmediğinden sensörün çıktısını lineer hale getirmek için basit bir formül kullandık; mesafenin daha kesin ölçülmesi gereken projelerde bir çevrim tablosu (lookup table) kullanmak daha iyi sonuç verecektir.
Sensör, bir mini servo üzerine monte edilmiştir. IR Fare bir engelle karşılaştığı zaman sersör çevreyi 180 derece tarayarak engelin sınırlarını hesaplar ve kendine yeni bir yol belirler. Bu sayede engeller arasında çarpmadan dolaşabilir, ancak sandalye bacağı gibi ince engelleri algılayamayabilir.
Projede robot 180 derecelik saha içinde sadece sağ, sol ve merkez olmak üzere 3 noktayı kontrol etmektedir. 180 derecelik tarama içinde 10 ya da 20 mesafe ölçümü yapılarak robotun önündeki alanın haritası çıkarılabilir ve bu sayede çok daha başarılı yön bulma algoritmaları geliştirilebilir.