Robotlarim Menu


sumo robot dohyodaDerin darbe
Derin Darbe
Projeyi geliştirirken en çok japon sumo robotlarının videolarını izledim nasıl bu kadar hızlı olabildiklerini, keskin dönüşleri nasıl gerçekleştirdiklerini düşündüm.  Ve Derin Darbe doğdu :) Önünde 2 Ultrasonik sensörü yanlarda 1'er kızlötesi sensörü ve 2 kontrast sensörü 6 motoru ve 12 piliyle karşınızda Derin Darbe;)

robot planı
Gövde
Robotun gövdesi 6 motoru devreşeri ve 12 pili alabilecek kadar geniş pratik kullanımlı ve en uygun şekilde olmalıydı. İlk başlarda kartondan ve forex'ten gövde tasarımları yaptım. Robotun yükskeliğinin 6 cm olmasını düşünmüştüm ama sonra 8 cm'in daha iyi olacağını düşündüm. Gövde de ince aliminyum kullanmadım. Robotun şasisinde ön taraftaki eğik düzlem dışında 2mm'lik demir plaka kullanıldı.

Sumo robot lazer kesim sonrasisumo govde ilk hali
Gövde  Aluçlar Makina şirketinin yardımlarıyla yapıldı. Yoğun işleri arasında bana ayırdıkları zaman ve yardımları için teşekkür ederim :) 2mm demir (sac) plaka lazer kesimle sol resimdeki gibi kesildi. Sonra büküm işlemi ve kaynaktan sonra çok güzel bir şasi oldu.
Gövde üst kapak ve ana gövde olmak üzere 2 parçadan oluşuyor. ön taraftaki eğik düzlem sonradan kaynakla ana gövdeye birleştirildi.
sumo robotun devreleri
Robotu hafifletmek için üstten ve alttan bir miktar delik deldim.

Sumo robot ustten

Bir sumorobotun en önemli kısımlarından biri eğik düzlemidir. Çünkü eğik düzlem sayesinde derindarbe, rakip robotun altına girebilir böylece ittirmesi için gereken kuvvet çok daha azalır. Gövde yapılırken eğik düzlemin zemine olabildiğinde yakın olmasını istemiştim. Ama proje bittiğinde öndeki eğik düzlem yerden 1-2 mm yüksekte kaldı.  Bende robotun ön tarafına çok ince yay çeliği plakası (harç karıştırmka için kullanılan malaların levhalarından) yapıştırdım.

Pil Yuvaları
Robot toplam 12 pille çalışıyor. Daha önceki sumo projemde olduğu gibi batarya yaptırmak istemedim. 12 pili robota bağlamak için 3 tane kapaklı pil yuvası kullandım. Pil yuvalarının ikisini kapağın alt tarafına epoksi ile yapıştırdım. Diğer pil yuvasıysa motorların arasına dik olarak giriyor. Kapaktaki 2 pil yuvası arasında güç anahtarı bulunuyor.

 Voltaj Regülatörü
Robotta tek güç kaynağı ve tek bir voltaj regülatörü kullandım. Herhangi bir elektriksel gürültü oluşmadı. 14,4 V'u 5V'a indirmek için LM2937 (7805 benzeri bir entegre) kullandım. Voltaj regülatörü çok ısınıyordu bende ram soğutucu aluminyum heatsinklerden kullandım. Soğutucu aliminyum yüksek olduğundan 7805 entegresinin sırtına taktığımda kapağın kapanmasını engelliyordu bende ön tarafa taktım.

Faulhaber Motorlar

faulhaber dişli kutulu motorlar ve tekerlek
Sumo robotumda Alman malı Faulhaber marka motorları kullandım. Motorlar yüksüz çalışmada yalnızca 9MA çekiyorlar. Çünkü bu motorların üretim teknolojileri diğer sıradan motorlara göre farklı. Bu motorlar coreless DC motor olarak geçiyor yani motorların merkezlerinde bobinin sarıldığı demir bir çekirdek yok. Motorun merkezinde neodmiyum-alnico mıknatıs var. Bobin bu mıknatısın dış kısmında duruyor. Standart motorlardaysa bobin merkezdedir ve mıknatıs da bobinin çevresindedir. Ve bu motorun diğer bir üstün tarafı içindeki armatürün (bobini) 5 kutuplu olmasıdır. Normal çin motorları 3 kutupludur. Kutup sayısı arttıkça motorun hassasiyeti artar. 3 kutuplu bir motorun içinde ayrı 6 bobin (3'ün 2'li permütasyonları) vardır. 5 kutuplu bir motorda 20 bobin (5'in 2 'li permütasyonları) vardır. Bu da 3 kattan  fazla hassasiyet demektir ve buna ek olarak motor hızla döndüğünden her  bobinde daha az süre kalır az akım çekmesinde bu da bir etkendir.

