- •2 Разработка модуля инерционного сенсора 8
- •7 Производственная и экологическая безопасность 93
- •8 Заключение 108
- •9 Список литературы 109 Введение и постановка задачи
- •1.1Введение
- •1.2Техническое задание на дипломный проект
- •2Разработка модуля инерционного сенсора
- •2.1Предложение и обоснование подхода к созданию сенсора
- •2.2Разработка структурной схемы модуля инерционного сенсора
- •2.3Обоснование выбора элементной базы
- •2.3.1Акселерометр
- •2.3.2Магниторезистивный сенсор
- •2.3.5Температурный датчик
- •2.3.6Операционный усилитель
- •2.3.7Мультиплексор
- •2.3.8Схема сброса
- •2.3.9Плис
- •2.3.10Микроконтроллер
- •2.4Принцип работы модуля инерционного сенсора
- •2.5Расчет потребляемой мощности
- •3Разработка технологического процесса начальной калибровки модуля инерционного сенсора
- •3.1Обоснование необходимости начальной калибровки модуля инерционного сенсора
- •3.2Разработка алгоритма технологического процесса начальной калибровки инерционного сенсора
- •3.3Результаты испытания разработанного технологического процесса начальной калибровки инерционного сенсора
- •4Разработка алгоритмов управления инерциальными приложениями
- •4.1Разработка алгоритма опроса модуля инерционного сенсора и фильтрации полученных показаний
- •4.2Разработка алгоритма распознавания базовых движений Flip
- •4.3Разработка алгоритма выделения базовых движений Push
- •5Разработка методики написания инерциальных приложений
- •5.1Специфика разработки приложений для операционной системы Palm os 4.0
- •5.2Разработка разделяемого ресурса базы данных инерционного сенсора
- •5.3Разработка демонстрационного инерциального приложения
- •6Планирование и оценка затрат создания программного продукта
- •6.1Смоляная яма программирования
- •6.2Сетевое планирование
- •6.3Создание структурной таблицы работ
- •6.4Расчет затрат на создание программного продукта
- •6.4.1Расчет затрат на непосредственную разработку программного комплекса
- •6.4.2Расчет затрат на изготовление опытного образца программного продукта
- •6.4.3Расчет затрат на технологию
- •6.4.4Затраты на эвм
- •6.4.5Общие затраты на создание программного продукта
- •7Производственная и экологическая безопасность
- •7.1Введение в производственную и экологическую безопасность
- •7.2Обеспечение производственной безопасности при разработке, производстве и эксплуатации микропроцессорных устройств
- •7.2.1Микроклимат лаборатории
- •7.2.2Требования к уровням шума и вибрации
- •7.2.3Электробезопасность
- •7.2.4Требование к защите от статического электричества и излучений при работе за компьютером.
- •7.2.5Требования к освещению на рабочем месте
- •7.2.6Воздействие вредных веществ при пайке
- •7.2.7Психофизические факторы
- •7.2.8Эргономика рабочего места
- •7.3Расчет искусственного освещения на рабочем месте
- •7.4Охрана окружающей среды
- •8Заключение
- •9Список литературы
4.3Разработка алгоритма выделения базовых движений 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
5Разработка методики написания инерциальных приложений
5.1Специфика разработки приложений для операционной системы Palm os 4.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 свой собственный обработчик событий от модуля инерционного сенсора.
