#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);
}