Motorlarla ilgili Pdf'ler:  Motor Kısmı // Dişli Kutusu Kısmı

Faulhaber Motorların Teknik Özellikleri
Motor Model No 2233F012S
Motor gücü> 3,66W
ÇAlışma Voltajı 12V
Yüksüz Akımı 9mA !!!
Rpm (devir/dakika) 495 rpm @ 12V
Tork 40 oz/inç
Şaft kesit çapı 4 mm
Motor Çapı 24 mm
Motor uzunluğu (şaft dahil) 73 mm
Dişli Kutusu Model No 22/2K (bilya destekli)
Düşürme Oranı 17,2 : 1
Dişli Kutusu Verimliliği %81!! (eski sumo robotum bariyerdeki dişli kusu verimi %57 )
Motor Ağırlığı (Dişli kutusuyla birlikte) 133 gr

Her motor gövdeye 3 vidayla bağlanıyor. Sağ üst köşedeki ilk motorun vidaları gevşemiş olduğundan ekseni kaymış gözüküyor. En altta gözüken devreyse arka kontrast sensörü devresi.

Sorunlu Motorlar
Motorları alırken çalışan 2 motor, eve geldiğimde çalışmadı. yani 6 motorumun 2'sinde arıza vardı. Motorlara elektrik verdiğimde bir yöne rahatça dönebilirken elektriği terslediğimde motorlar dönmüyor kısa devre oluyorlardı. Bu sorunun nedeni motorların fırçalarının aşınmış olmasıydı. Motorları aldığım elektronikçide yedek motor kalmamıştı. Ben de bir kaç denemeden sonra motor fırçalarını kendim yaptım. Tabi fabrika çıkışlı gibi olmadı ama çalışıyor :)

Motor Kontrol

Motorlar çok düşük akım çektiklerindne basit bir l293 devresi kullandım. L293'ün enable giriş uçlarını da (1 ve 9 numaralı pinler)  MCU'ya (PIC 16F628A) bağladım. Enable girişlerine pwm uygulanınca motorun hızı ayarlanabilir. Öndeki sag ve sol kızılötesi sensörlerinden rakip bilgisi geldiğinde bir motoru durdurmuyorum. Sadece hızını düşürüyorum.

Tekerlekler
Tekerleklerin dışmalzemsi olan pembe lastikleri karaköyde bir plastik conta satıcısından aldım. Bulabildiğin en yumuşak lastiklerdi. Genllikle hepsi çok sert siyah lastikelrdi. PEmbe olmasa belki daha iyi olurdu ama... :) Belkide robotun ismini Pembe tekerlekli şirin robot olarak değiştirmeliyim :) Tekerleklerin merkezindeki demir bloklar torna makinasında yapıldı. Motor şaftını (milini) tutmak için demir blokların bir tarafından merkeze doğru M4'lük setuskul (başsız) vida geçiyor. Her bir tekerin 78 gr ağırlığı var. ve 6 adet tekerlek toplam 468 gr yapıyor. Tekerleklerin sürtünmesindne çok memnun değilim ama maalesef bulabildiğim en uygun tekerlekler. Tekerlekler 4cm çaplı.

Robotun Hızı
12V'ta 495 rpm, 15V ta 618 devir dakika , saniyede yaklaşık 10 devir
Teker çapı : 4cm
Teker çevresi = 4 x pi = 12,5 cm
Hız = teker çapı x saniyedeki devir  = 12,5 x 10 125 cm/sn
Robotun formüğllere göre hızı yaklaşık 125cm/sn ama  bu değer motorlar yüksüzken sağlanabilecek bir değer. Robotun gerçek hızıysa saniyede 80 cm'e yakın. Çünkü her bir motora 500 gr ağırlık düşüyor ve dohyonun (sumo ringi) çapı robotun maksimum hıza ulaşmasına engel oluyor. Ekleyeceğim her ek pil robota bir miktar daha hız ve güç olarak geri döneceğinden gelecek yarışmalara kadar 12 pil yerine 14 ya da 16 pille robotu çalıştırmayı planlıyorum. Tabi daha yüksek voltaj motorların yanmasına neden olabilir. Uygulamadan önce bazı hesaplamalar yapmak lazım :)

Sensörler
Robotun rakip robotu bulması için ve sumo ringinden (dohyodan) çıkmaması için bazı sensörler kullanması gerekir.

