PIC16F84 Renk Algılayan Robot Kol Projesi Jal ile

| Mart 26, 2021 Tarihinde güncellendi
PIC16F84 Renk Algılayan Robot Kol Projesi Jal ile

Hazırlayanlar : Mehmet Can TUNCER, Eda YILDIZ, Ersin KOŞAR – Mikro denetleyici PIC bilgilerinin yanı sıra robot yazılım,JAL komutları mekanik aksam hakkında bilgiler ve fazlası bulunuyor. Emeği geçen hazırlayan kişilere teşekkürler

PCBway Türkiye PCB Manufacturer PCB Assembly

Robotlar amaçlarına göre belirlenen işleri istenilen zamanlarda ve en az hatayla gerçekleştiren otomatik sistemlerdir. Günümüzde, insan gücünden tasarruf edilmesi, yapılabilecek insan hatalarının en az seviyede tutulması ve zaman kaybının önlenmesi için robotlar kullanılmaktadır.

Bu çalışmada sabit bir yerden gelen farklı renkteki cisimlerin renklerine göre kutulara ayıran robot kol tasarlanmıştır. Algılayıcılar yardımıyla alınan verilerin analog dijital çevirici ile mikro denetleyicinin anlayabileceği sinyallere dönüştürülmesi sağlanmaktadır. Mikro denetleyicinin girişine gelen sinyallere göre de servo motorlara istenilen hareket yaptırılmaktadır. En fazla 4 cm çapında ve yaklaşık 250 gr ağırlığındaki cisimlerin taşınması mümkündür.

Daha önce Türkiye’de yapılan robot kol çalışmaları:

• Endüstriyel taşıma amaçlı manyetik tutucu ve robot kol tasarımı (Erciyes Üniversitesi, Fen Bilimleri Enstitüsü, Makine Mühendisliği, Recep GÜNEŞ)

• Bilgisayar kontrollü robot kol (Ankara Üniversitesi, Fen Bilimleri Enstitüsü, Elektrik ve Elektronik Mühendisliği, Mutlu YAĞLIOĞLU)

• Değişken yapılı beş eksenli robot kol tasarımı (ODTÜ, Fen Bilimleri Enstitüsü, Elektrik ve Elektronik Mühendisliği, Ahmet Serdar YÜCEL)

Tasarlanan robotun mekanik yapısı basit ve kullanışlıdır. Projede algılayıcılardan gelen sinyalleri işleyerek robota istenilen hareketlerin yaptırılmasında PIC16F84 kullanılmıştır. Bu mikro denetleyicinin kullanılmasının sebepleri;

  • Kolay elde edilebilmesi.
  • Diğer mikro denetçilere göre daha ucuz olması.
  • Bir çok projede tercih edildiği için gerekli doküman ve kaynaklara daha kolay ulaşılmasıdır.

Robotun yönlendirilmesinde HITEC HS322HD model servo motor kullanılmıştır. Mekaniğinde de işlenmesi kolay ve sağlam olduğu için flexiglass kullanılmıştır.

Kullanılan sensörler, üzerlerine düşen ışığın şiddetine göre çıkış verdikleri için robotun bulunduğu ortamın ışığı renklerin ayırt edilmesinde problem yaratmaktadır. Bunu önlemek için sensörlerin gün ışığından iyi bir şekilde yalıtılması gerekmektedir. Programlanabilir renk sensörleri kullanılmış ve robot kola bir bilek eklenmiş olsaydı çalışma kararlılığı ve hareket kabiliyeti daha yüksek olurdu.

1. Robot Nedir ?

Bu konuda çalışmalarıyla tanınan Maja Mataric’in yaptığı tanıma göre, ortamdan topladığı verileri dünyası hakkında sahip olduğu bilgiyle sentezleyerek, anlamlı ve amaçlarına yönelik bir şekilde hareket edebilen ve bunu güvenli bir biçimde yapabilen bir makinedir.

Kısaca robot, mekanik sistemleri ve bunlarla ilişkili kontrol ve algılama sistemleriyle bilgisayar algoritmalarına bağlı olarak akıllı davranan makinelerdir. Genel bir enstitü tarafından ise robot şu şekilde tanımlanmaktadır;

“Robot yeniden programlanabilen; maddeleri, parçaları, aletleri, programlanmış hareketlerle yapılacak işe göre taşıyan veya işleyen çok fonksiyonlu makinelerdir. Akıllı robot çevresinden bilgi alabilen ve bu bilgiyi anlamlı bir amaç için kullanabilen makineye denir. Bir robot sistemi fiziksel olarak vardır. Bilgisayar programlarından farklı olarak ona elimizle dokunabiliriz. O çevresini sürekli algılar ve çevresine tepkide bulunur.

Bir Sistem Ne Zaman Robot Özelliği Kazanır?

Bilgisayarın yazıcısı veya mutfak robotu gerçekten birer robot mudur? Bir makineye robot diyebilmek için, en önemli şartlardan birisi algılamadır. Bir robot sınırlı da olsa dış dünyadan bazı algılar yapabilmelidir. Bu algılamalar, kimyasal, konum, renk, ışık, şekil gibi geniş bir yelpazede yer alır. Daha sonra elde ettiği verileri, otonom olarak yorumlayabilmeli, algıya ne gibi tepkide bulunacağına karar vermelidir. Son olarak da verdiği bu kararını uygulamaya koyabilmelidir. Kısaca robot üç ana kısımdan oluşur.

Çevre hakkında gerçek zamanlı bilgi elde etmek için kullanılan alıcılar, Karar vermeyi ve kontrolü sağlayan elektronik beyin, Verilen kararların uygulamasını sağlayan eyleyiciler ve hareket sistemleri.

Yukarıdaki tanımlarda görüldüğü gibi robot temel bir işlemi yerine getirebilen, yetileri olan yeniden programlanabilen aygıtlardır. Şekil 1.1 de programlanabilen bir robot görülmektedir.

böcek robot

Temel olarak bir robotun aşağıdaki özelliklerinin olması gerekir.

İşlem yapma yetisi: Bir işlemi fiziksel veya farazi olarak yerine getirebilmelidir; yoksa robot olmaz, sadece bir madde olur.

İşlemin sonucunu belirleme yetisi: İşlemi yaptıktan sonra mutlak olarak işlemin sonucunu belirlemelidir ki işlem tam olarak yapılmış olsun.

Karar verme yetisi: İşlemin sonucuna göre ya da dış etmenlere göre mutlaka bir yargı kurabilmelidir.

Robot Kavramının Doğuşu

İnsanlığın kendine yardımcı olacak mekanizmalar düşünmesi, tahminlerinizden çok daha eskilere uzanmaktadır. M.Ö. 800’de, Homeros, İlyada adlı eserinde verilen görevleri yerine getirebilen hareketli üçayaklılardan bahseder. M.Ö. 350’de Aristo, bir eserinde; “Eğer her araç kendi işini görebilseydi, insan eline ihtiyaç duymadan mekik kendi dokuyabilseydi, lir kendi çalabilseydi, yöneticilerin elemanlara ihtiyacı kalmazdı.” Diyerek ilk otomasyon fikrini ortaya atmıştır. 13.yy ise Eb-ül-İz-el-Cezeri adlı bir Arap otomatlar hakkında bir kitap yazdı. Kitapta 300’e yakın otomatik mekanizmanın yanı sıra, çamaşır teknesini doldurup boşaltabilen otomatik bir Arap kadını resmediliyordu.

Robot teknolojisi, ismini Çek oyun yazarı Karel Capek’in, “Rossum’un Evrensel Robotları (1921)” oyununa borçludur. Yazar, angarya-zorunlu iş anlamındaki “robata” kelimesi ile işçi anlamına gelen “robotnik” kelimelerini birleştirerek “Robotic” kelimesini türetmiştir.

Isac Asimov ise yazdığı bilim-kurgu romanlarla “robot” fikrinin öncülüğünü yapmıştır. Yazarın kitaplarında belirttiği üç kanun Asimov kuralları olarak bilinmektedir. Kim bilir, ileride “Terminatör” benzeri robotların ortaya çıkmaması için, şimdiden Asimov kurallarına özen gösterilmelidir.

1.Bir robot insana zarar vermez ve bir insanın zarar görmesine izin vermez.

2.Bir robot birinci kanuna aykırı olmadığı sürece insanlar tarafından verilen tüm emirlere itaat eder.

3.Bir robot birinci ve ikinci kanuna aykırı bir durum olmadığı sürece kendi varlığını korur.

Robotların Sınıflandırılmaları

Çeşitli sınıflandırma çeşitleri vardır. Aşağıdaki çeşitleri ve bu gruplara giren robotlar gösterilmiştir.

Robotların Yapısal Çeşitleri

Kartezyen Robotlar: X, Y, Z koordinat düzleminde her kol bir öncekine göre dik açıyla kayar. Dikdörtgen şekline bir çalışma alanları vardır.

