Genel

Sumo Robot Yapımı – [Videolu 50dk’da Detaylıca Öğren]

Merhaba arkadaşlar. Bu yazımızda “Sumo Robot nedir, nasıl yapılır?” konularından bahsedeceğiz.Sumo Robotu yaptıktan sonra çizgi izleyen robot yapmanızı da tavsiye ederiz 

Robot yapmaya devam edin, çizgi izleyen robot yapı !Ayrıca 3 boyutlu yazıcı ile robot kol yapımını da inceleyebilirsiniz Android kontrollü robot kol projesini hemen yapın !

Sumo Robot Nedir?

Sumo ismi Japonya’nın geleneksel güreşi olan Sumo güreşinden gelmektedir. Sumo Robot, otonom olarak başka bir robotla mücadele etme amacında olan robot tipidir. Müsabakalar “dohyo” adı verilen yuvarlak bir sahada gerçekleşir. Dohyo’nun dışına çıkan robot yarışmayı kaybeder.

Yarışmalarda boyut ve ağırlıklarına göre ayrılan kategoriler vardır :

Biz bu yazımızda bir sumo robot projesi yaparken nelere ihtiyaç duyulduğunu ve çalışma mantığını aktarmaya çalışacağız. Uygulamamızdaki robot herhangi bir yarışma için tasarlanmamış olup sadece öğretici içerik niteliğindedir.

Arduino ile Mini Sumo Robot Yapımı

Sumo Robot Malzemeleri

  • Arduino Nano
  • Zumo – Paletli Mini Sumo Robot Gövdesi
  • Zumo Blade – Mini Sumo Robot Kızağı
  • 2 x 6 V 500 RPM Redüktörlü Mikro DC Motor
  • L9110 Motor Sürücü Kartı
  • QTR-1A Kızılötesi Sensör Çifti
  • 2 x Sharp GP2Y0D815Z0F Kızılötesi Sensör 15 cm – PL-2465
  • Breadboard
  • Pil ( Alkalin piller robotu yaklaşık 15 dk. verimli şekilde çalıştıracaktır. Li-Po pil kullanmanız robotu daha uzun süre ve daha verimli çalıştıracaktır.)
  • 6’lı AA Pil Yuvası
  • Anahtar
  • Jumper
  • Alternatif Gövde

Sumo Robot Devresi

Sumo robotlarda gövde tasarımı çok önemlidir. Yarışmalarda kurallar gereği rakip robota ve sahaya zarar verecek parçalar kullanılamaz. Gövdede kullanılan malzemeler ve robottaki yerleri ağırlık merkezi açısından önem taşır. Robotun ağırlık merkezi doğru ayarlanmadığı takdirde sahadan savrulması kolay olacaktır. Bunun haricinde gövdeye uygun motor tercihi yapılmalıdır. Motor tercihi yaparken ihtiyacımız olan devir ve tork değerlerini belirleyip kullanılan gövdeye göre seçmek faydalı olacaktır.

Sensörler

Robotun algoritmayı kurabilmesi için sensörlere ihtiyacı vardır. Ne tür sensör kullanacağımız, kaç adet kullanacağımız bize kalmış. Malzeme listesinde de gördüğünüz üzere rakip robotu algılamak için 2 adet kızılötesi Sharp sensör kullandık. Biri robotun önüne, biri de sağına bakıyor. Böylelikle önde veya sağda bir cisim algılanmıyorsa robot kendi etrafında dönerek aramaya başlıyor. Siz kendi yaptığınız robotunuzda sensör sayısını yükseltebilir, sensörleri farklı şekilde yerleştirebilirsiniz.

Ayrıca robot Dohyo’nun siyah ve beyaz renklerden oluşan alanını algılayabilsin diye 2 adet çizgi sensörüne sahip. Dohyo’nun sınırlarında olan beyaz çizgiye geldiğinde sahanın dışına çıkmamak için bu sensörleri kullanmaktayız.

Gövde Montajı

Arduino Programı

#define OnSensor 3
#define SolSensor 2
#define SagCizgi 4
#define SolCizgi 5

#define MotorR1 7
#define MotorR2 6
#define MotorL1 9
#define MotorL2 8


void setup() {

  pinMode(OnSensor, INPUT);
  pinMode(SolSensor, INPUT);
  pinMode(SagCizgi, INPUT);
  pinMode(SolCizgi, INPUT);

  pinMode(MotorR1, OUTPUT);
  pinMode(MotorR2, OUTPUT);
  pinMode(MotorL1, OUTPUT);
  pinMode(MotorL2, OUTPUT);
  
  //Serial.begin(9600);

  while(digitalRead(OnSensor) == 1);
 
}

void loop() {

 
  if(digitalRead(SagCizgi) == 0 && digitalRead(SolCizgi) == 0){

    if(digitalRead(OnSensor) == 0 && digitalRead(SolSensor) == 1){
      ileri();
    }
    if(digitalRead(OnSensor) == 1 && digitalRead(SolSensor) == 0){
      sol();
    }
    if(digitalRead(OnSensor) == 1 && digitalRead(SolSensor) == 1){
      ileri();
    }
    
  }
  else{

    geri();
    delay(1000);
    sol();
    delay(400);
    
  }
  
}

void ileri(){
    digitalWrite(MotorR1, HIGH);
    digitalWrite(MotorR2, LOW);

    digitalWrite(MotorL1, HIGH);
    digitalWrite(MotorL2, LOW);
  
}

void geri(){
    digitalWrite(MotorR1, LOW);
    digitalWrite(MotorR2, HIGH);

    digitalWrite(MotorL1, LOW);
    digitalWrite(MotorL2, HIGH);
  
}

void sol(){
    digitalWrite(MotorR1, HIGH);
    digitalWrite(MotorR2, LOW);

    digitalWrite(MotorL1, LOW);
    digitalWrite(MotorL2, HIGH);
  
}

void sag(){
    digitalWrite(MotorR1, LOW);
    digitalWrite(MotorR2, HIGH);

    digitalWrite(MotorL1, HIGH);
    digitalWrite(MotorL2, LOW);
  
}

Evet arkadaşlar, böylelikle bir projemizi daha tamamlamış olduk. Bir başka projede görüşmek üzere.

Kaynak: maker.robotistan.com

Whatsapp İletişim