#include <Servo.h>

// Servo pinleri ve ayak konfigürasyonu
Servo solArkaAlt, solOnAlt, sagArkaAlt, sagOnAlt;          // Ayak alt/üst servoları
Servo solArkaBacak, solOnBacak, sagArkaBacak, sagOnBacak;  // Bacak arka/ön servoları

void setup() {
  Serial.begin(9600);

  // Ayak servoları (pin 5-8)
  solArkaAlt.attach(5);  // Sol arka ayak alt: 0-180
  solOnAlt.attach(6);    // Sol ön ayak alt: 0-180
  sagArkaAlt.attach(7);  // Sağ arka ayak alt: 180-0
  sagOnAlt.attach(8);    // Sağ ön ayak alt: 180-0

  // Bacak servoları (pin 9-12)
  solArkaBacak.attach(9);   // Sol arka bacak: arka 180, ön 70
  solOnBacak.attach(10);    // Sol ön bacak: arka 150, ön 0
  sagArkaBacak.attach(11);  // Sağ arka bacak: arka 0, ön 90
  sagOnBacak.attach(12);    // Sağ ön bacak: arka 70, ön 180

  Serial.println("Otto Quad Spider Hazır!");
  standUp();
  delay(2000);
}

void loop() {
ayakkaldir();
delay(2000);


 
}

// Durma pozisyonu
void standUp() {
  // Ayakları düz pozisyonda
  solArkaAlt.write(90);
  solOnAlt.write(90);
  sagArkaAlt.write(90);
  sagOnAlt.write(90);

  // Bacakları orta pozisyonda
  solArkaBacak.write(125);  // (180+70)/2
  solOnBacak.write(75);     // (150+0)/2
  sagArkaBacak.write(45);   // (0+90)/2
  sagOnBacak.write(125);    // (70+180)/2

  delay(500);
}

// İleri yürüme
void walkForward() {
  for (int step = 0; step < 4; step++) {
    // Sol bacakları kaldır
    solArkaAlt.write(0);
    solOnAlt.write(0);
    delay(200);

    // Sol bacakları ileri hareket
    solArkaBacak.write(180);
    solOnBacak.write(150);
    delay(300);

    // Sol bacakları indir
    solArkaAlt.write(90);
    solOnAlt.write(90);
    delay(200);

    // Sağ bacakları kaldır
    sagArkaAlt.write(180);
    sagOnAlt.write(180);
    delay(200);

    // Sağ bacakları ileri hareket
    sagArkaBacak.write(0);
    sagOnBacak.write(70);
    delay(300);

    // Sağ bacakları indir
    sagArkaAlt.write(90);
    sagOnAlt.write(90);
    delay(200);
  }

  standUp();
}

// Sola dönme
void turnLeft() {
  for (int step = 0; step < 3; step++) {
    // Sol bacakları geri, sağ bacakları ileri
    solArkaBacak.write(70);
    solOnBacak.write(0);
    sagArkaBacak.write(90);
    sagOnBacak.write(180);

    delay(400);
    standUp();
  }
}

// Sağa dönme
void turnRight() {
  for (int step = 0; step < 3; step++) {
    // Sağ bacakları geri, sol bacakları ileri
    sagArkaBacak.write(0);
    sagOnBacak.write(70);
    solArkaBacak.write(180);
    solOnBacak.write(150);

    delay(400);
    standUp();
  }
}

// Dans hareketi
void dance() {
  for (int i = 0; i < 4; i++) {
    // Zıplama
    ayakindir();
    delay(1000);

    ayakkaldir();
    delay(1000);
  }

  standUp();
}

void ayakkaldir() {
  solArkaAlt.write(180);
  solOnAlt.write(0);
  sagArkaAlt.write(0);
  sagOnAlt.write(180);
}
void ayakindir() {
  solArkaAlt.write(0);
  solOnAlt.write(180);
  sagArkaAlt.write(180);
  sagOnAlt.write(0);
}