[umarim] release config file for Umarim Lite v2

This commit is contained in:
Gautier Hattenberger
2012-07-24 16:39:11 +02:00
parent dbdbbaf6c2
commit 246f08c114
5 changed files with 377 additions and 3 deletions
+177
View File
@@ -0,0 +1,177 @@
<!DOCTYPE airframe SYSTEM "../airframe.dtd">
<!--
Example airframe
Umarim Lite
-->
<airframe name="Weasel">
<firmware name="fixedwing">
<define name="USE_I2C0"/>
<define name="USE_I2C1"/>
<define name="AGR_CLIMB" />
<define name="ALT_KALMAN"/>
<target name="sim" board="pc"/>
<target name="ap" board="umarim_lite_2.0"/>
<subsystem name="radio_control" type="ppm"/>
<!-- Communication -->
<subsystem name="telemetry" type="transparent"/>
<!-- Actuators are automatically chosen according to board-->
<subsystem name="imu" type="umarim"/>
<subsystem name="ahrs" type="float_dcm"/>
<subsystem name="control"/>
<subsystem name="navigation"/>
<!-- Sensors -->
<subsystem name="gps" type="ublox"/>
</firmware>
<!-- commands section -->
<servos>
<servo name="MOTOR" no="7" min="1040" neutral="1040" max="2000"/>
<servo name="AILEVON_LEFT" no="6" min="1900" neutral="1543" max="1100"/>
<servo name="AILEVON_RIGHT" no="3" min="1100" neutral="1561" max="1900"/>
</servos>
<commands>
<axis name="THROTTLE" failsafe_value="0"/>
<axis name="ROLL" failsafe_value="0"/>
<axis name="PITCH" failsafe_value="0"/>
</commands>
<rc_commands>
<set command="THROTTLE" value="@THROTTLE"/>
<set command="ROLL" value="@ROLL"/>
<set command="PITCH" value="@PITCH"/>
</rc_commands>
<section name="MIXER">
<define name="AILEVON_AILERON_RATE" value="0.75"/>
<define name="AILEVON_ELEVATOR_RATE" value="0.75"/>
</section>
<command_laws>
<let var="aileron" value="@ROLL * AILEVON_AILERON_RATE"/>
<let var="elevator" value="@PITCH * AILEVON_ELEVATOR_RATE"/>
<set servo="MOTOR" value="@THROTTLE"/>
<set servo="AILEVON_LEFT" value="$elevator + $aileron"/>
<set servo="AILEVON_RIGHT" value="$elevator - $aileron"/>
</command_laws>
<section name="AUTO1" prefix="AUTO1_">
<define name="MAX_ROLL" value="0.85"/>
<define name="MAX_PITCH" value="0.6"/>
</section>
<section name="IMU" prefix="IMU_">
<!-- Calibration Neutral -->
<define name="GYRO_P_NEUTRAL" value="-15"/>
<define name="GYRO_Q_NEUTRAL" value="94"/>
<define name="GYRO_R_NEUTRAL" value="-7"/>
<!-- SENS ITG3200 1/14.375 (deg/s)/LSB, rate frac 12bit => 1/14.375 * pi / 180 * 2^12 -->
<define name="GYRO_P_SENS" value="4.97312" integer="16"/>
<define name="GYRO_Q_SENS" value="4.97312" integer="16"/>
<define name="GYRO_R_SENS" value="4.97312" integer="16"/>
<define name="ACCEL_X_NEUTRAL" value="0"/>
<define name="ACCEL_Y_NEUTRAL" value="0"/>
<define name="ACCEL_Z_NEUTRAL" value="0"/>
<!-- SENS ADXL345 16G 31.2 mg/LSB, accel frac 10bit => 31.2 * 2^10 / 1000 -->
<define name="ACCEL_X_SENS" value="31.9488" integer="10"/>
<define name="ACCEL_Y_SENS" value="31.9488" integer="10"/>
<define name="ACCEL_Z_SENS" value="31.9488" integer="10"/>
<!-- Just to compile -->
<define name="MAG_X_NEUTRAL" value="0"/>
<define name="MAG_Y_NEUTRAL" value="0"/>
<define name="MAG_Z_NEUTRAL" value="0"/>
<define name="BODY_TO_IMU_PHI" value="0"/>
<define name="BODY_TO_IMU_THETA" value="0"/>
<define name="BODY_TO_IMU_PSI" value="0"/>
</section>
<section name="INS" prefix="INS_">
<define name="ROLL_NEUTRAL_DEFAULT" value="0.048" unit="rad"/>
<define name="PITCH_NEUTRAL_DEFAULT" value="0." unit="rad"/>
</section>
<section name="BAT">
<define name="MILLIAMP_AT_FULL_THROTTLE" value="10000."/>
<define name="CATASTROPHIC_BAT_LEVEL" value="9.3" unit="V"/>
</section>
<section name="MISC">
<define name="NOMINAL_AIRSPEED" value="15." unit="m/s"/>
<define name="CARROT" value="5." unit="s"/>
<define name="KILL_MODE_DISTANCE" value="(1.5*MAX_DIST_FROM_HOME)"/>
<define name="CONTROL_RATE" value="60" unit="Hz"/>
<define name="ALT_KALMAN_ENABLED" value="TRUE"/>
<define name="DEFAULT_CIRCLE_RADIUS" value="80."/>
</section>
<section name="VERTICAL CONTROL" prefix="V_CTL_">
<define name="POWER_CTL_BAT_NOMINAL" value="11.1" unit="volt"/>
<!-- outer loop proportional gain -->
<define name="ALTITUDE_PGAIN" value="0.03"/>
<!-- outer loop saturation -->
<define name="ALTITUDE_MAX_CLIMB" value="2."/>
<!-- auto throttle inner loop -->
<define name="AUTO_THROTTLE_NOMINAL_CRUISE_THROTTLE" value="0.32"/>
<define name="AUTO_THROTTLE_MIN_CRUISE_THROTTLE" value="0.25"/>
<define name="AUTO_THROTTLE_MAX_CRUISE_THROTTLE" value="0.65"/>
<define name="AUTO_THROTTLE_LOITER_TRIM" value="1500"/>
<define name="AUTO_THROTTLE_DASH_TRIM" value="-4000"/>
<define name="AUTO_THROTTLE_CLIMB_THROTTLE_INCREMENT" value="0.15" unit="%/(m/s)"/>
<define name="AUTO_THROTTLE_PGAIN" value="0.01"/>
<define name="AUTO_THROTTLE_IGAIN" value="0.1"/>
<define name="AUTO_THROTTLE_PITCH_OF_VZ_PGAIN" value="0.05"/>
<define name="THROTTLE_SLEW_LIMITER" value="2" unit="s"/>
</section>
<section name="HORIZONTAL CONTROL" prefix="H_CTL_">
<define name="COURSE_PGAIN" value="1.0"/>
<define name="COURSE_DGAIN" value="0.3"/>
<define name="ROLL_MAX_SETPOINT" value="0.6" unit="rad"/>
<define name="PITCH_MAX_SETPOINT" value="0.5" unit="rad"/>
<define name="PITCH_MIN_SETPOINT" value="-0.5" unit="rad"/>
<define name="PITCH_PGAIN" value="12000."/>
<define name="PITCH_DGAIN" value="1.5"/>
<define name="ELEVATOR_OF_ROLL" value="1250"/>
<define name="ROLL_ATTITUDE_GAIN" value="7500"/>
<define name="ROLL_RATE_GAIN" value="1500"/>
</section>
<section name="AGGRESSIVE" prefix="AGR_">
<define name="BLEND_START" value="20"/><!-- Altitude Error to Initiate Aggressive Climb CANNOT BE ZERO!!-->
<define name="BLEND_END" value="10"/><!-- Altitude Error to Blend Aggressive to Regular Climb Modes CANNOT BE ZERO!!-->
<define name="CLIMB_THROTTLE" value="1.00"/><!-- Gaz for Aggressive Climb -->
<define name="CLIMB_PITCH" value="0.3"/><!-- Pitch for Aggressive Climb -->
<define name="DESCENT_THROTTLE" value="0.1"/><!-- Gaz for Aggressive Decent -->
<define name="DESCENT_PITCH" value="-0.25"/><!-- Pitch for Aggressive Decent -->
<define name="CLIMB_NAV_RATIO" value="0.8"/><!-- Percent Navigation for Altitude Error Equal to Start Altitude -->
<define name="DESCENT_NAV_RATIO" value="1.0"/>
</section>
<section name="FAILSAFE" prefix="FAILSAFE_">
<define name="DELAY_WITHOUT_GPS" value="2" unit="s"/>
<define name="DEFAULT_THROTTLE" value="0.3" unit="%"/>
<define name="DEFAULT_ROLL" value="0.3" unit="rad"/>
<define name="DEFAULT_PITCH" value="0.5" unit="rad"/>
<define name="HOME_RADIUS" value="100" unit="m"/>
</section>
</airframe>
+2 -2
View File
@@ -1,7 +1,7 @@
#
# unami_1.0.makefile
#
# prototype for Umarim board
# Umarim v1 board
#
ARCH=lpc21
@@ -41,7 +41,7 @@ GPS_LED = 2
endif
ifndef SYS_TIME_LED
SYS_TIME_LED = none
SYS_TIME_LED = 1
endif
+79
View File
@@ -0,0 +1,79 @@
#
# umarim_lite_2.0.makefile
#
# Umarim Lite v2 board
#
ARCH=lpc21
BOARD=umarim
BOARD_VERSION=lite_2.0
BOARD_CFG=\"boards/$(BOARD)_$(BOARD_VERSION).h\"
ifndef FLASH_MODE
FLASH_MODE = IAP
endif
LPC21ISP_BAUD = 38400
LPC21ISP_XTAL = 12000
#
# default LED configuration
#
ifndef RADIO_CONTROL_LED
RADIO_CONTROL_LED = none
endif
ifndef BARO_LED
BARO_LED = none
endif
ifndef AHRS_ALIGNER_LED
AHRS_ALIGNER_LED = none
endif
ifndef GPS_LED
GPS_LED = 2
endif
ifndef SYS_TIME_LED
SYS_TIME_LED = 1
endif
#
# default uart settings
#
ifndef GPS_PORT
GPS_PORT = UART0
endif
ifndef GPS_BAUD
GPS_BAUD = B38400
endif
ifndef MODEM_PORT
MODEM_PORT = UART1
endif
ifndef MODEM_BAUD
MODEM_BAUD = B57600
endif
ADC_GENERIC_NB_SAMPLES = 16
#
# you can use different actuators by adding a configure option to your firmware section
# e.g. <configure name="ACTUATORS" value="actuators_ppm/>
#
ifndef ACTUATORS
ACTUATORS = actuators_4017
endif
# All targets on the Umarim board run on the same processor achitecture
$(TARGET).ARCHDIR = $(ARCH)
+11 -1
View File
@@ -35,7 +35,7 @@
gui_color="white"
/>
<!-- tiny -->
<!-- tiny/umarim -->
<aircraft
name="Microjet"
ac_id="5"
@@ -56,6 +56,16 @@
settings="settings/fixedwing_basic.xml settings/control/ctl_basic.xml settings/estimation/ins_neutrals.xml"
gui_color="blue"
/>
<aircraft
name="Umarim_Lite"
ac_id="20"
airframe="airframes/examples/umarim_lite_v2.xml"
radio="radios/cockpitSX.xml"
telemetry="telemetry/default_fixedwing_imu.xml"
flight_plan="flight_plans/basic.xml"
settings="settings/fixedwing_basic.xml settings/control/ctl_basic.xml settings/estimation/ins_neutrals.xml"
gui_color="blue"
/>
<aircraft
name="Twinjet"
ac_id="6"
+108
View File
@@ -0,0 +1,108 @@
#ifndef CONFIG_UMARIM_LITE_V2_0_H
#define CONFIG_UMARIM_LITE_V2_0_H
/* Master oscillator freq. */
#define FOSC (12000000)
/* PLL multiplier */
#define PLL_MUL (5)
/* CPU clock freq. */
#define CCLK (FOSC * PLL_MUL)
/* Peripheral bus speed mask 0x00->4, 0x01-> 1, 0x02 -> 2 */
#define PBSD_BITS 0x02
#define PBSD_VAL 2
/* Peripheral bus clock freq. */
#define PCLK (CCLK / PBSD_VAL)
/* Onboard LEDs */
#ifndef USE_LED_1
#define USE_LED_1 1
#endif
#define LED_1_BANK 1
#define LED_1_PIN 25
#ifndef USE_LED_2
#define USE_LED_2 1
#endif
#define LED_2_BANK 1
#define LED_2_PIN 24
/* P0.5 aka MAT0.1 */
#define SERVO_CLOCK_PIN 5
#define SERVO_CLOCK_PINSEL PINSEL0
#define SERVO_CLOCK_PINSEL_VAL 0x02
#define SERVO_CLOCK_PINSEL_BIT 10
/* p1.20 */
#define SERVO_RESET_PIN 20
/* PPM : rc rx on P0.28 ( CAP0.2 ) */
#define PPM_PINSEL PINSEL1
#define PPM_PINSEL_VAL 0x02
#define PPM_PINSEL_BIT 24
#define PPM_CRI TIR_CR2I
#define PPM_CCR_CRF TCCR_CR2_F
#define PPM_CCR_CRR TCCR_CR2_R
#define PPM_CCR_CRI TCCR_CR2_I
#define PPM_CR T0CR2
/* ADC */
#define ADC_0 AdcBank1(5)
#ifdef USE_ADC_0
#ifndef USE_AD1
#define USE_AD1
#endif
#define USE_AD1_5
#endif
#define ADC_1 AdcBank1(4)
#ifdef USE_ADC_1
#ifndef USE_AD1
#define USE_AD1
#endif
#define USE_AD1_4
#endif
#define ADC_2 AdcBank1(3)
#ifdef USE_ADC_2
#ifndef USE_AD1
#define USE_AD1
#endif
#define USE_AD1_3
#endif
#define ADC_3 AdcBank1(2)
#ifdef USE_ADC_3
#ifndef USE_AD1
#define USE_AD1
#endif
#define USE_AD1_2
#endif
/* battery */
/* allow to define ADC_CHANNEL_VSUPPLY in the airframe file*/
#ifndef ADC_CHANNEL_VSUPPLY
#define ADC_CHANNEL_VSUPPLY AdcBank0(2)
#ifndef USE_AD0
#define USE_AD0
#endif
#define USE_AD0_2
#endif
#define DefaultVoltageOfAdc(adc) (0.0247*adc)
/* SPI (SSP) */
#define SPI_SELECT_SLAVE0_PORT 0
#define SPI_SELECT_SLAVE0_PIN 20
#define SPI1_DRDY_PINSEL PINSEL1
#define SPI1_DRDY_PINSEL_BIT 0
#define SPI1_DRDY_PINSEL_VAL 1
#define SPI1_DRDY_EINT 0
#define SPI1_DRDY_VIC_IT VIC_EINT0
#endif /* CONFIG_UMARIM_LITE_V2_0_H */