Çizgi İzleyen Robot Yapımı
Elektronik Elektronik tasarım için yapılması gerek en önemli şey kullanılacak malzemelerin doğru seçilmesidir. Robotun elektronik aksamı 4 maddeden oluşur. Bunlar; 1. Sensörler ve sensörlerin kullanımı 2. Motor sürücüler 3. Regüle devreleri 4. Mikro Denetleyici tasarımı 1. Sensörler ve Sensörlerin Kullanımı Piyasada bir çok kontrast sensörü bulabilirsiniz. CNY70, QRD1114, QRB1114, QRE1113, vb. En çok kullanılan ve fiyatı diğerlerine göre daha ucuz olan CNY70 sensörünü anlatacağım. CNY70 sensörünün içerisinde (ve diğer sensörlerinde içerisinde) bir verici diyot, birde alıcı transistör bulunmaktadır.(şekil 1) Diyottan çıkan ışınlar karşısında bir engel varsa alıcı transistor e yansırlar. (şekil 2) Eğer yüzey rengi beyazsa en fazla yansıma olur ve transistör iletime geçer. Yüzey rengi siyahsa en az yansıma olur ve transistör tetiklenmez. Şekil 1 Şekil 2 Kontrast sensörünü analog kullanmak istiyorsanız, transistor ün kolektörüne 22 kohm luk bir direnç ile +5V (pull-up) a çekmelisiniz.(şekil 3) Eğer dijital kullanmak istiyorsanız bir opamp ile karşılaştırıcı yapmalısınız.(şekil 4) Bu bağlantı şekliyle CNY70 sensörü bayaz da 0 V siyahta +5V çıkış verecektir. Sayfa 2 / 11
Şekil 3 Şekil 4 2. Motor Sürücüler Motorların sürülebilmesi için elektronik anahtarlar ya da yüksek akıma dayanabilen yarı iletkenler kullanılır. Motor sürme metotlarını aşağıdaki gibi sıralayabiliriz. Röle Transistörlar ile H köprüsü Mosfetler ile H köprüsü Özel Motor Sürücüler Röle Röle genellikle hız kontrolü yapılmayan ve yüksek akım çeken motorları sürmek için kullanılır. Transistörün beyzine +5V verildiğinde röle kontaklarını çekerek motoru tek yöne döndürecektir. Kullanılan D1 diyotu röle durdurulduğundaki oluşan ters indüklenmeyi kendi üzerinden deşarj eder. İki yöne hareket edebilmesi için rölenin çift kontaklı olması gerekmektedir. Ancak burada da bir eksiklik vardır. Transistör çalıştığında motor ileri dönerken durduğunda ise geri dönmektedir. Yani hiçbir zaman motor durmamaktadır. Bu yüzden bir röle daha kullanılması gerekir.(şekil 6) Not: Diyotlar 1n4007 kullanılabilir. Şekil 5 Sayfa 3 / 11
Transistörlü ve Mosfetli H köprüsü Şekil 6 Şekil 7 Şekil8 Şekil 7 de transistörlü H köprüsü görülmektedir. H köprüsü şu şekilde çalışmaktadır: Tablo -1 1.Giriş 2.Giriş Motorun Durumu 1.Durum 0 0 Durur Q3 ve Q4 transistörü iletime geçer ve motor durur. 2.Durum 0 1 Sağa döner Q2 iletime geçer ve motorun bir ucu + diğeri olduğundan döner 3.Durum 1 0 Sola döner Q1 iletime geçer ve motorun bir ucu - diğeri + olduğundan döner 4.Durum 1 1 İstenmeyen durum Özel Motor Sürücüler Piyasada birçok motor sürücü bulabilirsiniz. Biz en kolay bulabileceğiniz motor sürücülerden bahsedeceğim. L293D L298 L6203 Sayfa 4 / 11
L293D Motor Sürücü L293D motor sürücü 2 adet motor sürebileceğiniz bir entegre yapısına sahiptir. Her kanaldan maksimum 1,2 Amper, sürekli 600mA çekilebilir. Minimum besleme gerilimi 5 V olması 6V luk motorlar için bu motor sürücünün daha fazla tercih edilmesine neden olmaktadır. Maksimum 36V verilebilir. Ancak besleme gerilimi verilirken çekilebilecek akım değeri de düşmektedir. Eğer 36V ile beliyorsanız 5W=36VxImotor, Imotor=138mA dir. L293D motor sürücü PWM ile kullanıldığında maksimum 5 khz de çalışmaktadır. Şekil 9 L298 Motor Sürücü Şekil 10 L298 motor sürücü ile 2 adet motor sürebilirsiniz. Ancak her motor için 4 adet diyot kullanmak gerekmektedir. L298 motor sürücünün her kanalından maksimum 3 amper sürekli 2 amper çekebilirsiniz. L298 motor sürücü L293D de olduğu gibi minimum besleme gerilimi 5V dur. Maksimum 50V verilebilir. Ancak besleme gerilimi verilirken çekilebilecek akım değeri de düşmektedir. Eğer 25V ile beliyorsanız 25W=25VxImotor, Imotor=1 A dir. Ayrıca L293D 5 khz iken L298 20 ila 40 khz de çalışabilmektedir. Sayfa 5 / 11
Şekil 11 Şekil 12 SENSA ve SENSB uçları şaseye çekerek maksimum akımda kullanılabilir. Eğer akımı sınırlamak istiyorsanız SENSA ve SENSB uçlarından 5W lık 0,47 ohm luk direnç ile şaseye çekmeniz gerekmektedir. L6203 Motor Sürücü L6203 motor sürücü ile tek motor sürülebilir. Besleme gerilimi maksimum 52 Volt minimum 12 Volt tur. Yükte 5 Amper çekebilirsiniz. Çalışma frekansı 100 khz dir. Büyük sumo ve güç gerektiren robotlarda tercih edebilecek bir motor sürücüdür. SENS uçunu şaseye çekerek maksimum akımda kullanılabilir. Eğer akımı sınırlamak istiyorsanız SENS uçunu 5W lık 0,47 ohm luk direnç ile şaseye çekmeniz gerekmektedir. Yüksek akımda motorda oluşan ters akımların devreye zarar vermesini engellemek için motora paralel birbirine seri 10 ohm direnç ile 22 nf kondansatör bağlanır. Şekil 13 Sayfa 6 / 11
Şekil 14 3. Regüle Devreleri Bir robotta en önemli bölümlerden biridir. Robotun reset almaması ve diğer tüm devrelere yeterli akımı sağlayabilmesi gerekmektedir. Robotlarda en çok kullanılan regülatör 7805 tir. Ancak 12 Voltan yüksek giriş gerilimi verildiğinde çoğu zaman sorun yaratmaktadır. Bu yüzden LM2575 ve LM2576 regülâtörleri tercih edilmeye başlanmıştır. Şekil 15 LM2575 regülatörü 1 Amper çıkışa sahiptir. İçerisinde kısa devre koruması ile aşırı sıcaklık koruması bulunmaktadır. Adj versiyonlarıda mevcuttur.(şekil 17) Adj versiyonlarında istediğiniz gerilim değerini pot yardımıyla ayarlayabilirsiniz. Şekil 16 Sayfa 7 / 11
Şekil 17 LM2576 regülatörü 3 Amper çıkışa sahiptir. İçerisinde LM2575 te olduğu gibi kısa devre koruması ile aşırı sıcaklık koruması bulunmaktadır. Adj versiyonlarıda mevcuttur.(şekil 19) Adj versiyonlarında istediğiniz gerilim değerini pot yardımıyla ayarlayabilirsiniz. Şekil 18 Şekil 19 4. Mikro Denetleyici Tasarımı Mikro denetleyici tasarımında kullanılan sensörler, motorlar, üzerindeki değişimi görebilmek için ledler ve değişimi sağlayabilmek için butonlar ekleyeceğiz. Kullanacağımız mikro denetleyiciyi seçerken bizim için gerekli sayıda port a sahip olup olmadığına ve işimizi görüp göremeyeceğine bakıyoruz. PIC16f876A bizim için yeterli port a, yeterli çalışma hızına ve yeterli donanıma sahip. Mikro denetleyicinin kristalini 20 MHz olarak seçiyoruz. Bu hız bizim için şu an için yeterli. Donanım olarak içerisinde dahili 2 adet pwm çıkışı bulunmaktadır. Eğer çizgi izleyenin çalışacağı parkurda bir engel varsa bunu algılayabilmesi için analog girişe ihtiyacımız bulunmaktadır. 16f876A da 5 adet analog giriş bulunduğu için bu yönden de işimizi görüyor. Şekil 20 de Mikro denetleyicimizin sensörlerin, motor sürücünün ve regülatörün birleştirilerek çizilmiş açık şemasını göremektesiniz. Sayfa 8 / 11
Şekil 20 Şekil 21 Şekil 22 Sayfa 9 / 11
Örnek Kodlar: Device 16F877 'kullanacağımız pici tanımlıyoruz ALL_DIGITAL TRUE 'tüm analog girişler dijital olarak kullanılsın XTAL = 20 'bağladığımız kristal 20mhz Declare CCP1_PIN PORTC.2 'donanımsal 1. pwm ucu aktif Declare CCP2_PIN PORTC.1 'donanımsal 2. pwm ucu aktif Dim CNYLER As PORTB Dim ECNYLER As Byte Dim SAGPWM As Byte Dim SOLPWM As Byte ' portbyi cnyler olarak isimlendir 'bir önceki bilgiyi kaydetmek için 8 bitlik bir değişken oluştur 'sağmotor için 8 bitlik 0-255 arasında değişken tanımla 'solmotor için 8 bitlik 0-255 arasında değişken tanımla ECNYLER = 0 'bi önceki bilginin ilk değeri 0 SAGPWM=200 'motorların ilk hızları 200 pwm SOLPWM=200 'motorların ilk hızları 200 pwm TRISB=255 'b portunun tüm pinleri giriş PORTB=0 'b portunu sıfırla BASLA: 'basla etiketi HPWM 1,SAGPWM,20000 'donanımsal pwm ucundan 20khzlik frekansa sahip sagpwm değişkeninin içerisindeki bilgi kadar pwm üret HPWM 2,SOLPWM,20000 'donanımsal pwm ucundan 20khzlik frekansa sahip solpwm değişkeninin içerisindeki bilgi kadar pwm üret If CNYLER=%00011000 Then GoTo DUZ 'eğer ortadaki sensörler görüyorsa düz isimli etikete dallan If CNYLER=%00001100 Then GoTo SAG1 'eğer sağdaki sensörler görüyorsa sağ1 isimli etikete dallan If CNYLER=%00110000 Then GoTo SOL1 'eğer soltaki sensörler görüyorsa sol1 isimli etikete dallan If CNYLER=%00000100 Then GoTo SAG2 If CNYLER=%00100000 Then GoTo SOL2 If CNYLER=%00000110 Then GoTo SAG3 If CNYLER=%01100000 Then GoTo SOL3 If CNYLER=%00000010 Then GoTo SAG4 If CNYLER=%01000000 Then GoTo SOL4 DUZ: ' SAGPWM = 200 'sağ pwmin değerini ayarla SOLPWM = 200 'sol pwmin değerini ayarla SAG1: SAGPWM = 210 SOLPWM = 180 SAG2: SAGPWM = 220 SOLPWM = 160 SAG3: SAGPWM = 230 SOLPWM = 150 SAG4: SAGPWM = 240 SOLPWM = 130 SOL1: SAGPWM = 180 SOLPWM = 210 SOL2: SAGPWM = 160 SOLPWM = 220 Sayfa 10 / 11
SOL3: SAGPWM = 150 SOLPWM = 230 SOL4: SAGPWM = 130 SOLPWM = 240 Sayfa 11 / 11