paparazzi-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[paparazzi-commits] [6193] branches/HB mods for hb_mini ap


From: Oliver Riesener
Subject: [paparazzi-commits] [6193] branches/HB mods for hb_mini ap
Date: Thu, 21 Oct 2010 09:39:59 +0000

Revision: 6193
          http://svn.sv.gnu.org/viewvc/?view=rev&root=paparazzi&revision=6193
Author:   olri
Date:     2010-10-21 09:39:58 +0000 (Thu, 21 Oct 2010)
Log Message:
-----------
branches/HB mods for hb_mini ap

Modified Paths:
--------------
    paparazzi3/branches/HB/trunk/bin/bootloader.sh
    paparazzi3/branches/HB/trunk/bin/clean.sh
    paparazzi3/branches/HB/trunk/bin/clean_ac.sh
    paparazzi3/branches/HB/trunk/bin/compile.sh
    paparazzi3/branches/HB/trunk/bin/compile_all.sh
    paparazzi3/branches/HB/trunk/bin/find.sh
    paparazzi3/branches/HB/trunk/bin/ground.sh
    paparazzi3/branches/HB/trunk/bin/tunnel.sh
    paparazzi3/branches/HB/trunk/bin/upload.sh
    paparazzi3/branches/HB/trunk/conf/airframes/HB/extra/SAS.xml
    paparazzi3/branches/HB/trunk/conf/autopilot/conf_demo.h
    paparazzi3/branches/HB/trunk/conf/conf.xml.HB
    paparazzi3/branches/HB/trunk/conf/control_panel.xml.HB
    paparazzi3/branches/HB/trunk/sw/airborne/arm7/i2c_hw.c
    paparazzi3/branches/HB/trunk/sw/airborne/arm7/ppm_hw.c
    paparazzi3/branches/HB/trunk/sw/airborne/hmc5843_i2c.c
    paparazzi3/branches/HB/trunk/sw/airborne/main_demo3.c
    paparazzi3/branches/HB/trunk/sw/airborne/main_demo4.c
    paparazzi3/branches/HB/trunk/sw/airborne/main_demo5.c

Added Paths:
-----------
    paparazzi3/branches/HB/trunk/bin/upload_isp.sh
    paparazzi3/branches/HB/trunk/conf/airframes/HB/extra/hb_mini.xml
    paparazzi3/branches/HB/trunk/conf/radios/HB/mx12-HB_MINI.xml
    paparazzi3/branches/HB/trunk/sw/airborne/hmc5843_i2c1.c

Property Changed:
----------------
    paparazzi3/branches/HB/trunk/


Property changes on: paparazzi3/branches/HB/trunk
___________________________________________________________________
Modified: svn:ignore
   - var
.cvsignore
*.cmo
*.cma
*.cmi
*.cmx
.depend

   + var
.cvsignore
*.cmo
*.cma
*.cmi
*.cmx
.depend
dox



Modified: paparazzi3/branches/HB/trunk/bin/bootloader.sh
===================================================================
--- paparazzi3/branches/HB/trunk/bin/bootloader.sh      2010-10-21 01:30:14 UTC 
(rev 6192)
+++ paparazzi3/branches/HB/trunk/bin/bootloader.sh      2010-10-21 09:39:58 UTC 
(rev 6193)
@@ -2,4 +2,12 @@
 #
 # $Id$ olri
 #
+
 make upload_bl PROC=GENERIC
+
+for TTY in /dev/ttyS0 /dev/ttyS1 /dev/ttyUSB0 /dev/ttyUSB1
+do
+    if [ -c $TTY ] ; then
+       lpc21isp sw/airborne/arm7/test/bootloader/bl.hex $TTY 38400 12000
+    fi
+done

Modified: paparazzi3/branches/HB/trunk/bin/clean.sh
===================================================================
--- paparazzi3/branches/HB/trunk/bin/clean.sh   2010-10-21 01:30:14 UTC (rev 
6192)
+++ paparazzi3/branches/HB/trunk/bin/clean.sh   2010-10-21 09:39:58 UTC (rev 
6193)
@@ -2,4 +2,5 @@
 #
 # $Id:$ olri
 #
+
 make clean

Modified: paparazzi3/branches/HB/trunk/bin/clean_ac.sh
===================================================================
--- paparazzi3/branches/HB/trunk/bin/clean_ac.sh        2010-10-21 01:30:14 UTC 
(rev 6192)
+++ paparazzi3/branches/HB/trunk/bin/clean_ac.sh        2010-10-21 09:39:58 UTC 
(rev 6193)
@@ -2,5 +2,7 @@
 #
 # $Id:$ olri
 #
