Externer Kompass an AIO Pro 1
Da der interne Kompass meines AIO Pro1 durch die Motorleitungen meines Oktos stark beeinflusst wurde, habe ich kurzerhand einen externen Kompass an das Board geknödelt! Funktioniert super! =)
Und zwar den hier an den I2C Port gehangen:
http://www.goodluckbuy.com/gy-271-hmc5883l-module-compass-module-3-axis-sensor-.html
Jetzt muss man nur noch in der AP_InertialSensor_MPU6000_I2C folgende Zeilen aukommentieren und deaktiveirt damit den internen Kompass der AIO Pro:
#// Enable I2C bypass mode, to work with Magnetometer 5883L
#// Disable I2C Master mode
#uint8_t user_ctrl;
#if (I2c.read(mpu_addr, MPUREG_USER_CTRL, 1, &user_ctrl) != 0) {
# return;
# }
# user_ctrl = user_ctrl & ~(1 << 5); // reset I2C_MST_EN bit
# if (I2c.write(mpu_addr, MPUREG_USER_CTRL, &user_ctrl, 1) != 0) {
# return;
# }
# delay(1);
# // Enable I2C Bypass mode
# if (I2c.read(mpu_addr, MPUREG_INT_PIN_CFG, 1, &user_ctrl) != 0) {
# return;
Da der interne Kompass meines AIO Pro1 durch die Motorleitungen meines Oktos stark beeinflusst wurde, habe ich kurzerhand einen externen Kompass an das Board geknödelt! Funktioniert super! =)
Und zwar den hier an den I2C Port gehangen:
http://www.goodluckbuy.com/gy-271-hmc5883l-module-compass-module-3-axis-sensor-.html
Jetzt muss man nur noch in der AP_InertialSensor_MPU6000_I2C folgende Zeilen aukommentieren und deaktiveirt damit den internen Kompass der AIO Pro:
#// Enable I2C bypass mode, to work with Magnetometer 5883L
#// Disable I2C Master mode
#uint8_t user_ctrl;
#if (I2c.read(mpu_addr, MPUREG_USER_CTRL, 1, &user_ctrl) != 0) {
# return;
# }
# user_ctrl = user_ctrl & ~(1 << 5); // reset I2C_MST_EN bit
# if (I2c.write(mpu_addr, MPUREG_USER_CTRL, &user_ctrl, 1) != 0) {
# return;
# }
# delay(1);
# // Enable I2C Bypass mode
# if (I2c.read(mpu_addr, MPUREG_INT_PIN_CFG, 1, &user_ctrl) != 0) {
# return;