Автор работы: Пользователь скрыл имя, 07 Декабря 2014 в 12:36, дипломная работа
Одним из перспективных направлений развития органов управления и ввода информации является ввод информации с помощью пространственных жестов руки, удерживающей КПК. Однако данный метод ввода информации ещё не реализован, нет информации как по сенсорам, с помощью которых можно реагировать на изменение угловой ориентации КПК, так и по организации взаимодействия этих сенсоров с программным обеспечением КПК. В рамках данного дипломного проекта реализована идея управления программным обеспечением КПК фирмы Palm Inc. с помощью инерционных сенсоров и специального программного обеспечения, позволяющего по показаниям этих сенсоров судить о выполнении определённых жестов.
ВВЕДЕНИЕ И ПОСТАНОВКА ЗАДАЧИ 3
1.1 ВВЕДЕНИЕ 3
1.2 ТЕХНИЧЕСКОЕ ЗАДАНИЕ НА ДИПЛОМНЫЙ ПРОЕКТ 4
2 РАЗРАБОТКА МОДУЛЯ ИНЕРЦИОННОГО СЕНСОРА 8
2.1 ПРЕДЛОЖЕНИЕ И ОБОСНОВАНИЕ ПОДХОДА К СОЗДАНИЮ СЕНСОРА 8
2.2 РАЗРАБОТКА СТРУКТУРНОЙ СХЕМЫ МОДУЛЯ ИНЕРЦИОННОГО СЕНСОРА 9
2.3 ОБОСНОВАНИЕ ВЫБОРА ЭЛЕМЕНТНОЙ БАЗЫ 12
2.3.1 Акселерометр 12
2.3.2 Магниторезистивный сенсор 14
2.3.3 АЦП 17
2.3.4 ЦАП 21
2.3.5 Температурный датчик 23
2.3.6 Операционный усилитель 25
2.3.7 Мультиплексор 29
2.3.8 Схема сброса 31
2.3.9 ПЛИС 32
2.3.10 Микроконтроллер 34
2.4 ПРИНЦИП РАБОТЫ МОДУЛЯ ИНЕРЦИОННОГО СЕНСОРА 37
2.5 РАСЧЕТ ПОТРЕБЛЯЕМОЙ МОЩНОСТИ 39
3 РАЗРАБОТКА ТЕХНОЛОГИЧЕСКОГО ПРОЦЕССА НАЧАЛЬНОЙ КАЛИБРОВКИ МОДУЛЯ ИНЕРЦИОННОГО СЕНСОРА 41
3.1 ОБОСНОВАНИЕ НЕОБХОДИМОСТИ НАЧАЛЬНОЙ КАЛИБРОВКИ МОДУЛЯ ИНЕРЦИОННОГО СЕНСОРА 41
3.2 РАЗРАБОТКА АЛГОРИТМА ТЕХНОЛОГИЧЕСКОГО ПРОЦЕССА НАЧАЛЬНОЙ КАЛИБРОВКИ ИНЕРЦИОННОГО СЕНСОРА 41
3.3 РЕЗУЛЬТАТЫ ИСПЫТАНИЯ РАЗРАБОТАННОГО ТЕХНОЛОГИЧЕСКОГО ПРОЦЕССА НАЧАЛЬНОЙ КАЛИБРОВКИ ИНЕРЦИОННОГО СЕНСОРА 55
4 РАЗРАБОТКА АЛГОРИТМОВ УПРАВЛЕНИЯ ИНЕРЦИАЛЬНЫМИ ПРИЛОЖЕНИЯМИ 58
4.1 РАЗРАБОТКА АЛГОРИТМА ОПРОСА МОДУЛЯ ИНЕРЦИОННОГО СЕНСОРА И ФИЛЬТРАЦИИ ПОЛУЧЕННЫХ ПОКАЗАНИЙ 58
4.2 РАЗРАБОТКА АЛГОРИТМА РАСПОЗНАВАНИЯ БАЗОВЫХ ДВИЖЕНИЙ FLIP 61
4.3 РАЗРАБОТКА АЛГОРИТМА ВЫДЕЛЕНИЯ БАЗОВЫХ ДВИЖЕНИЙ PUSH 65
5 РАЗРАБОТКА МЕТОДИКИ НАПИСАНИЯ ИНЕРЦИАЛЬНЫХ ПРИЛОЖЕНИЙ 68
5.1 СПЕЦИФИКА РАЗРАБОТКИ ПРИЛОЖЕНИЙ ДЛЯ ОПЕРАЦИОННОЙ СИСТЕМЫ PALM OS 4.0 68
5.2 РАЗРАБОТКА РАЗДЕЛЯЕМОГО РЕСУРСА БАЗЫ ДАННЫХ ИНЕРЦИОННОГО СЕНСОРА 72
5.3 РАЗРАБОТКА ДЕМОНСТРАЦИОННОГО ИНЕРЦИАЛЬНОГО ПРИЛОЖЕНИЯ 74
6 ПЛАНИРОВАНИЕ И ОЦЕНКА ЗАТРАТ СОЗДАНИЯ ПРОГРАММНОГО ПРОДУКТА 81
6.1 СМОЛЯНАЯ ЯМА ПРОГРАММИРОВАНИЯ 81
6.2 СЕТЕВОЕ ПЛАНИРОВАНИЕ 82
6.3 СОЗДАНИЕ СТРУКТУРНОЙ ТАБЛИЦЫ РАБОТ 83
6.4 РАСЧЕТ ЗАТРАТ НА СОЗДАНИЕ ПРОГРАММНОГО ПРОДУКТА 87
6.4.1 Расчет затрат на непосредственную разработку программного комплекса 87
6.4.2 Расчет затрат на изготовление опытного образца программного продукта 89
6.4.3 Расчет затрат на технологию 90
6.4.4 Затраты на ЭВМ 90
6.4.5 Общие затраты на создание программного продукта 91
7 ПРОИЗВОДСТВЕННАЯ И ЭКОЛОГИЧЕСКАЯ БЕЗОПАСНОСТЬ 93
7.1 ВВЕДЕНИЕ В ПРОИЗВОДСТВЕННУЮ И ЭКОЛОГИЧЕСКУЮ БЕЗОПАСНОСТЬ 93
7.2 ОБЕСПЕЧЕНИЕ ПРОИЗВОДСТВЕННОЙ БЕЗОПАСНОСТИ ПРИ РАЗРАБОТКЕ, ПРОИЗВОДСТВЕ И ЭКСПЛУАТАЦИИ МИКРОПРОЦЕССОРНЫХ УСТРОЙСТВ 94
7.2.1 Микроклимат лаборатории 94
7.2.2 Требования к уровням шума и вибрации 96
7.2.3 Электробезопасность 97
7.2.4 Требование к защите от статического электричества и излучений при работе за компьютером. 98
7.2.5 Требования к освещению на рабочем месте 100
7.2.6 Воздействие вредных веществ при пайке 102
7.2.7 Психофизические факторы 103
7.2.8 Эргономика рабочего места 103
7.3 РАСЧЕТ ИСКУССТВЕННОГО ОСВЕЩЕНИЯ НА РАБОЧЕМ МЕСТЕ 104
7.4 ОХРАНА ОКРУЖАЮЩЕЙ СРЕДЫ 106
8 ЗАКЛЮЧЕНИЕ 108
9 СПИСОК ЛИТЕРАТУРЫ 109
Потребляемая мощность рассчитывается как сумма потребляемых мощностей элементов схемы, следовательно:
W=(5*0.3e-3)+(5.25*0.6e-3)*2+(
Основными составляющими модуля инерционного сенсора являются:
При этом точностные характеристики модуля инерционного сенсора зависят от точности ориентации чувствительных осей акселерометров и магнитных сенсоров, а также от точности определения их индивидуальных электрических характеристик: начального смещения и коэффициента чувствительности.
Определение вышеупомянутых характеристик необходимо выполнить в едином технологическом процессе начальной калибровки модуля инерционного сенсора. Этот процесс проводится один раз после изготовления модуля инерционного сенсора. Найденные характеристики запоминаются и многократно используются при работе с инерциальными приложениями.
В основе алгоритма начальной калибровки лежит установка модуля инерционного сенсора на его различные грани на горизонтальную поверхность. При этом точность начальной калибровки будет зависеть от точности горизонтирования данной поверхности.
Предположим, что земная система координат расположена таким образом, что взаимно перпендикулярные оси OX и OY располагаются в отгоризонтированной плоскости, а ось OZ будет перпендикулярна ей. Предположим, также, что существует возможность установить модуль инерционного сенсора таким образом, чтобы оси системы координат, связанной с ним, были параллельны осям земной системы. Этого легко добиться, так как конструкция модуля представляет собой параллелепипед и его система координат параллельна его рёбрам.
Выходное значение акселерометра имеет вид: R=k1*aeg+k0, где R – выходные данные с акселерометра, k1, k0 - коэффициенты, индивидуальные для каждого акселерометра в силу технологического разброса при изготовлении сенсоров.
Выходное значение магнитного сенсора имеет вид: Ms=l1*mem+l0, где Ms – выходные данные с магнитного сенсора, l1, l0 - коэффициенты, индивидуальные для каждого магнитного сенсора в силу технологического разброса при изготовлении сенсоров.
В задачу начальной калибровки входит определение коэффициентов k1, k0 для каждого из акселерометров, и l0, l1 для каждого из магнитных датчиков, а также определение углов между чувствительными осями сенсоров и осями системы координат модуля.
Начальная калибровка модуля инерционного сенсора проводится путём установки его в 6 фиксированных эталонных положений и съёма данных с акселерометров и магнитных сенсоров в каждом из его положений. В табл. 3.1, приведённой ниже, охарактеризованы все 6 положений модуля, в которые его необходимо установить для съёма показаний:
Таблица 3.1
Эталонные положения модуля инерционного сенсора
№ положения |
Направление оси X объекта совпадает с… |
Направление оси Y объекта совпадает с… |
Направление оси Z объекта совпадает с… |
Направление Вектора гравитации будет совпадать с… |
1 |
X земной системы |
Y земной системы |
Z земной системы |
-Z земной системы |
2 |
Z земной системы |
X земной системы |
Y земной системы |
-X земной системы |
3 |
Y земной системы |
Z земной системы |
X земной системы |
-Y земной системы |
4 |
-Y земной системы |
-X земной системы |
-Z земной системы |
+Z земной системы |
5 |
-Z земной системы |
-Y земной системы |
-X земной системы |
+X земной системы |
6 |
-X земной системы |
-Z земной системы |
-Y земной системы |
+Y земной системы |
На рис. 3.1 - 3.6 представлены эскизы этих 6 положений модуля инерционного сенсора.
Рис. 3.1 Эталонное положение №1 модуля инерционного сенсора.
Рис. 3.2 Эталонное положение №2 модуля инерционного сенсора.
Рис. 3.3 Эталонное положение №3 модуля инерционного сенсора.
Рис. 3.4 Эталонное положение №4 модуля инерционного сенсора.
Рис. 3.5 Эталонное положение №5 модуля инерционного сенсора.
Рис. 3.6 Эталонное положение №6 модуля инерционного сенсора.
В каждом из 6 положений необходимо снять показания датчиков XA, YA, ZA для акселерометров и XM, YM, ZM для магнитных сенсоров.
В результате, после съёма данных во всех 6 положениях, в нашем распоряжении будут следующие массивы данных: XA[1..6], YA[1..6], ZA[1..6], XM[1..6], YM[1..6], ZM[1..6].
Пусть aX, aY, aZ – углы между осями X, Y, Z модуля инерционного сенсора и чувствительной осью акселерометра, ось которого должна быть сонаправлена с осью OX модуля. А bX, bY, bZ – углы между осями X, Y, Z модуля инерционного сенсора и чувствительной осью магнитного сенсора, ось которого должна быть сонаправлена с осью OX модуля. G – модуль гравитационного вектора. M – модуль вектора магнитного поля Земли.
Примем обозначения:
b1= XA[1];
b2= XA[2];
b3= XA[3];
b4= XA[4];
b5= XA[5];
b6= XA[6];
с1 = XM[1];
с2 = XM[2];
с3 = XM[3];
с4 = XM[4];
с5 = XM[5];
с6 = XM[6];
Тогда показания сенсоров модуля во всех 6 точках будут иметь вид:
Из приведённых выражений видно, что:
Вычитая попарно уравнения, вводя переменные d1, d2, d3, e1, e2, e3 получим:
Так как и , то можно найти k1 и l1:
а углы в этом случае будут равны:
В результате проведёния вычислений мы получаем коэффициенты k1 и k0, для акселерометра, чувствительная ось которого сонаправлена с осью OX модуля, коэффициенты l1 и l0 для магнитного сенсора, чувствительная ось которого сонаправлена с осью OX модуля. Также мы получаем величины углов между чувствительной осью акселерометра и осями OX, OY, OZ, и величины углов между чувствительной осью магнитного сенсора и осями OX, OY, OZ системы координат модуля.
Аналогично вычисляются коэффициенты и для двух остальных акселерометров и двух остальных магнитных сенсоров.
Так как в большинстве применений модуля инерционного сенсора не требуется знать величину модуля вектора магнитного поля, а требуется знать его направление, то в качестве величины M может быть использовано произвольное значение.
Представленные выше аналитические выражения составляют основу процесса начальной калибровки. Для автоматизации расчета калибровочных коэффициентов было написано приложение, главное окно которого изображено на рис. 3.7.
Рис. 3.7 Главное окно программы начальной калибровки модуля инерционного сенсора.
После того, как готовый модуль инерционного сенсора пройдёт контроль функционирования, необходимо провести следующие действия, которые составляют этапы технологического процесса начальной калибровки инерционного сенсора:
Под анализом неисправностей и причин их возникновения следует считать визуальную проверку модуля инерционного сенсора, на предмет повреждений его плат или отдельных радиоэлементов, с последующей заменой неисправных элементов на новые. Также сюда относим и проверку соединительных проводов, необходимых для соединения инерционного сенсора с персональным компьютером.
Схема алгоритма технологического процесса начальной калибровки модуля инерционного сенсора приведена на рис. 3.8.
Рис. 3.8 Схема алгоритма технологического процесса начальной калибровки модуля инерционного сенсора.
В результате проведения технологического процесса начальной калибровки инерционного сенсора были получены следующие результаты:
Для акселерометра Ax:
k0=2032
k1=1013
Для акселерометра Ay:
k0=2051
k1=1017
Для акселерометра Az:
k0=2046
k1=1006
Величины углов (в градусах):
ax, ay, az для акселерометра Ax: ( 1,162 89,819 88,852);
ax, ay, az для акселерометра Ay: (88,644 2,060 88,450);
ax, ay, az для акселерометра Az: (89,883 90,010 0,117);
Для магнитного датчика Мx:
l0=2292;
l1=607;
Для магнитного датчика Мy:
l0=1903;
l1=609;
Для магнитного датчика Мz:
l0=2167;
l1=592;
Величины углов (в градусах):
bx, by, bz для магнитного сенсора Мx: (92,795 77,057 166,748);
bx, by, bz для магнитного сенсора Мy: (93,335 78,381 167,899);
bx, by, bz для магнитного сенсора Мz: (92,044 78,948 168,948);
Полученные калибровочные коэффициенты опробовались при работе с инерционными приложениями, что позволило убедиться в правильности выполненной разработки и проведения технологического процесса начальной калибровки инерционного сенсора.
Разработанный технологический процесс калибровки отличается новизной, отсутствием лишних и дублирующихся операций, возможностью проведения автоматизированного расчета калибровочных коэффициентов
Для снятия значений с модуля инерционного сенсора необходимо послать ему сигнал о подготовке данных, а потом ожидать от него показаний сенсоров. Однако случаются моменты, когда связь с модулем инерционного сенсора потеряна или он вышел из строя. Для корректной обработки подобных ситуаций, предотвращения зависания КПК и уведомления пользователя о неполадках, необходимо установить лимит времени, в течении которого ожидаются данные от модуля инерционного сенсора, и если лимит времени превышен то следует прекратить ожидание данных и установить флаг ошибки модуля инерционного сенсора.