PX4通过程序输出PWM波控制舵机或者电机

it2023-12-22  71

1.先在机架启动脚本中设置PWM引脚(这步不做的话无法输出PWM波) 以450机架为例 其原来的设置如下 set MIXER quad_x set PWM_OUT 1234

只设置了四个通道

改成如下 set MIXER quad_x set PWM_OUT 12345678 set PWM_AUX_OUT 123456 set MIXER_AUX dodeca_bottom_cox 设置PWM通道,同时设置一个辅助混控 这样的话就将其他的通道设置用来输出PWM波

调用驱动接口 在自己的线程中添加如下 #include <drivers/drv_pwm_output.h> #define PX4FMU_DEVICE_PATH “/dev/px4fmu”

int fd = open(PX4FMU_DEVICE_PATH, O_RDWR);//fd打开的是FMU通道 if (fd < 0) { errx(1, “open fail”); } if (ioctl(fd, PWM_SERVO_GET_COUNT, (unsigned long)&servo_count) != 0) { err(1, “Unable to get servo count\n”); } nt i=6;//i代表第几个PWM通道 ret=ioctl(fd, PWM_SERVO_SET(i), 1000);//PWM值为1000-2000都可以 if (ret != OK) { PX4_ERR(“PWM_SERVO_SET(%d)”, i);

}
最新回复(0)