You are on page 1of 22

ZG ZLEYEN ROBOT YAPIMI

Tanm ve alma Prensibi


izgi izleyen robot, adndan da anlald zere, renk farkndan faydalanarak bir izgiyi takip eden robot eididir. Bu robot, endstriyel alanlarda ok faydal olabilecek bir robottur. Eer srekli bir yerden dier bir yere mal gtrlyorsa, bu ii otonom olarak bir robota yaptrmak hem ileri hzlandracak hem de ihtiya duyulan i gcn azaltacaktr. Bu sistemi kurabilmek iin ise yaplmas gereken tek ey robotun gitmesi gereken gzergha bir izgi izmek. Bu robotlarn alma prensibi aadaki diyagramla aklanabilir:

Bu projede kullanacamz optik sensrler kzltesi(ir) k yayarlar ve tekrar yansyan detektrleri araclyla toplar ve topladklar bu n iddetine gre belli voltaj dzeylerinde k verirler. Daha iyi sonular alabilmek iin izginin rengi en st seviyede yanstan beyaz veya en dk seviyede yanstan siyah olmaktadr. Zeminin de, daha iyi sonu vermesi asndan, izgi siyahsa beyaz, izgi beyazsa siyah olmas tercih edilir. Sensrlerden gelen klar analog olduu iin, bu klar karar verme mekanizmamzn(mikroilemci) anlayabilecei dile, lojik 1 ve 0 lara

dntrmemiz gerekmektedir. Bu dntrme ilemini de karlatrc olarak kullandmz opamplar(ilemsel kuvvetlendirici) yapmaktadr. Opamplar u ekilde almaktadr: Opampa bir referans gerilimi veriyoruz ve opamp bu referans gerilimiyle sensrlerden gelen gerilimi karlatrp 5 V (lojik1) veya 0 V (lojik 0) k vermektedir. Bu k gerilimi, kullandmz devreye ve sensrlerden gelen gerilime gre deimektedir. Bizim kullanacamz devrede sensrlerden referans geriliminin altnda bir gerilim geldiinde opamp 5 V (lojik1), stnde bir gerilim geldiinde de 0 V (lojik 0) k vermektedir. Yani sensrlerimiz siyah rengi grdklerinde opamp 0 V, beyaz rengi grdklerinde de 5 V k vermektedir. Sensrlerden gelen bu verilere gre de mikroilemci bir karar vermekte ve bu karara gre de motorlar harekete geirmektedir. Mikroilemcinin karar u ekilde olabilir:

3 numaral sensrn izgi zerinde olmas aracn izginin sol tarafnda olduunu gsterir. Bu yzden aracn konumunu dzeltmesi iin 2 numaral sensr izgiyi grene kadar saa dn.

2 numaral sensr izgi zerinde olduu iin dz git

1 numaral sensrn izgi zerinde olmas aracn konumunu izginin Bu sa yzden tarafnda aracn olduunugsterir.

dzeltmesi iin 2 numaral

sensr izgiyi grene kadar sola dn.

Bu durum bir izgi izleyen robotun izgi zerinde gitmesi iin yeterlidir. Bu 3 sensrl bir sistem iin geerlidir. Sensr says artrlarak ve farkl konfigrasyonlar kullanarak belki daha iyi sonular alnabilir. Ancak unu unutmamak lazm ki daha fazla sensr, daha fazla durum bu da daha uzun bir program demektir. Programn uzun olmas, sistemin farkl durumlar karsnda gsterecei tepki sresinin daha uzun olmasna sebep olur ki bu da fazla sensr kullanmann kt yandr. Burada sistemin verecei tepki sresi robotun izgiye salayaca uyum asndan nemli olduu iin gerekmedii srece fazla sensr kullanmann uygun olmayacan syleyebilirim. Ayrca sensrlerin formasyonu ve aralarndaki uzaklk direk olarak aracn performansn etkileyecei iin bu da bir dier nemli noktadr. Bu uzaklk ve sensrlerin dalm biimi aracn hzna, geniliine, uzunluuna ve sistemin verecei tepki sresine gre deitii iin en uygun deerleri bulmak iin ya btn bu etkenler gz nnde bulundurularak meakkatli bir hesaplama yaplmal ya da deneme yanlma yntemi kullanlmaldr.