Silindirik Robotlar: Çalışma alanları silindiriktir. Kolun bir bölümü dikey, diğer bölümü ise yatay hareket eder.

Polar Robotlar: Kol taban etrafında dönebilir. Kolun bir parçası içeri dışarı öteleme hareketi yapabilir. Bir bölümünde aşağı yukarı dönebilir.

Revolüt Robotlar: Dönel veya küresel eklemlere sahiptir. Taban eklemine bağlı olan kol, taban etrafında döner ve diğer iki kısmı taşır. Dönel eklemler yatay ve dikey olarak birleştirilmiştir. Yarım küre şeklinde bir çalışma alanları vardır.

Diğer sınıflama şekillerine göre:

Güç kaynağının yapısına göre ( Hidrolik, Elektriksel vb. )

Hareketli – Sabit robotlar

Yeteneklerine göre ( Ardışıl kontrollü robotlar, adaptif, zeki, tekrarlayan vb. )

Kontrol yöntemlerine göre ( Noktadan noktaya, sürekli yörüngeli, kontrollü yörünge izleyen vb. )

Günümüzde Kullanılan Belli Başlı Robot Örnekleri

Piyasaya bakıldığında satılan robot türlerinde bir genelleşme dikkat çekmektedir. Robotlar genel olarak bir amaç için değil de bir amaç robota uyarlanmakta, yani ek parça tanımlayıcı ve de özellikle program olgularıyla yapı kusursuz olarak tamamlanmaktadır.

Piyasa robotları şu şekilde sıralanmaktadır;

Robot Kollar (özellikle tıp alanındaki kullanımda çok hızlı bir ilerleme görülmektedir)

Su altı robotları (birkaç firmanın su altı madencilik ve araştırma üzerine araçları bulunmaktadır, fakat çalışmaları yavaş ilerlemektedir)

Uzay araştırma robotları (NASA bu konuda çalışmalarıyla devreye girmektedir)

Mobile robotlar (Bataryalı olduklarından gelişmeleri kısıtlı olmaktadır, ama mikro işlemcili tasarımda oldukça ilerleme sağlanmıştır)

Servo Motorlar

Servo motorlar yardımcı motorlardır. Servo motorlar asıl iş makineleri gibi çalışmaz. Özellikle, yalnız enerji kısımları asıl motorlara göre daha az enerjiye ihtiyaç duyar. Servo motorların anma güçleri, yaklaşık 5 KW kadardır. Servo motorlar hem doğru akım motoru, hem de üç fazlı motor olarak yapılabilir. Bunların beslemeleri genellikle bir veya birkaç elektronik devre üzerinden yapılır.

Servo motorlar, iş makinelerinin yardımcısı olarak kullanılır. Bunların beslenmesi bir elektronik devre üzerinden yapılır.

Servo motorlar özellikle sayısal kontrollü makinelerde pozisyonların belirlenmesi ve çalışma kararlığının sağlanması için kullanılır. Bu makinelerin çalışma şekline göre belirlenen istekleri servo motorlar tarafından ayarlanır.

Servo kumanda motorları, model uçak gibi hareketli yüzeyleri bulunan modellerin hareketini, kumanda çubuklarının hareketine birebir uyarlamak için kullanılır. Robotların da vazgeçilmez parçalarından biridir. Servolar, modellerde ağırlık ve hacim sorunu önemi bir problem olduğu için son derece hafif ve küçük olmak zorundadır. Düşük akımlarda çalışmalıdır. 4.8 V gibi bir doğru gerilim kaynağı ile beslenebilmelidir. Bu kriterlerde batarya boyutlarında kazanç sağlamaktadır. Fakat tüm bu kısıtlayıcı kriterlere rağmen 1 metrelik bir moment kolu uzaklığında 100 gram ağırlığı oynatabilmektedir.

Bu derece küçük ve sınırlı bir cihazın böylesine güçlü olması insana şaşırtıcı ve imkânsız gibi gelmektedir; ama en ucuz servo bile bu kriterleri fazlasıyla sağlar. Servo motorlar şu anda piyasada lineer veya dairesel bir hareketi kumanda edebilecek en ucuz ekipmandır. Bu kriter de servoyu amatör proje hazırlayanlara ve özellikle robotikle ilgilenenlere çok cazip kılmaktadır. Fiyatları modeline göre 20 USD –200 USD arasında değişmektedir.

Servo motorlar şu istekleri yerine getirebilirler.

• Motor dilindeki 40 N/m’ a kadar olan büyük dönme momenti • Dönme momentinin, iki katına kadar olan kısa anlık aşırı yüklenebilirlik. • Yüksek devir sayısı kararlığı, böylelikle çeşitli yüklerde hızın sabit kalması • Yaklaşık 1–10000 arasındaki devir sayısının ayarlanabilme özelliği • Çok küçük yol adımları ile hareket edebilme imkânı • Küçük atalet momenti sayesinde komutların geciktirilmeden yerine getirilerek çalışmanın sağlanması • Devir sayısı olarak tako üreticine gerek olmaması.

Bir servo motordan istenen özellikler, yapıları göz önünde bulundurulduğunda doğru akım motorları veya üç fazlı motorlar tarafından yerine getirirler. Servo motorların yukarıdaki açıklamalardan farklı çok kullanım yerleri vardır. Bunlardan bazıları aşağıda belirtilmiştir.

Servo motorlar uçaklarda kanat flaplerini ve buna benzer cihazların ayarlamalarını yapmak için kullanılırlar. Servo motorlar dâhili dişli sistemine sahiptirler ve yüksek momentlere ulaşırlar. Çıkış şaftı DC ve step motorlarda olduğu gibi serbestçe dönmez belli açılarda döner. Servo motorlar bunu elektronik şaft yeri algılayıcısı ve bir kontrol devresiyle yaparlar. Servo motorların 3 çıkışı vardır: güç, toprak ve kontrol. Çoğunlukla 5 voltta çalışırlar. Kontrol sinyalleri bir dizi vurgudan oluşur ve şaftın istenilen konumunu belirlerler. Her vurgu bir konum komutunu simgeler

Servo Motorlar

servo motorlar

6 SM 27/37/47/57/77/107 Serisi, roselverli fırçasız servo motorlar, 480V giriş geriliminde SERVOSTARTM 600 ve DigifasTM 7100/7200 dijital servo amplifikatörleriyle kullanılır.

Doğru Akım motoru olarak Servo Motorlar

Aşağıdaki şekilden görüleceği üzere, bir doğru akım servo motorunda, yüksek bir dönme momenti ve aşırı yüklenebilirlik elde etmek için özellikle şiddetli bir manyetik alan oluşturulmalıdır. Fakat mümkün olan aşırı yüklenme sırasında komütatördeki akım çevirimi kritiktir. Bunun için doğru akım servo motorlarında daima bir kompensasyon sargısı bulunur. Ayrıca servo motorların motor çapı, normal doğru akım motorlarına göre daha küçük yapılırlar.

Bu nedenle bir doğru akım servo motorun atalet momenti oldukça küçüktür. Rotor çapı küçültülerek, uyartım sargısı için gerekli olan hacimde yer elde edilir. Doğru akım servo motorları rotor çapının küçük olması nedeniyle, aynı güçlerde olan diğer doğru akım motorlarına göre boyları daha uzundur. Aynı uzunluktaki rotorun dönme momenti rotor çapına bağlı olarak değişir. Servo motorların boylarının uzun olmasının sebebi budur.

Doğru akım servo motorları küçük rotor çaplı ve genellikle içerisinde bir kompensasyon sargısı olan kuvvetli manyetik alanlı, boyu uzun doğru akım motorlarıdır.

Servo Motorun İç Yapısı

servo motor yapısı

Aşağıdaki şekilden de görüleceği üzere, özellikle hızlı tepkili servo motorlar için rotorunun milinden başka içerisinde demir bulunmayan doğru akım motorları kullanılır. Şüphesiz bu şekildeki çalışma yalnız yaklaşık 1 KW’ a kadarki güçlerde yapılır.

İnce ve uzun rotorlu bir motorun, normal rotorlu bir motordan daha küçük hacimli bir ünitesi vardır. Sargı genellikle artık oluklara değil, özellikle rotor mili üzerine sarılmıştır. Bundan başka sargı, rotor boyunca çevresine eşit olarak dağıtılmıştır. Küçük devir sayılarında sessiz çalışmanın sağlanması için bu yapı şeklinin kullanılması düşünülmüştür.

Servo Motorun İç Yapısı

servo motor iç yapı

