Genel robot yapımı

advertisement
1. Tasarım
Başarılı bir tasarım; talep edileni, en düşük maliyetle tam olarak sağlamalıdır. Tasarım
sürecinin en kritik taraflarından biri “sorun”u iyi tanımlamaktır. Çünkü hesap kitap
yapılacaksa bu sorun tanımı üzerinden yapılır.
Diyelim ki bir “sumo robot” yapıyorum. Talep edilen nedir?
Rakibi mümkün olan en kısa surede dohyo dışına atmak.
Neye ihtiyacım var?
Bir robot, temel olarak 3 bölümden oluşur:
Algılayıcılar, Kontrol Elemanları ve Hareket elemanları.
Uygun bir Kontrol elemanı... Ama neye uygun?.. Demek ki seçime işlemciden
başlamayacakmışız...
1.1.
Algılayıcılar
Nasıl bir algılayıcıya ihtiyacım olduğunu öğrenmek için literatür taraması yapabilirim.
Ama buradan çıkacak sonuç benim işime yaramayabilir. Çünkü literatürde bulabileceğim her
şey elimin altında olmayabilir. Bu yüzden “elimizde ne var?”, “neleri piyasadan (ya da çok
gerekirse yurt dışından) alabiliriz?” sorularının cevaplarını az çok biliyor olmamız gerekir. Bu
da toplulukta zaman geçirip eskilerle sohbet ederek olur.
1.1.1. Mesafe Algılayıcılar
Rakibi mümkün olan en kısa sürede dışarı atabilmek için önce “rakibi bulmak” gerekir.
Bu iş için kullanılabilecek pek çok sensör vardır. Bunlardan en çok kullandıklarımız;
ortamlarda “Sharp” tabir edilen kızıl ötesi alıcı - verici ikilisinden oluşan mesafe
algılayıcılarıdır. Bunların örneklerinden biri “GP2Y0A02YK (Bkz. www.google.com.tr )”dir.
20 – 150 cm arasında mesafe ölçen bu ürünün 3 tane kablosu vardır: +5V , toprak ve “analog”
sinyal çıkışı.
Burada önemli bir kelime kullandık. “Analog” algılayıcılar verecekleri bilgiyi voltaj
büyüklüğü olarak verirler. Oysa bizim işlemcilerimiz dijital olarak çalışır. Yani algılayıcı
mesela 2.5 V çıkış veriyorsa karşısında 20cm uzakta bir şeyler olduğunu anlatmaya
çalışıyordur. 1 V çıkış veriyorsa 65 cm uzakta bir şey olduğunu anlatmaya çalışıyordur. Bu
bilgiyi işlemcinin anlaması için “Analog – Dijital Çevrim (ADC)” özelliği bulunmalıdır.
İşlemcimizi nasıl seçeceğimize dair ipuçları vermeye başladık…
Başka bir “Sharp” örneği ise “GP2D02”dir. Bu algılayıcı ile ilgili ayrıntılı bilgi Robot
Topluluğu Dokümanları arasında yer almaktadır. Bu sensör 10 – 80 cm arasını ölçebildiğini
iddia etmektedir =) Bu algılayıcının 4 çıkışı vardır ve 2 sinyal bacağı aracılığıyla “senkronize
haberleşme” yapar. Bu yüzden bu algılayıcıyı kullanmak için ADC özelliği olan bir işlemciye
gerek yoktur. Şahsi görüşüm bu algılayıcının Sumo yapmak için uygun olmadığı yönündedir.
Çünkü 80cm’e kadar mesafe ölçebildiğini iddia eden bu zımbırtı 40 – 50 cm’den sonra
saçmalamaktadır. Bu mesafe de sumo dohyosu için yetersizdir.
Başka bir algılayıcı türü ise “ultrasonik algılayıcı”dır. Duyulabilir frekanslardan daha
yüksek frekanslı (mesela 40 kHz) ses dalgaları yayıp bu dalganın geri döndüğü süreyi ölçen
bu algılayıcılar, kızılötesi mesafe algılayıcılardan farklı olarak, daha geniş bir açıyı tarar. Bu
özelliğin bir avantaj mı dezavantaj mı olduğu tartışılabilir. Fiyatları (kendiniz yapsanız bile)
Sharplara yakındır.
1.1.2. Renk Algılayıcılar
Renk algılamak pek çok farklı proje için gerekli olabilir. Ama bu yazı “sumo” üstünden
gittiği için siyah-beyaz algılama üzerine yoğunlaşacağım. Aslında bildiğim bin bir çeşit
yöntem de yok zaten. Topluluk olarak “neredeyse” her zaman CNY 70 kullanıyoruz. CNY 70
bir kızılötesi LED ve bir kızılötesi algılayıcıdan oluşan bir eleman. Bu aleti nasıl
kullanabileceğimize ilişkin doküman zaten topluluk sitesinde yer alıyor.
CNY 70’lerimizi, sumomuz pistte gezerken kendi kendine aşağı atlamasın diye pistin
sonundaki beyaz çizgiyi algılayıp geri kaçmasını sağlamak amacıyla kullanıyoruz. Aslında iyi
programlanmış ve sorunsuz çalışan bir sumo zaten kendi kendine gidip dışarı atlamaz. Hele
geri geri hiç atlamaz. Ama ne olur ne olmaz diye en azından önlere bu sensörleri
yerleştirmekte fayda var. Ben kendi adıma hiçbir zaman arkaya CNY 70 takmadım. Çünkü
delikanlı sumo geri geri gitmez zaten =) Bu konunun ayrıntısına sonra gireceğim, ancak bir
şekilde sumonuz beyaz çizgiye paralel kalırsa çizgiyi görüp geri kaçarken aşağı düşebilir. Bu
noktada beni arayıp “hani düşmüyordu bizimki düştü” falan demeyin, bizimkilerden de düşen
oldu çünkü. Ama çok düşük bir ihtimaldi, Sharp da düzgün çalışmıyordu düştü. Roberto
Baggio da penaltı kaçırdı mesela dünya kupası finalinde… Bunlar olan şeyler…
Neyse konumuza dönelim. Renk algılama konusunda kullanılabilecek bir diğer eleman
da LDR (Light Dependent Resistor (ışığa duyarlı direnç) ) 1 LDR ve 1 LED kullanarak CNY
70 benzeri bir yapı oluşturarak ve etrafına CNY 70’inkine benzer bir devre kurarak siyah
beyaz algılayabilirsiniz. Hatta diğer renkleri de algılayabilirsiniz. Bununla ilgili ayrıntılı
doküman da yine Robot Topluluğu dokümanları arasında mevcut. (Mine Cüneyitoğlu’na
teşekkürler) Ama sumo için CNY 70 gibi bir nimet varken, bu tarz atraksiyonlara gerek yok
derim ben.
1.2.
Hareket Elemanları
1.2.1. DC Motorlar :
Rakibi bir şekilde bulduğumuzu varsayarak, bir sonraki adım olan “rakibi dışarı atmak”a
geçelim. Bunun için “güç”lü motorlara ihtiyacım var. Ama ne kadar güçlü? Ya da ihtiyacım
olan şey “güç” mü, başka bir şeyler mi?
İki robot kafa kafaya geldiğinde, tekerlek yerden aldığı “kuvvet”i karşı robota aktarır.
Yerden alabileceği en büyük kuvvet ise:
F = [Tekere binen robot ağırlığı] x [zemin-tekerlek arası sürtünme katsayısı] formülüyle
ifade edilebilir. Bu formülü hesap yapalım diye yazmadım. Buradan robotun ağırlığının
mümkün olduğunca fazla olması ve ağırlık merkezinin çekiş tekerlerine yakın konması
gerektiği ve tekerlerin mümkün olduğunca kaymaz malzemeden yapılması gerektiği sonucu
çıkar.
Motorun tekere uyguladığı “tork (moment diye de düşünebilirsiniz)” tekerlek
yarıçapıyla çarpılırsa motorun yere paralel (ileri doğru) uyguladığı kuvvet bulunur.
T = [F] x [r] (Nm (NewtonMetre))
T : Tekerlek Merkezindeki Açık Pembe Ok
F : Tekerin yere bastığı noktadaki Koyu Pembe Ok
Şekil – 1 - Örnek Sumo Robot Tasarımı
Teker yere F kuvvetini uyguladığından tepki olarak motor yatağında kırmızıyla gösterilen aynı büyüklükte bir kuvvet oluşur. Bu da
Robotumuzu ilerletecek olan kuvvettir. Motorumuz robotumuzu ivmelendirirken, kütle merkezimiz de hareketsizliğini korumaya çalışır. Ve kütle
merkezinde Yeşil okla gösterilen kuvvet meydana gelir. Şimdi kırmızı ve yeşil kuvvet çiftine dikkat edelim. Bu iki kuvvet robotumuz üzerinde
bir tork yaratır. Eğer Robotumuzun kütle merkezi teker ekseninden yüksekteyse, bu tork aracın burnunu havaya kaldırır, altındaysa yere bastırır.
Bu yüzden sumomuzun ağırlık merkezini kesinlikle teker ekseninin altında tutmalıyız.
Kullandığımız motorları iyi tanımamız gerekir. Yüklüyken (mesela bir ağırlık iterken), boştayken (araç havadayken) ve kilitliyken (tekerler
dönmüyorken) motorumuzun ne kadar akım çektiğini iyi bilmeliyiz. Özellikle kilitli motor testi, sumolar için çok önemlidir. Çünkü yarışmalarda
iki sumo kafa kafaya geldiği zaman, tekerleriniz yeterince iyi ise motorlarınız “kilitli rotor akımı”nı çekecektir. Bu değer çok yüksek olacağından
dikkatsiz bir tasarım pistte yanacaktır. Bu testleri akım kontrollü bir güç kaynağıyla ya da bir multimetre ile yapabiliriz.
Pistte çok hızlı bir araca sahip olmak her zaman avantaj olmayabilir. Çünkü çok hızlı bir
aracın kontrolü zor olur. Ayrıca bu araç, aynı güçte düşük hızlı bir araca göre düşük torklu
olacaktır ( P (Güç) = T (tork) x w (açısal hız) = V (voltaj) x I (akım) x Verim )
Bir sumo için 1m/s (3,6 Km/sa) gayet yüksek bir hızdır. Genelde motor seçerken çok
fazla alternatifimiz olmaz. Bu yüzden aracın hızını seçmek için teker çapını kullanabiliriz.
Daha küçük tekerlekli bir araç aynı motor devrinde daha yavaş ve daha yüksek itme kuvvetli
olacaktır. Ama elimizdeki motorun çıkışı mesela 36 RPM (Revolution per minute
(Devir/Dakika) ) gibi aşırı yavaş da olabilir. Teker çapımız 10 cm olsa (ki bu çok büyük bir
değer) , çevresi 10.π ~ 31.4cm olur, bu da dakikada 11,3 m / dk = 18 cm / sn eder. İyi bir
sumonun rakibini 5 10 saniye içinde dohyodan atabileceğini düşünürsek, bu süre içinde bizim
sumomuz, boş bir kutuyu bile kenara kadar taşıyamayacak kadar yavaş olmuş… Bu örneğe
bakarak ve başka hiç bir işlem yapmadan, uygun bir motorun 75 – 200 RPM arası olması
gerektiğini anlayabiliriz.
DC motorlarla ilgili dikkat edilmesi gereken bir önemli nokta da “indüktans”tır.
Indüktans, üzerinden gecen akım nedeniyle manyetik olarak enerji depolayan devre
elemanıdır. Motorlar yapıları gereği indüktans özelliği gösterir. Bir motordan akım akarken
motorda E = ½ I x L² kadar (L indüktansı simgeler) enerji depolanır.
Indüktans ayrıca üzerindeki akımın değişimine göre voltaj oluşturur. ( V = L x dI / dt )
Bu denklem bize şunu söylemeye çalışıyor: Eğer 1 Henri değerindeki bir indüktansın akımını
1 saniye içinde 1A dan 0 Aya doğrusal bir şekilde indirirsek, bu indüktansın üzerinde bir
saniye boyunca 1 volt kalır.
Motoru durdurmak istediğimizde üzerindeki elektriği keseriz. Bu işlem çok kısa bir
sürede gerçekleşir (Mikro saniyeler mertebesinde kısa bir süre) Yukarıdaki denkleme göre, 1
henri indüktanslı bir motordaki 1 amperi 1 mikro saniyede kesersek üzerinde 1 Milyon Volt
oluşur. Buradan 1 Henrinin çok büyük bir değer olduğunu anlayabiliriz =)
Ama yine de motorlarımız kapatılırken bir voltaj oluşturur. Bu voltaj, akü voltajıyla ters
kutupludur, ve bu olay akünün tepki veremeyeceği kadar hızlı olur. Bu da çok kısa bir süre
için devremizde “elektrik kesintisi”ne yol açar. Bu sırada kontrol elemanlarımız “reset” yer,
ve programımız baştan çalışmaya başlar. Tüm sumolar yarış başlamadan önce 5 saniye
beklemek zorunda olduğundan, her motor kapatışımızda 5 saniye bekleriz…
Peki bunu nasıl engelleriz?...
1.2.2. DC Motor Sürücüler :
Sumo robotlar üzerindeki motorlar kısa süreli olarak çok zor koşullar altında çalışırlar.
Mesela üzerlerinde tam voltaj varken durdurulabilirler. “Bunun nesi var ki?” diye
düşünebilirsiniz. Ancak bir DC motor için en tehlikeli durum “anma voltajında” (Rated
voltage: Mesela motorun üzerinde yazan voltaj) durdurulmaktır. Bu konunun ayrıntılarını
robot topluluğu dokümanları arasında bulabilirsiniz.
Anma voltajı uygulanırken durdurulan bir motor, yüksüzken çektiği akımın onlarca kat
fazlasını çekebilir. Bu akım motor sarımlarının dirençleri üzerinde ısıya dönüşür ve motoru
yakabilir. Ama doğru tasarlanmış bir sistemde her zaman için motor sürücü motordan önce
yanar. Çünkü motor sürücüler, motorlara kıyasla çok daha hassas aletlerdir.
Sumolarda “Diferansiyel Sürüş” (iki tekeri bağımsız olarak sürerek ilerleme ve yön
değiştirmenin aynı mekanizmayla yapılması) tekniği kullanıldığından, iki motorun da her iki
yönde sürülebilir olması gerekir.
1.2.2.1.
“ H ” Köprüsü ve Diyot Köprüsü:
ÖNEMLİ NOT:
Aşağıda verilen devre şemaları uygulanabilir şemalar değildir. Bu devre kolay
anlaşılabilir simülasyon sonuçları gözlemek amacıyla kurulmuştur.
H köprüsü bir motoru her iki yönde de sürmeye yarayan temel topolojilerden biridir.
Motor ( Q1 ve Q4 ) veya ( Q2 ve Q3 ) aynı anda açılarak sürülebilir. Q1 ve Q4 anahtarları
aynı anda açılırsa motordan “Sol” yönünde, Q2 ve Q3 anahtarları aynı anda açılırsa “Sağ”
yönünde bir akım akar.
( Q1 ve Q2 ) veya (Q3 ve Q4 ) anahtarları aynı anda açılırsa +12V ve “GND” ( 0V )
terminalleri kısa devre olacağından motor sürücümüz yanar.
Şekil – 2.A – Köprü Motor Sürücü
Şekil – 2.B – Motor “+” Yönde sürülürken
Şekilde görüldüğü üzere Q1 ve Q 4 transistörleri açıldığı zaman motorun üzerinde “+”
değerli bir voltaj kalır ve “sol” yönünde bir akım akar. Şekilde Oklar akım yönünü, kablo
renkleri ise sıcaktan soğuğa doğru yol üzerindeki voltajın yüksekliğini belirtir. Sol yönünde
akan akımın motorumuzu “+” yönde döndürdüğünü varsayalım.
Şekil – 2.C – Motor “+” Yönde Dönerken Transistörler Kapatıldığında
Transistörlerimizi kapattığımız zaman, motor üzerinden akan akımın azalması, motorun
üzerinde “-“ değerli bir voltaj kalmasına sebep olur. Kablo renkleri dikkatli incelenirse,
motorun + kutbunda kalan voltajın sıfırdan küçük bir değere sahip olduğu görülür. Bu voltaj
tam olarak -0.7V’tur. Çünkü diyotlarımız iletime geçmiştir, ve üzerlerinde 0.7V kalmaktadır.
Bu sayede motorun üzerinde biriken akım, Şekil 2.C’de oklarla gösterilen yol üzerinde
yavaşça tüketilir.
Bu negatif voltaj transistörlerin “Base” bacakları üzerinden devredeki anahtarlara ulaşır.
Gerçek bir sumoda transistörlerin yerinde motor sürücü entegremiz, bu anahtarların yerinde
ise mikrokontrolörümüz bulunur. -0,7V bu kontrolörlere zarar vermez.
Ancak diyotlarımız olmasaydı, bu negatif voltaj çok daha düşük değerlere ulaşabilir ve
devremize zarar verebilirdi. Devremiz zarar görmese bile, bu akım devremiz üzerindeki güç
kapasitörlerini boşalttığından mikrokontrolörümüz reset yerdi. Diyot köprümüz sayesinde bu
sorundan kurtulmuş olduk.
1.2.2.2.
L 293 D:
L293D, robot topluluğunda en çok kullanılan
entegrelerden biridir. 16 bacaklı bu entegre, içinde iki
adet H köprüsü ve bunlara bağlı hızlı diyot
köprülerini barındırır. Her iki motora 600mA
basabilen bu entegre, aynı zamanda akım korumalıdır.
DİKKAT : Bu koruma, robotunuzun talep ettiği
akımı almasını engelleyebilir. Bu özellikten haberi
olmayanlar biri, robotunda bir sorun olduğunu
düşünüp çok yenlış yerlerde sorun arayabilir.
Şekil – 3 – L293D
Entegrenin bağlantıları Şekil – 3’de görüldüğü gibi yapılır. EN1-2 bacağı sol kolondaki
sürücüyü, EN3-4Bacağı sağ kolondaki sürücüyü etkinleştirmek için kullanılır. Bu bacaklar
+5V’a bağlanmazsa bu kolonlar devre dışı kalır. “Motor Voltage” bacağına +5V’den daha
yüksek bir voltaj bağlanarak daha yüksek voltajlı motorlar sürülebilir. “Logical Voltage”
(PIN16) bacağına kontrolörümüze verdiğimiz voltajı vermeliyiz. Bu bacak bir referans
bacağıdır ve entegremizin kontrolörden gelecek voltajı bilmesini sağlar.
1.2.2.3.
L 293 B:
Bu entegre L293D ile aynı bacak dizilimine (PinOut) sahiptir. Her iki motora 1000mA’e
kadar akım aktarabilen bu entegre’nin akım koruması ve diyot köprüsü yoktur.
Mükemmel Bir Fikir:
Bir adet L293D (diyot köprüsünden faydalanmak için) ve ihtiyacınız kadar L293B’yi üst
üste koyup bacaklarını dikkatlice birbirine lehimleyerek daha yüksek akım değerli ve yine de
bir L293D kadar kolay kullanımı olan bir entegre yapabilirsiniz. Tabii ki bu yöntem,
entegrelerin ısınma sorununu arttıracaktır. Yine de işe yaradığı deneysel olarak ispatlanmıştır.
1.2.2.4.
L 298:
Temel olarak L293B ile aynı
özelliklere sahip olan bu entegre,
üzerinde metal bir soğutucu yuvası
bulundurduğundan; motor başına
2A akım sağlayabilir. Bu entegrede
diyot köprüsü bulunmadığından 8
adet diyottan oluşan iki adet
köprüyü
devrenize
eklemeniz
gerekmektedir.
1.2.2.5.
Röleler:
Röleler, mekanik bir anahtarı manyetik alan yardımıyla açıp kapatan devre
elemanlarıdır. Anahtarlar mekanik olduğundan röleler, entegrelere göre daha yüksek akımlar
taşıyabilirler. Rölelerin diğer bacaklardan uzak olan iki bacağı genellikle sarım(kontrol)
bacaklarıdır. Diğer bacakların sinyal varken ve yokken nasıl bağlı olduğunu multimetrenizin
“buzzer(short test)” özelliğini kullanarak bulabilirsiniz.
Çift yönlü röleler, sarım bacaklarına voltaj uygulandığında ortak bacağı, bir girişten
diğerine çeker. Voltaj kesildiğinde ortak bacak bağlantısı tekrar ilk konumuna döner.
İki adet çift yönlü röleyle bir motoru her iki yöne de sürebilirsiniz. Şekil 4’te görüldüğü
gibi, devrede herhangi bir sinyal yokken motorun her iki bacağı da GND (0V) bacağına
bağlıdır. Sinyal 1 bacağına voltaj uygulanırsa üst röle motorun üst bacağını +12V’a çeker. Bu
sinyal kesildiğinde motorun her iki bacağı tekrar GND (0V) bacağına bağlıdır. Sinyal 2
bacağına voltaj uygulanırsa motorun alt bacağı 12V bacağına bağlanır. Böylece motor her iki
yöne de sürülebilir.
Şekil – 4 – Röleli Motor Sürücü
Rölelerin kontrol bacakları, ciddi akımlar çekebilir. Bu yüzden her röle doğrudan
mikrokontrolöre bağlanmaz. Rölenizin bacağının çektiği akımı multimetre veya akım
kontrollü güç kaynağıyla ölçmelisiniz. Röleniz 5V’de 20mA’nın altında akım çekiyorsa
doğrudan mikrokontrolör bacağına bağlayabilirsiniz. Akım daha yüksekse rölelerinizi L293D
ile sürebilirsiniz.
2. Kontrol Elemanları:
Piyasada pek çok farklı marka ve modelde kontrol elemanı mevcuttur. Bu dökümanda,
Robot Topluluğunda en çok kullanılan kontrol elemanı olan PIC’den bahsedeceğim.
2.1.
PIC 16 F 628:
Piyasada kolayca bulunabilecek bir ürün olan 16F628, basit bir ürün olmasına rağmen
pek çok uygulama için fazlasıyla yeterlidir. Kendi 4 MHz kristal sinyalini oluşturabilen bu
PIC, programlanması sırasında “INT RC” modunda programlanırsa, çalışması için sadece
+5V (Vdd : Pin 14) ve GND (Vss : Pin 5) bağlantılarına ihtiyaç duyar.
Bu iki bacak dışındaki tüm bacaklar, PORTA ve PORTB adında iki değişkenin
bitleridir. PortA.5 hariç tüm port bacakları istenirse giriş istenirse çıkış olarak kullanılabilir.
PortA.5 sadece giriş olarak kullanılabilir.
PortB.0, aynı zamanda “Interrupt” bacağıdır. Bu bacak interrupt bacağı olarak atanırsa;
bu bacaktaki bilgi değişikliği, PIC’in çalıştırdığı programı bırakıp “Interrupt” alt programını
çalıştırıp, sonra kaldığı yerden kendi işine devam etmesini sağlar. Mesela uzun bir program
çalıştırırken, kaçırmak istemediğimiz kısa süreli bir sinyali saymak istersek bu özelliği
kullanabiliriz. Bu sinyali aldığımız zaman Interrupt Rutini çağırıldığından, bu rutindeki bir
değişkeni bir arttırıp sonra uzun programımıza dönebiliriz.
PortB.1 – 2 seri iletişim portlarıdır. Bu portlar aracılığıyla başka PIC’lerle veya bir
bilgisayarla haberleşebiliriz.
PortB.3 PWM çıkışıdır. Bu portu Motor sürücümüzün “Enable” girişlerine bağlayarak
motor hızımızı değiştirebiliriz.
PortA.5 PICin reset bacağıdır. Eğer PIC programlanırken “Master Clear Enabled” olarak
ayarlanırsa bu bacak +5V’a bağlı olmadığı sürece PIC çalışmaz. Ben bu özelliği gereksiz
gördüğümden, devrelerimde bu bacağı +5V’a çekmem. Programlarken de “Master Clear
Disabled (Reset Devredışı) ” olarak programlarım.
Bu PIC’le; CNY70, Digital Sharp gibi sensörleri okuyabilir, LCD sürebilir, motor
kontrol edebilirsiniz. Yani bir sumo için yeterli bir olabilecek bir kontrol elemanıdır. Ama
Analog Sharp okumak isterseniz ADC (Analog-Dijital Çevrim) özelliği olan bir PIC
kullanmalısınız.
2.2.
PIC 16 F 877:
PIC 16F877, 628’e göre daha karmaşık, daha yetenekli ve daha pahalı bir kontrol
elemanıdır.628’den farklı olarak ADC özelliği bulunan 877, 2 ayrı PWM bacağına, 5 portta
toplam 32 giriş-çıkış bacağına sahiptir. 628’in yetersiz kaldığı “kalabalık” uygulamalarda
tercih edilebilir.
877’nin MCLR (Pin:1) bacağı devre dışı bırakılamaz. Bu yüzden, bu bacak bir direnç ile
+5V’a çekilmelidir. Ayrıca 877’nin dahili osilatörü yoktur. Yani 13 ve 14 no’lu pinlerin
arasına bir Kristal konmalı ve bu iki bacaktan birer adet 22pF kapasitörle GND’a gidilerek
osilatör devresi kurulmalıdır. 877 20Mhz’e kadar kristal hızlarını desteklemektedir
877’nin A Port’u, ADC özelliğine sahiptir. Bu Port, programda ADC olarak
tanımlandıktan sonra, program çalıştığı sürece herhangi bir A portunun o anki voltajı
öğrenilebilir. Bu şekilde Analog Sharp ile mesafe ölçebiliriz.
877’nin Pin 16 ve Pin 17 bacakları (CCP1 ve CCP2) PWM çıkışı olarak kullanılabilir.
Bu bacakları motor sürücümüzün “Enable” Bacaklarına bağlayarak iki motorun hızlarını ayrı
ayrı kontrol edebiliriz.
PIC 16F628 ve PIC16F877’nin kullanılışı, devre ve program örnekleri Robot Topluluğu
dokümanları arasında bulunabilir.
3. Devre Basarken:
Bütün olay bakırda. Kullanacağımız bakırın yüzeyi ayna gibi tertemiz olmalı. Bunu
bakır plakamızı “mekanik ovma tozu (halk arasında vim olarak da bilinir)” ve bulaşık
süngeriyle (yoksa bir bez parçasıyla) ovalayarak sağlayabiliriz. “Bu oldu mu acaba” diye
düşünmeyin, olduğu zaman bilirsiniz. Tamamen homojen renkli, çiziksiz bir yüzeye bakıyor
olmanız gerekir.
Kuşe kağıda (okuduğunuz bilim teknik sayfaları güzel olabilir), tasarladığımız devrenin
lazer yazıcıyla çıktısını alın. Kağıdı keseceğinizden aynı kağıda tekrar çıktı alamazsınız, bu
yüzden aynı kağıda mümkün olduğunca fazla devre şeması sıkıştırın. Böylece hem yedeğiniz
olur, hem de belki arkadaşlarınız da sebeplenir.
Devrenizi kağıttan güzelce kesin. Devrenizin bir köşesi bakır plakanın bir kösesine
gelecek şekilde kağıdı koyun ve elinizle tutarak sıcak ütüyü kağıdın bir köşesine üç dört
parmaklık alan kapatacak şekilde yerleştirin. Birkaç dakika bekleyin. Lazer yazıcı çıktısı
bakıra yapışacaktır (yapışmadıysa zaten bu iş olmamıştır) Kağıdı devrenin üzerinde güzelce
ütüleyin. Ütünüz kağıdın üzerinde rahatça kaymıyorsa araya bir bez veya kağıt parçası
koyabilirsiniz. Ütüleme olayına başladıktan sonra kağıdı kaldırıp “oluyor mu?” diye
bakmayın. Olmuyorsa zaten olmuyordur. Oluyorsa onu da bozmuş olursunuz. Kağıdın
tamamını iyice bastırarak 10 15 dakika ütüleyin.
Ütünün tabanını bozmamak için elektrik bandı, silikon gibi malzemelerle temas
etmesine izin vermeyin. Ütünün tabanı bir kere bozulursa kolay kolay düzelmez.
Ütüleme işlemi bittikten sonra bakır plakanızı derince bir tabakta suyun içinde
beklemeye bırakın. Kağıt 10 15 dakika içinde yumuşayacaktır. Kağıdı yavaş yavaş ufalayarak
(tek parça halinde kaldırmadan) bakır levhayı temizleyin.
Bu noktada elinizde kaymak gibi basılı bir devre olmasını bekliyoruz. Yollar simsiyah
olmalı, bakırın üzerindeki lazer mürekkebinin kalınlığını elinizle hissedebiliyor olmalısınız.
Bir kalınlığı olmayan siyah “lekeler” bir işinize yaramaz. Oralardan bakır çözünecektir.
Olmadıysa ziyanı yok, zamanla olur. Bakırınız da ziyan olmuş sayılmaz. Bakırı, Ovma tozu
ve süngerle temizleyip tekrar ütüleyebilirsiniz.
Devrenizde küçük hatalar varsa asetat kalemiyle bu yerlerden geçebilirsiniz. Tuz ruhuperhidrol karışımı asetat mürekkebini çıkartır. Bu yüzden küçük hatalar dışında tuz ruhu
kullanırken asetat kalemi işe yaramaz. Ama Demir III Klorür kullanıyorsanız bütün devreyi
bile kalemle çizseniz olur.
3.1.
Demir III Klorür (Fe III Cl)
(Ortalama 1 saat/Devre):
Devre elemanları satan pek çok yerde bulabileceğiniz bu ürün, görüntü itibariyle sarı
şekerli leblebiye benzer. Çocukların ve yurtta oda arkadaşlarınız ulaşamayacağı yerlerde
saklayın. Benim FeIIICl’lerim şeker kavanozu görünümlü bir kavanozun içinde dolabımın
üstünde dururdu. Günlerden bir gün oda arkadaşım, suratında buruk bir ifade ve elinde
FeIIICl kavanozuyla “BU NE LAN!” dediği saatte artık bu önlemler için çok geçti.
FeIIICl’nin Dil ile temasında dil yemyeşil olur (yaşanmış hikaye). Doktorunuza başvurunuz.
Neyse, bu malzemeyi hafif ılık suya dökersiniz. Bakırınız yavaş yavaş çözülür.
Yeterince çok koymazsanız, çözünme durur, ama zaten çok yavaş olduğu için fark
edemeyebilirsiniz. Çok uzun zaman alır.
3.2.
Tuz Ruhu ( HCl ) + Perhidrol (Oksijenli Su) (Ortalama 2 dakika/Devre):
Bu ürünlerin ikisi de arıza ürünlerdir. Tuz Ruhu gaz halde bile kumaşların kum gibi
dağılmasına neden olabilir. (Örn: çamaşır suyu – Ayşe Teyze ikilisi.) Perhidrol ise aslen
oksijenli sudur ve eczanelerde % 6 yoğunlukta satılır. Ama biz % 50 yoğunlukta
kullandığımızdan bir garip bambaşka bir canavara dönüşür bu kimyasal. Elinize bir damlası
deyse eliniz bembeyaz olur. “aa.. beyazladı” deyip yıkamaya gidersiniz. Ama o beyazlık
kalıcıdır, yıkamayla çıkmaz. Döküldüğü yerde en ufak bir delik, tahriş, hassasiyet varsa bütün
gün acı içinde kaşınırsınız.
Neyse Tuz Ruhu – Perhidrol ikilisi 3’e 1 oranında karıştırılır. Su falan eklenmez.
Güzelce ütülenmiş baskı devremizi bu sıvıya bandırıp çıkarırız sadece. Devreyi sıvıdan almak
için pek kullanmadığınız bir cımbız veya makas veya kargaburun falan kullanabilirsiniz. Ama
bu urun o sıvıya girip çıktığından feci halde paslanacaktır.
Bu arada bakır çözünürken ciddi bir gaz çıkışı olacaktır Bu gaz zehirli bir gazdır.
“Dakkasına tık diye gidersiniz” gibi bir durum yoktur. Ama kafayı çözeltiye eyip “lan, ne
güzel haa” diye derin derin nefes almasanız iyi olur.
Bakırlarımızı çözdükten sonra, devremizi ince bir zımparayla ya da yine ovma tozu ve
bulaşık süngeriyle siyahlığı tamamen gidip alttan cillop gibi bakır çıkana kadar çitileyin.
İşte devreniz parçaları dizmeye hazır… Sıcak servis ediniz… Afiyet olsun.
Murat Şenol
METU EE’07
[email protected]
Download