Линейка

В выходные провёл небольшой эксперимент с акселерометром на Nokia 5800 и JSR-256 (Sensor API). В идеале, мне хотелось получить измерительный прибор — бесконечную линейку. Пользователь начинает измерение, просто двигая по поверхности телефон. В режиме реального времени по данным акселерометра получаем моментальное ускорение по осям телефона. Из курса физики знаем, что ускорение связано со скоростью, а зная скорость и время движения легко можно узнать пройденное за это время расстояние.

Практическая польза от этого изобретения определённо была бы: не каждый день берёшь с собой длинную линейку! Самое примечательное — это одним движением руки измерить в магазине реальные размеры мебели, чтобы она точно вписывалась в интерьер.

И в прошедшую субботу я решил потратить время, чтобы доказать или опровергнуть возможность таких программ.

Но препятствием на пути создания бесконечной линейки стали очень большие погрешности акселерометра — раз, и сам принцип реализации подобных сенсоров — два.

Сначала расскажу о принципе работы акселерометра. Когда устройство находится в состоянии покоя на столе, на него действует сила тяжести. Сенсор определяет ускорение в направлении к центру земли, хотя при этом устройство неподвижно. И наоборот, когда устройство свободно падает, ускорение по всем осям равно нулю.

Один способ избавиться от влияния ускорения свободного падения — в первый момент времени зафиксировать значение ускорения по осям x, y и z. При условии что устройство двигается примерно прямолинейно (без кувырков и переворотов), мы можем надеяться, что вектор ускорения свободного падения останется таким же на протяжении всего измерения. Если измеритель находится в ускоряющемся объекте, например, если измерение началось в автомобиле в тот момент, когда он тронулся с места, то все измерения пойдут на смарку. Таким образом, необходимо, чтобы в начале измерения телефон не двигался с ускорением, а во время всего измерения не поворачивался (то есть направления осей не менялись кардинально).

Неточность измерений можно заметить ещё в состоянии покоя. Ускорение свободного падения в наших краях должно быть 9,8 метров на секунду в квадрате. Можно заметить, что данные акселерометра сильно колеблются в десятых долях. Возможно, имеет значение высота над уровнем моря, микроземлетрясения, движение дома и прочее, но в это очень слабо верится.

А результаты получились следующими. Журнальный столик длиной 80 см. Показания бесконечной линейки колебались от 70 до 80 см. Вам нужна линейка, которая ошибается больше чем на 10%? Сомневаюсь!

Вывод: неточность аппаратного обеспечения непозволяет использовать акселерометр для измерения предметов.

Неудача тоже результат! Но день не мог так просто закончиться. Вот результат настоящей мужской работы: повешенные рамочки со свадебными фотографиями!

Запись опубликована в рубрике Uncategorized с метками , , , , . Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *