Яке значення ви насправді зберігали в "Зареєструватися 0x31 — DATA_FORMAT"?
Я припускаю, що ви нічого не зберігали у цьому реєстрі, тому воно все ще має значення скидання 00. Іншими словами, під час збирання даних (з таблиці 16, а також сторінки 17 таблиці ADXL345 ):
- Зареєструвати 0x31 — DATA_FORMAT == 00.
- FULL_RES == 0. Отже, пристрій перебуває в 10-бітному режимі, і біти діапазону визначають максимальний g діапазон і коефіцієнт масштабу.
- Біт вирівнювання == 0. Так правильно виправданий режим з розширенням знаків.
- Біт діапазону == 00. Так + - 2 г діапазон.
Перше, що я зробив би - відновити початкові 16-бітні значення, прочитані з акселерометра. (тобто, якщо я недбало відкинув вихідні дані, і все, що мені залишилося, - це числа в одиницях "g", які були обчислені відніманням деякого зміщення і помноженим на деякий невірний коефіцієнт масштабу, я скопіював би зібрані дані в таблицю та розділити на той самий (неправильний) масштабний коефіцієнт, а потім додати це зміщення, щоб спробувати відновити щось, близьке до вихідних значень).
Тоді я б графік даних і побачив, чи більше вони схожі на "насичення", "лінійність" або "перекидання" (як описано нижче).
Лист даних дивно розпливається, що відбувається, коли датчик відчуває прискорення більше 2 g.
дотична рант
Я сказав вам, наскільки це мене дратує, коли технічні письменники наполягають на тому, щоб писати пасивним голосом? Коли письменник використовує пасивний голос у цитованому реченні,
"Усі дані, за винятком діапазону ± 16 г, повинні бути вирізані, щоб уникнути перекидання." (стор. 17)
Я не можу сказати, хто саме повинен робити цей відсікання.
Багато людей рекомендують використовувати активний голос . Коли я дотримуюся цієї рекомендації, мій текст, як правило, більш зрозумілий, хто що робить. Хіба не краще, коли я пишу речі, простіші для розуміння , ніж використання стилю, який люди ввели в мислення, звучить "більш професійно" або "більш науково"?
автоматичне відсікання
Я найкраще здогадуюсь, що акселерометр автоматично робить це відсікання.
насиченість : Якщо ви бачите, що швидкість прискорення проходить через правдоподібні значення, то загадково застрягаєте на плато, насичуючи на рівні або біля 2 г, тоді акселерометр "корисно" вирізав дані для вас. Після відсікання значення "верхнє" більше не вказує на "прискорення, близьке до + 2 г", але тепер вказує на "прискорення щонайменше 2 г, а можливо, і набагато більше - немає способу сказати".
Оскільки це було в 10-бітному правильному виправданому режимі, коли я інтерпретую ці 16 бітові значення як нормальні цілі 16-бітні підписи, я очікую побачити значення, починаючи з
- 0x01FF = +511, що вказує більше на 1,992 г. Можливо, набагато, набагато більше.
- 0x01FE = +510, що вказує на 510/256 г ~ = 1,992 г
- 0x01FD = +509, що вказує на 510/256 г ~ = 1,988 г
- ...
- 0x0001 = +1, що вказує на 1/256 г = 0,0039 г
- 0x0000 = 0, що вказує на 0 g
- 0xFFFF = -1, що вказує на -1/256 г = 0,0039
- ...
- 0xFE02 = -510, що вказує на -510/256 = -1,992 р
- 0xFE01 = -511, що вказує на -511/256 = -1,996 р
- 0xFE00 = -512, що вказує на щось більш негативне -1,996 р. Можливо, далеко, набагато негативніше.
(Так, я знаю, що 4 десяткових знаків точності є невиправданими для цього датчика). (Я бачив, як деякі пристрої насичуються в якійсь іншій точці, наприклад, -511 або -510. Я зазвичай можу переглянути дані і визначити фактичну точку насичення).
Ви можете відновити деякі корисні дані з цього набору обрізаних даних. Ви можете використовувати його для вимірювання, наприклад, скільки мілісекунд прискорення було не менше 1,5 г. На жаль, коли ви бачите плато в такому наборі даних, неможливо виміряти максимальне прискорення або загальний імпульс - найкраще, що ви можете зробити, це сказати: "ну, ми знаємо, що максимальне прискорення становить щонайменше 2 г і, ймовірно, більше ", і обчислимо" добре, ми обчислимо, що загальний імпульс становить щонайменше (щось) ньютон * секунди ".
альтернативи
Слід визначити, чи акселерометр робить відсікання даних чи ні. (Я описав "насичення", "лінійність" і "перекидання" з точки зору нарощування - з деякими наборами даних, можливо, буде зрозуміліше подивитися на пандус замість цього).
лінійний : Якщо ви бачите, що прискорений прискорення проходить через правдоподібні значення, потім продовжуйте нарощування до більш високих значень (значення вище 512, або більше мінус -512), то вам пощастило - акселерометр насправді не робив жодного відсікання, і у вас є дійсні дані у всьому діапазоні.
перекидання : якщо ви бачите, що швидкість прискорення збільшується через правдоподібні значення, і лише до того, як вона досягне +2 г, вона моментально підскакує до нефізично-реалістичного значення біля -2 г, а потім продовжує наростати - можливо, йде через нуль, потім знову наближаючись до + 2 г і знову стрибаючи вниз біля -2 г - значить, ви перевернете перекидання. Якщо вам пощастило, значення змінюються надзвичайно плавно, завдяки чому можна виявити кожен перекидання та "розкрутити" ці значення, щоб відновити справжню силу g.
ps: не соромтесь редагувати відкриті схеми: ракетний комп'ютер .