Étape 11:12 Servo Code
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) ;
Les seules valeurs que vous avez besoin d’ajuster sont AC_up, AC_down, COXA_CW, COXA_CCW et potentiellement TIBIA. Probablement, vous n’avez pas besoin de les ajuster beaucoup si vous utilisez également des servos standard 180deg comme je suis. Ces j’ai déterminé expérimentalement à la limite si je ne voulais pas les jambes s’écraser les uns les autres ou dans le corps principal de l’hexapode (aller trop haut).
https://github.com/nouyang/18-servo-Hexapod/BLOB/Master/arduino_may13_2011.PDE
Ou, comme copié ci-dessous :
======================
#include < Servo.h >
#define TIBIA 45
#define retard 300
#define COXA_CCW 70
#define COXA_CW 105
/*
~ avant ~
UN D
B E
C F
~ nouveau ~
*/
#define AC_UP 92
#define AC_DOWN 125
int = jusqu'à AC_UP ;
int bas = 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 (sortie 2) ;
digitalWrite (3, sortie) ;
digitalWrite (sortie 4) ;
digitalWrite (5, sortie) ;
digitalWrite (6, sortie) ;
digitalWrite (7, sortie) ;
digitalWrite (sortie 8) ;
digitalWrite (sortie 9) ;
digitalWrite (sortie 10,) ;
digitalWrite (sortie 11) ;
digitalWrite (sortie 12,) ;
digitalWrite (13, sortie) ;
pinMode (1, sortie) ;
pinMode (sortie 2) ;
pinMode (3, sortie) ;
pinMode (sortie 4) ;
pinMode (5, sortie) ;
pinMode (6, sortie) ;
pinMode (7, sortie) ;
pinMode (sortie 8) ;
pinMode (sortie 9) ;
pinMode (sortie 10,) ;
pinMode (sortie 11) ;
pinMode (sortie 12,) ;
pinMode (13, sortie) ;
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()
{
pour (int i = 0; i < = 2; i ++) {}
walkfwd() ;
}
pour (int j = 0; j < = 2; j ++) {}
walkbwd() ;
}
pour (int k = 0; k < = 2; k ++) {}
turnleft() ;
}
pour (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) ;
};