У меня есть акселерометр ADXL345 и я установил его на гибридную ракету для запуска. К сожалению, я забыл установить диапазон от его значения по умолчанию +/- 2g до +/- 8g (мы ожидали 6g во время старта).
Для диапазона +/- 2g в таблице указано выходное разрешение 10 бит, а для +/- 8g - 12 бит.
Я заметил это в таблице данных, связанной выше, под DATA_FORMAT
регистром (0x31):
Регистр DATA_FORMAT управляет представлением данных в регистр 0x32 через регистр 0x37. Все данные, за исключением диапазона +/- 16g, должны быть обрезаны во избежание опрокидывания. ( акцент мой )
Основываясь на этом утверждении и функциональной блок-схеме (3-осевой датчик подключен к «сенсорной электронике», а затем подключен к АЦП), я надеюсь, что есть способ получить правильные данные. Коэффициенты масштабирования перечислены на странице 3 таблицы.
Можно ли как-то разрешить эти данные, по крайней мере, до 1 или 2 значащих цифр? (Например, у меня обнаружение 1.9414 г - это должно быть около 6). Я не думаю, что датчик насыщен, просто число в регистрах данных - и учитывая масштабные коэффициенты и некоторое творческое смещение битов (не совсем ясно, как они получают от 10 до 12 бит при изменении разрешения), надеюсь, я смогу восстановить что-то полезное из моих данных.
источник
Ответы:
Какое значение вы фактически сохранили в «Register 0x31 — DATA_FORMAT»?
Я предполагаю, что вы ничего не сохранили в этом регистре, поэтому он по-прежнему имеет значение сброса, равное 00. Другими словами, пока вы собирали данные (из таблицы 16, а также со страницы 17 таблицы ADXL345 ):
Первое, что я хотел бы сделать, это восстановить исходные 16-битные значения, считанные с акселерометра. (то есть, если я небрежно выбросил исходные данные, и все, что я оставил, это числа в единицах «g», которые были вычислены путем вычитания некоторого смещения и умножения на некоторый неправильный масштабный коэффициент, я бы скопировал собранные данные в таблицу и разделите на тот же (неправильный) масштабный коэффициент, а затем добавьте это смещение, чтобы попытаться восстановить что-то близкое к исходным значениям).
Затем я бы отобразил данные на графике и посмотрел, выглядят ли они как «насыщенность», «линейность» или «переворачивание» (как описано ниже).
Спецификация сводит с ума неопределенность относительно того, что происходит, когда датчик испытывает ускорение, превышающее 2 г.
тангенциальная крыса
Я говорил вам, как сильно меня раздражает, когда технические писатели настаивают на том, чтобы писать пассивным голосом? Когда писатель использует пассивный голос в предложении, которое вы цитировали,
Я не могу сказать, кто именно должен делать эту вырезку.
Многие люди рекомендуют использовать активный голос . Когда я следую этим рекомендациям, мой текст обычно более ясен в отношении того, кто чем занимается. Разве не лучше, когда я пишу вещи, которые легче понять , чем использовать стиль, который люди обманывают, думая «более профессионально» или «более академично»?
автоматическое ограничение
Мое лучшее предположение состоит в том, что акселерометр автоматически делает это ограничение.
насыщение : если вы видите, что ускорение возрастает через правдоподобные значения, то загадочным образом застреваете на плато, насыщаясь на уровне или около + 2g, тогда акселерометр «услужливо» обрезал данные для вас. После отсечения «верхнее» значение больше не указывает «ускорение, очень близкое к + 2g», но теперь указывает «ускорение, по крайней мере, 2g, и, возможно, намного, намного больше - невозможно сказать».
Поскольку это было в 10-битном режиме с выравниванием по правому краю, когда я интерпретирую эти 16-битные значения как нормальные 16-битные целые числа со знаком, я ожидаю увидеть значения в диапазоне от
(Да, я знаю, что для этого датчика неоправданно 4 знака после запятой). (Я видел, что некоторые устройства насыщаются в какой-то другой точке, например -511 или -510. Обычно я могу посмотреть на данные и выяснить фактическую точку насыщения).
Вы можете восстановить некоторые полезные данные из этого обрезанного набора данных. Вы можете использовать его для измерения, например, на сколько миллисекунд ускорение составило не менее 1,5 г. Увы, когда вы видите плато в таком наборе данных, невозможно измерить максимальное ускорение или общий импульс - лучшее, что вы можете сделать, это сказать: «Ну, мы знаем, что максимальное ускорение составляет не менее 2 г и, вероятно, больше ", и вычислим" хорошо, мы рассчитываем, что суммарный импульс составляет по крайней мере (что-то) ньютон * секунда ".
альтернативы
Должно быть возможно выяснить, выполняет ли акселерометр отсечение или нет по данным. (Я описал «насыщенность», «линейный» и «пролонгация» в терминах увеличения скорости - с некоторыми наборами данных может быть более ясным смотреть вместо этого на снижение).
линейный : если вы видите, что ускорение возрастает через правдоподобные значения, а затем продолжаете увеличивать до более высоких значений (значения выше 512 или более отрицательных, чем -512), то вам повезло - акселерометр фактически не делал никакого ограничения, и у вас есть действительные данные во всем диапазоне.
пролонгация : если вы видите, что ускорение возрастает через правдоподобные значения, и непосредственно перед тем, как оно достигнет +2 г, оно мгновенно переходит к нефизически-реалистичному значению около -2 г, а затем продолжает наращивать - возможно, будет через ноль, затем снова приближаясь к + 2g, и снова спрыгивая вниз около -2 г - тогда у вас есть переворачивание. Если вам повезет, значения меняются очень плавно, что позволяет обнаруживать каждый ролловер и «развернуть» эти значения, чтобы восстановить истинную силу g.
PS: не стесняйтесь редактировать Open Circuits: Rocket Computer .
источник