ROBOT KOL BİTİRME PROJESİ DÖNEM İÇİ RAPORU

advertisement
ROBOT KOL BİTİRME PROJESİ
DÖNEM İÇİ RAPORU
İSMAİL KAHRAMAN-ŞEYMA ÖZTÜRK
200713151027
200513152008
Robot Kol Mekanizması:
Şekildeki robot-insan benzetmesinden yola çıkarak, bel kısmı tekerlekli ve sağa-sola-ileri-geri hareket edebilen bir araba gibi tasarlanacaktır. Omuz kısmı 360° sağa-sola, dirsek kısmı araba üstündeki platforma sabitlendiği için sadece
aşağı-yukarı hareket edebilecek şekilde kontrol edilecektir. Parmaklar, maşa gibi iş görecek şekilde tasarlanacaktır.
Tasarım Aşaması:
Step motorların ve kol için kullanılan malzemelerin ağırlıkları düşünülerek her bir parçanın motorunda uygun torku
seçebilmek için tasarıma parmaklardan başlandı. Parmak kısmı için step motor eski yazıcıdan temin edildi.
Tasarımda Karşılaşılan Sorunlar:
1) Sağlam olması düşünülerek kol parçalarını ahşap malzeme seçildi. Her motorun tork ihtiyacı her bir parça için
artacağından, dolayısıyla maliyet artacağı için daha hafif ve sağlam olan PVC malzeme kullanmaya karar verildi.
2) Başlangıçta servo motor kullanılması uygun görüldü, fakat kontrol devresi karmaşıklığı ve motor maliyetinin
yüksekliğinden dolayı step motor kullanıldı.
3) ULN2003 entegresi step motorun dönmesi için yeterli akımı karşılayamadığından dolayı motor transistörle
(BC237-238) sürüldü.
Step Motor Kontrol Devresi:
Step motor kontrol devresi şekildeki gibi olup, motor; 4 adet NPN tip (BC238) transistör ile sürülmektedir. (Step motor; ULN2003 entegresi, röle, FET ile de sürülebilir). Mikrodenetleyici olarak PIC16F84A (Peripheral Interface Controller) kullanılmıştır. 4MHz’lik kristal ve 10nF’lık kapasitörler ile PIC’in çalışması için gereken osilatör sinyalini
sağlandı.
Gerekli çıkışlar RB0-RB1-RB2-RB3 portlarına gönderilmektedir.
Port çıkışlarındaki 1K’lık dirençeler, gerekli port çıkışlarındaki lojik-1 yani +5 Volt’u transistor ün base ini tetikleyebilecek seviyeye indirmekte. Q2, Q4, Q6, Q8 transistörlerinin emitter leri topraklanmakta, Q1-Q2, Q3-Q4, Q5-Q6, Q7-Q8
collector-emitter ortak bağlantılarından motora çıkış alınmaktadır. İmpuls ile motorun bir sargısı endüklenir, diğer
sargıya impuls geldiğinde bir önceki sargı endüklenir ve motor gelen impulsa göre ileri-geri çalışır.
Devrede 6 uçlu step motor kullanıldı. Step motorun doğru bacak bağlantılarını bulabilmek için aşağıdaki yöntem izlenir: Uçlar arası direnç ölçümü yapılır. Şekildeki O1 ve O2 ortak uçlardır. Dolayısıyla A-B arasında ölçülen direnç A-O1
ya da B-O1 arasında ölçülen direncin 2 katıdır. Aynı şekilde C-D arasında ölçülen direnç C-O2 ya da D-O2 arasında
ölçülen direncin 2 katıdır.
Uçlar belirlendikten sonra Katalog bilgilerinden step motorun kaç Voltta çalıştığına bakılarak step motorun +
beslemeleri gerilim kaynağına bağlanır, geri kalan uçlara sıra ile – verilerek tam dönüş yapılasıya kadar denenir ve
uçların sırası belirlenmiş olur.
Motor sargılarının sadece birinin uyartıldığı uyartım cinsine tek-faz uyartımı adı verilir. Rotor her bir uyartım
sinyali için tam adımlık bir hareket yapmaktadır. Dönüş yönüne bağlı olarak sıra ile yapılır.
Step Motor Kontrol Programı:
Mikrodenetleyici ASM (Assembly) ile programlanmıştır. Program algoritması özetle şu şekildedir:
Motor belirli bir süre ileri, belirli bir süre geri dönecek şekilde programlanmıştır. İlerleyen zamanlarda önce
buton kontrolü ile ileri-geri çalıştırılması planlanmaktadır.
/******************************************************
Uygulama Adı :Step Motor Kontrol Uygulaması
Yazan
: İsmail KAHRAMAN-Şeyma ÖZTÜRK
*******************************************************/
list p=PIC16F84A
#include <p16f84a.inc>
__CONFIG _HS_OSC
count equ 0x0c
dly1 equ 0x0d
dly2 equ 0x0e
org 0
;reset vector
goto start
;go to beginning of program on reset
org 5
;start of code space
start bsf STATUS,RP0
;_select_register bank 1
movlw 0xf0
;rb0-rb3 output (stepper), rb4-rb7 input (switch)
movwf TRISB
;portb all output
bsf OPTION_REG,NOT_RBPU ;disable pullups
bcf STATUS,RP0
;_select_register bank 0
movlw 0x00
;start with everything off
movwf PORTB
loop call gofwd
call gobwd
goto loop
gofwd movlw b’00000110’
movwf count
loopf
movlw 0x0a
movwf PORTB
call delay
movlw 0x06
movwf PORTB
call delay
movlw 0x05
movwf PORTB
call delay
movlw 0x09
movwf PORTB
call delay
decfsz count,1
goto loopf
return
gobwd
movlw b’00000110’
movwf count
loop b
movlw 0x09
movwf PORTB
call delay
movlw 0x05
movwf PORTB
call delay
movlw 0x06
movwf PORTB
call delay
movlw 0x0a
movwf PORTB
call delay
decfsz count,1
goto loopb
return
delay swapf PORTB,0
andlw 0x0f
movwf dly1
delay1 clrf dly2
delay2 nop
nop
nop
nop
nop
nop
decfsz dly2,1
goto delay2
decfsz dly1,1
goto delay1
return
end
Kurulan Devre:
Kaynakça:
1) www.t-robot.info
2) www.robotiksistem.com
3) MEGEP- Robotik
4) Elektronik Hobi-ALFA Yayıncılık
5) Kendi Robotunu Kendin Yap-ALTAŞ Yayıncılık
6) www.elektronikhobi.com
Download