Exemplo n.º 1
0
// Edit do read data from MPU6050 [10/14/2015 QuocTuanIT]
void sensorsRead()
{
	int16_t ax = 0;
	int16_t ay = 0;
	int16_t az = 0;
	int16_t gx = 0;
	int16_t gy = 0;
	int16_t gz = 0;
	mpu6050_getRawData(&ax, &ay, &az, &gx, &gy, &gz);

	GYRO_raw[PIT] = gx;//adcGet(ADC_GYR_X);
	GYRO[PIT] = -(int16_t)(GYRO_raw[PIT] - Config.GYRO_zero[PIT]);
#if GYRO_DEADBAND > 0
	if (abs(GYRO[PIT]) <= GYRO_DEADBAND) GYRO[PIT] = 0;
#endif

	GYRO_raw[ROL] = gy;//adcGet(ADC_GYR_Y);
	GYRO[ROL] = -(int16_t)(GYRO_raw[ROL] - Config.GYRO_zero[ROL]);
#if GYRO_DEADBAND > 0
	if (abs(GYRO[ROL]) <= GYRO_DEADBAND) GYRO[ROL] = 0;
#endif

	GYRO_raw[YAW] = gz;//adcGet(ADC_GYR_Z);
	GYRO[YAW] = (int16_t)(GYRO_raw[YAW] - Config.GYRO_zero[YAW]);
#if GYRO_DEADBAND > 0
	if (abs(GYRO[YAW]) <= GYRO_DEADBAND) GYRO[YAW] = 0;
#endif
	
	ACC_raw[PIT] = ax;//adcGet(ADC_ACC_X);
	ACC[PIT] = (int16_t)(ACC_raw[PIT] - Config.ACC_zero[PIT]);
	ACC_raw[ROL] = ay;//adcGet(ADC_ACC_Y);
	ACC[ROL] = (int16_t)(ACC_raw[ROL] - Config.ACC_zero[ROL]);
	ACC_raw[YAW] = az;//adcGet(ADC_ACC_Z);
	ACC[YAW] = (int16_t)(ACC_raw[YAW] - Config.ACC_zero[YAW]);

	BATT = adcGet(ADC_VBAT) * 100 / 376;
	
#ifdef SIMULATOR
	GYRO[0] = 100;
	GYRO[1] = 100;
	GYRO[2] = 100;
	ACC[0] = 100;
	ACC[1] = 100;
	ACC[2] = 100;
#endif
}
Exemplo n.º 2
0
void batterySample(void)
{
    static uint8_t ind;
    static uint16_t batSamples[8];
    uint16_t batAccum = 0;
    uint8_t i;

    batSamples[(ind++) % 8] = adcGet();
    for(i = 0; i < 8; ++i)
        batAccum += batSamples[i];
    sensorData.batteryVoltage = batteryAdcToVoltage(batAccum / 8.0f);

    // TODO - add buzzer stuff
    /*
    if ((vbat > batteryWarningVoltage) || (vbat < cfg.vbatmincellvoltage)) { // VBAT ok, buzzer off
        buzzerFreq = 0;
    } else
        buzzerFreq = 4;     // low battery
    */
}