mirror of
https://github.com/paparazzi/paparazzi.git
synced 2026-05-31 20:38:27 +08:00
*** empty log message ***
This commit is contained in:
@@ -0,0 +1,68 @@
|
|||||||
|
<airframe name="Twisted Logic">
|
||||||
|
<!-- tiny airframe -->
|
||||||
|
|
||||||
|
<!-- commands section -->
|
||||||
|
<servos>
|
||||||
|
<servo name="AILERON" no="2" min="900" neutral="1500" max="2100"/>
|
||||||
|
<servo name="ELEVATOR" no="1" min="900" neutral="1500" max="2100"/>
|
||||||
|
<servo name="MOTOR_RIGHT" no="6" min="1250" neutral="1250" max="1850"/>
|
||||||
|
<servo name="MOTOR_LEFT" no="3" min="1250" neutral="1250" max="1850"/>
|
||||||
|
</servos>
|
||||||
|
|
||||||
|
<commands>
|
||||||
|
<axis name="THROTTLE" failsafe_value="0"/>
|
||||||
|
<axis name="ROLL" failsafe_value="0"/>
|
||||||
|
<axis name="PITCH" failsafe_value="0"/>
|
||||||
|
<axis name="YAW" failsafe_value="0"/>
|
||||||
|
</commands>
|
||||||
|
|
||||||
|
<rc_commands>
|
||||||
|
<set command="THROTTLE" value="@THROTTLE"/>
|
||||||
|
<set command="ROLL" value="@ROLL"/>
|
||||||
|
<set command="PITCH" value="@PITCH"/>
|
||||||
|
<set command="YAW" value="@YAW"/>
|
||||||
|
</rc_commands>
|
||||||
|
|
||||||
|
<section name="MIXER">
|
||||||
|
<define name="AILEVON_AILERON_RATE" value="0.8"/>
|
||||||
|
<define name="AILEVON_ELEVATOR_RATE" value="0.8"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<command_laws>
|
||||||
|
<let var="roll" value="1.0 * @ROLL"/>
|
||||||
|
<let var="yawtoroll" value="0.0001 * @YAW"/>
|
||||||
|
<let var="pitchtoroll" value="0.0001 * @PITCH"/>
|
||||||
|
<let var="pitch" value="1.0 * @PITCH"/>
|
||||||
|
<let var="yaw" value="0.1 * @YAW"/>
|
||||||
|
<let var="throttle" value="1.0 * @THROTTLE"/>
|
||||||
|
<set servo="AILERON" value="$roll"/>
|
||||||
|
<set servo="ELEVATOR" value="$pitch"/>
|
||||||
|
<set servo="MOTOR_LEFT" value="$throttle - $yaw - .06*$throttle"/> <!-- add trim term for Right -->
|
||||||
|
<set servo="MOTOR_RIGHT" value="$throttle + $yaw + .06*$throttle"/> <!-- subtract trim term for Right -->
|
||||||
|
</command_laws>
|
||||||
|
|
||||||
|
<makefile>
|
||||||
|
include $(PAPARAZZI_SRC)/conf/autopilot/tiny.makefile
|
||||||
|
|
||||||
|
FLASH_MODE=IAP
|
||||||
|
|
||||||
|
ap.CFLAGS += -DFBW -DAP -DCONFIG=\"tiny_1_1.h\" -DLED -DTIME_LED=1
|
||||||
|
ap.srcs = sys_time.c $(SRC_ARCH)/sys_time_hw.c $(SRC_ARCH)/armVIC.c main_fbw.c main_coax.c main.c
|
||||||
|
|
||||||
|
ap.CFLAGS += -DACTUATORS=\"servos_4015_MAT_hw.h\" -DSERVOS_4015_MAT
|
||||||
|
ap.srcs += $(SRC_ARCH)/servos_4015_MAT_hw.c actuators.c commands.c
|
||||||
|
|
||||||
|
ap.CFLAGS += -DRADIO_CONTROL -DRADIO_CONTROL_TYPE=RC_FUTABA
|
||||||
|
ap.srcs += radio_control.c $(SRC_ARCH)/ppm_hw.c
|
||||||
|
|
||||||
|
ap.CFLAGS += -DDOWNLINK -DUSE_UART0 -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_FBW_DEVICE=Uart0 -DDOWNLINK_AP_DEVICE=Uart0 -DPPRZ_UART=Uart0 -DDATALINK=PPRZ -DUART0_BAUD=B19200
|
||||||
|
ap.srcs += downlink.c $(SRC_ARCH)/uart_hw.c datalink.c pprz_transport.c
|
||||||
|
|
||||||
|
ap.CFLAGS += -DUSE_SPI -DSPI_MASTER -DUSE_SPI_SLAVE0 -DUSE_BARO_MS5534A
|
||||||
|
ap.srcs += spi.c $(SRC_ARCH)/spi_hw.c $(SRC_ARCH)/baro_MS5534A.c
|
||||||
|
|
||||||
|
ap.CFLAGS += -DALT_KALMAN
|
||||||
|
ap.srcs += estimator.c
|
||||||
|
|
||||||
|
</makefile>
|
||||||
|
</airframe>
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
<!DOCTYPE settings SYSTEM "settings.dtd">
|
||||||
|
|
||||||
|
<!-- A conf to use for standard operation (no tuning) -->
|
||||||
|
|
||||||
|
<settings>
|
||||||
|
<dl_settings>
|
||||||
|
</dl_settings>
|
||||||
|
</settings>
|
||||||
Vendored
+4
-4
@@ -8,9 +8,9 @@ Standards-Version: 3.6.1
|
|||||||
|
|
||||||
Package: paparazzi-dev
|
Package: paparazzi-dev
|
||||||
Architecture: any
|
Architecture: any
|
||||||
Suggests: mlview, lustre, paparazzi-avr, paparazzi-arm
|
Suggests: paparazzi-avr, paparazzi-arm7
|
||||||
Recommends: eagle, gs-common, tetex-extra, dia-gnome
|
Recommends: eagle, gs-common, tetex-extra, dia-gnome
|
||||||
Depends: ivy-c-dev, ivy-c, ivy-perl, ivy-ocaml, xml-light-ocaml, liblablgtk2-ocaml-dev, make, gcc, boa, gnuplot, libgnomecanvas2-dev, libxml-dom-perl, libsubject-perl, libfile-ncopy-perl, libpcre3-dev, bzip2, libexpect-perl, cvs, liblablgl-ocaml-dev, liblablgtk2-gl-ocaml-dev, liblablgtk2-gnome-ocaml-dev, libcamlimages-ocaml-dev, libusb-dev
|
Depends: ivy-c-dev, ivy-c, ivy-ocaml, xml-light-ocaml, liblablgtk2-ocaml-dev, make, gcc, boa, gnuplot, libgnomecanvas2-dev, bzip2, cvs, liblablgl-ocaml-dev, liblablgtk2-gl-ocaml-dev, liblablgtk2-gnome-ocaml-dev, libcamlimages-ocaml-dev, libusb-dev, speech-dispatcher, glade, gedit, imagemagick
|
||||||
Description: Paparazzi Meta Package : common support
|
Description: Paparazzi Meta Package : common support
|
||||||
|
|
||||||
|
|
||||||
@@ -22,12 +22,12 @@ Description: Paparazzi Meta Package. Atmel AVR support
|
|||||||
|
|
||||||
Package: paparazzi-arm7
|
Package: paparazzi-arm7
|
||||||
Architecture: any
|
Architecture: any
|
||||||
Depends: lpc21isp, gcc-arm, binutils-arm, newlib-arm, libusb-dev
|
Depends: lpc21isp, gcc-arm, binutils-arm, libusb-dev
|
||||||
Description: Paparazzi Meta Package. Philips ARM7 support
|
Description: Paparazzi Meta Package. Philips ARM7 support
|
||||||
|
|
||||||
|
|
||||||
Package: paparazzi-bin
|
Package: paparazzi-bin
|
||||||
Architecture: i386
|
Architecture: i386
|
||||||
Depends: ivy-c-dev, ivy-c, ivy-perl, ivy-ocaml, xml-light-ocaml, liblablgtk2-ocaml-dev, make, gcc, boa, gnuplot, libxml-dom-perl, libsubject-perl, libfile-ncopy-perl, libpcre3-dev, bzip2, libexpect-perl
|
Depends: ivy-c-dev, ivy-c, ivy-ocaml, xml-light-ocaml, liblablgtk2-ocaml-dev, make, gcc, boa, gnuplot, bzip2, liblablgtk2-gnome-ocaml-dev, speech-dispatcher, gedit, imagemagick
|
||||||
Description: Paparazzi main package
|
Description: Paparazzi main package
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,93 @@
|
|||||||
|
#include "std.h"
|
||||||
|
#include "init_hw.h"
|
||||||
|
#include "sys_time.h"
|
||||||
|
#include "led.h"
|
||||||
|
#include "interrupt_hw.h"
|
||||||
|
#include "uart.h"
|
||||||
|
|
||||||
|
#include "main_ap.h"
|
||||||
|
#include "airframe.h"
|
||||||
|
|
||||||
|
#include "messages.h"
|
||||||
|
#include "downlink.h"
|
||||||
|
#include "spi.h"
|
||||||
|
#include "baro_MS5534A.h"
|
||||||
|
|
||||||
|
#include "estimator.h"
|
||||||
|
|
||||||
|
float ground_alt;
|
||||||
|
|
||||||
|
#define DOWNLINK_DEVICE DOWNLINK_AP_DEVICE
|
||||||
|
|
||||||
|
static bool_t dl_msg_available;
|
||||||
|
static inline void main_dl_parse_msg( void );
|
||||||
|
|
||||||
|
void init_ap( void ) {
|
||||||
|
/** init done in main_fbw */
|
||||||
|
spi_init();
|
||||||
|
|
||||||
|
baro_MS5534A_init();
|
||||||
|
|
||||||
|
int_enable();
|
||||||
|
|
||||||
|
baro_MS5534A_init();
|
||||||
|
}
|
||||||
|
|
||||||
|
void periodic_task_ap( void ) {
|
||||||
|
// LED_TOGGLE(1);
|
||||||
|
// DOWNLINK_SEND_TAKEOFF(&cpu_time_sec);
|
||||||
|
|
||||||
|
static uint8_t _20Hz = 0;
|
||||||
|
_20Hz++;
|
||||||
|
if (_20Hz>=3) _20Hz=0;
|
||||||
|
|
||||||
|
if (!_20Hz) {
|
||||||
|
baro_MS5534A_send();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void event_task_ap( void ) {
|
||||||
|
if (PprzBuffer()) {
|
||||||
|
ReadPprzBuffer();
|
||||||
|
if (pprz_msg_received) {
|
||||||
|
pprz_parse_payload();
|
||||||
|
pprz_msg_received = FALSE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (dl_msg_available) {
|
||||||
|
main_dl_parse_msg();
|
||||||
|
dl_msg_available = FALSE;
|
||||||
|
LED_TOGGLE(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (spi_message_received) {
|
||||||
|
/* Got a message on SPI. */
|
||||||
|
spi_message_received = FALSE;
|
||||||
|
baro_MS5534A_event_task();
|
||||||
|
if (baro_MS5534A_available) {
|
||||||
|
baro_MS5534A_available = FALSE;
|
||||||
|
|
||||||
|
baro_MS5534A_z = ground_alt +((float)baro_MS5534A_ground_pressure - baro_MS5534A_pressure)*0.084;
|
||||||
|
if (alt_baro_enabled) {
|
||||||
|
EstimatorSetAlt(baro_MS5534A_z);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#define MSG_SIZE 128
|
||||||
|
uint8_t dl_buffer[MSG_SIZE] __attribute__ ((aligned));
|
||||||
|
|
||||||
|
#include "settings.h"
|
||||||
|
|
||||||
|
#define IdOfMsg(x) (x[1])
|
||||||
|
|
||||||
|
static inline void main_dl_parse_msg(void) {
|
||||||
|
uint8_t msg_id = IdOfMsg(dl_buffer);
|
||||||
|
if (msg_id == DL_SETTING) {
|
||||||
|
uint8_t i = DL_SETTING_index(dl_buffer);
|
||||||
|
float var = DL_SETTING_value(dl_buffer);
|
||||||
|
DlSetting(i, var);
|
||||||
|
DOWNLINK_SEND_DL_VALUE(&i, &var);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,59 @@
|
|||||||
|
/*
|
||||||
|
* $Id$
|
||||||
|
*
|
||||||
|
* Copyright (C) 2007 ENAC
|
||||||
|
*
|
||||||
|
* 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 baro_MS5534A.h
|
||||||
|
* \brief Handling of the MS5534a pressure sensor
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef BARO_MS5534A_H
|
||||||
|
#define BARO_MS5534A_H
|
||||||
|
|
||||||
|
#include "std.h"
|
||||||
|
|
||||||
|
#ifdef USE_BARO_MS5534A
|
||||||
|
|
||||||
|
extern bool_t spi_message_received;
|
||||||
|
extern bool_t baro_MS5534A_available;
|
||||||
|
extern uint32_t baro_MS5534A_pressure;
|
||||||
|
extern uint16_t baro_MS5534A_temp;
|
||||||
|
extern bool_t alt_baro_enabled;
|
||||||
|
extern uint32_t baro_MS5534A_ground_pressure;
|
||||||
|
extern float baro_MS5534A_r;
|
||||||
|
extern float baro_MS5534A_sigma2;
|
||||||
|
extern float baro_MS5534A_z;
|
||||||
|
|
||||||
|
|
||||||
|
void baro_MS5534A_init(void);
|
||||||
|
void baro_MS5534A_reset(void);
|
||||||
|
|
||||||
|
/* To be called not faster than 30Hz */
|
||||||
|
void baro_MS5534A_send(void);
|
||||||
|
|
||||||
|
/* Set baro_MS5534A_available when pressure and temp are readable */
|
||||||
|
void baro_MS5534A_event_task( void );
|
||||||
|
|
||||||
|
#endif // USE_BARO_MS5534A
|
||||||
|
|
||||||
|
#endif // BARO_MS5534A_H
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
#include <stdlib.h>
|
||||||
|
#include "estimator.h"
|
||||||
|
#include "nav.h"
|
||||||
|
#include "gps.h"
|
||||||
|
#include "baro_MS5534A.h"
|
||||||
|
|
||||||
|
bool_t alt_baro_enabled;
|
||||||
|
bool_t spi_message_received;
|
||||||
|
bool_t baro_MS5534A_available;
|
||||||
|
uint32_t baro_MS5534A_pressure;
|
||||||
|
uint32_t baro_MS5534A_ground_pressure;
|
||||||
|
uint16_t baro_MS5534A_temp;
|
||||||
|
float baro_MS5534A_r;
|
||||||
|
float baro_MS5534A_sigma2;
|
||||||
|
float baro_MS5534A_z;
|
||||||
|
|
||||||
|
void baro_MS5534A_init(void) {
|
||||||
|
baro_MS5534A_ground_pressure = 100000;
|
||||||
|
|
||||||
|
baro_MS5534A_r = 10.;
|
||||||
|
baro_MS5534A_sigma2 = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// void baro_MS5534A_reset(void);
|
||||||
|
|
||||||
|
void baro_MS5534A_send(void) {
|
||||||
|
static bool_t even = FALSE;
|
||||||
|
even = !even;
|
||||||
|
|
||||||
|
spi_message_received = even;
|
||||||
|
}
|
||||||
|
|
||||||
|
void baro_MS5534A_event_task( void ) {
|
||||||
|
baro_MS5534A_pressure = baro_MS5534A_ground_pressure - (gps_alt/100.-ground_alt) / 0.08 + ((10.*random()) / RAND_MAX);
|
||||||
|
baro_MS5534A_temp = 10 + estimator_z;
|
||||||
|
baro_MS5534A_available = TRUE;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user