Mekanik Ksm
Aracn mekanik ksm da dier ksmlar gibi robotun performans zerinde dorudan bir etkiye sahiptir. Bu sebeple mekanik tasarm da nemlidir. Robotun kasas iin birka farkl tasarm

kullanlabilir. Bunlardan biri hazr bir oyuncak araba alnp onun kasas bu i iin kullanlabilir. Bu oyuncak arabalar, otomobillerde olduu gibi, ackerman steering denilen sr sistemine sahiptir. Bu sr sisteminde aracn hareketi arka tekerleklere bal olan bir motorla salanrken, ynlendirilmesi iin de n tekerleklere bal bir adet motor kullanlmaktadr. Bu sr sisteminde aracn manevra yetenei dk olacandan keskin virajlar dnemeyecektir. Bir dier sistem de nde bir adet sarho tekerin kullanld ve arka tarafta da birbirinden bamsz hareket eden iki teker ve bunlara bal motorlardan oluan sistemdir. Bu sistemde ara dnn iki tekerin hz farkndan faydalanarak yapmaktadr bu sr sistemine de diferansiyel sr denir. Ara daha yava dnen teker tarafna doru ynlenecek ve tekerlekler arasndaki hz fark arttka da aracn manevras daha da keskinleecektir. Resimde grlen robotta motorlar tekerleklere direk baland iin motorlar yksek akm ekecektir bunun iin de yksek akml pillere ihtiya vardr. Dili kutulu motorlar kullanlarak aracn ektii akm drmek mmkndr. Tabi bu motorlar dier motorlara gre daha pahal olduundan bu ekilde robotun maliyeti de artmaktadr. Eer byle bir hazr devrelerinizi onun zerine kurmalsnz. mekanik bir aksam kendiniz alp yaparak uramak istemiyorsanz, oyuncak araba

ekilde bizim yapm olduumuz izgi izleyen robot grlmektedir. Bu robot sr sistemi olarak iki adet dili kutulu dc motor, bunlara bal 2 teker ve nde bir adet sarho tekerden olumaktadr. Gvde ise dayankl ve hafif olan plexiglass maddesinden yaplmtr. Batarya olarak da 12 V asit batarya kullanlmtr. Bu batarya ardr ve abuk dearj olmaktadr, kullanlma sebebi ise ucuz olmasdr.

Elektronik Ksm Robot in Gerekli Malzemeler Kontrol devresi iin:


1 adet PIC16F628A(mikrodenetleyici) 1 adet L293D(motor sr entegresi) 1 adet 74HC14(schmitt trigger) 2 adet 18lik dip soket(PIC16F628A iin)

1 adet 16lk dip soket(L293D iin)

1 adet 14lk dip soket(74HC14 iin) 1 adet 4 MHz kristal 2 adet 22 pF seramik kondansatr 1 adet 100 nF seramik kondansatr 1 adet 10 k diren 4 adet 2li klemens

Voltaj reglatr devresi iin:


1 adet 7805(voltaj reglatr)

1 adet 330 F kondansatr

1 adet 10 F kondansatr 1 adet 0.1 F kondansatr 1 adet 1N4001(diyot) 2 adet 2li klemens

Sensr devresi iin:


3 adet CNY70(sensr) 3 adet 100 diren 3 adet 47 k diren

Dier malzemeler:

Yeteri kadar kablo(devreleri birbirine balamak iin) 912 volt veya 4,8 volt batarya1

Mekanik aksam iin: Ara iin uygun bir kasa 2 adet dili kutulu DC motor 2 adet teker Motorlar tekerleklere ve kasaya monte aksamlar(hub, L ayak vb)

edebilmek iin uygun

1 adet sarho teker

Kullandmz elemanlar nedir ne ie yarar? PIC(mikrodenetleyici)


