Skip to content

Commit

Permalink
[auto1] FLAPS, HATCH, BRAKE operate from the remote in AUTO1
Browse files Browse the repository at this point in the history
  • Loading branch information
dewagter committed Oct 29, 2014
1 parent 93b9546 commit 27d716f
Show file tree
Hide file tree
Showing 4 changed files with 104 additions and 3 deletions.
7 changes: 4 additions & 3 deletions conf/airframes/CDW/yapa_xsens.xml
Expand Up @@ -46,6 +46,7 @@
<define name="DC_SHUTTER_GPIO" value="GPIOB,GPIO16"/>
</load>
<load name="nav_line.xml"/>
<load name="auto1_commands.xml"/>
</modules>

<!-- ************************* ACTUATORS ************************* -->
Expand All @@ -63,7 +64,7 @@
<axis name="ROLL" failsafe_value="0"/>
<axis name="PITCH" failsafe_value="0"/>
<axis name="YAW" failsafe_value="0"/>
<axis name="BRAKE" failsafe_value="9600"/>
<axis name="FLAPS" failsafe_value="9600"/>
<!-- both elerons up as butterfly brake -->
</commands>

Expand All @@ -72,7 +73,7 @@
<set command="ROLL" value="@ROLL"/>
<set command="YAW" value="@YAW"/>
<set command="PITCH" value="@PITCH"/>
<set command="BRAKE" value="@FLAPS"/>
<set command="FLAPS" value="@FLAPS"/>
</rc_commands>

<section name="AUTO1" prefix="AUTO1_">
Expand All @@ -95,7 +96,7 @@

<command_laws>
<!-- Brake Rate Limiter -->
<let var="brake_value_nofilt" value="Chop(-@BRAKE, 0, MAX_PPRZ)"/>
<let var="brake_value_nofilt" value="Chop(-@FLAPS, 0, MAX_PPRZ)"/>
<ratelimit var="brake_value" value="$brake_value_nofilt" rate_min="-MAX_BRAKE_RATE" rate_max="MAX_BRAKE_RATE"/>
<!-- Differential Aileron Depending on Brake Value -->
<let var="aileron_up_rate" value="(AILERON_RATE_UP * (MAX_PPRZ - $brake_value)) + (AILERON_RATE_UP_BRAKE * $brake_value)"/>
Expand Down
16 changes: 16 additions & 0 deletions conf/modules/auto1_commands.xml
@@ -0,0 +1,16 @@
<!DOCTYPE module SYSTEM "module.dtd">

<module name="servo_switch">
<doc>
<description>AUTO1 FLAPS/HATCH COMMANDS.
Enable RC controlled HATCH and BRAKE/FLAPS in both MANUAL and AUTO1, while automatic in AUTO2.
</description>
</doc>
<header>
</header>
<periodic fun="periodic_auto1_commands()" autorun="TRUE"/>
<makefile>
<file name="auto1_commands.c"/>
</makefile>
</module>

51 changes: 51 additions & 0 deletions sw/airborne/modules/servo_switch/auto1_commands.c
@@ -0,0 +1,51 @@
/*
* Copyright (C) 2014 OpenUAS
*
* This file is part of paparazzi.
*
* paparazzi is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
* paparazzi is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with paparazzi; see the file COPYING. If not, write to
* the Free Software Foundation, 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*
*/

#include "auto1_commands.h"
#include "generated/airframe.h"
#include "firmwares/fixedwing/autopilot.h"
#include "inter_mcu.h"

void periodic_auto1_commands(void)
{
// Copy Radio commands in AUTO1
if (pprz_mode == PPRZ_MODE_AUTO1) {
#ifdef COMMAND_HATCH
#ifndef RADIO_HATCH
#error auto1_commands COMMAND_HATCH needs RADIO_HATCH channel
#endif
ap_state->commands[COMMAND_HATCH] = fbw_state->channels[RADIO_HATCH];
#endif
#ifdef COMMAND_BRAKE
#ifndef RADIO_BRAKE
#error auto1_commands COMMAND_BRAKE needs RADIO_BRAKE channel
#endif
ap_state->commands[COMMAND_BRAKE] = fbw_state->channels[RADIO_BRAKE];
#endif
#ifdef COMMAND_FLAPS
#ifndef RADIO_FLAPS
#error auto1_commands COMMAND_FLAPS needs RADIO_FLAPS channel
#endif
ap_state->commands[COMMAND_FLAPS] = fbw_state->channels[RADIO_FLAPS];
#endif
}
}
33 changes: 33 additions & 0 deletions sw/airborne/modules/servo_switch/auto1_commands.h
@@ -0,0 +1,33 @@
/*
* Copyright (C) 2014 OpenUAS
*
* This file is part of paparazzi.
*
* paparazzi is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
* paparazzi is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with paparazzi; see the file COPYING. If not, write to
* the Free Software Foundation, 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*
*/

/** \file auto1_commands.h
*
* Enable AUTO1 commands flaps and hatch from RC
*/

#ifndef AUTO1_COMMANDS_H
#define AUTO1_COMMANDS_H

extern void periodic_auto1_commands(void);

#endif

0 comments on commit 27d716f

Please sign in to comment.