Kontrast Sensörleri
Kontrast sensörlerinde daha önceki sumo robot projem Bariyerdeki gibi QRD1114 optoküplör sensörü kullandım.

Robotumun ilk kez katıldığı, MEB RObotik yarışmasında robot çok hızlı olduğundna sumo ringinde kalamıyor. Ringten düşüyordu. Çünkü kontrast sensörleri ve tekerlekler arasındaki uzaklık çok azdı. Bu nedenle tepki süresi robotun hızına göre yavaş kalıyordu. Odtü robot günlerine kadar eski delikten 2 cm önde yeni bir delik açtım.

Kızılötesi Rakip Algılama Sensörleri
Sharp GP2Y0D340K
Rakip algılama sensörlerinde önde 2 adet Sharp GP2Y0D340K  adlı kızılötesi sensör kullandım. Bu sensörler standart haldeyken 40cm'e kadar engel algılama yapabiliyorlar. İçindeki odaklayıcı merceğin açısını değiştirilerek bu değer 60 cm'e kadar çıkartabiliyor. Kullanımları oldukça basit alttaki devreyi yaptım kondansatör değeir 1uF ile 10uF arasında olabilir. Direnç değriyse 1ohm ile 10 ohm arasında olabilir. Direnç değeri 1 ohm iken sensör kızılötesi ışın yollarken 300ma akım çekiyor; direnç değeri 2 ohm olduğundaysa sensör 146ma akım çekiyor. Ama direnç değeri 1 ohmken sensör maksimum performansa ulaşıyor. Direncin daha büyük değerlerinde sensörün görüş mesafesi düşüyor.  Bu akım değerleri mikrosaniyeler içinde oluştuğundan voltaj regülatörü pek etkilenmiyor. Sensörün standart çalışma akım değeriyse 30 ma.

Robotun birde arka tarafında 2 adet normal kızılötesi sensör var. Bunalr kendi yaptığım sensörler alıcı olarak PNA4602M adlı bir kumanda gözü (IR dedektör) kullanıyorum. Verici devresinde 38 khz üretmek için lm555 devresi kullandım.

Ping))) Ultrasonik Sensör (US)
ping parallax ultrasonik sensor
Rakibi algılamak için robotun ön tarafında kullandığım ultrasonik sensörler Parallax firmasının ürettiği Ping adlı sensörlerdir. Sensör modüllerinden artı eksi ve sinyal kabloları olmak üzere 3 kablo çıkıyor. Robotumun Ultrasonik sensörülü fotografı sayfanın aşağısındadır.
ping devresi
Ultrasonik Sensör Ping))) ile ilgili Pdf:  Ping Ver1.3

Ultrasonik Sensörlerin Teknik Özelikleri

 Sensör Menzili

 2cm-3m !!

 Besleme Voltajı

 5 VDC

 Besleme Akımı

30 ma (35 ma max)

Sensör Frekansı

40 khz (200 mikrosaniyelik atımlarla)

Giriş Tetik  Özelliği

Pozitif TTL sinyal , 2 us ile 5 mikrosaniye arasında değişebilir.

Eko sinyali

Pozitif TTL sinyal ,115 us ile 18,5 milisaniye arasında değişebilir. MCU bu süreyi okuyarak uzaklık tayini yapıyor.

 Ebatlar

 22mm en x 46 mm boy x16 mm derinlik

Sensörün menzili 3 metre; bu mesafe bir sumo için gereğinden fazla bende programında 120 cm'ile sınrılandırdım. Sumo robotun programını sayfanın en altında görebilirsiniz. 
sumo robot sensorler
Robotun önünde 2 tane ping sensör kulanıyorum. Sensörleirn birinden bilgi geldiğinde diğerinden bilgi gelene kadar dönmesini programladım. Böylece rakibi ortalayarak ittiriyor.


2 ultrasonik sensör ve 3 Sharp gp340F ile sensör kartı robotun ön tarafında.


Robotun  Beyni
Robotta MCU olarak PIC 16F28A kullandım. İlk ürettiğim kartta 16F877A mcu'sunu kullanıyordum. Ama kartta bazı sorunlar çıktı ve bende kolaya kaçtım :) Planladığım amaçlar için aslında 16F628'in giriş çıkışları yetmiyor İleride beyin kısmını PIC 16F873 entegresiyle değiştireceğim.

 

 16F628

 16F873

16F877

Bacak sayısı

18

28

40

Giriş çıkış pinleri

16

22

33

Osilatör frekansı

4 mhz

20 mhz