PIC(Peripheral Interface Controller) Microchip firmasnn rettii bir mikrodenetleyicidir. Mikrodenetleyici ise mikroilemci, RAM, ROM, ALU, kontrol nitesi ve I/O nitesini tek bir chip iinde barndran entegre(tmleik) devredir. Bu devrede mikrodenetleyici kullanlmasnn sebebi udur: Her robotta olduu gibi izgi izleyen robotumuzda da bir karar verme mekanizmas olmaldr. Bu mekanizma daha nce de sylediimiz gibi u ekilde olmaldr: Robot sensrleri vastasyla d ortamdan bilgileri toplar ve bu bilgiler robot

tarafndan yorumlanr ve bu yorumlara gre eyleyicilerine(motorlara) uygun komutlar verir. te bu yorumlama ve komut verme ilemi mikrodenetleyici tarafndan gerekletirilir. Bu sistemdeki sensrleri gzlere, mikrodenetleyiciyi beyne, motorlar ise kol veya bacaklara benzetebiliriz. Bu rnekten de anlald zere mikrodenetleyici ksm robotumuzun en nemli parasdr. Tabi ki dier mekanizmalar da(alglayc, eyleyici) sistemin ayrlmaz bir paras olduu iin onlar da nemlidir. Bu uygulamada PIC kullanmamzn sebebi ise ucuz, kolay ulalabilir olmas ve kullanm kolayldr. Daha karmak ve hzn nemli olduu sistemlerde(grnt ileme gibi) PIC yetersiz kalacandan baka mikrodenetleyiciler kullanmak gerekecektir, ancak bu proje iin PIC ideal bir mikrodenetleyicidir. Ayrca PICin bir dier zellii de birka dille(Pic Assembly, Pic Basic, Pic C) programlanabilmesidir. Bu konudaki detayl bilgi programlama blmnde verilmektedir.

L293D(Motor src entegre)


Picin bir bacandan(pininden) ekebileceimiz akm maksimum 25 mA dzeyindedir. Bu akm seviyesi bir motoru srmek iin yeterli olmayacandan akmn kuvvetlendirilmesi(ykseltilmesi) gerekmektedir. te bu kuvvetlendirme iini de iinde transistor, mantk kaps ve diyot barndran L293D entegresi yapmaktadr. Bu entegre vastasyla ekilebilecek maksimum akm 600 mA olduundan daha fazla akm gerektiren uygulamalarda bu entegre kullanlamayacaktr, onun yerine ekilebilecek akm dzeyi 4 A e kadar kabilen L298 entegresi kullanlabilir. Bu entegreler hakknda daha fazla bilgi kataloglarnda(datasheet) bulunabilir.

74HC14(schmitt trigger)
Schmitt Trigger ierisinde 6 adet opamp devresi barndran bir entegredir. Bu opamp devresi karlatrc olarak almaktadr. Daha nce de belirttiim gibi

karlatrc(comparator) devresinde referans gerilimi uyguladmz bir giri ve ykseltmek veya drmek istediimiz dier bir giri olmak zere toplamda 2 giri ve 1 k bulunmaktadr. Referans gerilimi ve giri gerilimi arasndaki ilikiye gre bir k gerilimi olumaktadr. 74HC14 entegresinde referans gerilimi 2.5 V olarak ayarlanmtr. Bu sebeple eer sensrlerden gelen gerilim 2.5 V un zerindeyse 74HC14 bu gerilimi drp 0 V yapmakta, 2.5 Vun altndaysa da gerilimi ykseltip 5 V yapmaktadr. Daha nce sylediim gibi Picin sensrlerden gelen veriyi dzgn olarak alabilmesi iin bu ilem gereklidir. Aksi halde sistem kararsz bir yapya sahip olacaktr. Ayrca 74HC14 14 pine sahiptir bunlardan 2si besleme girii, 6s veri girii, 6s da veri kdr. 6 giri ve k olduu iin bir entegreye en fazla 6 sensr balanabilmektedir. Biz robotumuzda 3 sensr kullanacamz iin bir entegre yeterli olmakta 3 giri ve 3 k da bo kalmaktadr.

CNY70(sensr)
Bir optik sensr eidi olan CNY70 verici(transmitter) olarak kzltesi(ir) led(light emitting diode), alc(receiver) olarak da fototransistor iermektedir. ekilde de grld zere kzltesi led den kan k bir yzeyden yansyarak fototransistorun baz(base) meydana ve ucunda bir tetiklenme Bu iletime getirmektedir. aras

