Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[modules] add digital_cam_shoot_rc.xml
module to use radio channel as remote camera trigger closes #937
- Loading branch information
Showing
3 changed files
with
116 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
<!DOCTYPE module SYSTEM "./module.dtd"> | ||
|
||
<module name="digital_cam_shoot_rc" dir="digital_cam"> | ||
<doc> | ||
<description> | ||
Digital camera control using radio channel. | ||
With this module you can take pictures using a radio channel. | ||
When you put the channel to max the picture are taken. | ||
If the channel goes high for more than 0.75s a picture is taken every 1sec. | ||
Only usable for fixedwing firmware. | ||
</description> | ||
<define name="DC_RADIO_SHOOT" value="RADIO_xxx" description="specifies the channel to be used to trigger the camera by radio transmiter"/> | ||
</doc> | ||
<depend require="digital_cam"/> | ||
<header> | ||
<file name="dc_shoot_rc.h"/> | ||
</header> | ||
|
||
<periodic fun="dc_shoot_rc_periodic()" freq="4" autorun="TRUE"/> | ||
|
||
<makefile> | ||
<define name="DIGITAL_CAM_SHOOT_RC"/> | ||
<file name="dc_shoot_rc.c"/> | ||
</makefile> | ||
|
||
</module> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
/* | ||
* Copyright (C) 2014 Eduardo Lavratti <agressiva@hotmail.com> | ||
* | ||
* 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 modules/digital_cam/dc_shoot_rc.c | ||
* Digital Camera remote shoot using radio channel. | ||
* | ||
* Use radio channel to take a picture. | ||
* Only works with fixedwing firmware. | ||
*/ | ||
|
||
#include "dc_shoot_rc.h" | ||
#include "inter_mcu.h" | ||
#include "dc.h" | ||
|
||
#ifndef DC_RADIO_SHOOT | ||
#error "You need to define DC_RADIO_SHOT to a RADIO_xxx channel to use this module" | ||
#endif | ||
|
||
#define DC_RADIO_SHOOT_THRESHOLD 3000 | ||
|
||
void dc_shoot_rc_periodic(void) | ||
{ | ||
static uint8_t rd_shoot = 0; | ||
static uint8_t rd_num = 0; | ||
|
||
if ((rd_shoot == 0) && (fbw_state->channels[DC_RADIO_SHOOT] > DC_RADIO_SHOOT_THRESHOLD)) { | ||
dc_send_command(DC_SHOOT); | ||
rd_shoot = 1; | ||
} | ||
if ((rd_shoot == 1) && (rd_num < 4)) { | ||
rd_num = rd_num + 1; | ||
} | ||
else { | ||
rd_num = 0; | ||
rd_shoot = 0; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
/* | ||
* Copyright (C) 2014 Eduardo Lavratti <agressiva@hotmail.com> | ||
* | ||
* 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 modules/digital_cam/dc_shoot_rc.h | ||
* Digital Camera remote shoot using radio channel. | ||
* | ||
* Use radio channel to take a picture. | ||
* Only works with fixedwing firmware. | ||
*/ | ||
|
||
#ifndef DC_SHOOT_RC_H | ||
#define DC_SHOOT_RC_H | ||
|
||
/** periodic 4Hz function */ | ||
extern void dc_shoot_rc_periodic(void); | ||
|
||
#endif // DC_SHOOT_RC_H |