Disk rotorlu motorda silindir rotor yerine, çok az momenti demirsiz, ince bir disk rotor kullanılır. Çan tipi motorda, demir çekirdek durduğu sırada üzerine çan şeklinde plastik dökülen sargı, rotor olarak çalışır. Bu çeşit motorlar yaklaşık 3000 dev/dak’lık yüksek hızla dönerler. Motor bu hıza 10 ms içinde ulaşır. Küçük güçlü servo motorlar hızlı tepkilidirler. Bunların rotorunda milin dışında demir bulunmaz.

Sabit mıknatıs uyartımlı doğru akım servo motorlar dönme kutupsuz yapılırlar. Bunun için yüksek devir sayılarında akım çevirici cihazda bir koruyucu devre kullanılmalıdır. Böylelikle istenmeyen akım şiddetleri önlenir.

Transistör ayar ünitesi ile doğru akım servo motorlarında kontrol emirler anında gecikmesiz olarak yerine getirilir. Buna karşılık tristörlü ayar ünitelerinde 10 ms’ye kadar emrin uygulanması için geçen bir ölü zaman bulunur. Doğru akım servo motorlarının devir sayılarının kontrollü rotor gerilimi ayarlanarak yapılır. Servo motorun mevcut dönme momenti ayarlanan devir sayısına ve motorun çalıştırılma şekline bağlıdır. S1 sürekli çalıştırılma durumunda küçük devir sayılarında mevcut dönme momenti. Motorun anma dönme momenti büyüklüğü kadardır.

Yüksek devir sayılarında sürekli çalıştırılma sırasında çalıştırılma sırasında bu biraz düşer. Servo motor S3 çalışmaz konumuna getirildiğinde. Mevcut dönme momenti oldukça çok yükselir. Servo motorun mevcut momenti S2 kısa çalışma durumunda devir sayısına bağlı olarak, anma momentinin dört katına kadar çıkabilir.

Doğru akım servo motorunun en büyük dönme momenti kısa çalıştırılmalar sırasındadır ve en küçük devir sayısında yaklaşık anma dönme momentinin dört katıdır.

Doğru akım servo motorlarında uyartımın doğru akım vasıtasıyla yapılması yerine sabit mıknatıs uyartımı kullanılır. Burada statorun manyetik alan çizgileri, sabit mıknatıs tarafından üretilir. İki çeşit üzensel yapı vardır. Her iki akı düzeninde de statora yumuşak manyetik maddeden kutup sacları bulunur. Bu yapı aynı yoğunluklu manyetik akı etkisi gösterir. Utup pabuçlarının etkisi ile motor sıkışmadan çalışabilir duruma getirilebilir.

Utup pabuçları rotor kesit akısı için geri akı da meydana getirir. Böylelikle büyük yüklenmeler sırasında asıl kutuplarda kalıcı mıknatıslık ortaya çıkmaz. Sabit mıknatıs dikdörtgen yapı şeklinden dolayı plaka şeklinde kolayca üretilebilir. Radyal mıknatısın uyarma akısı rotorun içine nüfuz eder.

Çanak şeklindeki mıknatısların kullanılması sırasında mıknatıs çanağının parçaları uyartım kutuplarını oluşturur. Manyetik alan şiddeti ile rotorun sıkışmadan dönmesini sağlamak mümkündür. Bunun için mıknatıs çanağın uçları zayıf mıknatıslanır. Çanak mıknatıslarının kullanımı sırasında, rotor kesit alanın, uyartım alanına olan geri besleme etkisinin küçültülmesi için büyük bir hava aralığı bırakılır. Çok büyük yüklenmeler sırasında çanak mıknatısta artık mıknatıslığın ortaya çıkması tehlikesi vardır.

Sabit mıknatıs uyartımlı doğru akım servo motorlarda akı yoğunluğu için, radyal mıknatıs veya çanak mıknatıslı yapı şekli kullanılır.

DC servo motorlarda döner alan, rotor üzerindeki kollektör aracılığıyla dönüp hareketiyle birlikte rotor üzerindeki sarımların belirli bir sırayla devreye girmesiyle sağlanır. Senkron ve Asenkron AC motorlarda ise döner alan stator ve rotorda oluşan faz farkından yararlanılarak meydana getirilir. DC ve AC motorların aksine stepper motorlar, bobinlerine gerilim verildiğinde serbestçe dönmeye başlamazlar.

Mikroişlemciler ya da lojik sistemler aracılığıyla bobinlerin sırayla devreye girmesi ile döner alan oluşturulur ve rotor, motoru kontrol eden mikroişlemci ya da lojik sistemin istediği hizada ve yönde dönmeye başlar. Ayrıca tork değerleri aşılmadığı sürece herhangi bir sensör ile feedback almaya gerek yoktur.

DC Servo Motorunun Özellikleri

DC Servo Motorunun Özellikleri

Servo’nun yapısı step motorla DC motorun birleştirilmesiyle oluşmuştur. Üç ana dış bobin yapısıyla, step motorun parçalama teorisine, döndürme prensibiyle de DC motoru çağrıştırmaktadır. Ekstra olarak konum algılama sensörleri ve gelişmiş sargı teknikleri yer almaktadır. Servo motorlar, yapısal olarak DC’ye benzemesi ve kullanım açısından step’i çağrıştırmasına rağmen step gibi kullanım kolaylığı olan bir motor türü değildir.

Bir servo motor yapı olarak dört kısımdan oluşmaktadır.

  • DC elektrik motoru,
  • Planetar dişli sistemi,
  • Geri besleme potansiyometresi,
  • DC motor pozisyon kumanda elektroniği.

DC motor herhangi bir DC oyuncak motorundan farklı olmayan çift mıknatıslı bir statora ve fırçalı bobin rotora sahiptir. Motor mili 1:200 ile 1:300 arası dönme oranına sahip bir dişli sistemine bağlanır, bu sayede oldukça yüksek bir tork değerine ulaşılır. Dişli sisteminin çıkışında bir 5k’lık potansiyometre, il konumunu elektronik kumanda devresine iletir. Elektronik devrenin görevi mil konumunu, gelen veri konumuna gelinceye kadar motoru iletimde tutup tam yerinde durdurmaktadır.

Elektronik devre bu konumu algılamak için PWM (pals width modulation) darbe genişlik modülasyonu tekniğinden yararlanmaktadır. Kumanda devresi el kumandalı robotlarda kumanda çubuğunun konumuyla doğru orantılı olarak, PC kumandalı robotlarda programın istediği konumla doğru orantılı olarak 0 ile 2.5 milisaniye arasında dalga genişliği değişen giriş sinyali her 20 milisaniyede bir servoya gönderir.

0-1.52 ms lik pals hareket etmemeyi, 0-0,8 lik pals 90 derece sola hareketi, 0-2,5 ms lik bir pals ise 90 derece sağa hareketi ifade eder. Buradaki rakamlar ve ifade ettikleri hareketler üretici firmaya göre değişir. Servo içindeki elektronik devre ilk önce gelen darbelerin darbe genişliğini ölçer, daha sonra potansiyometre konumuna bakar ve kendi darbe osilatörünün darbe genişliği gelen darbelerle eşitlenene kadar motoru hareket ettirir. Bunu yapabilmesi için bizim de kontrol devresinin de kullanıldığı dalga boyları ve ifade ettiği açı miktarları eşit olmalıdır.

Servo motora uygulanan güç, motorun hareket edeceği mesafe ile orantılıdır. Yani eğer motor az bir derece gidecekse yavaşça döner, eğer büyük bir derece gidecekse tam hız hareket eder. yani motor proportional kontrol edilmektedir.

Doğru Akım Motorlarının Sürücü Devresi

Servo motorlar yapısal olarak DC’ye benzemesi ve kullanım açısından step’i çağrıştırmasına rağmen step gibi kullanım kolaylığı olan bir motor türü değildir. Motor zamansal olarak verilen palslere yeniden ateşlenerek döndürülmesi devam ettirilmektedir palsler ne kadar sık olursa o kadar hızlı, palsler ne kadar güçlü olursa da o kadar güçlü hareketler sağlamaktadır. DC motorlardaki kalkış problemi yaşanmamakla birlikte yüksek gerilimde kullanılmak zorundadırlar.

Doğru Akım Motorlarının Sürücü Devresi

ne555 servo driver

Devrede NE555 entegresi tipik osilatör kaynağını oluşturarak temel üç uçlu bir servo DC motoru tetikleyerek döndürmektedir.

Mikro Denetleyiciler

Bir bilgisayar içerisinde bulunması gereken temel bileşenlerden RAM, I/O ünitesinin tek bir çip içerisinde üretilmiş biçimine mikro denetleyici (mikrocontroller) denir. Bilgisayar teknolojisi gerektiren uygulamalarda kullanılmak üzere tasarlanmış olan mikro denetleyiciler, mikroişlemcilere göre çok daha basit ve ucuzdur. Günümüz mikro denetleyicileri otomobillerde, kameralarda, cep telefonlarında, faks-modem cihazlarında, fotokopi, radyo, TV, bazı oyuncaklar gibi sayılamayacak kadar pek çok alanda kullanılmaktadır.

