Tornado! – İTÜRO 2012 Süpürge Robot Kategorisi Birincisi

Tornado! – İTÜRO 2012 Süpürge Robot Kategorisi Birincisi

Basit bir mekanik ve güçlü emiş gücü sayesinde 257 gr pirinç toplayarak derece alan süpürge robotumun tüm bilgilerini bu sayfada bulabilirsiniz.

Robot, pek bir ön hazırlık olmadan İTÜRO öncesinde son iki günde ve gecesinde ortaya çıktı. Silikon yapıştırıcıyla yer yer sanat yaptım. Robotun tasarımında küçük oynamalarla mekanik olarak programladım.

Sayfanın devamında robotun yarışma videosu da yer alıyor.

Teknik Özellikler

  • İki Faulhaber Motor
  • Saniyede 60cm hız
  • 7 Cisim Sensörü (4 x MZ80, 1 x Pepperl Fuchs Sensör, 2 x Kedi Bıyığı)
  • Güç: 11,1V 2650Mah Li-Po
  • Ağırlık: 929 Gr
  • Boyutlar: 22cm

Cisim Sensörleri

Amaç engellere çarpmadan temizlemek olduğu için bu kategorinin robotları genellikle bol sensörlü oluyorlar. Ben de bu amaçla 7 cisim sensörü kullandım.

MZ80 Sensörler

4 Adet MZ80 sensör kullandım bu sensörlerin algılama menzillerini arkalarındaki trimpot ile minimum’a kıstım. Yine de beyaz duvarları fazla uzaktan algıladıkları için robotun gerisine doğru yerleştirdim. Sensörler 5V’da doğrudan çalışıyor.

Pepperl Fuchs ML100-8-1000-RT/103/115 Cisimden yansımalı Sensör

Bu sensör çok hızlı tepki süreli ve elimdeki en kaliteli sensörlerden minimuma kısma da menzili daha da düşürebilidğim için orta sensör olarak bu modeli kullandım. Sensör 10-30VDC gerilim aralığında çalışmak için üretilmiş. Bu nedenle Li-Po’dan (12,6V)  gerilimi alıyor ve çıkışta da 11-12V gibi bir voltaj çıkarıyor. Pic’e bağlamak için iki dirençle gerilim bölücü yapıp bağladım.

Kedi Bıyıkları

Robotun en basit ama en etkin sensörleri. Robotun köşelerini koruyor. Hangi sensörden bilgi geliyorsa karşı tarafın motoru durup diğer motor 100milisaniye ileri gidiyor.

Kedi bıyıklarının yapımında switch kullanmadım çünkü yeterince hassas değiller. Oysa kendi yaptığım sensörlerde iki iletken arasındaki boşluk 1mm’den az ve çok hassas. En küçük bir darbede iletim gerçekleşiyor.

İki iletken birbirine değince devre tamamlanıyor ve Pic’in bacaklarına 0V gidiyor. (Açık konumdayken 5V gidecek şekilde pull-up direnci kullandım).

Kedi bıyıkları yarışma sırasında birkaç yerde geriye doğru bükülerek kenarları algılamayıp robotun duvara sürtünmesine neden oldu. Biraz daha geliştirmek gerekiyor.

Devreler

Robotta ana kontrol kartı olarak Rokart’ı kulandım. Fırçasız motor ESC’sini (hız kontrolör) sürmek içinse basit bir pic16F628A devresi kullandım. Devrelerin ve sensörlerin birbirine bağlanmasında 1071 pinli kablolar kullandım.

Rokart

Rokart birçok robot projesinde kullandığım çok basit bir robot kartı. Süpürge Robotunda kullanım için de çok uygundu. Kendi içinde voltaj regülatörlü ve L293D tabalı motor sürücüsünü kullandım.

Kullandığım Pinler:

  • 4 Pin MZ80
  • 1 Pin Pepperl Fuchs Sensör
  • 2 Pin Kedi Bıyığı
  • 4 Pin Motor Yönleri (İki Motor her motor için iki pin)
  • 1 Pin Motor Hız kontrolü
  • 1 Pin Buzzer
Toplam 13 giriş çıkış pini (I/O) kullandım. Robotta resetlerden kaçınmak amacıyla 1000uF değerlerinde birkaç kondansatörü de 5V hattına paralel bağladım.

Süpürge Robotun Vakum Sistemi

Bu amaçla evlerde kullandığımız süpürgelerdeki vakum sistemine benzer bir tasarım gerçekleştirdim. Bu fikri daha önceden uygulamış Murat Kul arkadaşımdan da yardım aldım. Vakum sistemi aşağıdaki bölümlerden oluşuyor:

Fırçasız Motor: Sistemin kalbinde 30.000 Rpm’e çıkan bir motor kullandım. Yarışma sırasındaysa gücü %50 yani 15.000 Rpm’de çalıştırdım. Motor ducted fanlarda (Türbinler) kullanım için özel üretilmiş bir model.

