Meka-Ro X4
Mini Sumo Robot

Sumo Robot Nedir ?
Sumo robotlar otonom olarak (kendi başına) hareket edebilen , elektronik devreler ve mekanik dış tasarımdan oluşan robotlardır.Sumo robotlar japon sumo güreşlerinden esinlenerek hobi robotiğe girmiştir. Bu robotlar bir ring üzerinde karşılaşırlar. Sumo robotların amacı rakibini dohyo dışına çıkarmaktır.Robotlar mücadele sırasında birbirlerini iterek platformun dışına çıkarmaya çalışırlar.Dohyonun dış kısmında bulunan beyaz çizginin dışına çıkmamak için aynı zamanda rakibini dohyo dışına çıkartmak için uğraşırlar.Sumo robotların maçı kazanmasında sahip olduğu mekanik, elektronik tasarım ve yüklü olduğu program algoritmaları etkili olur.

Dohyo nedir?
Dohyo sumo robotların birbirileri ile mücadele ettiği dış kısmında beyaz çizgi bulunan iç kısmı siyah olan platforma verilen ad dır.Mücadele edecek olan robotlar ring dışına çıktığında maçı kaybederler.Aşağıda dohyo resmi görülmektedir.

 

Robotun Elektronik Aksamı

Mini Sumo robotta ringin dışına çıkmamak ve rakibi ring dışına iterek çıkarmak amaçlanmıştır.Robotta kullanacağımız devreler karşıdaki cisimden yansıyarak tekrar sinyalin bize gelmesini sağlayan devreler olmalıdır.Örneğin ; ultarasonik sensörler , mesafe sensörü..Mesafe sensörleri hazır olarak modül şeklinde bulunmaktadır.Ultrasonik sensörler de mesafe ölçümü için kullanılırlar.IR sensörler gözle görülemeyecek bir ışın yayarak cisimden yansırsa çıkışa 0 v yansımazsa çıkışa 5 v verirler. Ultrasonik sensörlerde de 40 KHz lik ses yayarlar ve ölçülen mesafe aralığı dahada fazladır.

Kullanılan kitlerin Özellikleri :
- 20 cm kadar algılama özelliğine sahiptir.
- Kitlere harici bir PIC aracılığı ile kare dalga uygulanır.

Devre Şeması :

Devrenin Çalışma Prensibi:
CNY70 ve kitlerden gelen bilgiler 1. mikrokontrolde değerlendirilerek L293D motor sürücü entegre aracılığı ile motorlara gönderiliir.U2 mikrokontrolörü sadece mesafe algılanması için gereken frekansı üretme işlemi için kullanılmıştır.Eğer, kombinasyonları değerlendirme ve frekans üretme işlemi aynı kontrolörde yapılırsa frekansta bozulmalar meydana geleceğinden robot, engel karşısında oldugu halde görmüyor gibi davranabilir.Devrede gerilim kaynağı olarak 9 v 250 mah tek pil kullanılmıştır.L293D entegresinin 8.pininden motor sürmek için gerekli gerilim direk pilden verilmilştir ve entegrelerin besleme gerilimi regülatör ( 7805 ) çıkışından sağlanmıştır.

Mikroişlemci pic16F628 :
Devrede mikrokontrolör olarak pic16F628 i tercih ettik. Sebebi ise pic16F84 den kapasitesinin daha büyük olması ve içerisinde bulunan dahili osilatör sayesinde ekstra bir devre gerektirmemesi.Bu mikrokontrolörü F84 şeklinde kullanmak için eğer kullanılmayacaksa kompratör (karşılaştırıcı) ve  analog giriş özelliğini kapatmak gerekir.Bu özellikleri kapatmak içinde programın başına CMCON=7 , VRCON=0  bu 2 kodu eklemek yeterli olacaktır.Osilatörü dahil etmek için ise ; “ @ device pic16f628_intrc_osc_noclkout “ yazılmalıdır.