tetiklenme sonucunda kollektr(C) emetr(E) gemektedir. Eer fototransistoru bir anahtar(switch) olarak dnrsek baza k geldii zaman anahtar kapal gelmediinde ise anahtar ak aras kesimdedir diyebiliriz. , yani kollektr-emetr aras iletimde, k konumdadr, yani kollektr-emetr

ekilde CNY70in devre emas verilmektedir. Transistorun baz ucu tetiklendii zaman kollektr emetr aras iletime geer ve 5 Vluk gerilim kaynandan topraa doru transistor zerinden akm akar ve PICin CNY70 e bal olan ucu 0 olur, baz ucu tetiklenmedii zaman ise kollektr emetr aras ak u olur ve akm kaynaktan PICe doru akar ve PICin baca 5 V olur. CNY70in alma prensibi bu ekildedir. Daha nce sensrlerin kart zerindeki

dalmnn nemli olduunu sylemitim. izgi olarak 2 cmlik siyah veya beyaz elektrik band kullanacamz dnrsek ekildeki konfigrasyon robot iin uygun bir dalmdr. Sensrlerin konumu ve says da piste gre deiecektir. rnein yol izgisine dik izgilerin olduu bir pistte bu dalm uygun deildir. Sensrlerin kendi iindeki konumlarnn nemli olmasnn yansra aracn neresinde olduu da nemlidir. Eer pist zerinde kpr, tmsek gibi kntlar yoksa sensr devresini aracn en n ksmna, tekerin hemen nne koyunuz.

Kristal
Kristal bir osilatr eididir ve picin almas iin osilatr gerekli bir elemandr. Osilatr bir kare dalga sinyali retir, bu sinyale saat(clock) sinyali denir. Saat sinyali pice yklediimiz programn almas iin gereklidir ve sinyalin frekans da komutlarn ileni hzn da deitirecektir. Kristalin frekans arttka programn alma hz da artmaktadr. Bu yzden kristalin frekansn seerken yapacamz uygulamay gz nnde bulundurmalyz. Biz bu projede 4 MHzlik kristal kullanmaktayz. Bizim iin bu hz yeterlidir.

Diyot
Diyot ters ynde akm geirmeyen bir devre elemandr. Buradaki kullanl amac ise devreye bataryay yanllkla ters baladmzda devre elemanlarnn zarar grmesini engellemektir.

Kondansatr
Kondansatr farkl amalarda kullanlabilir. Burada kullanma amacmz gerilim kaynamzda oluabilecek ani ykselileri veya inileri filtre edip dzgn bir elektrik akm oluturmak ve bundan doabilecek zararlar engellemek.

Robotta Kullanlacak Devreler Ana Devre

Bask Devre Hali

Voltaj Reglatr Devresi

Bask Devre Hali

Sensr Devresi

Bask Devre Hali

Devrelerin Kurulmas
Yukarda verilen devreler farkl ekillerde kurulabilir: Bask devre yaplabilir, pertinaks kart(delikli kart) veya breadboard(delikli panel) kullanlabilir. Ancak bask devre yapabilmek iin baz alet edevat ve malzemelere ihtiya vardr. Eer bu malzemeler sizde bulunmuyorsa bask devreyi bu ii yapan kiilere de

yaptrabilirsiniz. Elemanlar delikli pertinaksn (delikli kart) zerine de lehimleyebilirsiniz ya da hibir lehim veya alet edevata ihtiya olmakszn breadboard(delikli panel) kullanabilirsiniz. Breadboardun Kullanl ekilde zere grld breadboard

harflerden (A, B, C, D, E, F, G, H, I, J) oluan stunlara izgiler satrlara ve rakamlardan oluan

ayrlmtr. 5li olarak

