Разработать модуль сенсора
55

1         Разработка алгоритмов управления инерциальными приложениями

 

1.1      Разработка алгоритма опроса модуля инерционного сенсора и фильтрации полученных показаний

 

Для снятия значений с модуля инерционного сенсора необходимо послать ему сигнал о подготовке данных, а потом ожидать от него показаний сенсоров. Однако случаются моменты, когда связь с модулем инерционного сенсора потеряна или он вышел из строя. Для корректной обработки подобных ситуаций, предотвращения зависания КПК и уведомления пользователя о неполадках, необходимо установить лимит времени, в течении которого ожидаются данные от модуля инерционного сенсора, и если лимит времени превышен то следует прекратить ожидание данных и установить флаг ошибки модуля инерционного сенсора.

Снятые с модуля инерционного сенсора данные должны подвергаться обработке с целью фильтрации шумов от внешних раздражителей, таких как дрожание руки. Из-за дрожания руки, удерживающей модуль инерционного сенсора, и неровных её движений, осциллограммы показаний модуля инерционного сенсора будут содержать в себе паразитные пульсации, которые могут быть неправильно обработаны инерционным приложением, или будут вызывать неприятное «дёрганье» изображения на экране КПК. Фильтрация позволяет устранить паразитные пульсации показаний инерционного сенсора, что крайне важно при управлении программным обеспечением КПК с помощью наклонов модуля инерционного сенсора. Оптимальным по скорости и качеству фильтрации будет использовать алгоритм скользящего среднего, причём глубина фильтрации будет определяться величиной скользящего окна. Фильтрацию необходимо проводить с помощью усреднения показаний модуля инерционного сенсора по каждой из его осей для акселерометров и магнитных сенсоров. Глубина фильтрации будет определяться количеством точек