Paso 11:12 Código de Servo
E_coxa.Attach(2);
E_femur.Attach(3);
E_tibia.Attach(4);
B_coxa.Attach(5);
B_femur.Attach(6);
B_tibia.Attach(7);
AC_coxa.Attach(11);
AC_femur.Attach(12);
AC_tibia.Attach(13);
DF_coxa.Attach(8);
DF_femur.Attach(9);
DF_tibia.Attach(10);
Los únicos valores que necesita para ajustar son AC_up, AC_down, COXA_CW, COXA_CCW y potencialmente TIBIA. Probablemente no necesitará ajustar mucho si también usas servos estándar 180 grados como soy. Estos experimental determina que los límites si no quería que las piernas estrellarse en uno a o en el cuerpo principal del hexápodo (va demasiado lejos hasta).
https://github.com/nouyang/18-servo-Hexapod/BLOB/Master/arduino_may13_2011.PDE
O, como copiado a continuación:
======================
#include < Servo.h >
#define TIBIA 45
#define demora 300
#define COXA_CCW 70
#define COXA_CW 105
/*
~ frente ~
A D
B E
C F
~ nuevo ~
*/
#define AC_UP 92
#define AC_DOWN 125
int alto = AC_UP;
int abajo = AC_DOWN;
Servo E_coxa;
Servo E_femur;
Servo E_tibia;
Servo B_coxa;
Servo B_femur;
Servo B_tibia;
Servo AC_coxa;
Servo AC_femur;
Servo AC_tibia;
Servo DF_coxa;
Servo DF_femur;
Servo DF_tibia;
void setup()
{
digitalWrite (2, salida);
digitalWrite (3, salida);
digitalWrite (4, salida);
digitalWrite (5, salida);
digitalWrite (6, salida);
digitalWrite (7, salida);
digitalWrite (8, salida);
digitalWrite (9, salida);
digitalWrite (10, salida);
digitalWrite (11, salida);
digitalWrite (12, salida);
digitalWrite (13, salida);
pinMode (1, salida);
pinMode (2, salida);
pinMode (3, salida);
pinMode (4, salida);
pinMode (5, salida);
pinMode (6, salida);
pinMode (7, salida);
pinMode (8, salida);
pinMode (9, salida);
pinMode (10, salida);
pinMode (11, salida);
pinMode (12, salida);
pinMode (13, salida);
E_coxa.Attach(2); B_coxa.Attach(5); AC_coxa.Attach(11); DF_coxa.Attach(8); }
E_femur.Attach(3);
E_tibia.Attach(4);
B_femur.Attach(6);
B_tibia.Attach(7);
AC_femur.Attach(12);
AC_tibia.Attach(13);
DF_femur.Attach(9);
DF_tibia.Attach(10);
void loop()
{
para (int i = 0; i < = 2; i ++) {}
walkfwd();
}
para (int j = 0; j < = 2; j ++) {}
walkbwd();
}
para (int k = 0; k < = 2; k ++) {}
turnleft();
}
para (int l = 0; l < = 2; l ++) {}
TurnRight();
}
}
void walkbwd() {}
tibia();
B1();
B2();
B3();
B4();
}
void walkfwd() {}
tibia();
tri1();
TRI2();
tri3();
tri4();
}
{} void turnleft()
tibia();
L1();
L2();
L3();
L4();
}
{} void turnright()
tibia();
R1();
R2();
R3();
R4();
}
void tibia() {}
AC_tibia.Write(tibia);
B_tibia.Write(tibia);
DF_tibia.Write(tibia);
E_tibia.Write(tibia);
}
void tri1() {}
AC_coxa.Write(COXA_CW);
E_coxa.Write(COXA_CCW);
DF_coxa.Write(COXA_CW);
B_coxa.Write(COXA_CCW);
Delay(Delay);
};
void tri2() {}
AC_femur.Write(AC_DOWN);
E_femur.Write(Down);
DF_femur.Write(up);
B_femur.Write(up);
Delay(Delay);
};
void tri3() {}
AC_coxa.Write(COXA_CCW);
E_coxa.Write(COXA_CW);
DF_coxa.Write(COXA_CCW);
B_coxa.Write(COXA_CW);
Delay(Delay);
};
void tri4() {}
AC_femur.Write(AC_UP);
E_femur.Write(up);
DF_femur.Write(Down);
B_femur.Write(Down);
Delay(Delay);
};
void b1() {}
AC_coxa.Write(COXA_CCW);
E_coxa.Write(COXA_CW);
DF_coxa.Write(COXA_CCW);
B_coxa.Write(COXA_CW);
Delay(Delay);
};
void b2() {}
AC_femur.Write(AC_DOWN);
E_femur.Write(Down);
DF_femur.Write(up);
B_femur.Write(up);
Delay(Delay);
};
void b3() {}
AC_coxa.Write(COXA_CW);
E_coxa.Write(COXA_CCW);
DF_coxa.Write(COXA_CW);
B_coxa.Write(COXA_CCW);
Delay(Delay);
};
void b4() {}
AC_femur.Write(AC_UP);
E_femur.Write(up);
DF_femur.Write(Down);
B_femur.Write(Down);
Delay(Delay);
};
void l1() {}
AC_coxa.Write(COXA_CCW);
E_coxa.Write(COXA_CCW);
DF_coxa.Write(COXA_CW);
B_coxa.Write(COXA_CW);
Delay(Delay);
};
void l2() {}
AC_femur.Write(Down);
E_femur.Write(Down);
DF_femur.Write(up);
B_femur.Write(up);
Delay(Delay);
};
void l3() {}
AC_coxa.Write(COXA_CW);
E_coxa.Write(COXA_CW);
DF_coxa.Write(COXA_CCW);
B_coxa.Write(COXA_CCW);
Delay(Delay);
};
void l4() {}
AC_femur.Write(up);
E_femur.Write(up);
DF_femur.Write(Down);
B_femur.Write(Down);
Delay(Delay);
};
void r1() {}
AC_coxa.Write(COXA_CW);
E_coxa.Write(COXA_CW);
DF_coxa.Write(COXA_CCW);
B_coxa.Write(COXA_CCW);
Delay(Delay);
};
void r2() {}
AC_femur.Write(Down);
E_femur.Write(Down);
DF_femur.Write(up);
B_femur.Write(up);
Delay(Delay);
};
void r3() {}
AC_coxa.Write(COXA_CCW);
E_coxa.Write(COXA_CCW);
DF_coxa.Write(COXA_CW);
B_coxa.Write(COXA_CW);
Delay(Delay);
};
void r4() {}
AC_femur.Write(up);
E_femur.Write(up);
DF_femur.Write(Down);
B_femur.Write(Down);
Delay(Delay);
};