ekilde grlen dikey kendi aralarnda iletimdedir. Yani A1,B1,C1,D1,E1 ayn hat zerinde bulunmaktadr. Keza A2,B2,C2,D2,E2 kendi iinde iletimdedir ve bu ekilde gitmektedir. En d ksmlarda bulunan mavi ve krmz izgilerle gsterilen delikler ise ekildeki yatay siyah izgi boyunca iletimdedir. Bu bilgiler nda devreleri breadboard zerine uygun olacak ekilde kurabilirsiniz. Ancak sensr devresini bir delikli pertinaksa kurmanz veya bask devre olarak yapmanz daha nce verdiim formasyonu salayabilmek iin gereklidir. Pertinaks Kullanm ekilde de grld zere delikli pertinaks delik bakr dairelerden olumaktadr. Kullanlacak elemann bacaklar bu deliklerden geirilir ve devre emasna uygun biimde birbirine balanmas gereken elemanlar tel ve lehim araclyla birletirilir.

Bask Devrenin Yapl Bask devre iin gerekli alet ve malzemeler


Mini el matkab Havya Lehim t Uygun boyutlarda bakr plaket Perhidrol Tuz ruhu Asetat kad ncelikle yapacanz devrenin bask devre halinin(elemansz olann) ayn boyutlarda bir lazer yazcdan asetat kad zerine ktsn aln. Eer lazer yazc bulunmuyorsa herhangi bir yazcdan A4 kadna kt alp daha sonra bu ktnn asetat kad zerine fotokopisini ektirebilirsiniz. Ancak lazer yazc daha iyi sonu verecektir. kty aldktan sonra asetat kadndaki fazlalklar bir makas yardmyla kesiniz. Bu ilemden sonra sra geldi asetat zerindeki ekli bakr plaketin zerine aktarmaya. Bu i iin ncelikle plakann zeri parmak izi, kir kalmayacak ekilde gzelce snger ve deterjan yardmyla temizlenmelidir. Bu ilem eklin plakann zerine dzgnce aktarlabilmesi asndan nemlidir. Temizlik iinden sonra asetat kadn, toner ksm plakann bakr ksmna gelecek ekilde plakann zerine kapatalm. Asetat kadn tlerken kaymamas iin erimeyecek bir bantla(elektrik band olabilir) kenarlarndan plakaya yaptrn. Daha sonra tnzn ayarn ynl/pamuklu ve buharsz konumuna getirip kzmas iin bekleyin. t kzdktan sonra asetat kadnn zerine ince bir bez rterek plakay bastrarak tlemeye balayn. Bu ilemi 35 dakika plakann her tarafna uygulayn daha sonra asetat kadn bir kenarndan hafife

kaldrarak plakann zerine yollarn kp kmadna baknz, eer kmayan yerler varsa bir mddet daha bu ksmlar tleyiniz. Yalnz bu ilemin ok uzamamas lazm, aksi takdirde yollar plakann zerinde dalmaya balar. Bu ilem de bittikten sonra devrenin soumasn bekleyelim, buzdolabna koyup hzl biimde soumasn salarsanz daha iyi sonu alabilirsiniz. Souma ileminden sonra asetad bakr levha zerinden yavaa kaldrnz, eer tam kmayan yollar varsa ince ulu bask devre kalemiyle bu yollar birletirip btn yollarn tam olduundan emin olun. Btn bu ilemler srasnda levhann bakr ksmna dokunmamaya alnz. Eer bakrn zerinde parmak izi veya kir olursa bu ksmlar devreyi asidin iine attmzda tam olarak erimeyecek veya ge eriyecektir. Bu yzden bakr yzeyin olabildiince temiz olmas lazmdr. Sra geldi bakr eritme ilemine. Bir plastik kabn ierisine 1 perhidrol, 3 tuz ruhu orannda bir karm hazrlaynz. Bu ilemde asitle uratmz iin eldiven giymeniz tavsiye edilir, eer plak elle bu ilemi yapyorsanz aside temas etmeyiniz ve mmknse bu ilemleri ak ortamda yapnz. Karm hazrladktan sonra plakay asidin iine yavaa braknz. Erime ilemini hzlandrmak iin kab yavaa sallayabilirsiniz. Yollarn dndaki bakr ksm tam olarak eridikten sonra levhay asit iinden karnz ve eme altna tutarak asidin levha yzeyinden gitmesini salaynz. Yollarn zerindeki toner izini kaldrabilmek iin bir sngerin yeil ksmn bir miktar deterjanla birlikte plakann zerine bastrarak srnz. Toner izlerini de ortadan kaldrdktan sonra plakay bir maket ba araclyla uygun boyutlarda kesebilirsiniz. Levhay kolay bir ekilde kesebilmek iin cetvel yardmyla maket bayla kesmek istediiniz yerden izikler oluturun ve bu iziklerin zerinden geerek izii iyice derinletirin ayn ilemi devrenin ters taraf iin de gerekletirin, ancak dier izgiyle ayn hizada olmasna dikkat edin. Plaka kolay ve dzgnce krlabilir duruma geldikten sonra bir pense veya kargaburnu yardmyla devreyi izdiiniz yerden dikkatlice krnz, daha