Kontrast Sensörü :
Robotun dohyo  dışına çıkmaması için kontrast sensörleri kullanılmalıdır.Daha önce çizgi izleyen robotta kullandığımız sensörler buradada kullanıyoruz.Sensörün iç yapısında IR led ve foto transistör bulunuyor.Bu elemanlar birbirilerinden elektriksel olarak yalıtılmış durumda modül halindedir.IR led tarafından yayılan ışık yüzey yansıtıcısı bir yüzey ise foto transistör tarafından algılanır , fakat yüzey IR led ışığını yansıtmıyorsa fototransistöre sinyal gitmeyecek ve transistör kesimde olacağı için çıkış vermeyecektir. Bu modüller beyaz algıladıklarında çıkışta 0 ( low ) siyah algıladıklarında ise çıkışta 1 (high) mantıksal ifadesinin verirler.Biz robot programında bir değişiklik yaparak yada 74hc14 ( tersleyici) entegresi kullanarak sensörlerin çıkışlarını değerlendirebiliriz.Şekil 1 de sensörün kılıf şekli , şekil 2 de iç yapısı ve Şekil 3 de üstten görünüşü bulunmaktadır.

                                
                                                      Şekil 1

 
                                             Şekil 2

                                  
                                                 Şekil 3

Robotun Mekanik Aksamı

Tüm sumo robotlarda en önemli nokta mekanik aksamdır.Sumo robotların mekaniği kuvvetli ise müsabakada üstün gelme oranı yüksekdir.Rakibini dohyo dışına atmak için genellikle sumo robotların ön tarafları kama gibi yapılır ve böylelikle rakibi ile temasa geçdiği anda rakibin altına girerek kaldırır ve kontrolünü kaybetmesini sağlar.Diğer bir önemli nokta ise tekerleklerdir.Çap ne kadar büyük ise hız o kadar artar.Sumo robotların güçlü ve hızlı olması gerekir o yüzden yüksek torklu motorlar ve yüksek çaplı tekerlekler kullanılır.Sumo sn de yaklasık 20 cm yol almasını istiyorsak o yuzden 40 -50 rpm arası bir motor ve carı 8 cm olan tekerlekler kullanmak gerekir.

Benim bu robotta kullanmış olduğum tekerlekleri geçen seneki staj yerimde polyemit adı verilen sert aynı zamanda hafif bir malzemeden yaptırdım.Dışınada sürtünmeyi arttırmak ve yer tutuşunu sağlamak için paket lastiklerinden taktım ve gayet iyi oldu. Normalde bahsedilen çaplarda teker bulmak oyuncaklardan da olsa zor dur..Bir diğer alternatif de, bilgisayar cd lerini ufak boyutta mini disc adı verilen cdlerle mini sumo robota uygun teker yapılabilir.5 tane ufak cd yi birbirine yapıştırarak kalın ve geniş çaplı bir tekerlek elde edebiliriz ve sürtünmesi yüksek olacak bir madde ile de dışını kapladığımızda istediğimiz şekilide olur.5 tane cd yi birbirine yapıştırdıkdan sora dış yüzeyine ambalaj lastiklerinden 10 tane koyarak yapıstırıp yapabiliriz bir diğer alternatif ise yapıştırılmış 5 cd nin dış kısmına radyoların içinden çıkan kalın lastiklerden 2 tane takarak yapmaktır.

Robotta IR modüllerin yerleride önemlidir. Eğer karşısındaki cismi algılayamayacak şekilde koyulmuş ise robot çoğu zaman algoritmadan bağımsız işler yapar . Genellikle robotun ön kısmında sağ ve sol tarafına konur. Mantık çizgi izleyendeki gibidir.Sol sensör algılarsa sola sağ sensör algılarsa robot sağa yönelir böylece rakibinin üstüne gidip dohyo dışına atmayı sağlar..


 

Robotun Algoritması ve Programlanması :

