Çizgi İzleyen Robot çalışmalarımızdan yarışma görüntüleri
MİNİ SUMO – GÖKTÜRK
Kullanılan Malzemeler :
- Pic 18F4550 Mikro işlemci
- 4 adet 6V ForceUp 350Rpm Redüktörlü Micro DC Motor
- 2 adet Sharp GP2Y0D340K sensör
- 1 adet Mz80 Kızılötesi sensör
- 1 adet Pololu TB6612FNG
- 2 adet Pololu QTR-1A
- Gözeler Elektronik Tekerleri ve cantları
- 1 adet 11.14V THK alınma 450 mAh Lipoly
- 3mm paslanmaz sacdan özel yapım gövde
- Kendi tasarımımız elektronik devre
İlk Aşamalar :
Öncelikle mini sumoların bence en önemli yeri olan gövdeyi tasarlamak gerekir.Burada oluşacak en ufak aksaklık tekerlerin düzgün basmamasına yani tekerlerden ve motorlardan tam güç almamanıza ve ayrıca çizgileri algılamanıza rağmen robotunuzun sizin sözünüzü dinlemeyip dışarı çıkmasına sebep olacaktır.Bunun için altta kullanılacak malzeme seçilirken sert ve kolay eğilip bükülmeyen malzeme seçilmelidir.Biz burada 3mm paslanmaya karşıkorumalı sac kullandık.
Kullandığım Gövde çizim dosyası için : http://www.tokateml.k12.tr/Robot.dxf
Gerekli teker boşlukları, üst devreyi montelemek için gerekli 3mm vida delikleri , motorları tutturmak için açılmış 3mm delikleri ve qtr1a sensörleriiçin gerekli boşluklar açıldı.
Motorların Yerleşimi :
Motorları birbirine eşit paralellikte yerleştirmeye dikkat edin.Motor yerleşimini iyi ayarlarsanız ön kızağınızıdaha uzun ve kolay yerleştirme imkanı olur.motorlararasına açacağınız boşluk sayesinde lipo pilinizi araya yerleştire bilirsiniz.Biz bu şekildekoymayı tercih etme sebebimiz dengeyi ayarlamak için yaptım.
Kullandığım tekerler kauçuk malzemeden yapılmış özel üretim ve gerçekten sürtünmeleri mükemmel.Yarış zamanları az bir tinerle daha mükemmel hale dönüşüyorlar.
Kullanılan Sensörler :
Ön Sensör – Mz80 :
- Endüstriyel kızılötesi sensördür.
- 80cm algılama mesafesi mevcuttur.
- 5V’da çalışır.
- Yüksek kaliteli ve 2ms tepki süreli, üst sınıf bir sensördür.
- Arkasında yer alan trimpotla menzili kısılabilir. Dahili led’i vardır. Kullanım özellikleri ve bilgiler için pdf dökümanı inceleyiniz.
- Kırmızı Kablo – 5V Giriş
- Yeşil Kablo – GND
- Sarı Kablo – Digital Sinyal Çıkışı (1-0)
Sağ – Sol Sensörler – Sharp GP2Y0D340K :
- 40 cm algılama menzilli Sharp GP2Y0D340K sensörü.
- 4ms tepki süresi vardır.
- Dijital (0-5V çıkışlı) sensördür.
- Kolayca kullanılabilir. Sensörü çalıştırmak için sensöre bir direnç (akım kısıtlama direnci) ve bir kondansatör (filtre kondansatörü) bağlamak gereklidir.
- Minisumo robot gibi küçük projeler için çok uygundur.
- Birçok derece alan minisumo robotta da kullanılmaktadır.
- Çok küçük hacimlidir. boyutlar: 15mm x 9,6mm x 8,7mm
Çizgi Sensörleri – QTR1A :
Sensör, reflektans değeri olarak, analog voltaj çıkışı verir.
Fototransistör, bir pull-up direnç ile bağlanmıştır (genellikle 5V) ve böylece algılanan reflektans değerine göre voltaj çıkışı alınır. Reflektans değeri yükseldikçe voltaj çıkışı değeri azalır.
Bir LED 20-25 mA akım çeker. Ürün şematiği görseller içerisinde yer almaktadır.
Motor Sürücü :
TB6612FNG Çift Motor Sürücü Kartı :
Bu küçük kart, iki adet çift yönlü DC motoru veya bir adet iki kutuplu motoru kontrol edebilen Toshiba’nın TB6612FNG çift yönlü motor sürücüsünü kullanmanın kolay bir yoludur. Tavsiye edilen motor voltaj değerinin 4.5-12.5 V olması ve her kanal için maksimum 3A’lık çıkışa sahip olması, düşük-güçlü motorlar için eşsiz bir motor sürücü olma fırsatını ortaya çıkarıyor.
TB6612 Özellikleri
- Tavsiye edilen motor voltaj aralığı (VMOT): 4.5-13.5V
- Logic voltaj (VCC): 2.7-5.5 V
- Maksimum çıkış akımı: her kanal için 3A
- Sürekli çıkış akımı: her kanal için 1A ( sürekli 2A’ı iletmek için paralel bağlanabilir)
- Maksimum PWM frekansı: 100 kHz
- Isısal kapanma devresi oluşturma
- Kaynak hatları üzerinde filtre kapasitörleri
- Motor beslemesi üzerinde ters-bağlantı koruması
Elektronik Devre :
Devre Elemanlarını ve baskı devresini yakında koyacağım.
Program Kodu :
Programlama dili olarak ccs c kullanılmıştır. Kodlamada Mert Öztoprak arkadaşımdan destek alınmıştır, kendisine çok teşekkür ederim.
Çizgiler için olarak timer kesmesi ve klasik olarak ön sensör görürse ileri git , sağ sensör görürse ön sensör görene kadar sağa dön , sol sensör görürse ön sensör görene kadar sola dön vb. algortimalar kullanıldı.
http://www.tokateml.k12.tr/gokturk.c
mini sumo son hali :
Yarışmaları :
Odtu 2012 ‘de çeyrek final oynadı.
Meb 2012 3. turda ufak arızalardan dolayı çizgiden kendi çıkarak elendi.Odtudeki başlama poziyonunda robotlar arası mesafe yakındı ama mebde mesafe 1 a4 kağıdı mesafeye çıkınca robotum önden yakalandı ve elendi.
Merhaba sayın hocam sizi tebrik ederim çalışmalarınız çok güzel ,benimle iletişime geçebilirmisiniz?
Hangi konularda çalışıyorsunuz
merhaba hocam ben elektronik mühendisi son sınıf öğrencisiyim.bu sene bitirme projesi olarak sizin bu yaptığınız robotun özelliklerine benzer olacak.
ara sıra size danışmam için sizinle iletişime geçmek istiyorum acaba bu mümkün müdür?
elimden gelen bir şey olursa yardımcı olmaya çalışırım.
hocam şimdiden sağol projeye başlayalı 1 hafta oldu.takıldıkça size sorarım
merhaba hocam ben robot projesi ile uğraşıyorum. 4 dc motorlu robotum var.
bu robotun derece döndürmesini ve bir kaç metre mesafe gitmesi için
ccs de nasıl yazmalıyım yani nasıl yol izlemeliyim?
//biraz düz git
output_low(pin_b5);
output_high(pin_b4);
output_low(pin_b7);
output_high(pin_b6);
set_pwm1_duty(100);
set_pwm2_duty(100);
delay_ms(20);
//doksan derece için
//analog sensörler hepsini beyaz görür ise
while(sensor_pin!=0b00000000){
adc_oku();
output_d(sensor_pin);
output_low(pin_b5);
output_high(pin_b4);
output_low(pin_b7);
output_high(pin_b6);
set_pwm1_duty(125);
set_pwm2_duty(0);
}
Hocam ben sharp sensörünü çizgi izleyen robotta kullanmak istiyorum yazılım konusunda yardımcı olurmusunuz?
öncelikle;
setup_adc_ports(AN0_TO_AN8|VSS_VDD);
setup_adc(ADC_CLOCK_INTERNAL);
ayarları yapılır
daha sonra;
set_adc_channel(8);//analog 8 nolu port açılır
delay_us(4);
sensor=read_adc();//sensördeki değer analog porta aktarılır.
//şimdi mesafeye göre işlem yapılır.
if(sensor>70) işlemler1;
if(sensor>200)işlemler2;
if(sensor>300)işlemler3;
if(sensor>400)işlemler4;
Merhabalar acaba robotta kullanılan mz80 sensörüne ait yazılımı bana yollaya bilirseniz çok sevinirim.
normal digital sensörlerden hiç bir farkı yok.pic’in digital input bacaklarından her hangi birisiyle 0-5V kontrolü yaparak yapabilirsin.direkt olarak kullanabilirsin.her hangi bir pullup direncine gerek yoktur. +5,-,ve sinyal bağlantısı yeterlidir.
örnek kod:
if (input(pin_b4)==0) {işlemler;}
Hocam acaba çizgi izleyen robot için şu problemi mikroc de nasıl yazabilirim. Şimdi mz80 engel görünce robot duracak 45 derece sağa dönecek sonra 2sn düz gidecek (veya belirli bir mesafe düz gidecek) 2sn sonunda durup 45 derece sola dönecek 2sn daha gidip duracak ve 45 derece daha sola dönüp 2 sn daha düz gidecek ve beyaz çizgiyi bulup tekrar çizgiyi takip etmeye başlayacak
Merhabalar hocam önceki yorumumu çözdüm. Şimdi şöyle bir şey var çizgi izleyen robotum da 8 sensörlü QTR-8A sensörü var bu sensörlerin hepsi beyaz çizgiyi görünce yani hepsi 1 olunca robotun durmasını istiyorum bunu nasıl yazabilirim acaba. Şimdiden teşekkürler.
merhaba hocam Proteus 8 Professional la 2 motor 4 sensörlü bi araba oluşturacağım bunun kodlarını verebilirmisiniz daha yeni mikrodenetleyici dersine giriyorum ve kodları bilmiyorum teşekkür ederim şimdiden
kodun bütünü veremem.css c ile pic kitabını alarak başlamanı tavsiye ederim. İstersen sitedeki dersleri takip edebilirsin. Kolay gelsin.
hocam mrb çalışmalarınız çok güzel bende ccs c ile çalışmalarımı yapıyorum ama genellikle araçlar üzerine , çalışmalarınızı takip edeceğim burdan okul bitti ama sizin öğrenciliğimiz devam edecek hep..sizden öğreneceğimiz çok şey var.