sonra isterseniz bir eyeyle kartn kenarlarn dzeltebilirsiniz. unu sylemem gerekir ki bu ilemler biraz g gerektirmekte ve uratrmaktadr. Devreyi uygun boyutlarda kestikten sonra sra geldi devredeki delikleri amaya, bu ilem iin bir mini el matkab kullanmanz gerekmektedir ve plakann zerindeki bakr yollar kaldrmamak iin deliin boyutuna uygun bir matkap ucu kullannz. En son olarak da devrenin bask devre haline(elemanl durum) bakarak elemanlar devre zerine lehimleyiniz (Bu ii yaparken sizin yaptnz bask devreyle yukarda verilen devrelerin bask devre hallerinin birbirinin aynas(mirror) olduunu unutmaynz ve elemanlar lehimlerken buna dikkat ediniz. Kolaylk salamas asndan yukardaki bask devrelerin daha byk bir ktsn aynalanm(mirror) olarak almanzda fayda vardr. Bu ktya bakarak elemanlar devreye lehimlerseniz sizin iin daha kolay olur) Ancak PIC, L293D, 74HC14 gibi entegreleri devreye lehimlemeyeniz, nk lehimleme srasnda bu entegreleri yakabilirsiniz, onun yerine bu entegreler iin listeye yazdmz soketleri devreye lehimleyip daha sonra da entegreleri soketlere entik ksmlar st ste gelecek ekilde taknz.

Programlama
Pic i programlarken 3 dil kullanabiliriz. Bunlar Pic Assembly, Pic Basic ve Pic C dir. Aada Pic Assembly dilinde yazlm rnek izgi izleyen robot kodlarn bulabilirsiniz. Tabi bu kodlar gelitirip daha iyi sonular da alabilirsiniz.

Pic Assembly
Assembly kodlarnz yazp derlemek iin Microchip firmasnn cretsiz olan Mplab Ide programn kullanabilirsiniz. Bu program Microchipin kendi sitesinden indirebilirsiniz.

Mplabn Kullanm
ncelikle kullanacamz mikrodenetleyiciyi semeliyiz. Bunun iin Configure/Select Device ksmna gidelim.

Buradan PIC16F628Ay seip OK diyelim.

imdi kodlarmz yazabilmek iin File/New deyip yeni bir sayfa aalm.

Daha sonra File/Save As ksmndan dosyaAdi.asm eklinde kaydedelim. Atmz bu bo sayfaya kodlarmz yazabiliriz.
;ZG ZLEYEN ROBOT RNEK ASM KODLARI ;BU PROGRAM BEYAZ ZEMN ZERNE SYAH ZG N VE DFERANSYEL SR SSTEM N YAZILMITIR ;Tuna BULUT TARAFINDAN YAZILMITIR LIST P=16F628A INCLUDE "P16F628A.INC" __CONFIG _XT_OSC & _WDT_OFF & _PWRTE_ON & _MCLRE_ON & _BODEN_OFF & _LVP_OFF & _DATA_CP_OFF & _CP_OFF MOVLW H'07' MOVWF CMCON ;COMPARATOR ZELL KAPALI VE PORTA I/O N AKTF MODDA CLRF PORTB ;PORTB Y SIFIRLA ;GR-IKI TANIMLAMALARI BANKSEL MOVLW MOVWF CLRF BANKSEL CLRF TRISA H'FF' TRISA TRISB PORTB PORTB ;BANK1 E GE YAP ;PORTA NIN BTN PNLERN GR YAP ;PORTB NN BTN PNLERN IKI YAP ;TEKRAR BANK0 A GE ;PORTB Y SIFIRLA

