Hi! I'm having problems with the first part: Initialize sensor through bmi160_init I'm using a gy-bmi160 like this https://es.banggood.com/GY-BMI160-Module-6DOF-6-Axis-Angular-Velocity-Gyroscope-Gravity-Acceleration-Sensor-IICSPI-p-1200672.html?cur_warehouse=CN I've tried to turn on a LED with the INT1 interrupt but I'm getting the 'Failure' message indicating the init went wrong. This is programmed into a ESP32 using SPI interface. Here's my code: #include "bmi160.h void setup() { int8_t rslt; Serial.begin(19200); pinMode(26,INPUT); pinMode(25,OUTPUT); struct bmi160_int_settg int_config; struct bmi160_dev sensor; //Init Modo SPI sensor.id = 0; sensor.interface = BMI160_SPI_INTF; rslt = bmi160_init(&sensor); if(rslt==BMI160_OK){ Serial.println("Success"); }else{ Serial.println("Failure"); } delay(1000); //Rango acc 2g, low power, 50HZ sensor.accel_cfg.range = BMI160_ACCEL_RANGE_2G; sensor.accel_cfg.odr = BMI160_ACCEL_ODR_50HZ; sensor.accel_cfg.power = BMI160_ACCEL_PMU_LOW_POWER; delay(5); /* Interrupcion INT1 */ int_config.int_channel = BMI160_INT_CHANNEL_1; int_config.int_type = BMI160_ACC_ANY_MOTION_INT;// Choosing Any motion interrupt /* Select the interrupt channel/pin settings */ int_config.int_pin_settg.output_en = BMI160_ENABLE;// Enabling interrupt pins to act as output pin int_config.int_pin_settg.output_mode = BMI160_DISABLE;// Choosing push-pull mode for interrupt pin int_config.int_pin_settg.output_type = BMI160_DISABLE;// Choosing active low output int_config.int_pin_settg.edge_ctrl = BMI160_ENABLE;// Choosing edge triggered output int_config.int_pin_settg.input_en = BMI160_DISABLE;// Disabling interrupt pin to act as input int_config.int_pin_settg.latch_dur = BMI160_LATCH_DUR_NONE;// non-latched output /* Select the Any-motion interrupt parameters */ int_config.int_type_cfg.acc_any_motion_int.anymotion_en = BMI160_ENABLE;// 1- Enable the any-motion, 0- disable any-motion int_config.int_type_cfg.acc_any_motion_int.anymotion_x = BMI160_ENABLE;// Enabling x-axis for any motion interrupt int_config.int_type_cfg.acc_any_motion_int.anymotion_y = BMI160_ENABLE;// Enabling y-axis for any motion interrupt int_config.int_type_cfg.acc_any_motion_int.anymotion_z = BMI160_ENABLE;// Enabling z-axis for any motion interrupt int_config.int_type_cfg.acc_any_motion_int.anymotion_dur = 0;// any-motion duration int_config.int_type_cfg.acc_any_motion_int.anymotion_thr = 2;// (2-g range) -> (slope_thr) * 3.91 mg, (4-g range) -> (slope_thr) * 7.81 mg, (8-g range) ->(slope_thr) * 15.63 mg, (16-g range) -> (slope_thr) * 31.25 mg /* Set the Any-motion interrupt */ bmi160_set_int_config(&int_config, &sensor); /* sensor is an instance of the structure bmi160_dev */ } void loop() { Serial.println(digitalRead(26)); if(digitalRead(26)==1){ digitalWrite(25,HIGH); Serial.println("Activated"); delay(500); digitalWrite(25,LOW); } }
... View more