+
 [ $# = 1 ] || { echo "Usage: $0 <AirframeName>"; exit 5; }
+
 make AIRCRAFT="$1" clean_ac

Modified: paparazzi3/branches/HB/trunk/bin/compile.sh
===================================================================
--- paparazzi3/branches/HB/trunk/bin/compile.sh 2010-10-21 01:30:14 UTC (rev 
6192)
+++ paparazzi3/branches/HB/trunk/bin/compile.sh 2010-10-21 09:39:58 UTC (rev 
6193)
@@ -2,5 +2,7 @@
 #
 # $Id:$ olri
 #
+
 [ $# = 1 ] || { echo "Usage: $0 <AirframeName>"; exit 5; }
+
 make AIRCRAFT="$1" ap.compile

Modified: paparazzi3/branches/HB/trunk/bin/compile_all.sh
===================================================================
--- paparazzi3/branches/HB/trunk/bin/compile_all.sh     2010-10-21 01:30:14 UTC 
(rev 6192)
+++ paparazzi3/branches/HB/trunk/bin/compile_all.sh     2010-10-21 09:39:58 UTC 
(rev 6193)
@@ -3,7 +3,7 @@
 # $Id$
 #
 # SAS Busca_Razor_40cm Busca_Razor_80cm TWOG_CHNI Lerche MJ5 Busca2
-for i in SAS Busca_Razor_40cm Busca_Razor_80cm TWOG_CHNI Lerche MJ5 Busca2
+for i in SAS Busca_Razor_40cm Busca_Razor_80cm TWOG_CHNI Lerche MJ5 Busca2 
HB_MINI
 do
        echo "###################### $i #######################"
        (
@@ -11,7 +11,7 @@
        ) 2>&1 | egrep Total\|Error\|Fehler
 done
 
-for i in 1 2 # defect 3 4 5
+for i in 1 2 3 4 # defect 5
 do
        echo "###################### demo$i #######################"
        (

Modified: paparazzi3/branches/HB/trunk/bin/find.sh
===================================================================
--- paparazzi3/branches/HB/trunk/bin/find.sh    2010-10-21 01:30:14 UTC (rev 
6192)
+++ paparazzi3/branches/HB/trunk/bin/find.sh    2010-10-21 09:39:58 UTC (rev 
6193)
@@ -2,5 +2,7 @@
 #
 # $Id:$ olri
 #
+
 [ "$#" = "1" ] || { echo "Usage: $0 <pattern>"; exit 5; }
+
 find . -type f -print0 | xargs -0 egrep "$@" | grep -v /.svn/

Modified: paparazzi3/branches/HB/trunk/bin/ground.sh
===================================================================
--- paparazzi3/branches/HB/trunk/bin/ground.sh  2010-10-21 01:30:14 UTC (rev 
6192)
+++ paparazzi3/branches/HB/trunk/bin/ground.sh  2010-10-21 09:39:58 UTC (rev 
6193)
@@ -2,5 +2,7 @@
 #
 # $Id:$ olri
 #
+
 make
+
 ./paparazzi &

Modified: paparazzi3/branches/HB/trunk/bin/tunnel.sh
===================================================================
--- paparazzi3/branches/HB/trunk/bin/tunnel.sh  2010-10-21 01:30:14 UTC (rev 
6192)
+++ paparazzi3/branches/HB/trunk/bin/tunnel.sh  2010-10-21 09:39:58 UTC (rev 
6193)
@@ -1,4 +1,6 @@
+#!/bin/sh
 #
 # $Id: tunnel.sh,v 1.1 2008-06-02 19:05:27 olri Exp $ olri
 #
+
 make AIRCRAFT=MJ5 tunnel.upload

Modified: paparazzi3/branches/HB/trunk/bin/upload.sh
===================================================================
--- paparazzi3/branches/HB/trunk/bin/upload.sh  2010-10-21 01:30:14 UTC (rev 
6192)
+++ paparazzi3/branches/HB/trunk/bin/upload.sh  2010-10-21 09:39:58 UTC (rev 
6193)
@@ -2,5 +2,7 @@
 #
 # $Id:$ olri
 #
+
 [ $# = 1 ] || { echo "Usage: $0 <AirframeName>"; exit 5; }
+
 make AIRCRAFT="$1" ap.upload

Added: paparazzi3/branches/HB/trunk/bin/upload_isp.sh
===================================================================
--- paparazzi3/branches/HB/trunk/bin/upload_isp.sh                              
(rev 0)
+++ paparazzi3/branches/HB/trunk/bin/upload_isp.sh      2010-10-21 09:39:58 UTC 
(rev 6193)
@@ -0,0 +1,8 @@
+#
+# $Id:$ olri
+#
+[ $# = 1 ] || { echo "Usage: $0 <AirframeName>"; exit 5; }
+
+make AIRCRAFT="$1" ap.compile
+
+lpc21isp  var/$AIRCRAFT/ap/ap.hex /dev/ttyS1 38400 12000


Property changes on: paparazzi3/branches/HB/trunk/bin/upload_isp.sh
___________________________________________________________________
Added: svn:executable
   + *

Modified: paparazzi3/branches/HB/trunk/conf/airframes/HB/extra/SAS.xml
===================================================================
--- paparazzi3/branches/HB/trunk/conf/airframes/HB/extra/SAS.xml        
2010-10-21 01:30:14 UTC (rev 6192)
+++ paparazzi3/branches/HB/trunk/conf/airframes/HB/extra/SAS.xml        
2010-10-21 09:39:58 UTC (rev 6193)
@@ -270,7 +270,7 @@
 
 #ap.srcs = sys_time.c $(SRC_ARCH)/sys_time_hw.c $(SRC_ARCH)/armVIC.c 
test_adcs.c
 
-#olri added hmc5843
+#olri added hmc5843 on i2c0 bus
 ap.CFLAGS += -DUSE_MAG_HMC5843 -DUSE_I2C0
 ap.srcs += hmc5843_i2c.c i2c.c $(SRC_ARCH)/i2c_hw.c
 #olri added hmc5843

Added: paparazzi3/branches/HB/trunk/conf/airframes/HB/extra/hb_mini.xml
===================================================================
--- paparazzi3/branches/HB/trunk/conf/airframes/HB/extra/hb_mini.xml            
                (rev 0)
+++ paparazzi3/branches/HB/trunk/conf/airframes/HB/extra/hb_mini.xml    
2010-10-21 09:39:58 UTC (rev 6193)
@@ -0,0 +1,361 @@
+<!DOCTYPE airframe SYSTEM "../../airframe.dtd">
+
+<airframe name="HB_MINI Board">
+
+<!-- commands section -->
+
+  <servos>
+    <servo name="THROTTLE"      no="1" min="1000" neutral="1000" max="2000"/>
+    <servo name="AILERON"       no="2" max="1000" neutral="1500" min="2000"/>
+    <servo name="ELEVATOR"      no="3" max="2000" neutral="1500" min="1000"/>
+    <servo name="HATCH"        no="0" max="1000" neutral="1500" min="2000"/>
+  </servos>
+
+
+  <commands>
+    <axis name="THROTTLE" failsafe_value="0"/>
+    <axis name="ROLL"     failsafe_value="0"/>
+    <axis name="PITCH"    failsafe_value="0"/>
+    <axis name="HATCH"    failsafe_value="0"/>
+  </commands>
+
+  <rc_commands>
+    <set command="THROTTLE" value="@THROTTLE"/>
+    <set command="ROLL"     value="@ROLL"/>
+    <set command="PITCH"    value="@PITCH"/>
+    <set command="HATCH"    value="@HATCH"/>    
+  </rc_commands>
+
+  <command_laws>  
+    <set servo="THROTTLE"      value="@THROTTLE"/>
+    <set servo="AILERON"       value="@ROLL"/>
+    <set servo="ELEVATOR"      value="@PITCH"/>
+    <set servo="HATCH"         value="@HATCH"/>
+  </command_laws>
+
+  <section name="AUTO1" prefix="AUTO1_">
+    <define name="MAX_ROLL" value="0.6"/>
+    <define name="MAX_PITCH" value="0.6"/>
+  </section>
+<!--
+  <section name="adc" prefix="ADC_CHANNEL_">
+    <define name="IR1" value="ADC_4"/>
+    <define name="IR2" value="ADC_3"/>
+    <define name="IR_NB_SAMPLES" value="16"/>
+    <define name="PRESSURE_OFF" value="ADC_0"/>
+    <define name="PRESSURE" value="ADC_2"/>
+    <define name="PRESSURE_NB_SAMPLES" value="16"/>
+    <define name="PRESSURE_OFF_NB_SAMPLES" value="16"/>
+    <define name="GYRO_ROLL" value="ADC_5"/>
+    <define name="GYRO_TEMP" value="ADC_6"/>
+    <define name="GYRO_NB_SAMPLES" value="16"/> 
+  </section>
+-->
+<!-- orig busca 2008
+  <section name="adc" prefix="ADC_CHANNEL_">
+    <define name="IR1" value="ADC_0"/>
+    <define name="IR_TOP" value="ADC_1"/>
+    <define name="IR2" value="ADC_2"/>
+    <define name="IR_NB_SAMPLES" value="16"/>
+    <define name="PRESSURE_OFF" value="ADC_3"/>
+    <define name="PRESSURE" value="ADC_4"/>
+    <define name="PRESSURE_NB_SAMPLES" value="16"/>
+    <define name="PRESSURE_OFF_NB_SAMPLES" value="16"/>
+    <define name="GYRO_ROLL" value="ADC_5"/>
+    <define name="GYRO_TEMP" value="ADC_6"/>
+    <define name="GYRO_NB_SAMPLES" value="16"/> 
+  </section>
+-->
+<!-- old hwarm 20100514 -->
+  <section name="adc" prefix="ADC_CHANNEL_">
+    <define name="RAZ_GROLL" value="ADC_0"/>
+    <define name="RAZ_GPITCH" value="ADC_1"/>
+    <define name="RAZ_GYAW" value="ADC_2"/>
+    <define name="IR_NB_SAMPLES" value="16"/>
+    <define name="IR1" value="ADC_3"/>
+    <define name="IR2" value="ADC_4"/>
+    <define name="RAZ_ACCX" value="ADC_5"/>
+    <define name="RAZ_ACCY" value="ADC_6"/>
+    <define name="RAZ_ACCZ" value="ADC_7"/>
+ </section>
+<!--
+  GROLL  ADC_0
+  GPITCH ADC_1
+  GYAW   ADC_2
+  ..
+  ..
+  ACCX   ADC_5
+  ACCY   ADC_6
+  ACCZ   ADC_7  
+-->
+
+  <section name="INFRARED" prefix="IR_">
+    <define name="ROLL_NEUTRAL_DEFAULT" value="6" unit="deg"/>
+    <define name="PITCH_NEUTRAL_DEFAULT" value="9" unit="deg"/>
+    <linear name="RollOfIrs" arity="2" coeff1="-0.7" coeff2="0.7"/>
+    <linear name="PitchOfIrs" arity="2" coeff1="-0.7" coeff2="-0.7"/>
+    <linear name="TopOfIr" arity="1" coeff1="1"/>
+    <define name="RAD_OF_IR_MAX_VALUE" value="0.0045"/>
+    <define name="RAD_OF_IR_MIN_VALUE" value="0.00075"/>
+    <define name="DEFAULT_CONTRAST" value="200"/>
+    <define name="RAD_OF_IR_CONTRAST" value="0.0001"/>
+    <define name="ADC_IR1_NEUTRAL" value="512"/>
+    <define name="ADC_IR2_NEUTRAL" value="512"/>
+    <define name="ADC_TOP_NEUTRAL" value="512"/>
+  </section>
+
+<!--
+ <section name="GYRO" prefix="GYRO_">
+    <define name="ADC_ROLL_COEF" value="1"/>
+    <define name="ADC_ROLL_NEUTRAL" value="500"/>
+    <define name="ADC_TEMP_NEUTRAL" value="476"/>   
+    <define name="ADC_TEMP_SLOPE" value="0"/>   
+    <define name="ROLL_SCALE" value="0.44"/>
+    <define name="ROLL_DIRECTION" value="1"/>
+  </section>
+-->
+  <section name="BAT">
+    <define name="MILLIAMP_AT_FULL_THROTTLE" value="0.86"/>
+<!-- olri Lipo 3S    <define name="CATASTROPHIC_BAT_LEVEL" value="9.3" 
unit="V"/> -->
+    <define name="CATASTROPHIC_BAT_LEVEL" value="6.1" 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="ALT_BARO_ENABLED" value="TRUE"/>
+  </section>
+ 
+  <section name="PID">
+    <define name="ROLL_PGAIN" value="5000."/>
+    <define name="PITCH_OF_ROLL" value="0.25"/>
+    <define name="PITCH_PGAIN" value="10000."/>
+    <define name="MAX_ROLL" value="0.35"/>
+    <define name="MAX_PITCH" value="0.35"/>
+    <define name="MIN_PITCH" value="-0.35"/>
+    <define name="AILERON_OF_THROTTLE" value="0.0"/>
+    <define name="CRUISE_THROTTLE" value="0.35"/>
+  </section>
+ 
+  <section name="ALT" prefix="CLIMB_">
+    <define name="PITCH_PGAIN" value="-0.05"/>
+    <define name="PITCH_IGAIN" value="0.075"/>
+    <define name="PGAIN" value="-0.01"/>
+    <define name="IGAIN" value="0.1"/>
+    <define name="MAX" value="1."/>
+    <define name="PITCH_OF_VZ_PGAIN" value="0.05"/>
+    <define name="THROTTLE_OF_CLIMB" value="0.15" unit="%/(m/s)"/>
+  </section>
+ 
+  <section name="HORIZONTAL CONTROL" prefix="H_CTL_">
+    <define name="COURSE_PGAIN" value="-0.4"/>
+    <define name="ROLL_MAX_SETPOINT" value="0.6" unit="radians"/>
+    <define name="PITCH_MAX_SETPOINT" value="0.5" unit="radians"/>
+    <define name="PITCH_MIN_SETPOINT" value="-0.5" unit="radians"/>
+
+
+    <define name="ROLL_PGAIN" value="5000."/>
+    <define name="AILERON_OF_THROTTLE" value="0.0"/>
+    <define name="PITCH_PGAIN" value="-9000."/>
+    <define name="PITCH_DGAIN" value="1.5"/>
+    <define name="ELEVATOR_OF_ROLL" value="1250"/>
+    
+    <!--  roll rate loop -->
+    <define name="ROLL_RATE_MODE_DEFAULT" value="1"/>
+    <define name="ROLL_RATE_SETPOINT_PGAIN" value="-5." unit="rad/s/rad"/>
+    <define name="ROLL_RATE_MAX_SETPOINT" value="10"/>
+    <define name="LO_THROTTLE_ROLL_RATE_PGAIN" value="1000."/>
+    <define name="HI_THROTTLE_ROLL_RATE_PGAIN" value="1000."/>
+    <define name="ROLL_RATE_IGAIN" value="0."/>
+    <define name="ROLL_RATE_DGAIN" value="0."/>
+    <define name="ROLL_RATE_SUM_NB_SAMPLES" value="64"/>
+
+  </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.35"/>
+    <define name="AUTO_THROTTLE_MIN_CRUISE_THROTTLE" value="0.30"/>
+    <define name="AUTO_THROTTLE_MAX_CRUISE_THROTTLE" value="0.80"/>
+    <define name="AUTO_THROTTLE_LOITER_TRIM" value="1500"/>
+    <define name="AUTO_THROTTLE_DASH_TRIM" value="-1000"/>
+    <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"/>
+
+    <!-- auto pitch inner loop -->
+    <define name="AUTO_PITCH_PGAIN" value="-0.05"/>
+    <define name="AUTO_PITCH_IGAIN" value="0.075"/>
+    <define name="AUTO_PITCH_MAX_PITCH" value="0.35"/>
+    <define name="AUTO_PITCH_MIN_PITCH" value="-0.35"/>
+
+   <define name="THROTTLE_SLEW" value="0.1"/>
+
+  </section>
+
+
+  <section name="NAV">
+    <define name="NAV_PITCH" value="0."/>
+    <define name="NAV_GLIDE_PITCH_TRIM" value="0"/>
+    <define name="DEFAULT_CIRCLE_RADIUS" value="100" unit="m"/>
+  </section>
+
+  <section name="AGGRESSIVE" prefix="AGR_">
+    <define name="CLIMB_THROTTLE" value="0.95"/><!-- Throttle for Aggressive 
Climb -->
+    <define name="DESCENT_THROTTLE" value="0.1"/><!-- Throttle for Aggressive 
Decent -->
+    <define name="CLIMB_PITCH" value="0.3"/><!-- Pitch for Aggressive Climb -->
+    <define name="DESCENT_PITCH" value="-0.25"/><!-- Pitch for Aggressive 
Decent -->
+    <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_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="GYRO_GAINS">
+    <define name="GYRO_MAX_RATE" value="200."/>
+    <define name="ROLLRATESUM_NB_SAMPLES" value="60"/>
+    <define name="ALT_ROLL_PGAIN" value="120.0"/>
+    <define name="ROLL_RATE_PGAIN" value="85.0"/>
+    <define name="ROLL_RATE_IGAIN" value="0.0"/>
+    <define name="ROLL_RATE_DGAIN" value="0.0"/>
+  </section>
+-->
+
+  <section name="FAILSAFE" prefix="FAILSAFE_">
+       <define name="DELAY_WITHOUT_GPS" value="1" 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>
+ 
+<!--
+  <section name="DATALINK" prefix="DATALINK_">
+    <define name="DEVICE_TYPE" value="XBEE"/>
+    <define name="DEVICE_ADDRESS" value="...."/>
+  </section>
+-->
+
+
+ <makefile>
+
+
+
+include $(PAPARAZZI_SRC)/conf/autopilot/tiny.makefile
+
+FLASH_MODE=IAP
+
+#Harware Low Level konfiguration
+
+ap.CFLAGS +=  -DFBW -DAP -DBOARD_CONFIG=\"HB/hb_mini_0_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_ap.c main.c
+
+ap.CFLAGS += -DRAZOR_IMU -DUSE_ADC_5 -DUSE_ADC_6 -DUSE_ADC_7 
+ap.srcs += razor_imu.c
+
+#ap.CFLAGS += -DUSE_DAC
+ap.srcs += diydrones/dcm.c diydrones/matrix.c diydrones/read_adc.c 
diydrones/vector.c diydrones/arduimu.c
+
+#ap.srcs = sys_time.c $(SRC_ARCH)/sys_time_hw.c $(SRC_ARCH)/armVIC.c 
test_adcs.c
+
+#olri added hmc5843 on i2c1 bus
+#WEG ap.CFLAGS += -DUSE_MAG_HMC5843 -DUSE_I2C1
+#WEG ap.srcs += hmc5843_i2c1.c i2c.c $(SRC_ARCH)/i2c_hw.c
+#olri added hmc5843
+
+#olri added baro_scp_hw
+#WEG ap.srcs += baro_scp.c $(SRC_ARCH)/baro_scp_hw.c
+#WEG ap.CFLAGS += -DUSE_BARO_SCP
+#olri added baro_scp_hw
+
+ap.srcs += commands.c
+
+
+#
+#WEG ap.CFLAGS += -DACTUATORS=\"servos_4015_MAT_hw.h\" -DSERVOS_4015_MAT
+#WEG ap.srcs += $(SRC_ARCH)/servos_4015_MAT_hw.c actuators.c
+
+# radio control
+ap.CFLAGS += -DRADIO_CONTROL -DRADIO_CONTROL_TYPE=RC_FUTABA
+ap.srcs += radio_control.c $(SRC_ARCH)/ppm_hw.c
+
+#olri tuning / settings
+ap.CFLAGS += -DRADIO_CONTROL_SETTINGS
+ap.srcs += rc_settings.c
+
+ap.CFLAGS += -DDOWNLINK -DUSE_UART0 -DDOWNLINK_TRANSPORT=PprzTransport 
-DDOWNLINK_FBW_DEVICE=Uart0 -DDOWNLINK_AP_DEVICE=Uart0 -DPPRZ_UART=Uart0 
-DDATALINK=PPRZ -DUART0_BAUD=B38400
+ap.srcs += downlink.c $(SRC_ARCH)/uart_hw.c datalink.c pprz_transport.c 
latlong.c
+
+
+ap.CFLAGS += -DINTER_MCU
+ap.srcs += inter_mcu.c 
+
+ap.CFLAGS += -DADC -DUSE_ADC_0 -DUSE_ADC_1 -DUSE_ADC_2 -DUSE_ADC_3
+ap.srcs += $(SRC_ARCH)/adc_hw.c
+
+# BARO_MP3H6115
+#WEG ap.CFLAGS += -DADC -DUSE_ADC_3 -DUSE_ADC_4
+#ap.CFLAGS += -DUSE_BARO_MP3H6115 -DBARO_SCALE=1.0
+#ap.srcs += baro_MP3H6115.c
+ap.srcs += baro_nobaro.c
+
+ap.CFLAGS += -DGPS -DUBX -DUSE_UART1 -DGPS_LINK=Uart1 -DUART1_BAUD=B38400
+ap.srcs += gps_ubx.c gps.c #latlong.c
+
+ap.CFLAGS += -DINFRARED -DADC -DUSE_ADC_3 -DUSE_ADC_4
+ap.srcs += infrared.c estimator.c
+
+ap.CFLAGS += -DNAV -DAGR_CLIMB -DLOITER_TRIM -DALT_KALMAN
+ap.srcs += nav.c fw_h_ctl.c fw_v_ctl.c
+
+# bomb test
+#WEG ap.srcs += bomb.c #nav_survey_rectangle.c
+
+#ap.CFLAGS += -DGYRO -DADXRS150
+#ap.srcs += gyro.c
+
+ap.srcs += nav_line.c nav_survey_rectangle.c
+
+ap.srcs += traffic_info.c
+
+#ap.srcs += light.c
+#ap.CFLAGS += -DUSE_LIGHT
+
+# PID sensor
+#ap.CFLAGS += -DUSE_ADC_6 -DUSE_ADC_GENERIC -DADC_CHANNEL_GENERIC1=ADC_6 
-DADC_CHANNEL_GENERIC_NB_SAMPLES=16
+#ap.srcs += adc_generic.c
+
+ap.CFLAGS += -DUSE_MODULES
+
+# Config for SITL simulation
+include $(PAPARAZZI_SRC)/conf/autopilot/sitl.makefile
+sim.CFLAGS += -DBOARD_CONFIG=\"tiny_1_1.h\" -DAGR_CLIMB -DLOITER_TRIM 
-DALT_KALMAN
+sim.srcs += nav_survey_rectangle.c nav_line.c
+sim.srcs += bomb.c #nav_survey_rectangle.c
+
+sim.srcs += light.c
+sim.CFLAGS += -DUSE_LIGHT
+
+#olri baro
+#sim.CFLAGS += -DUSE_BARO_MP3H6115 -DBARO_SCALE=1.0
+#sim.srcs += $(SRC_ARCH)/baro_MP3H6115_sim.c
+
+#olri tuning / settings
+sim.CFLAGS += -DRADIO_CONTROL_SETTINGS
+sim.srcs += rc_settings.c
+ap.CFLAGS += -DTELEMETRY_MODE_FBW=1
+
+  </makefile>
+</airframe>

Modified: paparazzi3/branches/HB/trunk/conf/autopilot/conf_demo.h
===================================================================
--- paparazzi3/branches/HB/trunk/conf/autopilot/conf_demo.h     2010-10-21 
01:30:14 UTC (rev 6192)
+++ paparazzi3/branches/HB/trunk/conf/autopilot/conf_demo.h     2010-10-21 
09:39:58 UTC (rev 6193)
@@ -14,7 +14,12 @@
 #define PCLK (CCLK / PBSD_VAL) 
 
 #define LED_1_BANK 1
-#define LED_1_PIN 24
+// olri #define LED_1_PIN 24
+#define LED_1_PIN 18
 
+#define LED_2_BANK 1
+// olri #define LED_1_PIN 24
+#define LED_2_PIN 19
 
+
 #endif /* CONFIG_DEMO_H */

Modified: paparazzi3/branches/HB/trunk/conf/conf.xml.HB
===================================================================
--- paparazzi3/branches/HB/trunk/conf/conf.xml.HB       2010-10-21 01:30:14 UTC 
(rev 6192)
+++ paparazzi3/branches/HB/trunk/conf/conf.xml.HB       2010-10-21 09:39:58 UTC 
(rev 6193)
@@ -139,4 +139,14 @@
    settings="settings/tuning.xml"
    gui_color="#ffffffffffff"
   />
+  <aircraft
+   name="HB_MINI"
+   ac_id="46"
+   airframe="airframes/HB/extra/hb_mini.xml"
+   radio="radios/HB/mx12-HB_MINI.xml"
+   telemetry="telemetry/default.xml"
+   flight_plan="flight_plans/HB/hochschule.xml"
+   settings="settings/HB/tuning_hsb_2.xml"
+   gui_color="white"
+  />
 </conf>

Modified: paparazzi3/branches/HB/trunk/conf/control_panel.xml.HB
===================================================================
--- paparazzi3/branches/HB/trunk/conf/control_panel.xml.HB      2010-10-21 
01:30:14 UTC (rev 6192)
+++ paparazzi3/branches/HB/trunk/conf/control_panel.xml.HB      2010-10-21 
09:39:58 UTC (rev 6193)
@@ -52,6 +52,16 @@
       <program name="GCS"/>
       <program name="Real-time Plotter"/>
     </session>
+    <session name="38k4 Hardware RS232 & ttyS1">
+      <program name="Data Link">
+        <arg flag="-d" constant="/dev/ttyS1"/>
+        <arg flag="-s" constant="38400"/>
+      </program>
+      <program name="Messages"/>
+      <program name="Server"/>
+      <program name="GCS"/>
+      <program name="Real-time Plotter"/>
+    </session>
     <session name="Booz simulation : AHRS">
       <program name="Messages">
         <arg flag="-c" constant="telemetry"/>
@@ -171,4 +181,4 @@
       <program name="GCS"/>
     </session>
   </section>
-</control_panel>
\ No newline at end of file
+</control_panel>

Added: paparazzi3/branches/HB/trunk/conf/radios/HB/mx12-HB_MINI.xml
===================================================================
--- paparazzi3/branches/HB/trunk/conf/radios/HB/mx12-HB_MINI.xml                
                (rev 0)
+++ paparazzi3/branches/HB/trunk/conf/radios/HB/mx12-HB_MINI.xml        
2010-10-21 09:39:58 UTC (rev 6193)
@@ -0,0 +1,60 @@
+<?xml version="1.0"?>
+<!-- $Id: cockpitMM.xml,v 1.7 2006/04/13 11:30:56 poine Exp $
+--
+-- (c) 2003 Pascal Brisset, Antoine Drouin
+--
+-- 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.  
+-->
+
+<!--
+-- Attributes of root (Radio) tag :
+-- name: name of RC
+-- data_min: min width of a pulse to be considered as a data pulse
+-- data_max: max width of a pulse to be considered as a data pulse
+-- sync_min: min width of a pulse to be considered as a synchro pulse
+-- sync_max: max width of a pulse to be considered as a synchro pulse
+-- min, max and sync are expressed in micro-seconds
+-->
+
+<!-- 
+-- Attributes of channel tag :
+-- ctl: name of the command on the transmitter - only for displaying
+-- no: order in the PPM frame
+-- function: logical command
+-- averaged: channel filtered through several frames (for discrete commands)
+-- min: minimum pulse length (micro-seconds)
+-- max: maximum pulse length (micro-seconds)
+-- neutral: neutral pulse length (micro-seconds)
+-- Note: a command may be reversed by exchanging min and max values
+-->
+
+
+<!DOCTYPE radio SYSTEM "../radio.dtd">
+
+<!-- ACHTUNG hier zählt die Reihenfolge, nicht der Buchstabe am Anfang!!! -->
+
+<radio name="HB/mx12-HB_MINI.xml" data_min="900" data_max="2100" sync_min 
="8000" sync_max ="13000" pulse_type="NEGATIVE">
+ <channel ctl="C" function="PITCH"     max="2000" neutral="1500" min="900" 
average="0"/>
+ <channel ctl="B" function="ROLL"      max="1000" neutral="1500" min="2000" 
average="0"/>
+ <channel ctl="A" function="THROTTLE"  min="1000" neutral="1070" max="2000" 
average="0"/>
+ <channel ctl="F" function="YAW"       min="1000" neutral="1500" max="2000" 
average="0"/>
+ <channel ctl="H" function="MODE"      min="1000" neutral="1500" max="2000" 
average="0"/> 
+ <channel ctl="D" function="HATCH"     min="1000" neutral="1100" max="2000" 
average="1"/>
+ <channel ctl="E" function="CALIB"     min="1000" neutral="1500" max="2000" 
average="0"/> 
+ <channel ctl="G" function="GAIN2"     min="1000" neutral="1500" max="2000" 
average="1"/>
+</radio>

Modified: paparazzi3/branches/HB/trunk/sw/airborne/arm7/i2c_hw.c
===================================================================
--- paparazzi3/branches/HB/trunk/sw/airborne/arm7/i2c_hw.c      2010-10-21 
01:30:14 UTC (rev 6192)
+++ paparazzi3/branches/HB/trunk/sw/airborne/arm7/i2c_hw.c      2010-10-21 
09:39:58 UTC (rev 6193)
@@ -151,6 +151,10 @@
 #define I2C1_DATA_REG   I2C1DAT
 #define I2C1_STATUS_REG I2C1STAT
 
+#ifndef I2C1_VIC_SLOT
+#define I2C1_VIC_SLOT 9
+#endif
+
 void i2c1_ISR(void) __attribute__((naked));
 
 /* SDA1 on P0.14 */

Modified: paparazzi3/branches/HB/trunk/sw/airborne/arm7/ppm_hw.c
===================================================================
--- paparazzi3/branches/HB/trunk/sw/airborne/arm7/ppm_hw.c      2010-10-21 
01:30:14 UTC (rev 6192)
+++ paparazzi3/branches/HB/trunk/sw/airborne/arm7/ppm_hw.c      2010-10-21 
09:39:58 UTC (rev 6193)
@@ -2,9 +2,10 @@
 #include "std.h"
 #include "sys_time.h"
 
+#ifndef PPM_NB_CHANNEL
+#define PPM_NB_CHANNEL PPM_NB_PULSES
+#endif
 
-
-
 uint16_t ppm_pulses[PPM_NB_CHANNEL];
 volatile bool_t ppm_valid;
 

Modified: paparazzi3/branches/HB/trunk/sw/airborne/hmc5843_i2c.c
===================================================================
--- paparazzi3/branches/HB/trunk/sw/airborne/hmc5843_i2c.c      2010-10-21 
01:30:14 UTC (rev 6192)
+++ paparazzi3/branches/HB/trunk/sw/airborne/hmc5843_i2c.c      2010-10-21 
09:39:58 UTC (rev 6193)
@@ -1,6 +1,6 @@
 /** \file hmc5843_i2c.c
  *
- *  \brief Read the Honywell hmc5843 magnetometer on I2C sensor interface
+ *  \brief Read the Honywell hmc5843 magnetometer on I2C(0) sensor interface
  *
  *  This reads the values for X Y Z magnitude from the HMC5843 through I2C.
  *

Added: paparazzi3/branches/HB/trunk/sw/airborne/hmc5843_i2c1.c
===================================================================
--- paparazzi3/branches/HB/trunk/sw/airborne/hmc5843_i2c1.c                     
        (rev 0)
+++ paparazzi3/branches/HB/trunk/sw/airborne/hmc5843_i2c1.c     2010-10-21 
09:39:58 UTC (rev 6193)
@@ -0,0 +1,155 @@
+/** \file hmc5843_i2c.c
+ *
+ *  \brief Read the Honywell hmc5843 magnetometer on I2C(1) sensor interface
+ *
+ *  This reads the values for X Y Z magnitude from the HMC5843 through I2C.
+ *
+ *  \author Oliver Riesener 2010
+ */
+
+#include <string.h>
+#include <math.h>
+
+#include "sys_time.h"
+#include "i2c.h"
+#include "led.h"
+
+#include "hmc5843_i2c.h"
+
+#define HMC5843_SLAVE_ADDR 0x3C
+
+uint8_t hmc5843_status;
+int16_t hmc5843_mag_x;
+int16_t hmc5843_mag_y;
+int16_t hmc5843_mag_z;
+float  hmc5843_mag_h;
+
+bool_t hmc5843_available;
+
+volatile bool_t hmc5843_i2c_done;
+
+typedef struct {
+    unsigned short offset[3]; // x-, y-, z-offset
+    unsigned short range[3]; //x-, y-, z- range
+} hmc5843_param_t;
+
+#if (AIRCRAFT == SAS)
+#define MAX_X 650
+#define MAX_Y 590
+#define MAX_Z 580
+#define MIN_X -570
+#define MIN_Y -620
+#define MIN_Z -530
+#else
+#warning no magent offset ranges
+#define MAX_X 600
+#define MAX_Y 600
+#define MAX_Z 600
+#define MIN_X -600
+#define MIN_Y -600
+#define MIN_Z -600
+#endif
+
+
+static hmc5843_param_t hmc5843_param = {
+    { (MAX_X+MIN_X)/2,(MAX_Y+MIN_Y)/2,(MAX_Z+MIN_Z)/2 },
+    { MAX_X-(MIN_X),MAX_Y-(MIN_Y),MAX_Z-(MAX_Z) }
+};
+
+/**
+ * Initialises states from HMC5843 device
+ *
+ * \author Oliver Riesener
+ *
+ * \return hmc5843_status, hmc5843_i2c_done, hmc5843_available
+ */
+void hmc5843_init( void ) {
+  hmc5843_status = HMC5843_UNINIT;
+  hmc5843_i2c_done = FALSE;
+  hmc5843_available = FALSE;
+}
+
+/**
+ * reads magneto data from HMC5843 device, correct axis and sign
+ *
+ * return axis in airplane direction and notation
+ *
+ * \todo scaling is missing, incl. dice to begin
+ * \return hmc5843_mag_[xyzh], hmc5843_available
+ */
+void hmc5843_periodic( void ) {
+  if (hmc5843_status == HMC5843_UNINIT && cpu_time_sec > 1) {
+    /* initialise device, write 0x00 to 0x01 */
+    i2c1_buf[0] = 0x02; // mode register
+    i2c1_buf[1] = 0x00; // cont. measurement mode
+    hmc5843_i2c_done = FALSE;
+    i2c1_transmit(HMC5843_SLAVE_ADDR, 2, &hmc5843_i2c_done);
+    hmc5843_status = HMC5843_IDLE;
+  } else {
+    if (hmc5843_i2c_done) {
+      if (hmc5843_status == HMC5843_IDLE) {
+       // start 6+1 bytes read sequence 6 data + 1 status mode rr
+       hmc5843_status = HMC5843_READ_XYZ;
+       hmc5843_i2c_done = FALSE;
+       i2c1_transceive(HMC5843_SLAVE_ADDR, 0, 6+1, &hmc5843_i2c_done);
+      } else if ( hmc5843_status == HMC5843_READ_XYZ ) {
+       // calculate the 3 answer values, switch axis and sign
+       hmc5843_mag_y = -((i2c1_buf[0] << 8) | i2c1_buf[1]); // xh + xl
+       hmc5843_mag_x = -((i2c1_buf[2] << 8) | i2c1_buf[3]); // yh + yl
+       hmc5843_mag_z = -((i2c1_buf[4] << 8) | i2c1_buf[5]); // zh + zl
+       // offset correction
+       hmc5843_mag_x -= hmc5843_param.offset[0];
+       hmc5843_mag_y -= hmc5843_param.offset[1];
+       hmc5843_mag_z -= hmc5843_param.offset[2];
+       // scaling to +/- 512
+       hmc5843_mag_x *= (1024. / hmc5843_param.range[0]); 
+       hmc5843_mag_y *= (1024. / hmc5843_param.range[1]); 
+       hmc5843_mag_z *= (1024. / hmc5843_param.range[2]); 
+       // set data avail
+       hmc5843_available = TRUE;
+       // next state
+       hmc5843_status = HMC5843_IDLE;
+       //debug 
+       //LED_OFF(2);
+      }
+    } else {
+      // debug no response
+      hmc5843_mag_x = hmc5843_i2c_done;
+      hmc5843_mag_y = hmc5843_status;
+      hmc5843_mag_z++;
+      // reinvoke
+      // LED_ON(2);
+      hmc5843_status = HMC5843_UNINIT;
+    }
+  }
+}
+
+
+/**
+ * calculates actual heading from magnetic data
+ *
+ * \author Oliver Riesener
+ * \param[in] roll actual roll angle
+ * \param[in] pitch actual pitch angle
+ *
+ * \return hmc5843_mag_h
+ */
+void hmc5843_heading( float roll, float pitch ) {
+  // speedup for cos/sin from roll
+  float cos_roll = cos(roll);
+  float sin_roll = sin(roll);
+  // speedup for cos/sin from pitch
+  float cos_pitch = cos(pitch);
+  float sin_pitch = sin(pitch);
+  // tilt compensated magnetic field x
+  /** \todo tilt compensation wrong */
+  float mag_x = 
+    hmc5843_mag_x * cos_pitch + 
+    hmc5843_mag_y * sin_roll * sin_pitch +
+    hmc5843_mag_z * cos_roll * sin_pitch;
+  // tilt compensated magnetic field y
+  /** \todo tilt compensation wrong */
+  float mag_y = hmc5843_mag_y*cos_roll-hmc5843_mag_z*sin_roll;
+  // Magnetic Heading
+  hmc5843_mag_h = atan2(mag_y,mag_x); // olri 2010-07-25 -mag_y
+}

Modified: paparazzi3/branches/HB/trunk/sw/airborne/main_demo3.c
===================================================================
--- paparazzi3/branches/HB/trunk/sw/airborne/main_demo3.c       2010-10-21 
01:30:14 UTC (rev 6192)
+++ paparazzi3/branches/HB/trunk/sw/airborne/main_demo3.c       2010-10-21 
09:39:58 UTC (rev 6193)
@@ -23,7 +23,7 @@
   hw_init();
   sys_time_init();
   led_init();
-  uart0_init_tx();
+  uart0_init();
   int_enable();
 }
 

Modified: paparazzi3/branches/HB/trunk/sw/airborne/main_demo4.c
===================================================================
--- paparazzi3/branches/HB/trunk/sw/airborne/main_demo4.c       2010-10-21 
01:30:14 UTC (rev 6192)
+++ paparazzi3/branches/HB/trunk/sw/airborne/main_demo4.c       2010-10-21 
09:39:58 UTC (rev 6193)
@@ -24,11 +24,11 @@
   hw_init();
   sys_time_init();
   led_init();
-  uart0_init_tx();
+  uart0_init();
   int_enable();
 }
 
 static inline void main_periodic_task( void ) {
   LED_TOGGLE(1);
-  DOWNLINK_SEND_TAKEOFF(&cpu_time_sec);
+  DOWNLINK_SEND_TAKEOFF(DefaultChannel, &cpu_time_sec);
 }

Modified: paparazzi3/branches/HB/trunk/sw/airborne/main_demo5.c
===================================================================
--- paparazzi3/branches/HB/trunk/sw/airborne/main_demo5.c       2010-10-21 
01:30:14 UTC (rev 6192)
+++ paparazzi3/branches/HB/trunk/sw/airborne/main_demo5.c       2010-10-21 
09:39:58 UTC (rev 6193)
@@ -28,13 +28,13 @@
   hw_init();
   sys_time_init();
   led_init();
-  uart0_init_tx();
+  uart0_init();
   int_enable();
 }
 
 static inline void main_periodic_task( void ) {
   //  LED_TOGGLE(1);
-  DOWNLINK_SEND_TAKEOFF(&cpu_time_sec);
+  DOWNLINK_SEND_TAKEOFF(DefaultChannel, &cpu_time_sec);
 }
 
 static inline void main_event_task( void ) {
@@ -69,6 +69,6 @@
     uint8_t i = DL_SETTING_index(dl_buffer);
     float var = DL_SETTING_value(dl_buffer);
     DlSetting(i, var);
-    DOWNLINK_SEND_DL_VALUE(&i, &var);
+    DOWNLINK_SEND_DL_VALUE(DefaultChannel, &i, &var);
   }  
 }




reply via email to

[Prev in Thread] Current Thread [Next in Thread]