;ANA PROGRAM DONGU BTFSS GOTO BTFSS GOTO BTFSS GOTO GOTO DUZ BSF BSF GOTO SOL BSF BCF PORTB,4 PORTB,6 ;SAG MOTORU ALITIR ;SOL MOTORU DURDUR PORTB,4 PORTB,6 DONGU ;SAG MOTORU ALITIR ;SOL MOTORU ALITIR PORTA,1 DUZ PORTA,0 SOL PORTA,2 SAG DONGU ;ORTA SENSR KONTROL ET EER 0 SA(SYAH ZGDEYSE) DUZ GIT ;1 SE BR SONRAK KOMUTU ATLA SONRAK KOMUTA GE ;DUZ ALT RUTNNE GT ;SOL SENSR KONTROL ET 0 SA SOLA DON ;1 SE BR SONRAK KOMUTU ATLA SONRAK KOMUTA GE ;SOL ALT RUTNNE GT ;SAG SENSR KONTROL ET 0 SA SAA DN

GOTO SAG BCF BSF GOTO END

DONGU PORTB,4 PORTB,6 DONGU ;SAG MOTORU DURDUR ;SOL MOTORU ALITIR ;PROGRAMI SONLANDIR

unu sylemem gerekir ki bu kodlarla robottan ok yksek bir performans beklenmemelidir. Aracn dnleri daha yumuak yaplarak daha iyi sonular alnabilir. Bu ara diferansiyel sr sistemine sahip olduu iin bir teker durdurularak bir teker de tam hzda dndrlerek yaplan dnler ok sert olmaktadr. Bu da aracn yalpalayarak hareket etmesine sebep olacaktr. Tekerlekler aras hz fark azaldka aracn dn as da azalacak ve daha yumuak bir dn salanacaktr. Motorlarn dn hzn da voltajlarn drerek drebiliriz. Bunun iin PWM(Pulse Width Modulation) metodunu kullanacaz. PWM metodunda picin kna dz bir sinyal deil de ekildeki gibi bir kare dalga gnderiyoruz.

1 sresi

0 sresi

k voltajn belirleyen, 1 sresinin toplam sreye oran olmaktadr. rnein 100 s 1, 100 s de 0 gnderirsek k voltajmz 5*(100/(100+100)) den 2.5 V olmaktadr. Bu ekilde hz ayarlayabilir ve daha iyi sonu alabiliriz. Bu ilemi de asm de u ekilde yapabiliriz.
;ZG ZLEYEN ROBOT RNEK ASM KODLARI ;BU PROGRAM BEYAZ ZEMN ZERNE SYAH ZG N VE DFERANSYEL SR SSTEM N YAZILMITIR ;Tuna BULUT TARAFINDAN YAZILMITIR LIST P=16F628A INCLUDE "P16F628A.INC" __CONFIG _XT_OSC & _WDT_OFF & _PWRTE_ON & _MCLRE_ON & _BODEN_OFF & _LVP_OFF & _DATA_CP_OFF & _CP_OFF ;----------------------------------------------------------------------DEKEN TANIMLAMALARI--------------------------------------------------------------------CBLOCK H'20' SAYAC ;SAYAC DEKENN BR ADRESE ATA IS ;IS DEKENN BR ADRESE ATA BEK ;BEK DEKENN BR ADRESE ATA ENDC ;-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------MOVLW H'07' MOVWF CMCON ;COMPARATOR ZELL KAPALI VE PORTA I/O N AKTF MODDA CLRF PORTB ;PORTB Y SIFIRLA ;GR-IKI TANIMLAMALARI BANKSEL MOVLW MOVWF CLRF BANKSEL CLRF TRISA H'FF' TRISA TRISB PORTB PORTB ;BANK1 E GE YAP ;PORTA NIN BTN PNLERN GR YAP ;PORTB NN BTN PNLERN IKI YAP ;TEKRAR BANK0 A GE ;PORTB Y SIFIRLA

;ANA PROGRAM MOVLW D'128' MOVWF IS

;IS DEKENNE 128 SAYISINI YKLE

MOVLW MOVWF DONGU BTFSS GOTO BTFSS GOTO BTFSS GOTO GOTO DUZ BSF BSF GOTO SOL BSF

