Mini Sumo Robot Nasıl Yapılır? Malzemeler ve Kodlar
Robot yarışmalarının en çekişmeli, en heyecanlı ve izleyici kitlesi en yüksek kategorisi şüphesiz **"Mini Sumo Robot"** müsabakalarıdır. Geleneksel Japon sumo güreşinden esinlenen bu sporda, iki otonom robot siyah zeminli ve beyaz çizgili dairesel bir arenada (Dohyo) karşı karşıya gelir. Amaç; rakip robotu algılayıp yüksek güçle iterek beyaz çizginin dışına atmaktır.
Peki resmi yarışma kurallarına uygun bir mini sumo robot nasıl yapılır? 10x10 cm sınırına nasıl sığdırılır? Hangi motor ve sensörler kullanılır ve rakibi ezici bir üstünlükle yenen taktiksel kodlar nasıl yazılır? Bu rehberde tüm sırları açıklıyoruz.
---
1. Resmi Mini Sumo Yarışma Kuralları
Resmi MEB ve uluslararası yarışmalarda geçerli olan katı kurallar:
---
2. Gerekli Malzemeler Listesi
Mini sumo projelerinde standart sarı motorlar veya basit şasiler kullanılmaz; metal gövde ve yüksek torklu bileşenler şarttır:
| Parça Adı | Önerilen Model | Neden Bu Parça? |
|---|---|---|
| **Mikrokontrolcü** | Arduino Nano | Küçük boyutuyla 10x10 cm şasiye kolay sığar |
| **Yüksek Torklu Motorlar** | 2x Coreless veya Pololu 6V 400-600 RPM Mikro Metal Motor | Küçük gövdede devasa tork ve hız üretir |
| **Silikon Yüksek Tutuşlu Tekerlek** | SLT20 veya Silikon Kaplı Alüminyum Jant | Dohyo zeminine yapışarak itilmeyi engeller |
| **Motor Sürücü** | TB6612FNG veya L298N Mini | Küçük boyutta yüksek anlık akım verir |
| **Rakip Algılama Sensörleri** | 2 veya 3 adet Dijital Mesafe Sensörü (Sharp / MZ80) | 40-80 cm menzilde rakibi şimşek hızında yakalar |
| **Zemin (Çizgi) Sensörleri** | 2 adet ML1 veya QTR-1A Kontrast Sensörü | Beyaz kenar çizgisini görüp düşmeyi engeller |
| **Gövde ve Ön Bıçak** | Metal / Lazer Kesim Çelik Bıçak | Rakibin altına girip tekerleklerini yerden kesmek için |
| **Pil** | 7.4V veya 11.1V 300-800 mAh Li-Po Pil | Küçük hacimde devasa patlama akımı (C değeri) |
---
3. Mini Sumo Robot Taktik Algoritması
Başarılı bir mini sumo robot şu taktiksel döngüyü işletir:
1. **5 Saniye Bekle:** Butona basıldıktan sonra kurallar gereği 5000 ms hareketsiz kal.
2. **Kenar Kontrolü (Öncelik 1):** Ön zemin sensörlerinden biri beyaz çizgiyi görürse anında geri çekil ve 120 derece dön (Kendi kendini arenadan atma!).
3. **Rakip Arama (Öncelik 2):** Rakip sensörleri boştaysa kendi ekseni etrafında hızlıca dönerek radar gibi rakibi tara.
4. **Saldırı Modu (Öncelik 3):** Rakip sensörlerinden biri tetiklendiğinde motorlara tam güç ver ve son hızla rakibin üzerine çullanarak onu Dohyo'dan dışarı it!
---
4. Tam ve Çalışan Arduino C++ Kodları
/*
* RobotKodla.com - Yarışma Robotları
* Proje: Mini Sumo Robot Temel Savaş Kodu
*/
// Sensör Pinleri
const int solZeminSensor = A0; // Beyaz çizgi sensörü
const int sagZeminSensor = A1;
const int solRakipSensor = 2; // Dijital MZ80 veya Sharp
const int sagRakipSensor = 3;
// Motor Pinleri (Örn: L298N / TB6612)
const int solIleri = 5;
const int solGeri = 6;
const int sagIleri = 9;
const int sagGeri = 10;
void setup() {
pinMode(solZeminSensor, INPUT);
pinMode(sagZeminSensor, INPUT);
pinMode(solRakipSensor, INPUT);
pinMode(sagRakipSensor, INPUT);
pinMode(solIleri, OUTPUT);
pinMode(solGeri, OUTPUT);
pinMode(sagIleri, OUTPUT);
pinMode(sagGeri, OUTPUT);
// RESMİ KURAL: 5 Saniye Başlama Gecikmesi
delay(5000);
}
void loop() {
// 1. GÜVENLİK: Çizgi Kontrolü (Düşmeme Refleksi)
if (analogRead(solZeminSensor) < 300 || analogRead(sagZeminSensor) < 300) {
// Beyaz kenar çizgisi görüldü! Acil geri kaç!
geriGit(255);
delay(250);
sagaDon(255);
delay(200);
return;
}
// 2. SALDIRI: Rakip Algılama Kontrolü (0 = Rakip Var)
int solRakip = digitalRead(solRakipSensor);
int sagRakip = digitalRead(sagRakipSensor);
if (solRakip == LOW && sagRakip == LOW) {
// Rakip tam karşımızda! TAM GÜÇ SALDIR!
tamGucIleri(255);
} else if (solRakip == LOW) {
// Rakip solda! Sola hamle yap!
solaDon(200);
} else if (sagRakip == LOW) {
// Rakip sağda! Sağa hamle yap!
sagaDon(200);
} else {
// Rakip görünmüyor, etrafında dönerek tara!
sagaDon(120);
}
}
void tamGucIleri(int hiz) {
analogWrite(solIleri, hiz);
digitalWrite(solGeri, LOW);
analogWrite(sagIleri, hiz);
digitalWrite(sagGeri, LOW);
}
void geriGit(int hiz) {
digitalWrite(solIleri, LOW);
analogWrite(solGeri, hiz);
digitalWrite(sagIleri, LOW);
analogWrite(sagGeri, hiz);
}
void sagaDon(int hiz) {
analogWrite(solIleri, hiz);
digitalWrite(solGeri, LOW);
digitalWrite(sagIleri, LOW);
analogWrite(sagGeri, hiz);
}
void solaDon(int hiz) {
digitalWrite(solIleri, LOW);
analogWrite(solGeri, hiz);
analogWrite(sagIleri, hiz);
digitalWrite(sagGeri, LOW);
}
---
5. Mini Sumo Robotlarda Kazanmayı Sağlayan 3 Sır
1. **Ön Bıçağın Açısı ve Keskinliği:** Sumo müsabakalarında rakibin altına ilk giren robot maçı %80 kazanır. Ön çelik bıçağın zemine sıfır oturması ve jilet gibi taşlanmış olması gerekir.
2. **Silikon Tekerlek Tutuşu:** Tozlu zeminlerde silikon tekerlekler hemen kayar. Maçtan önce tekerlekleri özel temizleme bantlarıyla veya alkolle silmek çekiş gücünü 3 kat artırır.
3. **Maksimum Ağırlığı Kullanmak:** Robotunuzu 480-495 gram bandında tutun. Ağır robot daha fazla sürtünme üretir ve rakibi itmesi çok daha kolay olur.
---
---
6. Mini Sumo Robotlarda Sensör Yerleşimi ve Kör Nokta Analizi
Bir mini sumo arenasında rakip robot daima hareket halindedir. Robotunuzun rakibi kaçırmaması için sensör açıları stratejik olarak yerleştirilmelidir:
1. **Ön Çapraz Sensör Dizilimi:** Tek bir ön sensör sadece doğrudan karşısındaki nesneleri görür; rakip hafifçe yana kaçtığında robot kör kalır. Bu nedenle ön gövdeye 45 derece açıyla bakan iki adet kızılötesi sensör koymak, yanlardan gelen sinsi saldırıları erkenden fark edip hızla dönmeyi sağlar.
2. **Zemin Sensörlerinin Konumu:** Zemin (kontrast) sensörleri robotun en ön uç noktalarına ve bıçağın hemen arkasına yerleştirilmelidir. Eğer sensörleri şasinin ortasına koyarsanız, beyaz çizgiyi fark ettiğinizde robotun tekerlekleri çoktan ringin dışına taşmış olur.
3. **Rakip Sensörlerinde Işık Koruması:** Ortamdaki yarışma salonu projektörlerinin ve kamera flaşlarının sensörleri yanıltmasını önlemek için dijital filtreli **MZ80** veya kızılötesi modülasyonlu **Sharp GP2Y0A21** sensörleri tercih edilmelidir.
---
7. Kapsamlı Sıkça Sorulan Sorular (SSS)
Mini sumo robotum beyaz çizgiyi görünce durmuyor, ringden aşağı düşüyor, neden?
Robotun hızı çok yüksekken atalet kuvveti (eylemsizlik) devreye girer. Çizgiyi gördüğü anda sadece durmak yetmez; motorlara anında tam güçle ters voltaj (`geriGit(255);`) uygulanarak aktif elektromanyetik frenleme yapılmalıdır.
6V motorlara 11.1V (3S Li-Po) pil takmak motoru yakar mı?
Yarışma dünyasında buna "Overclock" veya aşırı besleme denir. Mini sumo maçları maksimum 1-2 dakika sürdüğü için motorlar kısa süreli 11.1V gerilimde yanmaz; tam aksine iki kat daha fazla tork ve itiş gücü üreterek büyük avantaj sağlar.
---
Sonuç
Mini sumo robot yapmak, yüksek rekabet ortamında mühendislik becerilerini test etmenin en heyecanlı yoludur. Bu projeyle edineceğiniz tecrübeler, sizi ulusal ve uluslararası robot yarışmalarında kürsüye taşıyabilir. Yarışma hazırlıkları ve mekanik detaylar için sitemizin [Projeler](/projeler) bölümünü inceleyebilirsiniz!