Labirent Çözen Robot

savas

MB Üyesi
Kayıt
15 Mart 2015
Mesajlar
3
Tepkiler
0
Yaş
31
Arkadaşlar merhaba, benim bir sorum var sizelere. Engel algayıp onlardan kaçarak yoluna devam eden robotlar labirentlerde kullanilabilir mi yada onun disinda ne gibi alanlarda kullanilabilir? Benim labirent cozen robot yapmam gerekiyor çok hakim değilim robotiğe ve çok araştırdım engele karşı duyarlı robot projeleriyle ilgili yararlanabilcegim döküman buldum ama amacima uyarmı eger gercekleştirebilirsem? Neler tavsiye edersiniz?
 

Kemal Okur

Yetkili Kişi
Yönetici
Kayıt
7 Şubat 2015
Mesajlar
353
Tepkiler
210
Yaş
30
Meslek
Mekatronik Mühendisi
Üniv
Fırat Üniversitesi
Arduino ile labirent çözen robot yapımına giriş yapacağız.

Arkadaşlar küçük bir not düşmek istiyorum, buradaki yapmış olduğumuz projeyi doğrudan robot yarışmaları için kullanmayın. Üstüne kendinizde bir şeyler ekleyin ardından isterseniz robot yarışmalarında kullanın. Burdan direkt alıp kullanmak size bir şeyler öğretmez, ezberletir. Kendim için değil, sizin için istiyorum bunu
icon_smile.gif

Malzeme listemize geçmeden önce bu projede Motor Sürücü Entegresi yerine Röle kullanacağım. Siz Motor Sürücü Entegresi kullanabilirsiniz.
Malzemeler:
  1. Arduino Uno
  2. 9V Pil
  3. Breadboard
  4. Bolca erkek-erkek,dişi-erkek,dişi-dişi Jumper kablo
  5. 2 Adet 6V DC Motor (3V,5V,9V,12V vs. DC Motorda kullanabilirsiniz.)
  6. 6V DC Harici güç kaynağı (Motora göre seçiniz) (4 Adet 1.5V AA pil ve uygun pil yuvası kullanacağım)
  7. 5 Adet 5V DC Röle
  8. 4 Adet Ultrasonik Sensör (Mesafe Sensörü)
  9. Uygun robot kiti (Tekerler, kasa vb.) (Uygun bir uzaktan kumandalı arabada alıp kullanabilirsiniz)
Devre Şeması
labirentCozenRobot.jpg



Kodlama

Kod:
intt1=2;//ileri geri için motor pini 1
intt2=3;//ileri geri için motor pini 2
intt3=4;//dönüşler için motor pini 1
intt4=5;//dönüşler iççin motor pini 1
inttrigPin=13;// ön ultrasonik sensör
intechoPin=12;//ön ultrasonik sensör
inttrigPinSol=11;// sol ultrasonik sensör
intechoPinSol=10;// sol ultrasonik sensör
inttrigPinSag=9;// sağ ultrasonik sensör
intechoPinSag=8;// sağ ultrasonik sensör
longmicrosaniyeSure,cmMesafe;// Mesafe hesabında kullanılan değişkenler
intc=0;
voidsetup(){
/*
* Pinlerimizin giriş çıkışlarını ayarlıyoruz
*/
pinMode(t1,OUTPUT);
pinMode(t2,OUTPUT);
pinMode(t3,OUTPUT);
pinMode(t4,OUTPUT);
pinMode(trigPin,OUTPUT);
pinMode(echoPin,INPUT);
pinMode(trigPinSol,OUTPUT);
pinMode(echoPinSol,INPUT);
pinMode(trigPinSag,OUTPUT);
pinMode(echoPinSag,INPUT);
}
voidloop(){
if(mesafeOlc(echoPin,trigPin)<=40){
if(mesafeOlc(echoPinSag,trigPinSag)>=40){
sifir();
sagaDon();
}elseif(mesafeOlc(echoPinSol,trigPinSol)>=40){
sifir();
solaDon();
}else{
sifir();
  geri();
}
}else{
ileri();
}
}
voidsagaDon(){
sifir();
sag();
ileri();
delay(500);
sifir();
delay(200);
sol();
geri();
delay(500);
sifir();
}
voidsolaDon(){
sifir();
sol();
ileri();
delay(500);
sifir();
delay(200);
sag();
geri();
delay(500);
sifir();
}
longmesafeOlc(intecho,inttrig){
digitalWrite(trig,LOW);// Hoparlör 2ms sessiz
delayMicroseconds(2);
digitalWrite(trig,HIGH);// Hoparlör 10ms sesli
delayMicroseconds(10);
digitalWrite(trig,LOW);// Hoparlör sessiz
microsaniyeSure=pulseIn(echo,HIGH);// Mikrofonu dinle, yansıma süresini microsaniyeSure değişkenine al
cmMesafe=microsaniyeSure/58.3;// microsaniyeSure'dan cm olarak mesafeyi hesapla
returncmMesafe;
}
voidsifir(){
digitalWrite(t1,LOW);
digitalWrite(t2,LOW);
digitalWrite(t3,LOW);
digitalWrite(t4,LOW);
}
voidsol(){
digitalWrite(t4,LOW);
digitalWrite(t3,HIGH);
}
voidsag(){
digitalWrite(t3,LOW);
digitalWrite(t4,HIGH);
}
voidgeri(){
digitalWrite(t1,LOW);
digitalWrite(t2,HIGH);
}
voidileri(){
digitalWrite(t2,LOW);
digitalWrite(t1,HIGH);
}
alttangorunus.jpg distangorunus.jpg
ondengorunus.jpg usttengorunus.jpg