Günümüz mikro denetleyicileri birçok çip üreticisi tarafından üretilmektedir. Her firma ürettiği çip’e farklı isimler vermektedir. Örneğin Mikroçip firması ürettiklerine PIC adını verirken, Intel’in ürettiği ve 1980’lerin başında piyasaya sürdüğü 8051, bazen MCS–51 olarak da adlandırılır.

Mikroişlemci ile kontrol edilecek bir sistemi kurmak için şu üniteler bulunmalıdır; CPU, RAM, I/O ve bu üniteler arasındaki veri alışverişini kurmak için DATA BUS (data hatları) gerekmektedir. Elbette bu üniteleri yerleştirmek için baskılı devre dizaynı ve montajının da yapılması gerekmektedir.

Mikro denetleyici ile kontrol edilecek sistemde ise yukarıda sayılan ünitelerin yerine geçecek tek bir çip (mikro denetleyici) ve bir de devre kartı kullanmak yeterli olmaktadır. Tek çip kullanarak elektronik çözümler üretmenin maliyetinin daha düşük olacağı kesindir. Ayrıca kullanım ve programlama kolaylığı da ikinci bir avantajdır. İşte bu nedenlerden dolayı son zamanlarda bilgisayar kontrolü gerektiren elektronik uygulamalarda mikro denetleyici kullanımı artmıştır.

Neredeyse her mikroişlemci (CPU) üreticisinin ürettiği birkaç mikro denetleyicisi bulunmaktadır. Bu denetleyicilerin mimarileri arasında çok küçük farklar olmasına rağmen aşağı yukarı aynı işlemleri yapabilmektedirler. Her firma ürettiği çip’e bir isim, özelliklerini birbirinden ayırmak içinde bir parça numarası vermektedir.

Örneğin Microchip firması ürettiklerine PIC adını, parça numarası olarak da 12C508, 16C84, 16F84, 16C711 gibi kodlamalar vermektedir. Intel ise ürettiği mikro denetleyicilere MCS_51 ailesi adını vermektedir. Genel olarak bu adla anılan mikro denetleyici ailesinde farklı özellikleri bulunan ürünleri birbirinden ayırt etmek için parça numarası olarak da 8031AH, 8051AH, 8751AHP, 8052AH, 80C51FA gibi kodlamalar kullanılmaktadır.

PIC Mikro Denetleyiciler

Bir uygulamaya başlamadan önce hangi firmanın ürünü kullanılacağına, daha sonra da hangi numaralı denetleyicinin kullanılacağına karar vermek gerekir. Bunun için mikro denetleyici gerektiren uygulamada hangi özelliklerin olması gerektiğinin önceden bilinmesi gereklidir. Aşağıda bu özellikler sıralanmıştır:

  • Programlanabilir dijital paralel giriş/çıkış
  • Programlanabilir analog giriş/çıkış
  • Seri giriş/çıkış (senkron, asenkron ve cihaz denetimi gibi)
  • Motor veya servo kontrol için pals sinyali çıkışı
  • Harici giriş vasıtasıyla kesme
  • Harici bellek arabirimi
  • Harici bus arabirimi (PC ISA gibi)
  • Dahili bellek tipi seçenekleri (ROM, EPROM, PROM ve EEPROM)
  • Dahili RAM seçeneği
  • Kayan nokta hesaplaması

Bilgisayar denetimi gerektiren bir uygulamayı geliştirirken seçilecek mikro denetleyicinin ilk olarak tüm istekleri yerine getirip getiremeyeceğine, daha sonrada maliyetinin düşüklüğüne bakılmalıdır. Ayrıca, yapılacak uygulamanın devresini kurmadan önce seçilen mikro denetleyicinin desteklediği bir yazılım üzerinde simülasyonunun yapılıp yapılamayacağı da dikkate alınmalıdır.

Yukarıda sayılan tüm bu özellikler göz önüne alındığında Microchip’in ürettiği PIC’leri kullanmak akılcı bir yol olmaktadır. Bu çalışmada PIC mikro denetleyicisinin kullanılmasının nedenleri şöyle sıralanabilir:

• Yazılan programın simüle edilebilmesini sağlayan yazılımın Microchip’ten veya internetten parasız olarak elde edilebilmesi. • Çok geniş bir kullanıcı kitlesinin bulunması. • PIC’lerin çok kolaylıkla ve ucuz olarak elde edilebilmesi. • Elektronikle hobi olarak uğraşanların bile kullanabildikleri basit elemanları kullanarak yapılan donanımla programlanabilmesi. • Çok basit reset, clock sinyali ve güç devreleri gerektirmeleri.

PIC’leri diğer mikro denetleyicilerden üstün kılan bazı özellikleri vardır. Bu özellikler aşağıda verilmiştir:

Kod verimliliği: PIC Harvard mimarisi temelli 8 bit’lik bir mikro denetleyicidir. Bu, bellek ve veri için ayrı yerleşik data yollarının bulunduğu anlamına gelir. Böylelikle akış miktarı veriye ve program belleğine simultane erişim sayesinde arttırılmış olur. Geleneksel mikro denetleyicilerde veri ve program taşıyan bir tek yerleşik data yolu (bus) bulunur. Bu, PIC’le karşılaştırıldığında işlem hızını en az iki kat yavaşlatır.

Güvenirlik: Tüm komutlar 12 veya 14 bitlik bir program bellek sözcüğüne sığar. Yazılımın, programın veri kısmına atlamaya ve veri’yi komut gibi çalıştırmasına gerek yoktur. Bu 8 bit’lik data yolu (bus) kullanan ve Harvard mimarisi temelli olmayan mikro denetleyicilerde gerçekleşmektedir.

Komut Seti: 16C5x ailesinde yazılım yaratmak için 33 komut kullanılır. 16Cxx ailesi için bu sayı 35’e çıkar. PIC tarafından kullanılan komutların hepsi yazmaç (register) temellidir ve 16C5x ailesinde 12 bit, 16Cxx ailesinde ise 14 bit uzunluğundadır. CALL, GOTO ve bit test eden BTFSS, INCFSZ gibi komutlar dışında, her bir komut, tek bir çevrimde çalışır.

Hız: PIC, osilatör ve yerleşik saat yolu (clock bus) arasına bağlı yerleşik bir (divide by 4) 4’lü bölünme’ye sahiptir. Bu, özellikle 4 MHz’lik kristal kullanıldığında komut sürelerinin hesaplanmasında kolaylık sağlar. Her bir komut döngüsü 1?sn’dir. PIC oldukça hızlı bir mikro denetleyicidir. Örneğin 5 milyon komutluk bir programın 20MHz’lik bir kristal ile adımlanması yalnızca 1 sn sürer. Bu süre 386SX-33 hızının neredeyse iki katıdır.

Statik İşlem: PIC tamamıyla statik bir mikroişlemcidir. Başka bir deyişle saati durdurduğunuzda tüm yazmaç içeriği korunur. Pratikte bunu tam olarak gerçekleştirmek mümkün değildir. PIC uyuma moduna getirildiğinde saat durur ve PIC’e uyutma işleminden önce hangi durumda olduğunu hatırlatacak çeşitli bayraklar kurar. PIC uyuma modunda yalnızca 1?A’dan küçük bir değere sahip bekleme (stand by) akımı çeker.

Sürücü Kapasitesi: PIC yüksek bir sürücü çıktı kapasitesine sahiptir.

Seçenekler: PIC ailesinde her tür ihtiyacınızı karşılayacak çeşitli hız, sıcaklık, kılıf, I/O hatları, zamanlama (timer) fonksiyonları, seri iletişim portları, A/D ve bellek kapasite seçenekleri bulunur.

Çok Yönlülük: PIC çok yönlü bir mikrodur ve ürünün içinde, yer darlığı durumunda birkaç mantık kapısının (logic gate) yerini değiştirmek için düşük maliyetli bir çözüm bulunur.

Güvenlik: PIC endüstride en üstünler arasında yer alan bir kod koruma özelliğine sahiptir. Koruma bit’inin programlanmasından itibaren, program belleğinin içeriği, program kodunun yeniden yapılandırılmasına olanak verecek şekilde okunamaz.

Geliştirme: PIC, geliştirme amacıyla yeniden programlanabilen (EPROM) ve seri üretim amacıyla OTP (one time programmable – bir kere programlanabilir) için pencereli formda bulunabilir. Geliştirme araçlarının temini mümkündür ve fiyatları bir ev kullanıcısı için bile satın alınabilir düzeydedir.

PIC’in İç Yapısı