Algoritma belirlenirken dogruluk tablosu hazırlanır ve dogruluk tablosundaki (high/low) değerlere göre algoritma çıkartılır.Dogruluk tablosunu oluşturmak için algılayıcılar(girişler)  ve eyleyiciler(çıkışlar) 2 bölüme ayrılır.Doğruluk tablosu aşağıda verilmiştir.

 

PBASIC Dilinde Program ;

Program Pic Basic Proda yazılıp MicroCodeStudio’da derlenmiştir.

38 khz pulsleri üretmek için kullanılan mikrokontrölör programı :

@ DEVICE pic16F628
@ DEVICE pic16F628, MCLR_OFF
@ DEVICE pic16F628, INTRC_OSC_NOCLKOUT

CMCON = 7 ' PortA = digital I/O
VRCON = 0 ' A/D Voltage reference disabled
TRISB = %11110000 ' B.3=PWM,B.0,B.1,B.2 blink LEDs
PR2 = 26 ' Set PWM for approximately 38KHz
CCPR1L = 13 ' Set PWM Duty-Cycle to 50%
CCP1CON = %00001100 ' Mode select = PWM
T2CON = %00000100 ' Timer2 ON + 1:1 prescale

Robotun Mikrokontrölör Programı:


@ DEVICE pic16F628, MCLR_OFF
@ DEVICE pic16F628, INTRC_OSC_NOCLKOUT

say var byte

cmcon=7
vrcon=0

input porta.5
input porta.4
input porta.2
input porta.3

output portb.0
output portb.1
output portb.2
output portb.3
output portb.5

symbol solm=porta.5
symbol sagm=porta.4
symbol solc=porta.2
symbol sagc=porta.3
symbol soli=portb.0
symbol solg=portb.1
symbol sagi=portb.2
symbol sagg=portb.3
symbol buz=portb.5

bekleme:
for say = 1 to53
high buz
low portb.0
low portb.1
low portb.2
low portb.3
pause 500
low buz
low portb.1
low portb.2
low portb.3
low portb.5
pause 500
next

''---------------------------'
basla:
if solm=1 and sagm=1 and solc=1 and sagc=1 then gosub ileri
if solm=1 and sagm=1 and solc=1 and sagc=0 then gosub solgerigel
if solm=1 and sagm=1 and solc=0 and sagc=1 then gosub saggerigel
if solm=1 and sagm=1 and solc=0 and sagc=0 then gosub solgerigel
if solm=1 and sagm=0 and solc=1 and sagc=1 then gosub sagagit
if solm=1 and sagm=0 and solc=1 and sagc=0 then gosub sagagit
if solm=1 and sagm=0 and solc=0 and sagc=0 then gosub sagagit
'if solm=1 and sagm=0 and solc=0 and sagc=0 then yasak durum
if solm=0 and sagm=1 and solc=1 and sagc=1 then gosub solagit
if solm=0 and sagm=1 and solc=1 and sagc=0 then gosub solagit
if solm=0 and sagm=1 and solc=0 and sagc=1 then gosub solagit
'if solm=0 and sagm=1 and solc=0 and sagc=0 then yasak durum
if solm=0 and sagm=0 and solc=1 and sagc=1 then gosub ileri
if solm=0 and sagm=0 and solc=1 and sagc=0 then gosub ileri
if solm=0 and sagm=0 and solc=0 and sagc=1 then gosub ileri
'if solm=0 and sagm=0 and solc=0 and sagc=0 then yasak durum
goto basla
end

ileri:
solg=0
sagg=0
soli=1
sagi=1
goto basla
end

saggerigel:
soli=0
sagi=0
solg=0
sagg=1
goto basla
end

solgerigel:
soli=0
sagi=0
sagg=0
solg=1
goto basla
end

solagit:
soli=0
solg=0
sagg=0
sagi=1
goto basla
end

sagagit:
sagi=0
solg=0
sagg=0
soli=1
goto basla
end

Robotun Resimleri ..

  

   Mekaro X4 ün yan görünümü                Mekaro X4 ün üst görünümü

                  
       Site Tasarımı : Onur YAVUZ
2005-2006 © www.electrobotic.org