Відновлення даних із насиченого акселерометра


10

У мене є акселерометр ADXL345 і встановив його на гібридну ракету для запуску. На жаль, я забув встановити діапазон від його за замовчуванням +/- 2g до +/- 8g (ми очікували 6g під час живлення).

Для діапазону +/- 2g, у таблиці наведено вихідну роздільну здатність 10 біт, а для +/- 8g - роздільна здатність 12 біт.

Я помітив це у таблиці даних, пов’язаній вище, під DATA_FORMATреєстром (0x31):

Реєстр DATA_FORMAT контролює подання даних до Реєстру 0x32 через регістр 0x37. Усі дані, за винятком діапазону +/- 16 г, повинні бути вирізані, щоб уникнути перекидання. ( наголос мій )

Виходячи з цього твердження та функціональної блок-схеми (3-осевий датчик підключений до «сенсорної електроніки», потім підключений до АЦП), я сподіваюся, що є спосіб вирішити правильні дані. Коефіцієнти масштабу наведені на сторінці 3 таблиці.

Чи є спосіб вирішити ці дані, принаймні, до 1 або 2 значущих цифр? (Наприклад, у мене виявлення 1,9414 г - це повинно бути близько 6). Я не думаю, що датчик насичений, а лише кількість у реєстрах даних - і враховуючи масштабні коефіцієнти та креативне зміщення бітів (не зовсім зрозуміло, як вони отримують від 10 до 12 біт при зміні роздільної здатності), сподіваюся, я можу відновити щось корисне з моїх даних.


Якщо ви розміщуєте свої дані, передбачаючи 2g-дисплей із перевертанням, щоб ви бачили нижній 2g більш довшого слова, як виглядає sresult. Піднімаючись, ви хочете побачити серію пильних зубів. 0-2 = 0-2. 2-4 = 0-2. 4-6 = 0-2.
Рассел Макмахон

Я дам цей постріл, як тільки ми відновимо ракету. Даних, які я маю, недостатньо, оскільки ми втратили її за хмарою ..
Данг Хоа

Відповіді:


7

Яке значення ви насправді зберігали в "Зареєструватися 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: не соромтесь редагувати відкриті схеми: ракетний комп'ютер .


чудово! як тільки ми відновимо ракету, я спробую це. На сьогоднішній день нам довелося заручити Cessna, щоб допомогти її знайти .. але сподіваємось, нам пощастить.
Данг Хоа

Схоже, ми не зможемо відновити нашу ракету, тому це обговорення є суперечливим (у мене є лише кілька даних даних із наземної станції). Але дякую!
Данг Хоа

@davidcary, відкриті ланцюги: Посилання на ракетний комп’ютер розірвано
Mahendra

@MahendraGunawardena: Дякую, що сказали мені. Чи працює зараз?
davidcary
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.