Added second PX4 IMU, made it the primary one.

This commit is contained in:
kevindehecker
2016-03-04 09:59:48 +01:00
parent c4d7283b8d
commit 7e7aca8df7
11 changed files with 793 additions and 77 deletions
+7 -8
View File
@@ -3,8 +3,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- this is a quadrotor frame equiped with
* Autopilot: 3dr Pixhawk 2.4
* IMU: MPU6000 + L3GD20 + LSM303D
* Actuators: PWM motor controllers?
* IMU: L3GD20 + LSM303D + MPU6000 + external HMC58XX
* Actuators: PWM motor controllers
* GPS: Ublox http://wiki.paparazziuav.org/wiki/Subsystem/gps
* RC: PPM
-->
@@ -21,14 +21,13 @@
<subsystem name="udp" />
</target>
<subsystem name="telemetry" type="transparent" />
<!-- <subsystem name="imu" type="px4fmu_v2.4">-->
<subsystem name="imu" type="mpu6000">
<configure name="IMU_MPU_SPI_DEV" value="spi1" />
<configure name="IMU_MPU_SPI_SLAVE_IDX" value="SPI_SLAVE2" />
</subsystem>
<subsystem name="imu" type="px4fmu_v2.4"/>
<subsystem name="gps" type="ublox" />
<subsystem name="stabilization" type="indi" />
<subsystem name="ahrs" type="int_cmpl_quat" />
<subsystem name="ahrs" type="int_cmpl_quat" >
<define name="AHRS_ICQ_IMU_ID" value="IMU_PX4_ID" /> <!-- Meaning the lsm303 and l3g -->
<define name="AHRS_ICQ_MAG_ID" value="IMU_MPU6000_HMC_ID" /> <!-- Meaning the external magnetometer -->
</subsystem>
<subsystem name="ins" type="extended" />
<subsystem name="current_sensor">
<configure name="ADC_CURRENT_SENSOR" value="ADC_3" />
@@ -0,0 +1,73 @@
# Hey Emacs, this is a -*- makefile -*-
#
# PX4 Pixhawk IMUconsists of two (internal) IMU's and one internal magneto. Also an optional external magneto
#
#MPU6000 + L3GD20 + LSM303D + HMC5883
include $(CFG_SHARED)/spi_master.makefile
IMU_PX4FMU_CFLAGS += -DIMU_TYPE_H=\"imu/imu_px4fmu_v2.4.h\"
IMU_CFLAGS = -DIMU_TYPE_H=\"imu/imu_px4fmu_v2.4.h\"
IMU_SRCS = $(SRC_SUBSYSTEMS)/imu.c
IMU_SRCS += $(SRC_SUBSYSTEMS)/imu/imu_px4fmu_v2.4.c
# MPU
IMU_SRCS += peripherals/mpu60x0.c
IMU_SRCS += peripherals/mpu60x0_spi.c
#L3GD20 gyro
IMU_SRCS += peripherals/l3gd20_spi.c
#LSM303D accelero + magneto
IMU_SRCS += peripherals/lsm303dlhc_spi.c
# Magnetometer
IMU_SRCS += peripherals/hmc58xx.c
# for fixedwing firmware and ap only
ifeq ($(TARGET), ap)
IMU_CFLAGS += -DUSE_IMU
endif
# set default SPI device
IMU_SPI_DEV ?= spi1
# convert spix to upper/lower case
IMU_SPI_DEV_UPPER=$(shell echo $(IMU_SPI_DEV) | tr a-z A-Z)
IMU_SPI_DEV_LOWER=$(shell echo $(IMU_SPI_DEV) | tr A-Z a-z)
IMU_CFLAGS += -DIMU_SPI_DEV=$(IMU_SPI_DEV_LOWER)
IMU_CFLAGS += -DUSE_$(IMU_SPI_DEV_UPPER)
#********** MPU6000 ***********
IMU_MPU_SPI_SLAVE_IDX ?= SPI_SLAVE2
IMU_CFLAGS += -DIMU_MPU_SPI_SLAVE_IDX=$(IMU_MPU_SPI_SLAVE_IDX)
IMU_CFLAGS += -DUSE_$(IMU_MPU_SPI_SLAVE_IDX)
#********** L3GD20 ***********
IMU_L3G_SPI_SLAVE_IDX ?= SPI_SLAVE0
IMU_CFLAGS += -DIMU_L3G_SPI_SLAVE_IDX=$(IMU_L3G_SPI_SLAVE_IDX)
IMU_CFLAGS += -DUSE_$(IMU_L3G_SPI_SLAVE_IDX)
#********** LSM303dlhc ***********
IMU_LSM_SPI_SLAVE_IDX ?= SPI_SLAVE1
IMU_CFLAGS += -DIMU_LSM_SPI_SLAVE_IDX=$(IMU_LSM_SPI_SLAVE_IDX)
IMU_CFLAGS += -DUSE_$(IMU_LSM_SPI_SLAVE_IDX)
#********** HMC5883 ***********
IMU_HMC_I2C_DEV ?= i2c1
# convert i2cx to upper/lower case
IMU_HMC_I2C_DEV_UPPER=$(shell echo $(IMU_HMC_I2C_DEV) | tr a-z A-Z)
IMU_HMC_I2C_DEV_LOWER=$(shell echo $(IMU_HMC_I2C_DEV) | tr A-Z a-z)
IMU_CFLAGS += -DIMU_HMC_I2C_DEV=$(IMU_HMC_I2C_DEV_LOWER)
IMU_CFLAGS += -DUSE_$(IMU_HMC_I2C_DEV_UPPER)
# add it for all targets except sim, fbw and nps
ifeq (,$(findstring $(TARGET),sim fbw nps))
$(TARGET).CFLAGS += $(IMU_CFLAGS)
$(TARGET).srcs += $(IMU_SRCS)
endif
#
# NPS simulator
#
include $(CFG_SHARED)/imu_nps.makefile