D'128' BEK PORTA,1 DUZ PORTA,0 SOL PORTA,2 SAG DONGU PORTB,4 PORTB,6 DONGU PORTB,4

;BEK DEKENNE 128 SAYISINI YKLE ;ORTA SENSR KONTROL ET EER 0 SA(SYAH ZGDEYSE) DUZ GIT ;1 SE BR SONRAK KOMUTU ATLA SONRAK KOMUTA GE ;DUZ ALT RUTNNE GT ;SOL SENSR KONTROL ET 0 SA SOLA DON ;1 SE BR SONRAK KOMUTU ATLA SONRAK KOMUTA GE ;SOL ALT RUTNNE GT ;SAG SENSR KONTROL ET 0 SA SAA DN

;SAG MOTORU TAM GTE ALITIR ;SOL MOTORU TAM GTE ALITIR ;SAG MOTORU TAM GTE ALITIR

;----------------------------------------------SOL MOTORU %50 HIZDA ALITIR(PWM)---------------------------------------------------BSF PORTB,6 MOVF IS,W CALL GECIKME BCF PORTB,6 ;SOL MOTORU DURDUR MOVF BEK,W CALL GECIKME ;--------------------------------------------------------------------------------------------------------------------------------------------------------------GOTO DONGU SAG BSF PORTB,6 ;SOL MOTORU TAM GTE ALITIR ;----------------------------------------------SAG MOTORU %50 HIZDA ALITIR(PWM)----------------------------------------------------BSF PORTB,4 MOVF IS,W CALL GECIKME BCF PORTB,4 ;SAG MOTORU DURDUR MOVF BEK,W CALL GECIKME ;-----------------------------------------------------------------------------------------------------------------------------------------------------------------GOTO DONGU GECIKME MOVWF SAYAC DONGU2 DECFSZ SAYAC,F GOTO DONGU2 RETURN END ; W YAZMACINDAK DEER SAYAC DEKENNE ATA ;SAYAC DEKENNDEK SAYIYI 1 AZALT VE EER 0 SA BR SONRAK KOMUTU ATLA ;PROGRAMI SONLANDIR

IS ve BEK deikenlerine yklenen saylar deitirerek motorun farkl hzlarda dnmesini salayabilirsiniz. Deneme yanlma yntemiyle en uygun hz deerini bulabilirsiniz. Bu programlardan birini yazdktan sonra tekrar kaydedin daha sonra da Project/Quickbuild den yazdnz kodu derleyin.

imdi sra geldi kodu pic e ykleme iine. Bunun iin bir programlaycya ihtiyacnz vardr. Eer Ankarada bulunuyorsanz Ulus-Konya Sokaktan uygun fiyata temin edebilirsiniz. Bu programlayclarn kimisi seri porta, kimisi paralel porta, kimisi de usb ye taklmaktadr. Usb den taklanlar dizst bilgisayarlarla da kullanlabilmektedir. Ancak dierleri dizst bilgisayarlarda dzgn olarak almamaktadrlar. Bunun bir sonucu olarak da usb programlayclar dierlerine gre daha pahaldrlar. Bu programlayclarn yannda programlar da bulunmaktadr. Bu programlar kullanarak kodunuzu derledikten sonra oluan hex dosyasn pic e ykleyebilirsiniz.

Dipnot 1)Eer 4.8 V luk pil kullanacaksanz voltaj reglatr devresini kullanmamalsnz. Ana devrede grlen J3 giriine de bu pili direk balamalsnz. Unutmamanz gerekir ki J3 girii direk motorlar beslemektedir. Bu yzden kullandnz batarya ile motorun uyumlu olmas gerekmektedir.

Kaynaklar:
Gl Tuay, Elektronik Hobi, Alfa Yaynlar, 2.bs.2004, 246 sf., ISBN: 975-297-481-1 Orhan Altnbaak, Mikrodenetleyiciler ve Pic Programlama, Alta Yaynclk, 1.bs.2005,325 sf. ISBN:975-8834-09-6 Odt Robot Topluluu Dkmanlar Ankara Telsiz ve Radyo Amatrleri Klub Microchip

HAZIRLAYAN
Tuna BULUT