void actuators_set(bool_t motors_on) {
  int32_t pwm_commands[COMMANDS_NB];
  int32_t pwm_commands_pprz[COMMANDS_NB];
  int32_t booz2_commands[COMMANDS_NB];

  pwm_commands[COMMAND_ROLL] = commands[COMMAND_ROLL] * PWM_GAIN_SCALE;
  pwm_commands[COMMAND_PITCH] = commands[COMMAND_PITCH] * PWM_GAIN_SCALE;
  pwm_commands[COMMAND_YAW] = commands[COMMAND_YAW] * PWM_GAIN_SCALE;
  pwm_commands[COMMAND_THRUST] = (commands[COMMAND_THRUST] * ((SUPERVISION_MAX_MOTOR - SUPERVISION_MIN_MOTOR) / 200)) + SUPERVISION_MIN_MOTOR;

  pwm_commands_pprz[COMMAND_ROLL] = commands[COMMAND_ROLL] * (MAX_PPRZ / 100);
  pwm_commands_pprz[COMMAND_PITCH] = commands[COMMAND_PITCH] * (MAX_PPRZ / 100);
  pwm_commands_pprz[COMMAND_YAW] = commands[COMMAND_YAW] * (MAX_PPRZ / 100);

#ifdef USE_CAMERA_MOUNT
  pwm_commands_pprz[COMMAND_CAMERA] = commands[COMMAND_CAMERA];
#endif

  supervision_run(motors_on, FALSE, pwm_commands);

#ifdef USE_TOYTRONICS
  SetCommandsFromRC(pwm_commands_pprz, radio_control.values);
#endif
  SetActuatorsFromCommands(pwm_commands_pprz);

  if (motors_on) {
    for (int i = 0; i < SUPERVISION_NB_MOTOR; i++)
      actuators_pwm_values[i] = supervision.commands[i];
  } else {
    for (int i = 0; i < SUPERVISION_NB_MOTOR; i++)
      actuators_pwm_values[i] = PWM_OFF;
  }
  actuators_pwm_commit();

}
Ejemplo n.º 2
0
static inline void main_periodic( void ) {
  static float foo = 0.;
  foo += 0.0025;
  int32_t bar = 1500 + 500. * sin(foo);
  for (int i = 0; i < ACTUATORS_PWM_NB; i++) {
    actuators_pwm_values[i] = bar;
  }
  actuators_pwm_commit();

  LED_PERIODIC();
}
Ejemplo n.º 3
0
static inline void main_periodic( void ) {
  static float foo = 0.;
  foo += 0.0025;
  int32_t bar = 1500 + 500. * sin(foo);
  //  int32_t bar = 1450;
  //  int32_t bar = 1950;
  actuators_pwm_values[0] = bar;
  actuators_pwm_values[1] = bar;
  actuators_pwm_values[2] = bar;
  actuators_pwm_values[3] = bar;
  actuators_pwm_values[4] = bar;
  actuators_pwm_values[5] = bar;
  actuators_pwm_commit();

  LED_PERIODIC();
}