Proje
Devresi:
Motor Sürücü Devresi PCB Çizimi
CNY70 Kontrast Sensörü
Şemada
CNY70 sensörü yerine switchler kullanılmıştır.
Robot üç devreden
oluşmaktadır: Sensör devresi, kontrol devresi ve motor sürücü devresi. Kontrol
devremiz arduinodur. Sensör devresi ve motor sürücü devresi arduinoya bağlıdır.
Sensör devresinde 5
tane CNY70 sensörü ve 1 adet 74HC14 schmitt trigger entegresi kullanılmıştır.
Motor sürücü devresinde L293 motor sürücü entegresi ve 7805 gerilim regülatörü
kullanılmıştır.
Sensör devresi beslemesini arduinonun 6 ve 7. pininden
almaktadır. Motor sürücü devresi ise bataryadan beslenmektedir. Burada arduino
ve motor devresi ayrı bataryalardan beslenebileceği gibi tek bir bataryadan da
beslenebilir.
Malzeme
Listesi
- Arduino
- CNY70 (5 Adet)
- 74HC14 (1 Adet)
- 100Ω direnç (5 Adet)
- 4.7K direnç (5 Adet)
- 330Ω direnç (5 Adet)
- LED (5 Adet)
- L293D (1 Adet)
- 7805 (1 Adet)
- 1N4001 diyot (1 Adet)
- 330uF kondansatör (1 Adet)
- 10uF kondansatör (1 Adet)
- 1uF kondansatör (1 Adet)
- Switch (1 Adet)
- Klemens (3 Adet)
- Redüktörlü DC motor (2 Adet)
- Tekerlek (2 Adet)
- Sarhoş teker (1 Adet)
- Robot gövdesi olabilecek herhangi bir malzeme
Sensör
Devresi PCB Çizimi
Motor Sürücü Devresi PCB Çizimi
CNY70 Kontrast Sensörü
Bu
sensör kızılötesi led ve fototransistörden oluşur. Led kızılötesi ışınlar
yayar. Fototransistör ise üzerine düşen ışık şiddetine ters orantılı olarak
devreden bir akım geçirir.
Beyaz zemin üzerine düşen ışığın neredeyse tamamını yansıtır. Kızılötesi ledden yayılan ışınlar beyaz zemine çarpar ve yansır. Yansıyan ışınlar fototransistörün üzerine düşer. Fototransistör üzerindeki ışık şiddeti yüksek olduğundan transistör kesime gider ve üzerinden akım geçirmez. Yani sensör çıkışı 0V’tur. Siyah zemin ise üzerine düşen ışığın neredeyse tamamını soğurur. Dolayısıyla siyah zeminde fototransistör üzerindeki ışık şiddeti çok az bir değerdir ve transistör iletimdedir. Yani sensör çıkışı 5V’tur.
Sensörün çalışması için kızılötesi ledin anot ucuna artı gerilim uygulanmalı ve katot ucu gnd yapılmalıdır. Fototransistörün ise kollektörüne artı gerilim uygulanmalı ve emiter gnd yapılmalıdır.
Beyaz zemin üzerine düşen ışığın neredeyse tamamını yansıtır. Kızılötesi ledden yayılan ışınlar beyaz zemine çarpar ve yansır. Yansıyan ışınlar fototransistörün üzerine düşer. Fototransistör üzerindeki ışık şiddeti yüksek olduğundan transistör kesime gider ve üzerinden akım geçirmez. Yani sensör çıkışı 0V’tur. Siyah zemin ise üzerine düşen ışığın neredeyse tamamını soğurur. Dolayısıyla siyah zeminde fototransistör üzerindeki ışık şiddeti çok az bir değerdir ve transistör iletimdedir. Yani sensör çıkışı 5V’tur.
Sensörün çalışması için kızılötesi ledin anot ucuna artı gerilim uygulanmalı ve katot ucu gnd yapılmalıdır. Fototransistörün ise kollektörüne artı gerilim uygulanmalı ve emiter gnd yapılmalıdır.
74HC14 Schmitt Trigger Entegresi
Schmitt
trigger entegresi girişten aldığı değerleri bir sınır değer ile kıyaslar (sınırın
altında - üstünde kalanlar olarak) ve
kıyaslama sonucu çıkışını lojik-0 veya lojik-1 yapar.
74HC14 entegresi tersleyen bir schmitt triggerdir. Yani belirli bir değerin altındaki gerilim için çıkıştan lojik-1, üzerindeki gerilim değeri için çıkıştan lojik-0 verir.
74HC14 entegresi tersleyen bir schmitt triggerdir. Yani belirli bir değerin altındaki gerilim için çıkıştan lojik-1, üzerindeki gerilim değeri için çıkıştan lojik-0 verir.
74HC14 entegresinde 6
tane tersleyen kapı bulunur. Yani en fazla altı tane giriş-çıkış
bağlayabiliriz.
Bu entegre ile
devremizin çalışmasını daha kararlı bir hale getirmekteyiz.
L293D
Motor Sürücü Entegresi
Aynı anda iki motoru
kontrol edebilmemize yarayan bir sürçü entegresidir. İçerisinde iki tane H
köprüsü barındırır. Motorlara 4,5V – 36V gerilim ve motor başına 0,6A akım
verir. Zorlama akımı 1,2A’dir.
7805
Voltaj Regülatörü
7805 entegresi sabit 5V
gerilim almamızı sağlayan bir entegredir. 7V-35V arası giriş gerilimi
uygulanabilmektedir. Maksimum 1A çıkış verebilir.
Robot
Gövdesi
Robot gövdesi, devreleri,
motorları ve tekerlekleri bir arada tutacak platformdur. Bu işlevi gerçekleştirebilecek
herhangi bir malzeme kullanılabilir. Robot gövdesini kendiniz yapabileceğiniz
gibi piyasada hazır satılan platformları da kullanabilirsiniz. Ben bu projede Magician
Chassis robot kitini kullandım.
Projenin Kaynak Kodu:
int
enSol, sol, orta, sag, enSag;
void
setup(){
pinMode(7, OUTPUT);
pinMode(6, OUTPUT);
pinMode(5, INPUT);
pinMode(4, INPUT);
pinMode(3, INPUT);
pinMode(2, INPUT);
pinMode(1, INPUT);
digitalWrite(7, HIGH); // sensor VCC
digitalWrite(6, LOW); //sensor GND
pinMode(12, OUTPUT); // sağ motor -
pinMode(10, OUTPUT); //sağ motor PWM
pinMode(13, OUTPUT); //sol motor -
pinMode(11, OUTPUT); //sol motor PWM
digitalWrite(12, LOW); // sağ motor -
digitalWrite(13, LOW); // sol motor -
}
void
loop(){
enSol=digitalRead(5);
sol=digitalRead(4);
orta=digitalRead(3);
sag=digitalRead(2);
enSag=digitalRead(1);
if(enSol==1 && sol==1 &&
orta==0 && sag==1 && enSag==1){
analogWrite(10, 255);
analogWrite(11, 255);
}
if(enSol==1 && sol==0 &&
orta==1 && sag==1 && enSag==1){
analogWrite(10, 255);
analogWrite(11, 150);
}
if(enSol==0 && sol==1 &&
orta==1 && sag==1 && enSag==1){
analogWrite(10, 255);
analogWrite(11, 0);
}
if(enSol==1 && sol==1 &&
orta==1 && sag==0 && enSag==1){
analogWrite(10, 150);
analogWrite(11, 255);
}
if(enSol==1 && sol==1 &&
orta==1 && sag==1 && enSag==0){
analogWrite(10, 0);
analogWrite(11, 255);
}
}
rica ederim. ilginiz için ben teşekkür ederim.
YanıtlaSilanalogWrite(10, 255);
YanıtlaSilBu komut ilaç gibi geldi yarışmaya bir gün kala. Düz çalıştırıyorduk sonuç alamıyorduk.. Sağolasın..Varolasın..
rica ederim.
Silyarışmada başarılar!
blog bir harika. herşey bütün detaylarıyla anlatılmış. çoğu blok yazarı açıp bir daha ugramıyor. baktıgımda sorulan sorulara cevap veren yok. ama siz çok farklısınız. çok faydalı oldu bu blog. çok tşkler. esp konusunda bilgi paylaşırsanız sevinirim. iyi günler
YanıtlaSililginiz için ben teşekkür ederim. iş yoğunluğu nedeniyle bu aralar yeni yazı ekleyemiyorum. en kısa sürede yeni projeler eklenecektir.
Silsayın hocam kesik kesik çizgileri zaman değeri ile mi anlıyosunuz? yoksa gittiği yolun mesafesini mi kullanıyorsunuz?
YanıtlaSilProjenizde robotunuzun hızını elde edebiliyormusunuz?_yada bunu en kolay nasıl hesaplayabiliriz?yardımıc olursanız çok sevinirim..teşekkürler..başarılar..
kesik çizgileri anlamak için özel bir kod yazılmamıştır. çizgiler kaybolduğunda robot önceki verilere göre hareket etmektedir. robotun hızı için ise encoder kullanmak gerekir.
Silmerhaba montaj yapabilmek için devreyi okuyamadım. bu konuda yardım istiyorum. elektronik devre nasıl okunur bilmiyorum
YanıtlaSil