Alıntı: myazarc
 
Konu sahibi
Konu sahibi
savas

savas

MB Üyesi
Kayıt
15 Mart 2015
Mesajlar
3
Tepkiler
0
Yaş
31
Çok sağolun ilginiz için çok yararlı bir kaynak olacak benim için :)
 
Konu sahibi
Konu sahibi
savas

savas

MB Üyesi
Kayıt
15 Mart 2015
Mesajlar
3
Tepkiler
0
Yaş
31
Kafama takılan birşey daha oldu burada tekerlekler sabit yani sadece ileri ve geri gitmiyormu? Dönme olayı nasıl gerçekleşiyor bu durumda bunuda anlarsam tam olacak.
 

Kemal Okur

Yetkili Kişi
Yönetici
Kayıt
7 Şubat 2015
Mesajlar
353
Tepkiler
210
Yaş
30
Meslek
Mekatronik Mühendisi
Üniv
Fırat Üniversitesi
Sağa dönmek istendiğinde sağ lastik sabit kalır sol lastik çalışır bu durumda sağa dönme işlemi gerçekleşmiş olur aynı durum sola dönüş içinde geçerlidir.
 

emrahozmen

MB Üyesi
Kayıt
20 Mart 2015
Mesajlar
22
Tepkiler
8
Yaş
43
Üniv
erciyes
merhaba,

burada engel tanıyan robotları kullanabilirsiniz. donanım olarak aynı yapıda olacaklar zaten. yazılımda eklenti yapmanız gerekir. labirentte bu yol çıkmaz sokak demeniz gerekir. yani çıkmayan yolları robotun bilmesi gerek yoksa sonsuz döngüde kalabilir. çıkmayan yolları bula bula sonunda çözüme ulaşacaktır.
yapı olarak her yol ayrımında yazılımda işaret koymak gerekir. gidilen yol eğer çıkmaz ise bir önceki yol ayrımına kadar olan yere işaret koymak gerekir. yani çıkmaz yol ise 0 deneme yapılıyor ise 1 denebilir. bu şekilde robot çıkmaz sokakları bilir ve tekrar aynı yolu denemez.
yazılım-donanım ile ilgili sorularınız varsa cevaplamaya çalışabilirim.
 

myazarc

MB Üyesi
Kayıt
3 Mayıs 2015
Mesajlar
2
Tepkiler
0
Yaş
31
Üniv
selçuk üni. tbmyo
Merhaba;

Sağa sola burda dönüş işlemini uzaktan kumandalı araba kullandığım için, hazır bir yapı vardı. Tam sağ ve tam sol yapmıyor. Bunu uygun açı ile dönme süresini hazırlamak gerekiyor.
En mantıklı sistem @Kemal Okur arkadaşımızın belirttiği şekilde de olabilir, biraz daha hızlı dönüş istiyorsan, sağ öne sol arkaya dönerse sola; sol öne sağ arkaya dönerse sağa döner.

Yolları hatırlamak için bir EEPROM dahil ederek verileri kaydedebilirsiniz.
 

CBlood6134

MB Üyesi
Kayıt
13 Mayıs 2015
Mesajlar
1
Tepkiler
0
Yaş
29
Üniv
KTU
S.aleykum bende bu projeyi yapıyorum fakat kafama takılan bişey var yazılmış olan programda 3 adet sensör gösteriliyor ama baglantı şemasında 4 adet var bu nasıl oluyor?Diğer sorum hangi sensör hangi yöne ait? Belirtirseniz sevinirim.Kolay gelsin...
 

myazarc

MB Üyesi
Kayıt
3 Mayıs 2015
Mesajlar
2
Tepkiler
0
Yaş
31
Üniv
selçuk üni. tbmyo
S.aleykum bende bu projeyi yapıyorum fakat kafama takılan bişey var yazılmış olan programda 3 adet sensör gösteriliyor ama baglantı şemasında 4 adet var bu nasıl oluyor?Diğer sorum hangi sensör hangi yöne ait? Belirtirseniz sevinirim.Kolay gelsin...
A.s. 4.cü yani arkayı kontrol edecek olanı geri gitmek amaçlı düşünüp daha sonradan gereksiz olduğu için kaldırdım. birini sistemden çıkarabilirsiniz.
 

Alcides

MB Üyesi
Kayıt
30 Nisan 2017
Mesajlar
3
Tepkiler
0
Yaş
29
Üniv
Bilecik Şeyh Edebali Üni.
Hocam kolay gelsin.
Kodlamada röle ile ilgili herhangi bir şey yok.Röleye gerek var mı?
 
Yukarı Alt