CPU bölgesinin kalbi ALU’dur (Aritmetic Logic Unit – Aritmetik mantık birimi) ve W (Working-Çalışan) adında bir yazmaç içerir. PIC, diğer mikroişlemcilerden, aritmetik ve mantık işlemleri için bir tek ana yazmaca sahip oluşuyla farklılaşır. W yazmacı 8 bit genişliğindedir ve CPU’daki herhangi bir veriyi transfer etmek üzere kullanılır. CPU alanında ayrıca iki kategoriye ayrılabilen veri yazmaç dosyaları (Data Register Files) bulunur. Bu veri yazmaç dosyalarından bazıları I/O ve kontrol işlemlerinde çalıştırılırken, diğerleri tamamen RAM olarak çalışırlar.

PIC’lerde Harward Mimarisi kullanılır. Harward mimarisi temelli mikro denetleyicilerde, veri akış miktarını hızlandırmak ve yazılım güvenliğini arttırmak amacıyla ayrı data yolları kullanılır. Ayrı data yollarının kullanımıyla, veri ve program belleğine hızlı bir şekilde simultane erişim sağlanır. Aşağıdaki şekilde bu özellikleri barındıran PIC’lerin temel blok diyagramı görülmektedir.

16F84’ün İç Yapısının Blok Diyagramı

pic mikro diagram


PIC16F84 Hakkında Detaylı bilgi için Buraya Buraya Bakınız

Neden PIC16F84?

Yapılan çalışmada 16F84 mikro denetleyicileri kullanılmıştır. Bu tasarımda kullanılan ve programlanan PIC’in 16F8xx serisi olmasının en önemli nedeni, PIC16F8xx (veya PIC16F84) mikro denetleyicisinin program belleğinin Flash teknolojisi ile üretilmiş olmasıdır.

Flash memory teknolojisi ile üretilen bir belleğe yüklenen program, çip’e uygulanan enerji kesilse bile silinmez. Yine bu tip bir belleğe istenirse yeniden yazılabilir. Flash bellekler bu özellikleri ile EEPROM bellekler ile aynı görünmektedirler. Gerçekten de Flash ile EEPROM bellekler aynı şeylerdir. Ancak bazı üreticiler tarafından EEPROM belleğe Flash ROM da denilmektedir.

Flash belleğe sahip olan PIC16F84’ü programlayıp deneylerde kullandıktan sonra, silip yeniden program yazmak PIC ile yeni çalışmaya başlayanlar için büyük kolaylıktır. Böylece işe yeni başlayanlar yaptıkları programlama hataları nedeniyle çip’i atmak zorunda kalmayacaklardır. Gerçi EPROM program belleği olan çip’lere de yeniden yazmak mümkündür ama, bu durumda bir EPROM Silici cihazına ihtiyaç vardır. Bir silici cihaz bulunsa bile programı bellekten silmek için en azından 10-15 dakika beklemek zorunda kalınacaktır. İşte PIC16F84’ün bu özelliği mikro denetleyici kullanmaya yeni başlayanlar için ideal bir seçenektir.

PIC16F84’ün seçilmesinin ikinci nedeni de, programlama donanımının çok ucuz ve kullanışlı olması ve hatta çoğu kullanıcı tarafından bile kolaylıkla üretilebilmesidir. Ayrıca üretici firmanın ürettiği programlayıcı donanımı ve yazılımının bu firmadan ödemeli olarak istenebilmesi Türkiye’deki kullanıcılar için çok büyük bir avantajdır.

PIC16F84’ü programlamak için öğrenilen her şeyin diğer PIC 16/17 mikro denetleyicilerinin uygulamalarında da kullanılabilmesi, yapılan seçimin doğruluğunu göstermektedir.

Algılama Nedir

Fiziksel dünyadan mikro denetleyicilerin dünyasına bilgi dönüşümüdür. Bu işlemi yani algılamayı yapan aletlere de sensör denir. Sensörler bir şeyleri ölçerler ve ölçümlerini kontrol aygıtına iletirler.

Neyin ya da nelerin algılanacağı sensörlerin çeşitlerinin seçimine bağlıdır. Sensör seçimi robotun görevine uygun olarak yapılır. Örneğin araç izleyen robot yapımında mesafe ölçen bir sensörün olması şarttır. Bir robot kendisinin sensör dünyası ve sensörlerinden gelmesi muhtemel tüm durumlar içinde vardır.

Sensörler

Sensörlerin kısaca çeşitleri ve kullanım amaçları incelenirse; kullanıcıyla iletişim için bump, switchler, mesafe ölçümleri için ultrasound sensörler, radarlar, ışık seviyesi algılama için fotoseller ve kameralar, ses algılaması için mikrofonlar, ısı algılaması için termal ve kızıl ötesi ışınları kullanan sensörler, devir sayımı için encoderlar, magnetizma ölçümleri için dijital pusula vs. gibi geniş bir kullanım alanı olduğu görülür.

Aynı ya da benzer özellikler birden fazla sensör tarafından ölçülebilir. Bu nedenle sensör kullanımında mümkün olan her alternatif incelenmelidir.

Sensörler sisteme ham bilgi sağlarlar. Durum ya da sembol algılamazlar, sadece sinyal algılarlar. Bu sinyalin sistem için kullanışlı bir hale, yorumlanabilecek bir duruma çevrilmesi gerekir. Bu işler elektroniğin ve yazılımın konularıdır. Örneğin bir anahtarın açık ya da kapalı olduğunu anlamak için devredeki gerilimin ölçülmesi gereklidir. Eğer bir sesin tanınması gerekiyorsa bir sinyal işleme yazılımının çalışması gereklidir.

Eğer bir kameradan alınan resimdeki nesne tanınacaksa bir görüntü işleme yazılımının çalışması gereklidir. İşte bu tip programların çalışabilmesi için de sistemin bir hafızaya, sabit diske vs. sahip olması gerekmektedir. Bu yüzden sistemin kullanım amacına göre gereksinimler iyi bilinmelidir.

Fiziksel dünyanın mikro denetleyiciler dünyasına çevrimi mikro denetleyicilerin kullanacağı çıkış dizileri şeklinde yapılır. Yani sensör algılar mikro denetleyicilere iletir. İşte mikro denetleyicilerin işleyeceği bu işaretler iki ana gruba ayrılır: dijital ve analog işaretler. Çalıştıkları sinyallere göre doğal olarak iki tür sensör vardır.

Dijital Sensörler: Diskrit sinyaller üretirler. Bu değerlerin sınırlı sayıda olması anlamındadır. Değerler kesiklidir. Örneğin bir anahtar dijital sensördür ve iki değer üretir: açık ya da kapalı. Tüm dijital sensörler sadece iki değer üretmezler. Mesela dijital pusulalar 360 farklı değer üretirler.

Anolog Sensörler: Sürekli sinyal üretirler, yani sinyaller arası aralık yoktur. İşaret fonksiyonunun grafiği süreklilik gösterir. Çevirmeli radyolarımızda kullandığımız radyo kanalının ayarlama düğmesi analog sensörlere örnektir. Bu analog sinyaller eğer mikro denetleyiciler tarafından işlenecekse mikro denetleyicilerden doğası gereği dijital sinyallere çevrilerek kullanılırlar. Bu yüzden analogtan dijitale çeviren çeviricilere ihtiyaç vardır. Bu çevirme işlemi genelde scaling (bölümleme) şeklinde yapılır. Aşağıda buna bir örnek verilmiştir: 0-1 volt analog sinyalin 0-4 arası sayılara dönüşümü yapılmaktadır.

0-0,1 -> 0 0,1-0,2 -> 1 0,2-0,4 -> 2 0,4-0,8 -> 3 0,8-1 -> 4

Sensör Birleştirmesi: Eğer gereken işlem için bir sensör çeşidi yoksa ya da erişilemiyorsa o zaman eldeki farklı tip sensörler bir biçimde birleştirilir. Sensörlerin farklı çıkışlar üretmeleri ve aralarındakı iletişimin sağlanması gibi zorluklardan ötürü ustalık isteyen bir iştir. Bu duruma en iyi örnek insan beyni olarak verilebilir. Beyine birçok sensörden (göz, kulak, burun, dil, deri) bilgi gelmekte; hepsi ayrı ayrı yerlerde işlenerek karar verme mekanizmasına kaynak olarak sunulmaktadır.

Sensör Çeşitleri

Sensörler iki sınıfa ayrılarak incelenmektedir.

Pasif : Sadece çevresinden gelen fiziksel özellikleri ölçen sensörlerdir.
Aktif : Kendi üzerinde ölçüm yapan sensörlerdir.

a) Switch Sensörleri: Anahtarlar en basit sensörlerdir. Herhangi bir işlem olmadan elektronik bir devrenin üzerinde çalışırlar. Eğer anahtar açıksa devreden akım geçmez, tersinde geçer. Anahtar sensörlerin çeşitleri ve farklı kullanım alanları vardır.

Kontakt sensörleri: Sensörün başka bir nesneye değip değmediğini algılar. Örneğin bir robotun duvara çarptığını anlamasında kullanılırlar. Bu sayede robot geri dönüp yoluna devam eder.

