Derin Darbe Sumo Robot Projem
16 Eylül 2011 in Robotlar
Derin Darbe Sumo Robot
Eski bir proje.. Yeni canavar projeler karşısında pek şansı olmayacağı için 2009′da emekli ettim. Aşağıdaki yazı temel olarak 2008′de yazılmıştır.
Projeyi geliştirirken 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 Ping Ultrasonik sensörü yanlarda Sharp kızılötesi sensörleri ve 2 kontrast sensörü 6 Faulhaber motoru ve 12 piliyle karşınızda Derin Darbe;)
Gövde
Robotun gövdesi 6 motoru devreleri 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ı.


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 metal (sac) plaka lazer kesimle sol resimdeki gibi kesildi. Sonra büküm işlemi ve kaynaktan sonra sağlam bir şasi oldu. Ön eğik düzlemin hafif kavisiyle rakibi kaldırması daha kolay..
Gövde üst kapak ve ana gövde olmak üzere 2 parçadan oluşuyor. Ön taraftaki eğik düzlemi sonradan kaynakla ana gövdeye birleştirdim.
Robot bittiğinde yaklaşık 250 gr ağırlık fazlası vardı (Toplam kütle 3 kilogramı geçiyordu). Ve Derin Darbe Gravyer versiyonu doğdu..:) ,Robotun alt ve yan panellrinde bolca delik açtım.
Robotu hafifletmek için üstten ve alttan bir miktar delik deldim.

Bir sumo robotun en önemli kısımlarından biri eğik düzlemidir. Çünkü eğik düzlem sayesinde robotunuz, 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ırmak için kullanılan boyacısı malası levhalarından) yapıştırdım. Yapıştırma işlemi çok sağlam olmalıydı, metal epoksi kullandı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 Dc Motorlar
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.
Faulhaber motorların diğer bir üstün tarafı içindeki armatürün (bobini) 5 kutuplu olmasıdır. Normal orta kaliteli ç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 |
Sol Fotoğraf: 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. Büyütmek için fotoğraf üstüne tıklayınız.
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 :)
Bu projenin motorları çok kaliteli ve verimli olmasına rağmen günümüzdeki projelere kıyasla çok zayıf kalıyor.. Şöyle ki.. Bu projenin her bir motorunun gücü 3,66 watt, son projem Füzyon sumo robotun her bir motorunun gücüyse 150 watt! Arada 40 kat enerji farkı var. Bu 40 kat farka karşılık Derin darbe’de etkin olduğu 2007 – 2008 yıllarında oldukça iyi maçlar çıkardı.
Bu fotoğraf 2008 yada 2007′de yarışma öncesi son gün çekildi.
Pil sayısını 12′den daha da hızlandırmak için 16′ya çıkardım.
Ön tarafta iki adet Ping ultrasonik sensör yer alıyor.
Fotoğrafta tam gözükmese de yanlardaki minik pencerelerden de sharp GP2Y0D340K sensörler dışarı bakıyor.
Robotun Motor Kontrol Devresi
Motorlar çok düşük akım çektiklerinden basit bir l293 devresi kullandım (Her bir motor boşta 9ma zorlanmada birkaç 100ma çekiyor, L293 entegresinin her bir kanaldan verebileceği çıkışsa 600ma). 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ını ayarlayabiliyorum.
Tekerlekler
Tekerleklerin dış malzemsi olan pembe lastikleri karaköyde bir plastik conta satıcısından aldım. Bulabildiğin en yumuşak lastiklerdi. Genellikle 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 Π ≈ 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 civarı. Çü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önecek. 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 (2007) 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
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.

Kullanımları oldukça basit sağda yer alan 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.

Ping Ultrasonik sensörler
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. Bağlantı şeması için sağdaki grafiğe tıklayınız.
Ultrasonik Sensör Ping))) ile ilgili Pdf: Ping-ultrasonik-sensor.pdf
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.
MCU (Micro Controlling Unit – 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.
Kullandığım 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 Robotun Programı
Program Picbasic’de yazılmıştır.
Program için tıklayınız.
‘Derin Darbe Avci Program
‘Robots101.com
@ 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ı
Kodlar pic 16F628A’ya göre yazılmıştır. 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.
Ultrasonik test programı için tıklayınız
‘Robots101.com
@ 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
Robot Videoları
Daha çok video youtube kanalımda bulunmaktadır.



mustafa cinali said on 28 Aralık 2011
Sa kardeş çok güzel olmuş ama bi konu danışıcam sana mesaj atar mısın bana ?
Fırat Dede said on 31 Aralık 2011
Danışmak istediğiniz konular için sitemizde forum mevcut?:) http://www.robots101.com/forum linkinde konu açarsanız yardımcı olabilirim.