20 mhz

Hafıza

2kb

8kb

8kb


Kullanılan pinler:

- 4 pin motor kontrol
- 4 pin Kontrast sensörleri
- 1 pin buzzer (ses çıkışı)
- 2 pin yan kızılötesi sensörleri
- 2 pin ön Ultrasonik sensörleri

Sumo Robot devreleriyle
İtüro Öncesi Derin Darbenin son hali; ağırlığını hafifletmek için sağ ve sol taraflarını da deldim. 284 gramlık demir kapağını 32 gramlık plastik kapakla değiştirdim. robot bitiğinde 2 kilo 775 gramdı Odtüye giderkenki ağırlğıysa 3 kilo 60 gram yeterince zayıflatmışım :) Ön taraftaki eğik düzlemin ebi rmetal plaka yapıştırdım böylece eğik düzlem neredeyse yere sıfır oldu. Ultrasonik sensörleri doğru bir şekilde programımda kullanamadığım için İTÜRO'da bazı sorunalrı çıktı. (rakibe dokunup, rakipten kaçmak gibi..:) Bende robotu geri çektim. Sayfanın altındaki program sumo için neredeyse doğru çalışan programdıır :) Hala bazı geliştirmeler yapmak gerekli.


Derin Darbe sumo robotun Test videosu

Videoyu izlemek için lütfen e-mailiniz ve adınızla kaydolunuz. Video anında açılacaktır.
E-mailiniz:
Adınız:

Odtü Robot Günlerinde ilk testler pilleri bitmek üzereyken tam şarjda daha da hızlı ;)

Meb Robotik Yarışmasında kaybettiğim maç. Meb Robotik yarışmasında robotum 8 pille çalışıyordu ve de kontrast sensörleri tekerleğe çok yakın olduğundan keskin dönüşler yaptıramıyordum. Şimdiyse robotum 12 pille çalışıyor ve daha aktif ,tabi belki yine de Gazi Üniversitesinin Kasırga isimli robotuna yenilebilir :)

Sumo Robotun Programı
Program Picbasic'de yazılmıştır.

'Derin Darbe Avci Program
'RoBBot.oRg 
@ dEVICE pic16F628A
@ Device INTRC_OSC_NOCLKOUT
@ device MCLR_off
'a2 sagir
'a3 solir
CMCON = 7
x var word
y var word
t var word
p var word
z var byte
v var byte
'***********************
CMCON = 7
RawToCm         CON     2257                    ' 1 / 29.034 (with **)
IsHigh          CON     1                       ' for PULSOUT
IsLow           CON     0
Pingb7         var     portb.7
pinga1 var             porta.1
tetikzaman   con   1
rawDist         VAR     Word                    ' raw measurement
cmsag              VAR     Word
cmsol              VAR     Word
'***********************
output 0  ' Motorlar
output 1
output 2
output 3
output 4
'***********************
input porta.2 'Kizilotesi
input porta.3
'***********************
input porta.6  'kontrast
input porta.7
'***********************
sayim:
for x = 1 to 5
high portb.4
low portb.0
low portb.1
low portb.2
low portb.3
pause 500
low portb.4
low portb.0
low portb.1
low portb.2
low portb.3
pause 500
next
'***********************
basla:
sonarsol:
GOSUB Get_Sonarsol                            ' get sensor value
cmsol = rawDist ** RawToCm

sonarsag:
GOSUB Get_Sonarsag                            ' get sensor value
cmsag = rawDist ** RawToCm

anadongu:
if cmsag<60 And cmsol<60 then ileri
if cmsag<60 And cmsol>60 then sagus
if cmsag>60 And cmsol<60 then solus
if porta.6 = 1 and porta.7 = 1 then geri
if porta.6 = 1 and porta.7= 0 then solkon
if porta.7 = 1 and porta.6 = 0 then sagkon
if porta.2 = 1 and porta.3= 0 then solir
if porta.3 = 1 and porta.2 = 0 then sagir
low portb.0
high 1
low portb.2
High 3                  
goto basla
'***********************
ileri:
low portb.0
high 1
low portb.2
High 3
goto basla
'***********************
geri:
high portb.0
high portb.1
high portb.2
high portb.3
pause 300
for y = 1 to 50
low portb.0
high portb.1
high portb.2
high portb.3
pause 10
next
goto basla
'***********************
solkon:
high portb.0
high portb.1
high portb.2
high portb.3
pause 300
for t= 1 to 20
if porta.2=0 and porta.3=1 then sagir
if porta.2=1 and porta.3=0 then solir
high portb.0
high portb.1
low portb.2
high portb.3
pause 10
next
goto basla
'***********************
sagkon:
high portb.0
high portb.1
high portb.2
high portb.3
pause 300
for p = 1 to 20
if porta.2=0 and porta.3=1 then sagir
if porta.2=1 and porta.3=0 then solir
low portb.0
high portb.1
high portb.2
high portb.3
pause 10
next
goto basla
'***********************
solir:
low  portb.0
high portb.1
high portb.2
high portb.3
goto basla
'***********************
sagir:
high portb.0
high portb.1
low  portb.2
high portb.3
goto basla
'***********************
Get_Sonarsag:
  Pingb7 = IsLow                                  ' make trigger 0-1-0
  PULSOUT Pingb7, tetikzaman
  PULSIN  Pingb7, IsHigh, rawDist                 ' measure echo pulse
  rawdist = rawdist * 5                    ' convert to uS
  pause 1                        ' remove return trip
  RETURN