ESC (Electronic Speed Controller) : Fırçasız motorları sürmek için kullanılan kontrol devresi. Bu hazır modül 40 amper devamlı çıkış verebiliyor. Motorsa devamlı 10 amper akım çekebiliyor. Sınırlar dahilinde. ESC’nin devamlı soğuması için fan çıkışının üstüne yerleştirdim. Böylece robot çalışırken çıkan hava akımı devamlı ESC’yi soğutuyor.

Pic Devresi: 16F628A ve bir anahtardan (başlatma komutu için) oluşuyor. Yazdığım program ESC’nin bağlandığı uzaktan kumanda alıcısının çıkardığı PWM sinyalini taklit ediyor.

Ducted Fan: Bu türbin fanı sistemi fırçasız motorun yüksek hızıyla dönerek vakum gücünü oluşturuyor. 64mm çaplı bir ducted fan kullandım.

Batarya

Robotun bataryası Turnigy marka 3 hücreli lityum polimer (Li-Po) batarya. Pilin 2650 mah akım değeri mevcut. Pilden devamlı 25 kat (25C) anlık olaraksa 50 kat (50C) akım çekilebiliyor. Yani bataryadan 2.65 x 25 = 66,25 Amper akım çekebiliyorum. Anlık olarak değeriyse 132,5 Amper. Tabi sistem bu kadar akıma ihtiyaç duymuyor.

Mekanik

Robotta çok ayrıntılı bir mekanik yok. Yine de birkaç küçük püf nokta var. İlk olarak ağırlık merkezini ve ağırlık dağılımını dengeli bir şekilde yaptım. Robotun tekerlekleri halıfleks zemini iyi tutabilen tekerleklerdi. Ön tarafta çekiş vakumunun yaratacağı kuvvet etkisini pili arkaya koyarak dengeledim. Pirinç toplamada ağırlığın da etkisi olduğu için robotu olabilidğince hafif tasarladım. (Hafiflik puanlamada avantaj sağlıyor).

Forex ve Pleksiglas Katmanlar

Robotun mekaniğinde Robotus’ta da satışını yaptığım iki sekizgen gövde ve bolca forex levha kullandım. Boyutu küçültmek için sekizgen gövdenin ön kısımlarını kestim ve iki gövdeyi forex pvc plakalarla birleştirdim. Sızdırmazlık için de bolca sıcak silikonla kenarları kapladık (Utku İlkimen’le birlikte.) Üst pleksiglas katmanını ise elektrikli kıl testeresi ile merkezde yuvarlak kestim.

Faulhaber Dişli Kutulu Motorlar

Robot iki adet Faulhaber Dc motor kullanıyor. Motorların 6V’da 120 Rpm’leri var. Ben 12,6V’da çalıştırdım. Çalışma süresince herhangi bir problem oluşmadı.  Sayfa sonunda yer alan videodan da anlaşılacağı gibi motorların tepki süreleri çok iyi. Motorlar çok çok az (20ma) akım çektikleri için devreyi zorlayan bir problem de olmadı.

 

Ana Program

Ana Program oldukça basit, amaç sadece engellere çarpmadan robotun dolaşması. Herhangi bir haritalama yöntemi kullanmadım çünkü 4 dakika robotun tüm parkuru da dolaşabilmesi için yeterince uzun bir süre. Robotun programı picbasic dilinde yazıldı.

[togglebox state=”closed” head=”Program için tıklayınız” ]

@ dEVICE pic16F628A, INTRC_OSC_NOCLKOUT
@ device MCLR_off
@ Device WDT_off
@ Device Bod_off
‘Robotus.Net & Robots101.com
‘************
CMCON = 7
x var word
‘************
DEFINE CCP1_REG PORTB
DEFINE CCP1_BIT 1
OPTION_REG.7 = 0
‘********************
output porta.2
output portb.3
input portb.0
input porta.0
input porta.1
input porta.3
input porta.5
input portb.1
input portb.2
input portb.4
input portb.5
‘********************
Symbol Buzzer=Porta.2

low portb.6
low portb.7
low porta.6
low porta.7
‘*******
FREQOUT buzzer , 300, 90
‘********************
bekleme:
for x = 1 to 12000
if portb.5=0 then
high 7
low 6
high porta.6
low porta.7
FREQOUT buzzer , 300, 3000
goto basla
endif
pause 1
next
basla:

low buzzer

if portb.5=0 then
low portb.7
low portb.6
low porta.7
low porta.6
pause 450
goto bekleme
endif
if portb.4=0 and portb.0=0 then Onengel

if portb.4=0 then ensol
if portb.2=0 then sol
if portb.0=0 then ensag
if porta.5=0 then sag
if porta.3=1 then orta
if porta.1=0 then sagduvar
if porta.0=0 then solduvar

hpwm 1, 250, 5000
high 7
low 6
high porta.7
low porta.6
goto basla

‘************************

orta:
hpwm 1, 240, 3000
low portb.7
high portb.6
low porta.7
high porta.6
FREQOUT buzzer , 100, 50

low portb.7
high portb.6
high porta.7
low porta.6
pause 400
goto basla

onengel:
hpwm 1, 253, 3000
low portb.7
high portb.6
low porta.7
high porta.6
FREQOUT buzzer , 100, 1000