Limit sensörleri: Bir mekanizmanın maksimum ya da minimum değere ulaştığını algılar. Robot kollarda bir nesneyi gerekenden fazla ya da az sıkmamayı sağlayan sensörlerdir. Yaylı bir tuş dibe değdiğinde devre tamamlanır.

Anahtar sensörlere günlük hayattan örnekler vermek gerekirse fare ve klavye tuşları, telefon tuşları akla gelmektedir. Anahtar sensörler basit yapılarına karşın oldukça etkili ve kullanışlı aygıtlardır.

b) Işık sensörleri (fotocell): Direnç mantığıyla çalışan sensörlerdir. Işığın değişimi sensörün direncini değiştirir ve bu değişiklik mikro denetleyicilere değişik bir sinyal olarak yansır. Fotoselin direnci parlak ışıkta düşük, karanlıkta yüksektir. Fotoseller ışık yoğunluğunun değişimiyle ölçüm yaparlar.

c) Direnç sensörleri: Işık sensörleri gibi direnç özellikleriyle algılarlar. Bükülmeyi algılayan sensörler bu gruba girer. Genelde video oyunları için üretilen parçalarda kullanılırlar. Nintendo’nun powerglove’su buna örnek gösterilebilir.

d) Potansiyometreler: Bu aygıtlar genelde sesin ve tonun elle ayarlandığı durumlarda kullanılırlar. Potansiyometrenin bağlı bulunduğu düğmenin çevrilmesiyle direnç değişir. Ayarlı lambalar, radyo düğmeleri, müzik setlerindeki ses düğmeleri potansiyometrelere örnektir. Genelde robot sistemlerinin kontrol mekanizmasında, dönüş miktarının iletiminde kullanılırlar.

e) Piezoelectrik Film Sensörleri: Piezoelectrik film çok kullanışlı ve ucuz bir sensör materyalidir. Bu tip sensörler titreşim, uygulanan güç, sıcaklık, radyasyon değişimlerini algılamada kullanılırlar. Bu sensörler algılamaları istenilen değişkenin durumuna göre bir voltaj üretirler ve kontrol mekanizmasına bilgi sağlarlar.

Aktif Sensörler

Bu tip sensörler bir emitter (yollayıcı) ve bir dedektör (alıcı)’den oluşurlar. Bu iki elemanın birbiriyle ilişkisine bağlı olarak iki farklı türü vardır:

a) Reflektans Sensörleri : Emitter ve dedektör birbirlerinden bir bariyer ile ayrılmıştır. Objeler emitterden çıkan ışığı dedektöre yansıtınca algılanırlar. Break-Beam Sensörleri: Emitter ve dedektör birbirlerine yüzyüze bulunurlar. Objeler emitterden dedektöre yollanan ışığı kestiklerinde algılanırlar. Filmlerde elmasları korumak için kullanılan sensörler bunlara örnektir.

Optosensörler: Emitör genelde bir light-emitting diode (LED)’tur. Dedektör ise fotodiyot ya da fototransistördür. Fototransistörler fotoresistörlerden daha fazla duyarlılık sağlarlar. Fotodiyotlar oldukça geniş bir ışık yelpazesi için lineer sinyaller üretirler ve en ufak bir değişimi bile anında iletirler.

Optosensörler, resistif fotosellerle aynı teknolojiyi kullanmazlar. Resistif fotoseller basittir fakat yavaştırlar. Fotodiyotlar ve fototransistörler çok daha hızlıdırlar. Fototransistörlerin ve fotodiyotların kullanım yerlerine örnek olarak nesne varlığı algılama, nesne uzaklığı algılama, yüzey tipi algılama, sınır izleme, dönüş sayısı belirleme ve barkod teknolojileri sayılabilir.

Işık yansımasi renge bağımlıdır. Parlak bir yüzey ışığı karanlık bir yüzeyden daha iyi yansıtır. Siyah bir yüzey üzerine gelen bir ışığı çok az yansıtır. Bu yüzden karanlık bir objeyi belirlemek parlak bir objeyi belirlemekten çok daha zordur. Objelerin mesafelerini ölçmede bu özellikten dolayı parlak objeler daha uzakta olsalar bile karanlık objelerden daha yakında algılanacaklardır. Bu olay bize kullanışlı araçlar kullanıldığında bile fiziksel dünyanın sadece bir parçasının algılanabileceğini göstermektedir.

Algılamadaki bir başka problem kaynağı da çevredeki ışıktır. Yani algılanmak istenen nesne hariç çevresinden yansıyan ışıktır. Bu problemi çözmenin en iyi yolu sensörün okuduğu değerden çevreden gelen ışığı çıkarmaktır. Bu emitör açıkken ve kapalı iken iki farklı okuma yapılıp birbirinden çıkartılarak yapılır. Emitör kapalı iken yapılan okuma çevreden gelen ışığı ölçecektir. Bu işleme sensör kalibresi denmektedir. Çevredeki ışık miktarı sürekli değişebileceğinden bu kalibrasyon işlemi de sürekli tekrarlanmalıdır.

Sensörlerle Dönüş Belirleme Metodu: Dönüş belirleyen sensörlerden olan speedometer bir aracın tekerleklerinin ne kadar hızlı olduğunu ölçer. Odometer ise tekerleklerin kaç kez döndüğünü ölçer.

Dönüşü belirleyebilmek için bir dönebilen parça monte edilir. Bir mil üzerine bir disk monte edilir ve diskin diş kenarlarına küçük çentikler atılır. Bir emitör ve dedektör diskin farklı taraflarına konur. Emitörden ışık sürekli olarak gönderilir. Emitörden çıkan ışık diskin sadece çentikli bölgesinden geçip dedektör tarafından okunur. Okuma sayıları tutularak hız ve çevrim ölçümleri yapılır.

Dönüş belirlemede bir başka yöntem de diski bir siyah, bir parlak boyamaktır. Karanlık bölgeler ışığı yansıtmayacak, parlak olanlar ise yansıtacaktır. Bu yöntemde emitör ve dedektör diskin aynı tarafında yer almaktadırlar.

Dönüş ölçen sensörlerde dedektörün ürettiği şey işin miktarına bağlı olarak değişen bir dalga fonksiyonudur. Dalgaların tepe sayıları sayılarak kaç dönüş yapıldığı ve hız belirlenir.

Hareket Yönü Belirleme Metodu: Sadece hareketin hızının ölçümünün yeterli olmadığı durumlarda vardır (örn: bilgisayar fareleri). Yönü belirlemek içinse birbirine 90 derecelik pozisyonda bulunan iki sensör kullanılır. Yönü belirmede bu iki sensörün detektöründen gelen bilgiler karşılaştırmalı olarak kullanılır. Sadece birinde değişim olmuşsa o yöne gidildiğine karar verilir. İki dedektörde de değişim varsa ikisinin arasında bir yöne dönüş sayısı fazla olana yakın bir yöne gidildiği anlaşılır. Bilgisayar fareleri de bu metotla veri toplamaktadırlar. Bu metot yönün önemli olduğu tüm mekanizmalarda kullanılmaktadır.

Infra Red (IR) Sensörler: Frekans spektrumunun kızıl tarafında işlem gören bir tür ışık sensörlerdir. Aktif sensörlerdir. Emitörleri ve dedektörleri vardır. Dedektörleri görünmez bölgedeki 880 nanometre dalga boyu civarındaki ışıklara duyarlıdır. Diğer ışık sensörleri gibi break beams veya reflektans prensibine göre çalışırlar.

İnfrared sensörler çevresel ışıktan diğer ışıklara göre çok daha az etkilendiğinden kalibrasyonları çok daha başarılı ve güvenilirdir. Ayrıca IR iletişimi de yapılmaktadır. Modulated infra red bilgileri seri bir hat üzerindeymişçesine haberleşme için kullanılmaktadır.

Yakınlık Ölçen Sensörler: Adından da anlaşılacağı gibi yakında bulunan nesnelerin algılanmasında kullanılırlar. Yakınlık sensörlerinin kullanılabilmesi için aşağıdaki özelliklerden birinin sağlanması gerekmektedir.

  • 1 Nesnenin doğası gereği sinyal göndermesi ( Ör: radyoaktif maddeler )
  • 2 Nesneye bir verici yerleştirilmesi
  • 3 Nesneye bir sinyalin gönderilip nesneden yansıyan sinyalin alınması

Ultrasonic Mesafe Algılama

Ultrasonic seslerle mesafe algılama uçuş zamanı prensibine dayanmaktadır. Emitör bir ses sinyali üretir. Sinyal havada ilerler, bir yere çarpar ve dedektöre geri döner. İşte emitörün üretiminde başlayan zaman ölçer dedektöre girişinde durur ve aradaki zaman farkı ve sesin havadaki hızı bize sinyalin çarptığı nesnenin sensöre uzaklığını verir.

