Hola, estoy haciendo un hexápodo con 18 servos y 6 patas (3 servos para cada pierna). Estoy utilizando una placa STM32 nucleo y usando el entorno Mbed con lenguaje C.
Mi pregunta es: ¿cómo podría considerar inicialmente los movimientos de un hexápodo?
Inicialmente he declarado todos los pines necesarios (18) y en los que he pasado un pulso al número 1 del servo para probar que el pin funciona en la placa. Me gustaría saber cómo realizar un movimiento simple, incluso si son 3 servos que serían 1 pierna.
Mi código es el siguiente:
#include "mbed.h"
#include "SoftPWM.h"
Serial serial(PC_6, PA_12);
SoftPWM servo1(PB_8);
SoftPWM servo2(PB_9);
SoftPWM servo3(PB_7);
SoftPWM servo4(PA_0);
SoftPWM servo5(PA_1);
SoftPWM servo6(PB_0);
SoftPWM servo7(PB_1);
SoftPWM servo8(PA_3);
SoftPWM servo9(PA_2);
SoftPWM servo10(PA_5);
SoftPWM servo11(PA_6);
SoftPWM servo12(PA_7);
SoftPWM servo13(PB_6);
SoftPWM servo14(PA_9);
SoftPWM servo15(PA_8);
SoftPWM servo16(PB_10);
SoftPWM servo17(PB_3);
SoftPWM servo18(PA_10);
int main() {
servo1.period_us(20000);
int servopulsewidth=1000;
int si_mueve = 1200;
int no_mueve = 1900;
bool movimiento = false;
servo1.pulsewidth_us(servopulsewidth);
while(1){
if (movimiento == true) {
servo1.pulsewidth_us(si_mueve);
serial.printf("YES: %f\r\n", servo1.read());
} else {
servo1.pulsewidth_us(no_mueve);
serial.printf("NO: %f\r\n", servo1.read());
}
movimiento = !movimiento;
wait_ms(250);
}
}