low portb.7
high portb.6
high porta.7
low porta.6
pause 600
goto basla

sag:
hpwm 1, 178, 3000
low portb.7
high portb.6
low porta.7
high porta.6
pause 100

low portb.7
high portb.6
high porta.7
low porta.6
pause 300
goto basla

ensag:
hpwm 1, 178, 3000
low portb.7
high portb.6
low porta.7
high porta.6
FREQOUT buzzer , 100, 100

low portb.7
high portb.6
high porta.7
low porta.6
pause 100

low portb.7
low portb.6
high porta.7
low porta.6
pause 100
goto basla
sol:
hpwm 1, 178, 3000
low portb.7
high portb.6
low porta.7
high porta.6
pause 100
‘*************
high portb.7
low portb.6
low porta.7
high porta.6
pause 200
goto basla

ensol:
hpwm 1, 178, 3000
low portb.7
high portb.6
low porta.7
high porta.6
pause 100
‘*************
high portb.7
low portb.6
low porta.7
high porta.6
pause 100
high portb.7
low portb.6
low porta.7
low porta.6
pause 100
goto basla

ileri:
hpwm 1, 255, 3000
high portb.7
low portb.6
high porta.7
low porta.6
goto basla

solduvar:
high portb.7
low portb.6
low porta.7
low porta.6
pause 100
goto basla

sagduvar:
low portb.7
low portb.6
high porta.7
low porta.6
pause 100
goto basla
end

[/togglebox]

 

ESC Sürme Programı:

Bu kısımda Pic16F628A devresi 1ms yüksek 18ms düşük olacak şekilde özel bir pwm sinyali (RC Servo motor sürmede kullanılan bir sinyal) çıkarıyor. Anahtarı açtığımda ise sinyal kademeli olarak 1,5ms yüksek 18ms düşük olacak şekilde genliğini arttırıyor. 1,5ms Fırçasız motoru %50 hızda çalıştırıyor.

[togglebox state=”closed” head=”Program için tıklayınız” ]

@ dEVICE pic16F628A, INTRC_OSC_NOCLKOUT
@ device MCLR_off
@ Device WDT_off
@ Device Bod_off
‘************
CMCON = 7

frekans var word
frekans = 100
TRISA = $FF

x var word
y var word
a var word

‘************
output portb.2 ‘ESC_Frekans_Cikis
input porta.0

‘****************************************

basla:

for x = 1 to 100
pulsout portb.2, frekans
pause 20
next

if porta.0 = 0 then fre_arttira

goto basla

‘****************************************

fre_arttira:

pause 1000

fre_arttir:
for x = 1 to 5
frekans = frekans + 10
low porta.2

for a= 1 to 20
pulsout portb.2, frekans
pause 20
next

next
goto surus

‘****************************************

surus:
pulsout portb.2, frekans
pause 20
goto surus

[/togglebox]

Video

Robotun yarışma videosunu aşağıda bulabilirsiniz. Videoda bolca çarpma göreceksiniz ve bir diğer problem de köşeler. Robot köşelerden etkin bir şekilde çıkmıyor. Köşelerden kaçmak için iki alternatif yöntem mevcut. Biri sayaç yapıp sağa ve sola dönüş sürelerini saydırmak, diğeri ise robotun sağa ve sola dönüş sürelerinde küçük farklar yaratmak (200ms sağ, 300 ms sol dönüş gibi). Yine de pek gerek kalmadı.

Bir diğer üzücü kısım da robotun bir türlü orta kısımdan geçememesi. Bu nedenle pirinçlerin büyük bir kısmı ortada kaldı. Eğer gelecek senelerde daha iyi, daha zorlayıcı projeler olacaksa mutlaka haritalama gibi bir yöntem kullanılabilir. Bu plan için de ya uzaklık okumalı ultrasonik sensörler ya da encoderlı boş tekerlekler kullanılabilir.

 

Sonuç

Ortaya evimde de kullanılabileceğim işe yarayan bir proje çıkardığım için mutluyum.  %50 güçte oluşan gürültü çok yüksek. Bu nedenle çekiş gücünü %10-20 mertebesine indirip kullanacağım. Umarım bu yazı size de ilerideki projelerinizde yardımcı olabilir.

 

 

 

Diğer Linkler

 

Eğer bu yazıdan memnun kaldıysanız lütfen yorum bırakın ya da solda yer alan sosyal paylaşım butonlarıyla bilgiyi yayın. :)
Profile photo of Fırat Dede
Robots101.com ve Robotus.Net Editörü.

Related Posts

İstanbul Aydın Üniversitesi Sumo Kategorisi Birincisi Kamçı

İstanbul Aydın Üniversitesi Sumo Kategorisi Birincisi Kamçı

Darpzen – MEB 2012 Birincisi Sumo Robot

Darpzen – MEB 2012 Birincisi Sumo Robot

Göktürk – Mini Sumo Robot Yapımı

Göktürk – Mini Sumo Robot Yapımı

Yorum Bırakın Yaşadığınızı Gösterin!