Bu metot doğanın modellenmesidir. Yarasaların görme yerine bu çeşit bir metotla çevrelerini algıladıkları anlaşıldıktan sonra yapay olarak insan tarafından oluşturulmuştur. Yarasaların sistemi insanların kurduğu sistemden çok daha fazla gelişmiştir. Yarasalar çok hızlı bir yaratığı sistemleri sayesinde fark ederler. Ayrıca yüzlerce yarasanın bulunduğu bir ortamda bile ki bu yüzlerce sinyal anlamına gelir her yarasa yönünü bulur ve avını takip eder.

Mesafe algılamadaki bu yöntemde açının büyük önemi vardır. Sinyalin çarptığı yüzeyle olan açısı yansıyan sinyalin dedektöre gidip gidemeyeceğini belirler. Yüzeyle sinyal arasında 90 derecelik bir açı varsa sonuç mükemmeldir. Açının daha küçük olduğu durumlarda ise dedektörün çapı büyütülerek sinyaller alınmaya çalışılır. Gündelik hayatta kullanılan ultrasonic sensörler hırsız alarmlarında, mesafe ölçümlerinde kullanılmaktadırlar.

Robot görmesi (robot vision): Robot görmesinde kameralar sensörler gibi kullanılırlar. Kameralar biyolojik gözün modelleridir ve tabi ki biyolojik olanlardan çok daha basit ve ilkeldirler.

Biyolojik görme sistemlerinde çevreden gelen ışık iristen içeriye girer, retina üzerindeki ışığa duyarlı elemanları uyarır. Bu elemanlar da bağlı bulundukları sinirleri uyarır. Beyne giden birçok görme sinyali beyinde işlenir. Kameralarda ise beyindeki ışığa duyarlı elemanların yerini fotoğraf filmleri veya ccd kameralarda kullanılan silikon devreler almıştır.

Resmin elde edilmesinden sonra sıra resimden bilgi edinilmesindedir. Bu işlemler esnasında görüntü işleme teknikleri (yazılımları) kullanılmaktadır. Hangi tekniklerin kullanılacağı ise sistemin amacına bağlıdır.

JAL (Just Another Language)

JAL (Just Another Language)

PIC’ lere istenilen işlevleri yaptırabilmek için uygun programın herhangi bir editör de yazılıp makine diline çevrildikten sonra programlayıcı vasıtasıyla PIC’e yüklenmesi gerekir. Programlar genellikle assembler dilinde yazılır. Ancak assembler dilinin karmaşıklığı ve hata ayıklamada karşılaşılacak güçlüklerden dolayı diğer derleyiciler tercih edilmektedir. Bu projede JAL (Just Another Language) programlama dili kullanılmıştır. JAL’in son sürümü (04-22) 01.05.2001 itibariyle 16F84 ve 16F877‘yi desteklemektedir.

Projede Kullanılan JAL Komutları

Port Tanımlama İşlemleri

Port_b_direction = all_output -----PortB’nin tüm uçları çıkış yapılır.
Port_a_direction = all_input -------PortA’nın tüm uçları giriş yapılır.
Pin_b0_direction = output ---------PortB’nin 0.biti çıkış yapılır.
Pin_a5_direction = in     ---------PortA’nın 5.biti giriş yapılır.

For : Döngü komutudur. İşlemin istenilen sayıda tekrar edilmesi için kullanılmaktadır.

ÖRNEK:

for 20 loop
pos4 = 100
pos7 = 90
puls
delay_1ms(15)
end loop

Forever: Sonsuz döngü oluşturmak için kullanılmaktadır.

ÖRNEK:

forever loop
for 20 loop
pos4 = 100
pos7 = 90
puls
delay_1ms(15)
end loop
end loop

Assembler: Programın içerisinde Assembler komutları kullanılacaksa bu komut kullanılır.

ÖRNEK1: Eğer bir satır Assembler komutu kullanılacaksa;

asm clrwdt

ÖRNEK2: Eğer Assembler bloğu kullanılacaksa;

assembler
local loop, done
clrf   n
loop:
btfsc x,0
goto done
incfsz n,f
rrf  x
goto loop
done:
end assembler

if : Karşılaştırma işlemlerinde kullanılır.

ÖRNEK :

if x = = 1 then
thepin =1
else
thepin = 0
end if
PROCEDURELER

Parametresiz Procedure

ÖRNEK:

procedure puls is
pulsout(1,pos1)
return
end procedure

Parametreli Procedure

ÖRNEK1: Ana programdan değer alan procedure

procedure yuruyen (byte in gecikme) is
			While pin_b7! = high
				Delay_1ms(gecikme)
				port_b = port_b >> 1
			end loop
		end procedure

ÖRNEK2: Ana programa değer gönderen procedure

procedure zero (byte out x) is begin
x = 0
end procedure

Fonksiyonlar

ÖRNEK:

function reverse (byte in x) return byte is
for 8 loop
Delay_1ms(x)
end loop
end function

Renk algılayan robot kol tasarımı

Mekanik: Projemizin mekaniğinde flexiglass malzemesi kullanılmıştır. Bu malzemenin seçilmesinin sebebi kolay işlenebilir olması ve dayanıklılığının fazla olmasıdır. Aşağıda robotun bir resmi ve kullanılan flexiglass parçaların şekilleri ölçüleriyle birlikte verilmiştir.

Robot; Flexiglass parçaların gösterimi

Robot Flexiglass parçaların gösterimi

Parça 1; Robotun üzerine sabitlendiği ve kontrol devresinin yerleştirildiği parçadır.

robot sabitleme

Parça 2; 1 nolu motorun sabitlendiği parçadır.

robotun sabitlenmesi

Parça 3; 1 nolu motorun hareket ettirdiği, 2 ve 3 nolu motorların üzerinde bulunduğu, sağ – sol hareketini yapan parçadır.

robot hareket

Parça 4; Robota ileri geri hareketini yaptıran, 2 ve 3 nolu motorlara sabitlenmiş parçalardır.

robot harekati

Parça 5; Robotun dirsek kısmında bulunan motorun hareket ettirdiği ve aşağı – yukarı hareketinin yapılmasını sağlayan parçalardır.

robot mekanik

Parça 6; Tutma mekanizmasının üzerine oturduğu parça

tutma mekanizması robot

Parça 7; Tutma mekanizması

tutma mekanizması

Ayrıca robotun tüm mekaniğinde toplam 43 adet vida kullanılmıştır. Bu vidaların ayrıntılı özellikleri aşağıda verilmiştir.

  • – 2 adet yıldız tornavida kanallı kesik konik silindir başlı M2,5 vida
  • – 10 adet yıldız tornavida kanallı kesik konik silindir başlı M2 vida
  • – 7 adet düz tornavida kanallı kesik konik silindir başlı M4 vida
  • – 24 adet düz tornavida kanallı kesik konik silindir başlı M3 vida

Kontrol Devresi

Kontrol devresinin girişine topların geldiği yerde bulunan 3 adet TSLX257 sensörlerin çıkışı bağlanmıştır. Bu çıkışlar analog dijital çeviricinin (LM324) karşılaştırıcı giriş uçlarında artı (+) uçlarına bağlanmıştır (3,5,10 nolu uçlar). Eksi (-) uçlarına ise sensörlerin çalıştığı ortama göre ayarlanması gereken referans gerilimi verilmiştir. (Projemizde kullandığımız referans gerilimi 2,5V’tur.) Karşılaştırıcı op-ampların çıkışları olan 1,7 ve 8 nolu uçlar sırasıyla PIC’in 18 (RA1), 17 (RA0) ve 1 (RA2) uçlarına bağlanmıştır. 16F84’ün 9 (RB3), 10 (RB4), 11 (RB5), 12 (RB6) ve 13 (RB7) nolu çıkış uçları sırasıyla 1,2,3,4 ve 5 nolu servo motorların data uçlarına bağlanmıştır.

Kontrol devresinin blok şeması

Kontrol devresinin blok şeması

Devre Şeması

robot devresi

Yazılım

Robot Kol projemizde PIC16F84 mikro denetleyicisini programlayabilmek için JAL ( Just Another Language ) programlama dili kullanılmıştır. Bu dil yüksek seviyeli bir dil olup assembler diline göre daha kolay bir program diline sahiptir. Bu bölümde robot kol programının temel mantığı ve kullanılan prosedurlerin açıklaması yer almaktadır. Kullanılan JAL versiyonu 0.4.59.win32 dir.

Ana Program :

include 16f84_4
include jlib
include pulsout_4
include proje_4

port_a_direction = all_input
port_b_direction = all_output

port_a = 0
port_b = 0

forever loop

if ( pin_a0 == low ) & ( pin_a1 == high ) & ( pin_a2 == low ) then
 git
 kirmizi
