autoCalibrateAccelerometerOffset() Почему значения Z колеблются от 0 до 1g в статическом состоянии?
Я попытался реализовать функцию autoCalibrateAccelerometerOffset()
с помощью кода ниже на Arduino Genuino 101.
В статическом тесте, без какого-либо стресса или шума, я считываю значение по трем осям.
Когда я вижу данные на последовательном мониторе или в моем файле, созданном с помощью обработки, значения ускорения Z изменяются от 1~0,99 до 0,00 g.
Я думаю, что в моем коде есть ошибка.
#include "SoftwareSerial.h"
#include "CurieIMU.h"
float sensorVals[] = {0,0,0};
void setup() {
Serial.begin(9600);
while (!Serial);
Serial.println("Inizializzazione del device...");
CurieIMU.begin();
CurieIMU.setAccelerometerRange(2);
CurieIMU.autoCalibrateAccelerometerOffset(X_AXIS,0);
CurieIMU.autoCalibrateAccelerometerOffset(Y_AXIS,0);
CurieIMU.autoCalibrateAccelerometerOffset(Z_AXIS,1);
}
void loop() {
sensorVals[0] = CurieIMU.readAccelerometerScaled(0);
sensorVals[1] = CurieIMU.readAccelerometerScaled(1);
sensorVals[2] = CurieIMU.readAccelerometerScaled(2);
Serial.print(sensorVals[0]);
Serial.print(",");
Serial.print(sensorVals[1]);
Serial.print(",");
Serial.println(sensorVals[2]);
delay(100);
}
@Andrea Ciufo, 👍-1
Обсуждение0
Смотрите также:
- Genuino 101 - Не удается загрузить скетч - Ошибка тайм-аута
- Что делает Arduino, если последовательное соединение закрыто на другом конце?
- Попытка использовать решение для обнаружения кранов с помощью ADXL345 с Arduino
- Можно ли измерить скорость акселерометром? Насколько точно?
- В чем разница между акселерометром, гироскопом и датчиком магнитометра?
- OVF в последовательном мониторе вместо данных
- Проблема с датчиком температуры и влажности DHT11
- Получение ошибки ets 8 января 2013,rst cause:4,boot mode(1,6) wdt reset
Что произойдет, если добавить CurieIMU.autoCalibrateGyroOffset(); сразу после CurieIMU.begin();?, @VE7JRO
Знаете ли вы, что ось Z у вас ориентирована так, как и ожидалось?, @Dave X
Я голосую за закрытие этого старого заброшенного вопроса, поскольку информация, которая сделает его доступным для ответа, так и не была предоставлена. Очевидный способ отладки — распечатать как необработанные, так и откалиброванные значения. Это покажет, является ли это ошибкой чтения или более вероятным случаем калибровки, «калибрующей» гравитацию., @Chris Stratton
Если он калибрует гравитацию, почему он переключается между значениями? Мне было бы интересно увидеть его откалиброванным, а затем слегка наклоненным по X/Y, чтобы увидеть, есть ли в строках с "Z: 0" также X/Y: 0 (они не должны), и если это так, то, скорее всего, проблема с датчиком или слишком быстрым считыванием с датчика, или что-то в этом роде. Я просто не понимаю, как калибровка Z переключается между 0 и 1 согласно образцу, @AndrewP
@SDsolar, потому что это специфическая функция библиотеки CURIE IMU, совместимая только с Arduino и Genuino 101., @Andrea Ciufo
@ChrisStratton проблема, по моему мнению, связана с функцией официальной библиотеки, а не с показаниями датчика, поскольку без применения функции калибровки в тех же условиях и без возмущений показания датчика не имеют никаких колебательных значений, @Andrea Ciufo