'***********************
Get_Sonarsol:
  Pinga1 = IsLow                                  ' make trigger 0-1-0
  PULSOUT Pinga1, tetikzaman                      ' activate sensor
  PULSIN  Pinga1, IsHigh, rawDist                 ' measure echo pulse
  rawdist = rawdist * 5                  
  pause 1                       ' remove return trip
  RETURN
'***********************
Sagus:
high portb.0
high portb.1
low  portb.2
high portb.3
Goto basla
'***********************
solus:
low  portb.0
high portb.1
high portb.2
high portb.3
goto basla
'***********************

Ultrasonik Sensörün Test Programı
Ultrasonik sensörlerin programını basiz stamp 2 için ayzılmış kodlardan değiştirdim. Basic stamp 2 ile pic16F628 arasında peryot farkı var bu nedenle aynı kodlar pic mcu'da çalışmıyor. Sensör b portunun 7. pinine bağlıdır. ve Portb.4'e bağlı bir buzzer var. Programda algılanan mesafelere göre buzzerdan farklı frekanslarda sesler çıkıyor.

UltraDemo
'RoBBot.oRg 
@ dEVICE pic16F628A
@ Device INTRC_OSC_NOCLKOUT
@ device MCLR_off

CMCON = 7
RawToCm         CON     2257                    ' 1 / 29.034 (with **)

IsHigh          CON     1                       ' for PULSOUT
IsLow           CON     0
Ping         var     portb.7
tetikzaman   con     1
rawDist         VAR     Word                   
cm              VAR     Word

basla:
  GOSUB Get_Sonar                            ' get sensor value
  cm = rawDist ** RawToCm                     ' convert to centimeters
  pause 60
  if cm>140 then Muzik1
  if cm < 140 and cm> 20 then  muzik2
  if cm<20 then muzik3
  goto basla

Get_Sonar:
  Ping = IsLow                                  ' make trigger 0-1-0
  PULSOUT Ping, tetikzaman                  
  PULSIN  Ping, IsHigh, rawDist           ' measure echo pulse
  rawdist = rawdist * 5                 
  pause 1                         
  RETURN

Muzik1:
FREQOUT PORTB.4, 200,8000             ' 8khz'lik frekansta 200 milisaniyelik sinyal
goto basla

Muzik2:
FREQOUT PORTB.4, 200,4000            ' 4khz'lik frekansta 200 milisaniyelik sinyal

goto basla

Muzik3:
FREQOUT PORTB.4, 200,500              ' 500hz'lik frekansta 200 milisaniyelik sinyal

goto basla

Diğer Linkler:
Cellat Sumo Robotumu inceleyin!

-----------------------------------------------------------------------------------
Alttaki formu doldurarak 15 dakika içinde 24 sayfalık, detaylı "Sumo Robot Yapımının 7 Sırrı" E-kitabına sahip olabilirsiniz:) Üyelere düzenli aralıklarla proje dosyaları, bilgiler, teknikler ve Sumo Robot Yapımının 7 Sırrı E-Kitabi download linki gönderilmektedir. Üye olmanızı tavsiye ederim.

*  Adınız:

*  E-mailiniz:

15 Dakika içinde
"Sumo Robot Yapımının
7 Sırrı" e-kitabı mailinize
gönderilecektir.
 



İletişim | ROBOTUS | ROBOTMASTER | Paylaş! 2004 - 2010© Fırat Dede
Robotik insanın kendine yakışanı giymesidir - Sitemizdeki tüm bilgilerin izin alınmadan herhangi bir forumda, blogda yayınlanması yasaktır.
Sumo Robot E-Kitabı isteyin!