elsif ( pin_a0 == high ) & ( pin_a1 == low ) & ( pin_a2 == low ) then
 git
 mavi
elsif ( pin_a0 == high ) & ( pin_a1 == low ) & ( pin_a2 == high ) then
 git
 yesil
else
ilkkonum
end if

end loop

Kullanılan Prosedürler:

Proje_4 Uniti:

include 16f84_4
include jlib
include pulsout_4
port_b_direction = all_output

var byte pos4,pos5,pos6,pos7,pos8

procedure puls is
pulsout(4 ,pos4 )
pulsout(5 ,pos5 )
pulsout(6 ,pos6 )
pulsout(7 ,pos7 )
pulsout(8 ,pos8 )
return
end procedure

procedure git is
for 30 loop
pos4 = 90
pos5 = 94
pos6 = 94
pos7 = 94
pos8 = 58
puls
delay_1ms(15)
end loop

for 30 loop
puls
delay_1ms(15)
end loop

for 30 loop
pos4 = 119
puls
delay_1ms(15)
end loop

for 30 loop
puls
delay_1ms(15)
end loop

for 30 loop
pos7 = 103
puls
delay_1ms(15)
end loop

for 30 loop
puls
delay_1ms(15)
end loop

for 30 loop
pos8 = 72
puls
delay_1ms(15)
end loop

for 30 loop
puls
delay_1ms(15)
end loop

for 30 loop
pos5 = 105
pos6 = 105
puls
delay_1ms(15)
end loop

for 30 loop
puls
delay_1ms(15)
end loop
end procedure

procedure mavi is

for 30 loop
pos4 = 90
puls
delay_1ms(15)
end loop

for 30 loop
puls
delay_1ms(15)
end loop

for 30 loop
pos5 = 75
pos6 = 75
pos7 = 75
puls
delay_1ms(15)
end loop

for 30 loop
puls
delay_1ms(15)
end loop

for 30 loop
pos8 = 58
puls
delay_1ms(15)
end loop

for 30 loop
puls
delay_1ms(15)
end loop

end procedure

procedure yesil is

for 30 loop
pos4 = 63
puls

delay_1ms(15)
end loop

for 30 loop
puls
delay_1ms(15)
end loop

for 30 loop
pos5 = 78
pos6 = 78
pos7 = 90
puls
delay_1ms(15)
end loop

for 30 loop
puls
delay_1ms(15)
end loop

for 30 loop
pos8 = 58
puls
delay_1ms(15)
end loop

for 30 loop
puls
delay_1ms(15)
end loop

end procedure

procedure kirmizi is

for 30 loop
pos4 = 77
puls
delay_1ms(15)
end loop

for 30 loop
puls
delay_1ms(15)
end loop

for 30 loop
pos5 = 80
pos6 = 80
pos7 = 90
puls
delay_1ms(15)
end loop

for 30 loop
puls
delay_1ms(15)
end loop

for 30 loop
pos8 = 58
puls
delay_1ms(15)
end loop

for 30 loop
puls
delay_1ms(15)
end loop

end procedure

procedure ilkkonum is
for 30 loop
pos4 = 90
pos5 = 120
pos6 = 120
pos7 = 110
pos8 = 58
puls
delay_1ms(15)
end loop
end procedure

Robotun Çalışması

Robotun herhangi bir cisim algılamadığı andaki konumu

Robot herhangi bir cisim algılamadığı zaman mikrodenetleyici içerisindeki yazılımda bulunan “ilk konum” prosedürü çalışır ve yukarıda görülen şekildeki konumda bekler. Bu prosedürün içerisindeki açı değerleri değiştirilerek istenilen konumlarda beklemesi sağlanabilmektedir.

Robotun algıladığı cismi tutması

Bir cisim algılandıktan sonra “git” prosedürü devreye girer ve şekildeki gibi cisim tutulur. Sensörlerden gelen sinyale göre cismin rengine göre “yesil”, “mavi” veya “kirmizi” prosedürlerinden biri çalışarak aşağıdaki şekilde görüldüğü gibi cisim rengine ait kutuya bırakılır.

Cismin rengine ait kutuya bırakılması

Sensörün çalışma prensibi

Sensörler üzerine düşen renkli ışığın şiddetine göre 0 ile 5 V arasında bir voltaj üretmektedir. Bu çalışmada, sensörleri tetikleyebilmek için cismin altına sensörlerin göremeyeceği şekilde beyaz bir ışık kaynağı yerleştirilmiştir. Bu ışık kaynağının üzerine gelen cismin renginin yeşil olduğu farzedilirse, cisimden yansıyan ışığın rengi yeşil olacaktır. Böylece yeşil sensör diğer sensörlere göre daha fazla çıkış voltajı verecektir. Bu da yeşil renginin ayırt edilmesini sağlamaktadır.

CİSİMLER

SENSÖRLER

Kırmızı Sensör

Yeşil Sensör

Mavi Sensör

Kırmızı Cisim

4,51

1,47

1,95

Yeşil Cisim

0,93

4,20

1,31

Mavi Cisim

1,65

0,82

3,98

7.Sonuç ve Değerlendirme

Yukarıda özellikleri anlatılan robot kol sabit bir konumdaki cisimleri tutma mekanizması ve renk sensörleri yardımıyla cisimleri rengine göre sınıflamaktadır. Robot en fazla 4 cm çapındaki cisimleri tutabilmekte ve 250 gr ağırlığındaki cisimleri kaldırabilmektedir

Kullanılan sensörler, üzerlerine düşen ışığın şiddetine göre çıkış verdikleri için robotun bulunduğu ortamın ışığı renklerin ayırt edilmesinde problem yaratmaktadır. Bunu önlemek için sensörlerin gün ışığından iyi bir şekilde yalıtılması gerekmektedir. Programlanabilir renk sensörleri kullanılmış ve robot kola bir bilek eklenmiş olsaydı çalışma kararlılığı ve hareket kabiliyeti daha yüksek olurdu.

Kaynaklar
1. http://www.robotics.com/trilobot/index.html
2. http://www.geocities.com/CapeCanaveral/Station/2981/index.html
3. http://www.frc.ri.cmu.edu/robotics-faq/TOC.html
4. http://labweb.mech.nwu.edu/mechatronics/design_ref/actuators/Theory on DC
motors.html
5. http://labweb.mech.nwu.edu/mechatronics/actuators/servo_motor_modify.html
6. Robot Institute of America, 1979
7. Antrak El Kitabı, 1996
8. Antrak Gazetesi, www.antrak.org.tr/gazete
9. MPASM and MPLINK User Guide, Microchip Technology Inc. 2003
10. PIC16F877 Micro Controller Data Book, Microchip Technology Inc. 2003
11. Otomatik Kontrol Sistemleri, Benjamin C.Kuo
12. http://www. Lynxmotion.com
13. http://www.Taosinc.com

Yayım tarihi: 2008/04/19 Etiketler: , , , , , , , , , ,



6 Yorum “PIC16F84 Renk Algılayan Robot Kol Projesi Jal ile

  1. kzmkzm

    Gerçekten çok harika bir çalışma emeği geçenlerin ellerine sağlık.Üniversitede bitirme ödevinde bilgi olarak kullanabileceği güzel bir şey.Çok teşekkürler.

    CEVAPLA
  2. onuronur

    Abi çok süper bir şey bana bunun tam detaylı çizimi ve mazemelerini, baskı devresini gerekli olan şeyleri versen rica etsem ben meslek lisesi öğrencisiyim hocamız çok özlü bir çalışma istedi yardım edresen çok minettar kalacağım emeğin için çok teşekür ederim iyi çalışmalar saygılarımla.

    CEVAPLA
  3. mehmetmehmet

    gercekten elinize sağlık.bende böyle bir çalışma yapıyorum. renk algılatma islemini yaptım ama robotun mekanik kısmında takıldım .eğer yardımcı olursanız sevinirim..

    CEVAPLA
  4. onur ÇİÇEKonur ÇİÇEK

    Arkadaşlar biz lisedeyken daha güzelini yapmıştık pnomatik olarak hemde ödüllüydü türkiyeden avrupaya gidecek 5 projeden birisiydi öteki dört projede üniversite projesiydi zaten şimdi üniversitedeyim böyle bişeyleri tekrar farklı bir yoldan yapmayı düşünüyom ilham verdiniz teşekkür ederim.

    CEVAPLA
  5. aksusafakaksusafak

    Emeğinize sağlık. Bu devreyi proje olarak yapacağız da acaba malzeme listesini tam olarak nasıl temin edebiliriz…

    CEVAPLA
  6. fatih kançukfatih kançuk

    merhabalar. bu robot kol projesini yaptık fakat hex oluşturamadık. yardımcı olursanız sevinirim

    CEVAPLA

mehmet için bir yanıt yazın Yanıtı iptal et

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir