mirror of
https://github.com/paparazzi/paparazzi.git
synced 2026-05-26 08:22:43 +08:00
[modules] add digital_cam_shoot_rc.xml
module to use radio channel as remote camera trigger closes #937
This commit is contained in:
@@ -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>
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user