İlk olarak gerekli malzemeleri temin ettikten sonra breadboard,arduino,motorlar ve sarhoş tekerleği , üzerine montaj yapacağımız plakette delinecek yerlerini işaretledikten sonra 3mm matkap ucu ile plaketi deldik.
Delme işleminden sonra ilk olarak sarhoş motoru ardından breadboardu vidalar ve somun yardımıyla plaket üzerine sabitledik. İlk olarak sarhoş tekerleği vidalamaktaki amacımız; breadboardu o vidaların üstüne oturtmakta sıkıntı yaşamamaktı.
Ardından uzun metrik vidalar ile Arrduino’nun montajını yaptık.Motorlar için delmiş olduğumuz deliklerin içinden plastik kelepçeler yardımıyla motorları plaket üzerinde sabitledik.
Montaj işlerinin bitmesinin ardından breadboard üzerine yerleştirdiğimiz L293B motor sürücü entegresini ve Aurdino’nun jumperlar yardımıyla bağlantılarını yaptık. Bu bağlantılar motorların yani tekerleklerin aurdino yardımıyla hareket etmesini sağlamıştır.
- Motor sürücülerimize jumperları lehimledik.
- L293D entegremizi yerleştirdik.
- Sağ motor sürücüsünü entegrenin alt kısmına, sol motor sürücüsünü entegrenin üst kısmına taktık.
- VCC ve GND hatlarını belirledik.
- Entegrenin 4. ve 5. bacaklarını kısa devre yaptık. Kısa devre yaptığımız kısmı GND hattına taktık.
- Entegrenin 12. ve 13. bacaklarını kısa devre yaptık. Kısa devre yaptığımız kısmı GND hattına taktık.
- Entegrenin 8. Ve 16. bacaklarını VCC hattına taktık.
- Entegrenin 9. bacağından besleme yaptık.
HC- SR04, 2cm – 400cm arası uzaklıkları düzgün bir şekilde ölçebilen bir sensördür.
- Sensörün Vcc ve GND bağlantıları beardboard üzerinde yapıldı.
- Sinyallerin doğru şekilde algılanması ve engelden kaçabilmesi için gereken kodlar Arduino’ya yüklendi.
- Sensörü Arduino’ya Trig ve Echo bacağı ile bağlıyoruz.
Şase montajı ve elektronik bağlantıların hepsinin yapılma aşaması tek tek anlatıldı. Ve tüm bağlantılar daha anlaşılır olabilmesi Fritzing programında açık bir şekilde çizildi.
Robotun çalışması için gereken kodlar Arduino’ya yüklendi. Yüklediğimiz kodlar aşağıya, hangi kodu ne için kullandığımızı açıklayarak, eklendi.
const int trig = 10;
const int echo = 8;
// kullanılan pinler aurdino’ya tanıtıldı.
const int sol_ileri = 2;
const int sol_geri = 3;
const int sag_ileri = 4;
const int sag_geri = 5;
// motor sürücünün 2,7,10 ve 15 nolu inputlarına dataship gönderebilmek için değişkenler tanımlandı.
int sure = 0;
int mesafe = 0; // mesafe sensörünüden ileride bilgileri alabilmek ve kaydetmek için iki değişken daha tanımlandı.
void setup()
{
pinMode(trig,OUTPUT);
pinMode(echo,OUTPUT);
pinMode(sol_ileri,OUTPUT);
pinMode(sol_geri,OUTPUT);
pinMode(sag_ileri,OUTPUT);
pinMode(sag_geri,OUTPUT); //loop döngüsü başlamadan önce,girilecek pinlerin ne için kullanılacağını tanmlandı.
Serial.begin(9600); //Seril.begin(9600) seri haberleşmeyi başlatan kodtur.Anlık gelen mesafe bilgisine robotun nasıl tepki verdiğini ölçmek için serial seri haberleşme kodu tanımlandı.
}
void loop()
{
digitalWrite(trig , HIGH);
delayMicroseconds(1000);
digitalWrite(trig , LOW);
sure = pulseIn(echo , HIGH);
mesafe = (sure/2) / 28.5; //sensöreden gelen mesafe bilgisini elde etmek için, sensöre gerekli kodlar yazıldı.
Serial.println(mesafe); //mesafe bilgisini ekrana yazdırmak için kod.
delay(500); //değerlerin hızlı akmaması için 500 ms’lik bir bekleme süresi belirledik.
if (mesafe < 30)
{
digitalWrite(sol_ileri,LOW);
digitalWrite(sol_geri,HIGH);
digitalWrite(sag_ileri,HIGH);
digitalWrite(sag_geri,LOW); //tek sensör kullandığımız için ve sensör robotun önünde olduğu için,robot engele 30 cm ‘den fazla yaklaştığında robotun sağa dönmesini istedik.Bunun için gerekli kodlar yazıldı.
}
else
{
digitalWrite(sol_ileri,HIGH);
digitalWrite(sol_geri,LOW);
digitalWrite(sag_ileri,HIGH);
digitalWrite(sag_geri,LOW); //sensör herhangi bir engelle karşılaşmadığında düz devam etmesi için gerekli kodlar yazıldı.
}
HAZIRLAYANLAR
Ceren MEMİŞ
Buket ARUCAN
Erhan BAĞDATLILI
Furkan Veysel KORUR