- •2 Разработка модуля инерционного сенсора 8
- •3 Разработка технологического процесса начальной калибровки модуля инерционного сенсора 38
- •8 Заключение 104
- •9 Список литературы 105 Введение и постановка задачи
- •Введение
- •Техническое задание на дипломный проект
- •Разработка модуля инерционного сенсора
- •Предложение и обоснование подхода к созданию сенсора
- •Разработка структурной схемы модуля инерционного сенсора
- •Обоснование выбора элементной базы
- •Акселерометр
- •Магниторезистивный сенсор
- •Температурный датчик
- •Операционный усилитель
- •Мультиплексор
- •Микроконтроллер
- •Принцип работы модуля инерционного сенсора
- •Расчет потребляемой мощности
- •Разработка технологического процесса начальной калибровки модуля инерционного сенсора
- •Обоснование необходимости начальной калибровки модуля инерционного сенсора
- •Разработка алгоритма технологического процесса начальной калибровки инерционного сенсора
- •Результаты испытания разработанного технологического процесса начальной калибровки инерционного сенсора
- •Разработка алгоритмов управления инерциальными приложениями
- •Разработка алгоритма опроса модуля инерционного сенсора и фильтрации полученных показаний
- •Разработка алгоритма распознавания базовых движенийFlip
- •Разработка алгоритма выделения базовых движенийPush
- •Разработка методики написания инерциальных приложений
- •Специфика разработки приложений для операционной системыPalmOs4.0
- •Разработка разделяемого ресурса базы данных инерционного сенсора
- •Разработка демонстрационного инерциального приложения
- •Планирование и оценка затрат создания программного продукта
- •Смоляная яма программирования
- •Сетевое планирование
- •Создание структурной таблицы работ
- •Расчет затрат на создание программного продукта
- •Расчет затрат на непосредственную разработку программного комплекса
- •Расчет затрат на изготовление опытного образца программного продукта
- •Расчет затрат на технологию
- •Затраты на эвм
- •Общие затраты на создание программного продукта
- •Производственная и экологическая безопасность
- •Введение в производственную и экологическую безопасность
- •Обеспечение производственной безопасности при разработке, производстве и эксплуатации микропроцессорных устройств
- •Микроклимат лаборатории
- •Требования к уровням шума и вибрации
- •Электробезопасность
- •Требование к защите от статического электричества и излучений при работе за компьютером.
- •Требования к освещению на рабочем месте
- •Воздействие вредных веществ при пайке
- •Психофизические факторы
- •Эргономика рабочего места
- •Расчет искусственного освещения на рабочем месте
- •Охрана окружающей среды
- •Заключение
- •Список литературы
Разработка алгоритма выделения базовых движенийPush
Для выделения базовых движений Push нам будут необходимы показания только акселерометров. Рассмотрим осциллограмму фильтрованного Push движения вдоль одной из осей (для примера берём ось x), приведённую на Рис. 0 .1.
Рис. 4.25 Осциллограмма фильтрованного базового движения Push
В результате проведения исследований базовых движений Push было выяснено, что при совершении базового движения по одной из осей акселерометров идёт сигнал аналогичный сигналу на Рис. 4 .25, а на остальных двух осях сигнал не выходит за пределы так называемой «мёртвой зоны», изображенной на Рис. 4 .25 заштрихованной полосой. Следует также отметить наличие трёх перегибов осциллограммы, в зонах A, B и C. Следовательно отслеживая наличие перегибов осциллограмм мы сможем выделить совершение базового движения Push. Алгоритм выделения Push движений будет выглядеть следующим образом:
Опрос модуля ИС и фильтрация показаний.
Если timeout=0, то переходим к пункту 3, иначе уменьшаем timeout и переходим к пункту 9.
Если есть перегиб осциллограммы, то переходим к пункту 5 иначе к пункту 9.
Добавляем перегиб в стек перегибов.
Если стек перегибов заполнен, то проверяем его показания на предмет совершения базового движения Push. Если движение совершено, то переходим к пункту 6, иначе к пункту 9.
Формируем событие совершения Push.
Устанавливаем timeout
Очищаем стек перегибов.
Передаём управление вызвавшей алгоритм программе.
Данный алгоритм выполняется циклически при опросе инерционным приложением модуля ИС. Схема алгоритма выделения базовых движений приведена на .
Рис. 4.26 Схема алгоритма выделения базовых движений Push
Разработка методики написания инерциальных приложений
Специфика разработки приложений для операционной системыPalmOs4.0
Специфика операционной системы Palm OS 4.0 такова, что в любой программе должен находиться главный цикл, занимающийся опросом органов управления и обработкой событий от органов управления и операционной системы. В шаблонах приложений для среды разработки Metrowerks Codewarrior данный цикл оформлен в виде функции AppEventLoop(). После запуска приложения и выполнения некоторых подготовительных операций, таких как считывание настроек, изменение палитры, смена видеорежима, программа должна вызвать функцию AppEventLoop(), выход из которой осуществляется после получения сообщения о переключении в другое приложение. Типичный цикл обработки сообщений в приложениях Palm OS приведен на Рис. 5 .27.
Рис. 5.27 Схема цикла обработки сообщений в приложениях Palm OS
Придерживаясь подобной методики работы с событиями, следует перегрузить функцию EvtGetEvent таким образом, чтобы она проводила опрос модуля инерционного сенсора по алгоритмам, описанным в предыдущей главе. Входные параметры перегруженной функции будут отличаться от исходной наличием одной переменной булевого типа. Если значение переменной равно false, то опрос сенсора не производится, если true, то производится опрос сенсора и выделение базовых движений. Схема работы этой функции изображена на Рис. 5 .28.
Рис. 5.28 Схема работы перегруженной функции EvtGetEvent
Далее, разработчик инерциальных приложений вставит в функцию AppEventLoop свой собственный обработчик событий от модуля инерционного сенсора.