Управление программным обеспечением КПК с помощью инерционных сенсоров
Разработка модуля сенсора для определения угловой ориентации в трёхмерной системе координат для управления приложениями КПК с помощью пространственных жестов руки. Особенности отладки программно-аппаратного комплекса управления приложениями КПК.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 03.12.2011 |
Размер файла | 3,9 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
83
Размещено на http://www.allbest.ru/
Управление программным обеспечением КПК с помощью инерционных сенсоров
Введение и постановка задачи
1.1 Введение
С течением времени минимизация персональных компьютеров (ПК) дошла до такой степени, что полнофункциональный ПК может помещаться на ладони. Такие компьютеры называют “карманными персональными компьютерами” (КПК) или иначе “наладонниками”. КПК обладает меньшим быстродействием, но может выполнять многие функции обычного ПК, такие как: набор и редактирование текстов, работа с Internet, работа с электронной почтой, работа с базами данных, и многое другое. С помощью плат расширения КПК можно наделить цифровой камерой, модемом, mp3-плейером, сканером бар-кода, GPS-приемником и модулем Bluetooth. Однако, в данной бочке мёда существует и ложка дёгтя - это устройства ввода информации. Стандартно, на КПК есть шесть кнопок, которые можно запрограммировать на выполнение определённых действий, и стилус - перо, с помощью которого можно вводить текст, используя панель Graffiti или экранную клавиатуру. Использование подобных органов управления часто вызывает неудобства, связанные с тем, что работать с программным обеспечением приходится двумя руками. Одной рукой удерживается КПК, а другой рукой вводится информация с помощью стилуса. Большинство операций, которые пользователи обычных ПК привыкли делать с помощью клавиатуры, не могут быть реализованы на малом количестве кнопок КПК. В связи с этим остро встаёт проблема расширения органов ввода для КПК, которые бы могли совмещать в себе компактность и возможность оперирования одной рукой. Практически каждая фирма-производитель КПК имеет свои разработки в этой области, но ни одна из них этих разработок ещё не внедрена. Одним из перспективных направлений развития органов управления и ввода информации является ввод информации с помощью пространственных жестов руки, удерживающей КПК. Однако данный метод ввода информации ещё не реализован, нет информации как по сенсорам, с помощью которых можно реагировать на изменение угловой ориентации КПК, так и по организации взаимодействия этих сенсоров с программным обеспечением КПК. В рамках данного дипломного проекта реализована идея управления программным обеспечением КПК фирмы Palm Inc. с помощью инерционных сенсоров и специального программного обеспечения, позволяющего по показаниям этих сенсоров судить о выполнении определённых жестов.
1.2 Техническое задание на дипломный проект
· Разработать модуль сенсора, по показаниям которого можно однозначно определить угловую ориентацию его чувствительных осей в трёхмерной системе координат. Модуль сенсора должен передавать свои показания по последовательному интерфейсу RS-232C.
· Разработать алгоритмы опроса модуля сенсора и распознавания совершения определённых жестов руки показанных на рис. 1.1.
Рис. 0.1 Базовые движения. Push (сверху) и Flip (снизу)
· Разработать методику взаимодействия программного обеспечения для КПК с инерционным сенсором посредством разделяемого ресурса базы данных инерционного сенсора.
· Разработать программу, наглядно демонстрирующую возможности управления приложениями для КПК с помощью пространственных жестов руки.
2. Разработка модуля инерционного сенсора
2.1 Предложение и обоснование подхода к созданию сенсора
Для решения задачи определения угловой ориентации в трёхмерном пространстве, необходимы сенсоры, которые были бы чувствительны к изменению углового положения объекта. Стандартным подходом для решения таких задач является использование гироскопов, но из-за их дороговизны и больших размеров необходимо искать другие пути решения поставленной задачи. Одним из перспективных методов определения ориентации в пространстве является использование акселерометров - сенсоров, которые измеряют суперпозицию векторов гравитации и линейного ускорения на свою чувствительную ось. Для решения задачи ориентации в трёхмерном пространстве потребуется не менее трех акселерометров, и их следует расположить так, чтобы их чувствительные оси были взаимно ортогональны. Сенсоры, построенные на базе акселерометров, получили название “инерционных сенсоров”. Однако, только с помощью акселерометров исходную задачу ориентации решить невозможно, так как по проекциям вектора гравитации на чувствительные оси акселерометров нельзя определить угол поворота модуля инерционного сенсора в горизонтальной плоскости. Необходимо использовать дополнительные типы датчиков для измерения некой физической величины, в основе анализа которой можно было бы определить угловую ориентацию в пространстве. Причем координаты новой физической величины должны образовывать вектор, который будет неколлинеарен вектору гравитации. В качестве такой величины будем использовать вектор естественного магнитного поля Земли, так как его проекцию можно измерить с помощью магниторезистивных сенсоров, а сам геомагнитный вектор неколлинеарен вектору гравитации в подавляющем большинстве поверхности Земли.
2.2 Разработка структурной схемы модуля инерционного сенсора
Промышленность выпускает достаточно большое количество акселерометров в интегральном исполнении. Друг от друга они отличаются сравнительно большим набором характеристик, из этого набора нас интересуют следующие:
· Диапазон измерений
· Количество осей
· Цифровые выходы
· Смещение нуля
· Ошибка
· Полоса пропускания
Исследования рынка микросхем показали, что можно найти цифровые акселерометры довольно маленьких размеров, с двумя чувствительными осями, ортогональными друг другу.
С магнитными сенсорами ситуация немного другая. Из большого количества магнитных сенсоров можно выделить магниторезистивные сенсоры в интегральном исполнении. Они компактны, но у них аналоговые выходы. Можно подобрать магниторезистивный сенсор с тремя чувствительными, ортогональными друг другу осями. Следовательно, для реализации модуля инерционного сенсора с использованием магниторезистивных сенсоров потребуется АЦП, для перевода данных полученных с сенсора в цифровую форму, и ЦАП для перевода начального смещения в аналоговую форму, также следует использовать блоки усилителей, для согласования уровней сигналов аналоговых выходов магниторезистивного сенсора и аналоговых выходов ЦАП. Для получения достоверных данных с магниторезистивного сенсора необходимо проводить его размагничивание перед каждым снятием данных. Для этого следует разработать схему сброса.
Также следует учесть, что на показания акселерометров и магниторезистивных сенсоров будет влиять температура окружающего воздуха. Для корректировки показаний сенсоров в зависимости от температуры окружающего воздуха необходимо использовать температурный датчик. Исследования рынка микросхем показали, что достаточно легко подобрать компактный цифровой температурный датчик в интегральном исполнении.
Для реализации последовательного опроса акселерометров, магниторезистивных сенсоров и температурного датчика, а также для учёта начального смещения сенсоров и размагничивания магниторезистивного сенсора, будем использовать ПЛИС.
Для инициации опроса сенсоров и подготовки и фильтрации данных к передаче по последовательному интерфейсу будем использовать микроконтроллер.
Для согласования уровней сигналов микроконтроллера и интерфейса RS-232C будем использовать преобразователь уровня.
Следует также учесть, что ПЛИС и микроконтроллер нуждаются во внешнем тактировании. Для них нужно предусмотреть наличие генератора тактовых импульсов.
Конструктивно модуль инерционного сенсора следует выполнять на трёх платах. Первая плата будет содержать ПЛИС, АЦП, ЦАП, усилители для магниторезистивного сенсора, магниторезистивный сенсор, акселерометр и температурный датчик. Вторая плата будет содержать микроконтроллер, генератор тактовых импульсов и преобразователь уровней. Третья плата будет содержать акселерометр. Это обусловлено тем, что:
· Один из акселерометров должен быть установлен таким образом, чтобы его оси были ортогональны осям другого акселерометра.
· Аналоговая и цифровая части модуля инерционного следует разделить, для предотвращения взаимных наводок.
· Разместив две, из трёх, плат одна над другой мы сделаем модуль инерционного сенсора компактнее.
В результате проведённого анализа составим структурную схему модуля инерционного сенсора изображенную на рис. 2.1.
Рис. 2.1 Структурная схема модуля инерционного сенсора
2.3 Обоснование выбора элементной базы
2.3.1 Акселерометр
В качестве акселерометра лучше всего использовать микросхему ADXL202AE фирмы Analog Devices. Это - двухосевой цифровой акселерометр, работающий от напряжения питания 3, или 5.25В. Отличительными особенностями микросхемы являются:
· Наличие двух акселерометров, с перпендикулярными друг другу осями.
· Сверхмаленький размер (5mm x 5mm x 2mm).
· Разрешение 2mg на 60Гц.
· Шокоустойчивость до 1000g.
· Низкая цена.
Основные характеристики микросхемы приведены в табл. 2.1. Конфигурация выводов изображена на рис. 2.1. Описания выводов даны в табл. 2.2.
Таблица 2.1 Основные характеристики микросхемы ADXL202AE
Характеристика |
Условия |
Мин. значение |
Типичное значение |
Макс. значение |
Единица измерения |
|
Диапазон измерений |
На каждую ось |
±2 |
g |
|||
Ошибка осей |
Разброс реальной и изображенной оси |
±1 |
° |
|||
Ошибка осей |
Перпендикулярность осей |
0.01 |
° |
|||
Суммарная ошибка по осям |
±2 |
% |
||||
Температурный дрейф |
±0.5 |
% |
||||
Чувствительность каждой оси |
При VDD=5В При VDD=3В |
10 |
12.5 |
15 |
%/g |
|
Плотность шума |
При 25°С |
200 |
1000 |
grms |
||
Напряжение питания |
3 |
5.25 |
В |
|||
Потребляемый ток |
0.6 |
1 |
mA |
|||
Время включения |
160xCFILT+0.3 |
ms |
||||
Рабочая температура |
-40 |
+85 |
°C |
Таблица 2.2 Описание выводов микросхемы ADXL202AE
Pin |
Мнемоника |
Описание вывода |
|
1 2 3 4 5 6 7 8 |
ST T2 COM YOUT XOUT YFILT XFILT VDD |
Само-тест Установка T2 периода Общий Выход канала Y Выход канала X Канал фильтра X Канал фильтра Y Питание |
2.3.2 Магниторезистивный сенсор
В качестве магниторезистивного сенсора целесообразно будет использовать микросхему HMC1023 фирмы Honeywell. HMC1023 - это трех осевой магниторезистивный сенсор, отличительными особенностями которого являются:
Широкий диапазон измеряемого магнитного поля.
Маленький размер
Прочный корпус
Низкое энергопотребление
Невысокая цена
Основные характеристики микросхемы приведены в табл.2.3. Расположение выводов показано на рис. 2.1. Описание выводов микросхемы приведено в табл.2.4.
Таблица 2.3 Основные характеристики микросхемы HMC1023
Характеристика |
Условия |
Мин. значение |
Типичное значение |
Макс. значение |
Единица измерения |
|
Питание мостов |
3 |
5 |
12 |
В |
||
Сопротивление мостов |
При токе 5mA |
250 |
350 |
450 |
Ом |
|
Рабочая температура |
-40 |
+125 |
°С |
|||
Диапазон измеряемого магнитного поля |
-6 |
+6 |
Гс |
|||
Ошибка линейности |
При температуре 25 °С и поле: ±1 Гс ±3 Гс ±6 Гс |
0.05 0.4 1.6 |
%FS |
|||
Ортогональность осей |
Отличие от 90° |
±1 |
° |
|||
Чувствительность |
При питании мостов 5В |
0.8 |
1.0 |
1.2 |
мВ/В/Гс |
|
Разрешение |
Частота 10Гц, питание мостов 5В |
85 |
µГс |
|||
Наводки осей одна на другую |
+0.3 |
%FS |
||||
Максимально допустимое поле |
200 |
Гс |
Рис. 2.3 Микросхема HMC1023, вид снизу.
Таблица 2.4 Описание выводов микросхемы HMC1023
Pin |
Мнемоника |
Описание вывода |
|
1 |
Y-Out- |
Отрицательный вывод моста Y |
|
2 |
S/R- |
Установка/Сброс - |
|
3 |
Y-Off+ |
Положительный вывод моста смещения по оси Y |
|
4 |
Z-Off+ |
Положительный вывод моста смещения по оси Z |
|
5 |
Z-Off- |
Отрицательный вывод моста смещения по оси Z |
|
6 |
X-Off+ |
Положительный вывод моста смещения по оси X |
|
7 |
X-Off- |
Отрицательный вывод моста смещения по оси X |
|
8 |
X-Out+ |
Положительный вывод моста X |
|
9 |
X-Out- |
Отрицательный вывод моста X |
|
10 |
S/R+ |
Установка/Сброс + |
|
11 |
Z-Out+ |
Положительный вывод моста Z |
|
12 |
Z-Out- |
Отрицательный вывод моста Z |
|
13 |
VCC |
Питание |
|
14 |
Y-Out+ |
Положительный вывод моста Y |
|
15 |
GND |
Общий |
|
16 |
Y-Off- |
Отрицательный вывод моста смещения по оси Y |
2.3.3 АЦП
В качестве АЦП лучше всего использовать микросхему AD7864AS-2 фирмы Analog Devices. Это 4-х канальный, высокоскоростной, 12-и битный АЦП, отличительными особенностями которого являются:
Высокая скорость (1.25 s).
Одновременное аналого-цифровое преобразование с четырёх каналов.
Несколько диапазонов входных значений (от 0 до 2.5В, и от 0 до 5В).
Высокоскоростной параллельный интерфейс.
Низкое энергопотребление.
Энергосберегающий режим.
Защита от превышения диапазона входного напряжения на аналоговых входах.
Основные характеристики микросхемы приведены в табл. 2.5. расположение выводов изображено на рис. 2.3. Описание выводов микросхемы приведено в табл. 2.6.
Таблица 2.5 Основные характеристики микросхемы AD7864AS-2
Характеристика |
Значение |
Единица измерения |
Комментарий |
|
Разрешение цифрового выхода |
12 |
бит |
||
Относительная точность |
±1 |
LSB |
Максимум |
|
Нелинейность |
±0.9 |
LSB |
Максимум |
|
Диапазон входных, аналоговых, напряжений |
+2.5, +5 |
В |
||
Входное сопротивление |
9 |
кОм |
В диапазоне входного напряжения: 0 - 5 В |
|
Время преобразования |
1.65 |
s |
||
Напряжение питания |
+5 |
В |
||
Потребляемый ток |
24 20 |
mA A |
Нормальный режим Энергосберегающий режим |
|
Потребляемая мощность |
120 100 90 20 |
mW W mW W |
Макс. Нормальный режим Макс. Энергосберегающий режим Тип. Нормальный режим Тип Энергосберегающий режим |
Рис. 2.4 Микросхема AD7864, вид сверху.
Таблица 2.6 Описание выводов микросхемы AD7864AS-2
Pin |
Мнемоника |
Описание |
|
1 |
BUSY |
Выход занят. Сигнал установлен, пока идёт преобразование. |
|
2 |
FRSTDATA |
Первый цифровой выход. Когда сигнал установлен, указатель регистра выходных данных указывает на Register 1 |
|
3 |
Старт преобразования. Положительный перепад на данном входе сигнализирует о начале аналого-цифрового преобразования |
||
4 |
Устройство выбрано. Устройство активно, когда на данном сигнале низкий потенциал. |
||
5 |
Считка данных. Низкий потенциал на данном выводе говорит о том, что данные можно считывать. |
||
6 |
Запись данных. Данный сигнал запирает выводы DB0 - DB3 и по их содержимому выбирает регистр канала. |
||
7-10 |
SL1-SL4 |
Аппаратный выбор каналов. С помощью данных выводов можно задать последовательность каналов. |
|
11 |
/S SEL |
Аппаратный/Программный выбор каналов. В состоянии 0 - последовательность каналов устанавливается сигналами SL1-SL4, в состоянии 1 - последовательность каналов задаётся регистром каналов. |
|
12 |
AGND |
Общий (аналоговый). |
|
13-16 |
VIN4X ,VIN3X |
Аналоговые входы. |
|
17 |
AGND |
Общий (аналоговый). |
|
18-21 |
VIN2X ,VIN1X |
Аналоговые входы. |
|
22 |
Переключатель в режим пониженного энергопотребления (пониженное энергопотребление включено при низком потенциале). |
||
23 |
VREFGND |
Reference Ground. |
|
24 |
VREF |
Reference Input/Output. |
|
25 |
AVDD |
Питание (аналоговое). |
|
26 |
AGND |
Общий (аналоговый). |
|
27 |
/EXT CLK |
Переключатель Внешнее/Внутреннее тактирование. |
|
28 |
CLKIN |
Тактовый вход (для внешнего тактирования). |
|
29-34 |
DB11-DB6 |
Цифровые выходы. Биты 11-6. |
|
35 |
DVDD |
Питание (цифровое). |
|
36 |
VDRIVE |
Питание цепи цифровых выходов, сигналов BUSY, и FIRSTDATA. |
|
37 |
DGND |
Общий (цифроовой). |
|
38,39 |
DB5, DB4 |
Цифровые выходы. Биты 5 и 4. |
|
40-43 |
DB3-DB0 |
Цифровые выходы. Биты 3-0. |
|
44 |
Преобразование завершено. Если сигнал имеет низкий уровень - преобразование завершено. |
2.3.4 ЦАП
В качестве ЦАП будем использовать микросхему AD7305BRU фирмы Analog Devices. Это 4-х канальный 8-и битный ЦАП, отличительными особенностями которого являются:
4 8-и битных ЦАП в одном корпусе.
Компактный размер.
Быстрый параллельный интерфейс.
Низкое энергопотребление
Основные характеристики микросхемы AD7305BRU приведены в табл. 2.7. Расположение выводов изображено на рис. 2.4. Описание выводов приведено в табл. 2.8.
Таблица 2.7Основные характеристики микросхемы AD7305BRU
Характеристика |
Напр. пит 3В |
Напр. пит. 5В |
Напр. пит. ±5В |
Единицы измерения |
|
Разрешение |
8 |
8 |
8 |
бит |
|
Интегральная нелинейность |
±1 |
±1 |
±1 |
LSB |
|
Дифференциальная нелинейность |
±1 |
±1 |
±1 |
LSB |
|
Опорное входное сопротивление |
7.5 |
7.5 |
7.5 |
кОм |
|
Опорная входная емкость |
5 |
5 |
5 |
пФ |
|
Диапазон выходного напряжения |
-5.5 - +3 |
-5.5 - +5 |
-5.5 - +5 |
В |
|
Выходной ток |
±3 |
±3 |
±3 |
мА |
|
Напряжение логического нуля |
0.6 |
0.8 |
0.8 |
В мин. |
|
Напряжение логической единицы |
2.1 |
2.4 |
2.4 |
В макс. |
|
Положительный ток питания |
6 |
6 |
6 |
мА |
|
Отрицательный ток питания |
6 |
мА |
|||
Потребляемая мощность |
15 |
30 |
60 |
мВт |
Рис. 2.5 Микросхема AD7305BRU, вид сверху.
Таблица 2.8 Описание выводов микросхемы AD7305BRU
Pin |
Мнемоника |
Описание |
|
1 2 3 4 5 6 7-14 15 16 17 18 19 20 |
VOUTB VOUTA VSS VREF GND DB7-DB0 А1 А0/SHDN VDD VOUTD VOUTC |
Выход канала B Выход канала A Отрицательное напряжение питания Опорный вход Общий Строб ЦАП преобразования Цифровые входы Запись данных в регистр Бит адреса №1 Бит адреса №0 / Аппаратное выключение Положительное напряжение питания Выход канала D Выход канала C |
2.3.5 Температурный датчик
В качестве температурного датчика будем использовать микросхему TMP03 фирмы Analog Devices. Отличительными особенностями этой микросхемы являются:
Всего 3 вывода
Модулированный последовательный цифровой выход
Широкий диапазон измеряемой температуры
Низкое энергопотребление
Основные характеристики микросхемы TMP03 приведены в табл. 2.9. Расположение выводов изображено на рис. 2.5. Описания выводов приведены в табл. 2.10.
Таблица 2.9 Основные характеристики микросхемы TMP03
Характеристика |
Мин. значение |
Типичное значение |
Макс. значение |
Единицы измерения |
|
Температурная ошибка |
1 |
3 |
?С |
||
Температурная линейность |
0.5 |
?С |
|||
Стабильность показаний при постоянной температуре на 1000 часов работы |
0.5 |
?С |
|||
Напряжение питания |
4.5 |
7 |
В |
||
Ток питания |
0.9 |
1.3 |
мА |
Рис. 2.6 Микросхема TMP03, вид сверху.
Таблица 2.10 Описание выводов микросхемы TMP03
Pin |
Мнемоника |
Описание |
|
1 2 3 4-8 |
DOUT V+ GND NC |
Цифровой выход Питание Общий Не используется |
2.3.6 Операционный усилитель
В качестве операционных усилителей будем использовать микросхемы AD8534AR и AD623BR фирмы Analog Devices. Отличительными особенностями микросхемы AD8534AR являются:
· Высокий выходной ток
· Маленький потребляемый ток
· Не переворачивает фазу
· Низкий входной ток
Основные характеристики микросхемы AD8534AR приведены в табл. 2.11. Расположение выводов изображено на рис. 2.6. Описание выводов приведено в табл. 2.12.
Таблица 2.11 Основные характеристики микросхемы AD8534AR
Характеристика |
Мин. значение |
Типичное значение |
Макс. значение |
Единицы измерения |
|
Напряжение смещения |
25 |
мВ |
|||
Входной ток |
5 |
50 |
мВ |
||
Входной ток смещения |
1 |
25 |
пА |
||
Диапазон входного напряжения |
0 |
3 |
В |
||
Высокое выходное напряжение |
2.8 |
2.92 |
В |
||
Низкое выходное напряжение |
60 |
100 |
мВ |
||
Выходной ток |
±250 |
мА |
|||
Плотность шума по напряжению F = 1 кГц F = 10 кГц |
45 30 |
нВ/ нВ/ |
|||
Плотность шума по току F = 1 кГц |
0.05 |
пА/ |
Рис. 2.7 Микросхема AD8534AR, вид сверху.
Таблица 2.12 Описание выводов микросхемы AD8534AR
Pin |
Мнемоника |
Описание |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
OUT A -IN A +IN A V+ +IN B -IN B OUT B OUT C -IN C +IN C V- +IN D -IN D OUT D |
Выход усилителя A Отрицательный вход усилителя A Положительный вход усилителя A Положительное напряжение питания Положительный вход усилителя B Отрицательный вход усилителя B Выход усилителя B Выход усилителя C Отрицательный вход усилителя C Положительный вход усилителя C Отрицательное напряжение питания Положительный вход усилителя D Отрицательный вход усилителя D Выход усилителя D |
Отличительными особенностями микросхемы AD623BR являются:
Одинарное и двойное питание
Низкое энергопотребление
Установка величины усиления всего одним резистором
Основные характеристики микросхемы AD623BR приведены в табл. 2.13. Расположение выводов показано на рис. 2.8. Описания выводов приведены в табл. 2.14.
Таблица 2.13 Основные характеристики микросхемы AD623BR
Характеристика |
Мин. значение |
Типичное значение |
Макс. значение |
Единицы измерения |
|
Диапазон усиления |
1 |
1000 |
|||
Ошибка усиления G=1 G=10 G=100 G=1000 |
0.03 0.10 0.10 0.10 |
0.05 0.35 0.35 0.35 |
% % % % |
||
Смещение входного тока |
17 |
25 |
нА |
||
Колебания выходного сигнала RL=10кОм RL=100кОм |
+0.01 +0.01 |
-0.5 -0.15 |
В В |
Рис. 2.8 Микросхема AD623BR, вид сверху
Таблица 2.14 Описание выводов микросхемы AD623BR
Pin |
Мнемоника |
Описание |
|
1 2 3 4 5 6 7 8 |
-RG -IN +IN -VS REF OUTPUT +VS +RG |
Вход для регулировки входного сопротивления Инверсный вход Вход Отрицательное питание Опорное напряжение Выход Положительное питание Вход для регулировки входного сопротивления |
2.3.7 Мультиплексор
В качестве мультиплексора будем использовать микросхему ADG413BR, фирмы Analog Devices. Это четырёхканальный мультиплексор отличительными особенностями которого являются:
· Диапазон напряжений переключаемых каналов ±15В.
· Низкое входное сопротивление (<35Ом).
· Ультранизкое потребление.
· Быстрое время переключения.
· TTL/CMOS совместимость.
Основные характеристики микросхемы ADG413BR приведены в табл. 2.15. Расположение выводов изображено на рис. 2.9. Описания выводов приведены в табл. 2.16.
Таблица 2.15 Основные характеристики микросхемы ADG413BR
Параметр |
Значение |
Единица измер. |
|
Диапазон переключаемых сигналов |
±15 |
В |
|
Входное сопротивление |
35 |
Ом, максимум |
|
Время включения |
110 |
нс |
|
Время выключения |
100 |
нс |
|
Задержка |
25 |
нс |
|
Количество входных каналов |
4 |
Рис. 2.9 Микросхема ADG413BR, вид сверху
Таблица 2.16 Описание выводов микросхемы ADG413BR
Pin |
Мнемоника |
Обозначение |
|
1 |
IN1 |
Управление каналом 1 |
|
2 |
D1 |
Выход 1 |
|
3 |
S1 |
Вход 1 |
|
4 |
VSS |
Отрицательное питание |
|
5 |
GND |
Общий |
|
6 |
S4 |
Вход 4 |
|
7 |
D4 |
Выход 4 |
|
8 |
IN4 |
Управление каналом 4 |
|
9 |
IN3 |
Управление каналом 3 |
|
10 |
D3 |
Выход 3 |
|
11 |
S3 |
Вход 3 |
|
12 |
VL |
Логическое питание |
|
13 |
VDD |
Положительное питание |
|
14 |
S2 |
Вход 2 |
|
15 |
D2 |
Выход 2 |
|
16 |
IN2 |
Управление каналом 2 |
2.3.8 Схема сброса
Для реализации схемы сброса понадобятся полевые транзисторы. В качестве полевых транзисторов будем использовать микросхему IRF7105, фирмы International Rectifier. Микросхема представляет собой два полевых транзистора.
Рис. 2.10 Микросхема IRF7105, вид сверху
2.3.9 ПЛИС
В результате анализа структурной схемы было предложено использовать ПЛИС фирмы Altera, семейства MAX (Multiple Array matriX) 7000. Микросхемы этой серии обеспечивают:
· Задержку распространения сигнала от любого входа до выхода СБИС не более 5 нс;
· Устойчивую работу на частотах до 151 МГц;
· Возможность регулирования скорости переключения выходных буферов;
· Возможность использования четырех режимов работы выходных буферов: вход, выход, двунаправленный, открытый коллектор;
· Возможность задания режима пониженного энергопотребления (Turbo-off) как для всей СБИС в целом, так и для цепей распространения отдельных сигналов;
· Возможность программирования и репрограммирования после распайки на плате;
· Возможность задания режима секретности разработки (Design Security);
· Работу с пониженным (3.3 В) напряжением питания.
Для модуля инерционного сенсора будем использовать микросхему EPM7160STI100-10
Таблица 2.17 Основные характеристики микросхемы EPM7160STI100-10
Параметр |
Значение |
|
Количество макроячеек |
160 |
|
Корпус |
TQFP |
|
Количество выводов |
104 |
|
Количество выводов ввода/вывода |
84 |
|
Напряжение питания |
5 В |
|
Задержка распространения сигнала |
10 нс |
|
Количество используемых гейтов |
3200 |
|
Количество логических блоков |
10 |
Рис. 2.11 Функциональная схема ПЛИС серии MAX7000 фирмы Altera
Рис. 2.12 Микросхема EPM7160STI100-10, вид сверху.
2.3.10 Микроконтроллер
В качестве микроконтроллера будем использовать микросхему AT89S8252 фирмы Atmel. Это высокопроизводительный, низкопотребляющий, восьмибитный CMOS микроконтроллер. Основными характеристиками которого являются:
· 100000 Циклов перезаписывания
· От 4 до 6В рабочий диапазон.
· Диапазон частот от 0 до 24МГц
· Три уровня запирания памяти
· 256*8 бит внутренняя ОЗУ
· 32 Программируемых линий ввода/вывода
· Низкое потребление
· Восстановление в рабочий режим по прерыванию
Рис. 2.13 Микросхема AT89S8252, вид сверху
Описание выводов:
VCC - напряжение питания.
GND - общий.
Port 0 - открытый, двунаправленный восьмибитный порт ввода/вывода. Порт 0 может быть настроен для работы с совмещённой шиной адреса и данных.
Port 1 - восьмибитный двунаправленный порт с внутренней подтяжкой до третьего состояния.
Port 2 - восьмибитный двунаправленный порт с внутренней подтяжкой до третьего состояния. Используется как порт адреса.
Port 3 - восьмибитный двунаправленный порт ввода-вывода с подтяжкой до третьего состояния. Также можут быть использован для передачи информации по последовательному каналу.
RST - Сброс.
ALE/PROG - Address Latch Enable.
PSE - читает строб в память программы.
EA/VPP - Включение внешнего адреса.
XTAL1 - вход инвертирующего усилителя.
XTAL2 - выход из инвертирующего усилителя.
Таблица 2.18 Описания дополнительных функций выводов порта 1 и 3микросхемы AT89S8252
Мнемоника |
Описание |
|
P1.0 |
Т2 синхо выход |
|
P1.1 |
Т2 дополнительный синхро выход |
|
P1.4 |
Выход выбора подчиненного порта |
|
P1.5 |
Главный выход данных, подчиненный вход данных для SPI канала |
|
P1.6 |
Главный вход данных, подчиненный выход данных для SPI канала |
|
P1.7 |
Главный выход синхронизации, подчиненный выход синхронизации для SPI канала |
|
P3.0 |
RXD (для последовательного канала) |
|
P3.1 |
TXD (для последовательного канала) |
|
P3.2 |
Внешнее прерывание 0 |
|
P3.3 |
Внешнее прерывание 1 |
|
P3.4 |
Таймер 0, внешний вход |
|
P3.5 |
Таймер 1, внешний вход |
|
P3.6 |
Строб записи |
|
P3.7 |
Строб чтения |
2.4 Принцип работы модуля инерционного сенсора
ПЛИС генерирует на выход сигнала сброса сигнал «меандр», схема сброса по положительным и отрицательным фронтам этого сигнала подаёт на вход сброса магниторезистивного сенсора сигнал с большим током, заставляя домены магниторезистивного сенсора переориентироваться в одном направлении. В промежутки времени между положительными и отрицательными фронтами сигнала сброса ПЛИС с частотой 2кГц опрашивает последовательно магниторезистивный сенсор, первый и второй акселерометры и температурный датчик , записывая их показания в 7 12-и разрядных регистров.
1. Регистр оси Х магниторезистивного сенсора.
2. Регистр оси Y магниторезистивного сенсора.
3. Регистр оси Z магниторезистивного сенсора.
4. Регистр оси X акселерометров.
5. Регистр оси Y акселерометров.
6. Регистр оси Z акселерометров.
7. Регистр показаний температуры.
Сразу после включения схемы ПЛИС подаёт на масштабирующие входы магниторезистивного сенсора калибровочные коэффициенты, необходимые для масштабирования и линейного выравнивания показаний магниторезистивного сенсора.
Микроконтроллер с частотой 2кГц производит считывание данных из первых 6-и вышеупомянутых регистров ПЛИС. Проводит масштабную и линейную корректировку показаний акселерометров. Раз в минуту микроконтроллер производит считывание показаний температурного датчика и использует его показания для температурной корректировки показаний акселерометров и магниторезистивных сенсоров в соответствии с таблицей поправок зашитой в микроконтроллере. После снятия и корректировки показаний акселерометров и магниторезистивных сенсоров, микроконтроллер производит первичную фильтрацию этих показаний алгоритмом скользящего среднего, с размеров скользящего окна равным 16.
При поступлении сигнала с интерфейса RS-232C микроконтроллер проверяет присланный байт. Если он равен 55h, то микроконтроллер начинает последовательно отсылать корректированные и отфильтрованные показания акселерометров и магниторезистивных сенсоров через интерфейс RS-232C в КПК. Последовательность посылки такая:
1. Первые 8 бит показаний оси X магниторезистивного сенсора.
2. Последние 4 бита показаний оси X магниторезистивного сенсора дополненные нулями в старших разрядах.
3. Первые 8 бит показаний оси Y магниторезистивного сенсора.
4. Последние 4 бита показаний оси Y магниторезистивного сенсора дополненные нулями в старших разрядах.
5. Первые 8 бит показаний оси Z магниторезистивного сенсора.
6. Последние 4 бита показаний оси Z магниторезистивного сенсора дополненные нулями в старших разрядах.
7. Первые 8 бит показаний оси X акселерометров.
8. Последние 4 бита показаний оси X акселерометров дополненные нулями в старших разрядах.
9. Первые 8 бит показаний оси Y акселерометров.
10. Последние 4 бита показаний оси Y акселерометров дополненные нулями в старших разрядах.
11. Первые 8 бит показаний оси Z акселерометров.
12. Последние 4 бита показаний оси Z акселерометров дополненные нулями в старших разрядах.
2.5 Расчет потребляемой мощности
Потребляемая мощность рассчитывается как сумма потребляемых мощностей элементов схемы, следовательно:
W=(5*0.3e-3)+(5.25*0.6e-3)*2+(5*575e-6)*7+(5*40e-6)+35e-6*2+(6*750e-6)*2+90e-3+6.5e-3+(6*15e-3)+0.400=1.5e-3+6.3e-3+0.020125+2e-4+7e-5+9e-3+90e-3+6.5e-3+0.09=0.723Вт = 733мВт.
3. Разработка технологического процесса начальной калибровки модуля инерционного сенсора
3.1 Обоснование необходимости начальной калибровки модуля инерционного сенсора
Основными составляющими модуля инерционного сенсора являются:
· Акселерометр - прибор, измеряющий проекцию «кажущегося» ускорения (суперпозицию собственного ускорения и вектора гравитации) на свою чувствительную ось.
· Магнитный сенсор - прибор, измеряющий проекцию магнитного поля на свою чувствительную ось.
При этом точностные характеристики модуля инерционного сенсора зависят от точности ориентации чувствительных осей акселерометров и магнитных сенсоров, а также от точности определения их индивидуальных электрических характеристик: начального смещения и коэффициента чувствительности.
Определение вышеупомянутых характеристик необходимо выполнить в едином технологическом процессе начальной калибровки модуля инерционного сенсора. Этот процесс проводится один раз после изготовления модуля инерционного сенсора. Найденные характеристики запоминаются и многократно используются при работе с инерциальными приложениями.
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].
Пусть X, Y, Z - углы между осями X, Y, Z модуля инерционного сенсора и чувствительной осью акселерометра, ось которого должна быть сонаправлена с осью OX модуля. А X, Y, Z - углы между осями 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 Главное окно программы начальной калибровки модуля инерционного сенсора.
После того, как готовый модуль инерционного сенсора пройдёт контроль функционирования, необходимо провести следующие действия, которые составляют этапы технологического процесса начальной калибровки инерционного сенсора:
1. Подключаем инерционный сенсор к персональному компьютеру. Для проведения процедуры калибровки будет достаточно IBM PC совместимого компьютера, с тактовой частотой процессора не ниже 100MHz и установленной операционной системой Windows 95 и выше.
2. Запускаем программу калибровки, и устанавливаем там следующие значения:
a. Протокол MIEE_1.0 (программа поддерживает два протокола, для совместимости с инерционными сенсорами других фирм).
b. Установить номер COM-порта, в соответствии с тем, куда подключен инерционный сенсор.
c. Выбрать скорость обмена данными с инерционным сенсором. Рекомендуемая скорость 57600 бод.
3. Нажимаем кнопку Connect To Sensors…, после этого смотрим, если заблокированные кнопки стали доступными, то мы переходим к пункту 4. Если кнопки остались заблокированными, то приложение не может соединиться с инерционным сенсором. Следует выйти из программы калибровки, отключить инерционный сенсор от компьютера, и отправить инерционный сенсор на анализ неисправностей и причин их возникновения. Если после анализа неисправностей инерционный сенсор не отправлен в изолятор брака, то неисправность устранена, и необходимо провести калибровку сначала (с пункта 1).
4. Устанавливаем инерционный сенсор в положение 5 (см. Таблица 1). При этом мы попытаемся снять коэффициент калибровки k0 для акселерометра Ax и l0 для магнитного сенсора Mx.
5. Нажимаем кнопку +X(5), а затем нажимаем кнопку Calibrate…
6. Считываем калибровочный коэффициент k0 для акселерометра Ax и l0 для магнитного сенсора Mx.
7. Устанавливаем инерционный сенсор в положение 2 (см. Таблица 1). При этом мы попытаемся снять коэффициент калибровки k1 для акселерометра Ax и l1 для магнитного сенсора Mx.
8. Нажимаем кнопку -X(2), а затем нажимаем кнопку Calibrate…
9. Считываем калибровочный коэффициент k1 для акселерометра Ax и l1 для магнитного сенсора Mx.
10. Устанавливаем инерционный сенсор в положение 6 (см. Таблица 1). При этом мы попытаемся снять коэффициент калибровки k0 для акселерометра Ay и l0 для магнитного сенсора My.
11. Нажимаем кнопку +Y(6), а затем нажимаем кнопку Calibrate…
12. Считываем калибровочный коэффициент k0 для акселерометра Ay и l0 для магнитного сенсора My.
13. Устанавливаем инерционный сенсор в положение 3 (см. Таблица 1). При этом мы попытаемся снять коэффициент калибровки k1 для акселерометра Ay и l1 для магнитного сенсора My.
14. Нажимаем кнопку -Y(3), а затем нажимаем кнопку Calibrate…
15. Считываем калибровочный коэффициент k1 для акселерометра Ay и l1 для магнитного сенсора My.
16. Устанавливаем инерционный сенсор в положение 4 (см. Таблица 1). При этом мы попытаемся снять коэффициент калибровки k0 для акселерометра Az и l0 для магнитного сенсора Mz.
17. Нажимаем кнопку +Z(4), а затем нажимаем кнопку Calibrate…
18. Считываем калибровочный коэффициент k0 для акселерометра Az и l0 для магнитного сенсора Mz.
19. Устанавливаем инерционный сенсор в положение 1 (см. Таблица 1). При этом мы попытаемся снять коэффициент калибровки k1 для акселерометра Az и l1 для магнитного сенсора Mz.
20. Нажимаем кнопку -Z(1), а затем нажимаем кнопку Calibrate…
21. Считываем калибровочный коэффициент k1 для акселерометра Az и l1 для магнитного сенсора Mz.
22. Выходим из программы калибровки инерционного сенсора, и отключаем его от персонального компьютера.
23. Отправляем инерционный сенсор на ПСИ.
Под анализом неисправностей и причин их возникновения следует считать визуальную проверку модуля инерционного сенсора, на предмет повреждений его плат или отдельных радиоэлементов, с последующей заменой неисправных элементов на новые. Также сюда относим и проверку соединительных проводов, необходимых для соединения инерционного сенсора с персональным компьютером.
Схема алгоритма технологического процесса начальной калибровки модуля инерционного сенсора приведена на рис. 3.8.
Рис. 3.8 Схема алгоритма технологического процесса начальной калибровки модуля инерционного сенсора.
3.3 Результаты испытания разработанного технологического процесса начальной калибровки инерционного сенсора
В результате проведения технологического процесса начальной калибровки инерционного сенсора были получены следующие результаты:
Для акселерометра Ax:
k0=2032
k1=1013
Для акселерометра Ay:
k0=2051
k1=1017
Для акселерометра Az:
k0=2046
k1=1006
Величины углов (в градусах):
x, y, z для акселерометра Ax: ( 1,162 89,819 88,852);
x, y, z для акселерометра Ay: (88,644 2,060 88,450);
x, y, z для акселерометра Az: (89,883 90,010 0,117);
Для магнитного датчика Мx:
l0=2292;
l1=607;
Для магнитного датчика Мy:
l0=1903;
l1=609;
Для магнитного датчика Мz:
l0=2167;
l1=592;
Величины углов (в градусах):
x, y, z для магнитного сенсора Мx: (92,795 77,057 166,748);
x, y, z для магнитного сенсора Мy: (93,335 78,381 167,899);
x, y, z для магнитного сенсора Мz: (92,044 78,948 168,948);
Полученные калибровочные коэффициенты опробовались при работе с инерционными приложениями, что позволило убедиться в правильности выполненной разработки и проведения технологического процесса начальной калибровки инерционного сенсора.
Разработанный технологический процесс калибровки отличается новизной, отсутствием лишних и дублирующихся операций, возможностью проведения автоматизированного расчета калибровочных коэффициентов
4. Разработка алгоритмов управления инерциальными приложениями
4.1 Разработка алгоритма опроса модуля инерционного сенсора и фильтрации полученных показаний
Для снятия значений с модуля инерционного сенсора необходимо послать ему сигнал о подготовке данных, а потом ожидать от него показаний сенсоров. Однако случаются моменты, когда связь с модулем инерционного сенсора потеряна или он вышел из строя. Для корректной обработки подобных ситуаций, предотвращения зависания КПК и уведомления пользователя о неполадках, необходимо установить лимит времени, в течении которого ожидаются данные от модуля инерционного сенсора, и если лимит времени превышен то следует прекратить ожидание данных и установить флаг ошибки модуля инерционного сенсора.
Снятые с модуля инерционного сенсора данные должны подвергаться обработке с целью фильтрации шумов от внешних раздражителей, таких как дрожание руки. Из-за дрожания руки, удерживающей модуль инерционного сенсора, и неровных её движений, осциллограммы показаний модуля инерционного сенсора будут содержать в себе паразитные пульсации, которые могут быть неправильно обработаны инерционным приложением, или будут вызывать неприятное «дёрганье» изображения на экране КПК. Фильтрация позволяет устранить паразитные пульсации показаний инерционного сенсора, что крайне важно при управлении программным обеспечением КПК с помощью наклонов модуля инерционного сенсора. Оптимальным по скорости и качеству фильтрации будет использовать алгоритм скользящего среднего, причём глубина фильтрации будет определяться величиной скользящего окна. Фильтрацию необходимо проводить с помощью усреднения показаний модуля инерционного сенсора по каждой из его осей для акселерометров и магнитных сенсоров. Глубина фильтрации будет определяться количеством точек осциллограммы снятых показаний.
По результатам проведённого анализ проблемы опроса модуля инерционного сенсора и фильтрации его показаний был разработан алгоритм опроса модуля инерционного сенсора и фильтрации полученных показаний. Схема этого алгоритма изображена на рис. 4.1.
Рис. 4.1 Схема алгоритма опроса модуля инерционного сенсора и фильтрации полученных показаний
4.2 Разработка алгоритма распознавания базовых движений Flip
При разработке алгоритма распознавания базовых движений типа Flip следует привязываться к неким величинам, которые независимы от модуля суперпозиции вектора гравитации и линейного ускорения, и модуля магнитного поля, так как эти величины изменяемы во времени из-за наличия линейных ускорений и перемещения тел с большой собственной магнитной массой. Такими величинами будут являться углы поворота проекций модуля вектора гравитации и линейного ускорения, и модуля магнитного поля на плоскости XY, XZ и YZ относительно осей Y,X и Z соответственно.
Введём несколько обозначений:
|A| - модуль суперпозиции вектора гравитации и линейного ускорения
|M| - модуль вектора магнитного поля
|Ax| - проекция суперпозиции вектора гравитации и линейного ускорения на ось XZ
|Ay| - проекция суперпозиции вектора гравитации и линейного ускорения на ось XY
|Az| - проекция вектора магнитного поля на ось XZ
|Mx| - проекция вектора магнитного поля на ось XZ
|My| - проекция вектора магнитного поля на ось XY
|Mz| - проекция вектора магнитного поля на ось XZ
Пусть ax, ay, иaz - углы отклонения проекций вектора A и mx, my, и mz - углы отклонения проекций вектора М.
Основу алгоритма распознавания базовых движений типа Flip составляет - вычисление площадей отдельных участков осциллограмм углов отклонения между двумя ближайшими пересечениями нулевой отметки, и сравнения их с эталонными. При пересечении осциллограммой нулевой точки начинается суммирование углов отклонения и подсчёт времени суммирования углов осциллограммы, которые принадлежат данной сумме. Время подсчёта измеряется в количестве опросов модуля ИС. Суммы считаются отдельно для каждого из 6 сенсоров. Как только осциллограмма ещё раз пересекает нулевую точку, то все текущие показания площадей и времён подсчёта сверяются с эталонными. Сравнение производится отдельно для показаний акселерометров и показаний магнитных сенсоров. Если обнаруживается совпадение с определёнными допусками, то генерируется событие, и обнуляются все показатели площади и времени. Иначе обнуляется только показатель той площади, где было пересечение нуля. Построенный на такой методике алгоритм действует следующим образом:
1. Снимаются показания с модуля.
2. Если timeout не равен нулю, то уменьшаем его на единицу и переходим к пункту 9. Иначе переходим к пункту 3
3. Вычисляются углы отклонения ax, ay, az , mx, my, и mz
4. Прибавляются значения углов к площадям Sax, Say, Saz, Smx, Smy и Smz соответственно.
5. Проверяется наличие пересечений по каждому из углов, и если пересечения есть, переходим к пункту 6 иначе к пункту 9.
6. Проверяем текущие показания площадей и времени их замера с эталонными, отдельно для акселерометров и отдельно для магнитных сенсоров и если есть совпадения переходим к пункту 7, иначе к пункту 9.
7. Генерируем событие совершения базового движения.
8. Обнуляем площадь и время всех показателей и переходим к пункту 10.
9. Обнуляем площадь и время показателя, который перешел через ноль. И выставляем timeout выделения базовых движений.
10. Передаём управление вызвавшей алгоритм программе.
Данный алгоритм выполняется циклически при опросе инерционным приложением модуля ИС. Схема алгоритма выделения базовых движений приведена на рис. 4.2.
Рис. 4.2 Схема алгоритма выделения базовых движений Flip
4.3 Разработка алгоритма выделения базовых движений Push
Для выделения базовых движений Push нам будут необходимы показания только акселерометров. Рассмотрим осциллограмму фильтрованного Push движения вдоль одной из осей (для примера берём ось x), приведённую на рис. 1.1.
Рис. 4.3 Осциллограмма фильтрованного базового движения Push
В результате проведения исследований базовых движений Push было выяснено, что при совершении базового движения по одной из осей акселерометров идёт сигнал аналогичный сигналу на рис. 4.3, а на остальных двух осях сигнал не выходит за пределы так называемой «мёртвой зоны», изображенной на рис. 4.3 заштрихованной полосой. Следует также отметить наличие трёх перегибов осциллограммы, в зонах A, B и C. Следовательно отслеживая наличие перегибов осциллограмм мы сможем выделить совершение базового движения Push. Алгоритм выделения Push движений будет выглядеть следующим образом:
1. Опрос модуля ИС и фильтрация показаний.
2. Если timeout=0, то переходим к пункту 3, иначе уменьшаем timeout и переходим к пункту 9.
3. Если есть перегиб осциллограммы, то переходим к пункту 5 иначе к пункту 9.
4. Добавляем перегиб в стек перегибов.
5. Если стек перегибов заполнен, то проверяем его показания на предмет совершения базового движения Push. Если движение совершено, то переходим к пункту 6, иначе к пункту 9.
6. Формируем событие совершения Push.
7. Устанавливаем timeout
8. Очищаем стек перегибов.
9. Передаём управление вызвавшей алгоритм программе.
Данный алгоритм выполняется циклически при опросе инерционным приложением модуля ИС. Схема алгоритма выделения базовых движений приведена на рис. 4.4.
Рис. 4.4 Схема алгоритма выделения базовых движений Push
5. Разработка методики написания инерциальных приложений
5.1 Специфика разработки приложений для операционной системы Palm OS 4.0
Специфика операционной системы Palm OS 4.0 такова, что в любой программе должен находиться главный цикл, занимающийся опросом органов управления и обработкой событий от органов управления и операционной системы. В шаблонах приложений для среды разработки Metrowerks Codewarrior данный цикл оформлен в виде функции AppEventLoop(). После запуска приложения и выполнения некоторых подготовительных операций, таких как считывание настроек, изменение палитры, смена видеорежима, программа должна вызвать функцию AppEventLoop(), выход из которой осуществляется после получения сообщения о переключении в другое приложение. Типичный цикл обработки сообщений в приложениях Palm OS приведен на рис. 5.1.
Подобные документы
Изучение области применения комплекса для проведения имитационных испытаний микропроцессорных систем железнодорожной автоматики на функциональную безопасность. Разработка программного обеспечения модуля управления и отладки. Тестирование системы команд.
курсовая работа [1,1 M], добавлен 22.11.2014Автоматизация учета и управления, использование тиражных программных продуктов системы "1С: Предприятие". OLE - технология управления и обмена информацией между программным интерфейсом другими приложениями. Установка среды разработки, совместимой с 1С.
курсовая работа [558,9 K], добавлен 20.03.2013Измерение и определение количества цвета с помощью электронной схемы. Анализ принципа действия генераторных и параметрических датчиков цвета. Разработка программы для управления системой определения цвета. Описания модуля датчика распознавания цвета.
контрольная работа [489,4 K], добавлен 21.04.2015Общие сведения о системе управления контентом, модели представления данных и критерии её оценки. Проектирование функций пользователей "SiteONas" с ролью "Суперадминистратор". Проблема, решаемая в программном продукте, трудоемкость его разработки.
дипломная работа [6,0 M], добавлен 29.06.2012Разработка программно-аппаратного модуля, предназначающегося для сбора и анализа собранных данных в беспроводной сенсорной сети. Изготовление макета устройства. Внесение собираемых данных в базу. Расположение протокола MQTT в модели OSI приложения.
дипломная работа [3,9 M], добавлен 18.11.2017Сущность управления лицензионным программным обеспечением. Требования к аппаратному обеспечению. Изучение средств моделирования и разработки информационной системы. Анализ основных методов работы с Oracle Designer. Построение диаграмм потоков данных.
курсовая работа [1,4 M], добавлен 06.06.2014Средства автоматизации в офисных приложениях. Различные подходы создания отчётов в Word. Управление офисными приложениями в проектах Delphi. Стандартные и пользовательские макросы. Управление объектами Word и Excel 2000. Создание цифрового сертификата.
дипломная работа [1,1 M], добавлен 27.01.2013Разработка структурной схемы руки человека. Методика определения коэффициента сервиса и координат точек ориентации. Разработка метода многомерной оптимизации для решения обратной задачи кинематики. Программная реализация определения коэффициента сервиса.
дипломная работа [1,2 M], добавлен 15.06.2013Ознакомление с основными возможностями и особенностями программно-аппаратного комплекса Менуэт 2000. Назначение системы управления доступом (СУД), ее возможности, режимы работы. База данных объекта контроля. Менеджер сети замков системы Менуэт 2000.
лабораторная работа [1,6 M], добавлен 17.01.2011Разработка программно-аппаратного комплекса на базе ПЭВМ типа Pentium IV, включающего в себя периферийное устройство для генерации сигнала в виде напряжения, меняющегося во времени, и программного обеспечения для управления процессом генерации.
дипломная работа [3,0 M], добавлен 30.06.2012