В настоящее время в развитии портативных карманных персональных компьютеров наметился явный дисбаланс: с одной стороны наблюдается тенденция к увеличению вычислительных мощностей, а с другой стороны размеры КПК становятся всё меньше и меньше, что в свою очередь вызывает острую нехватку количества органов управления, которые можно разместить на лицевой панели. Актуальным становится реализация «нетрадиционных» методов ввода-вывода информации. Одним из наиболее перспективных методов управления, является управление с помощью пространственных жестов руки, удерживающей карманный персональный компьютер. Достоинством данного подхода является возможность управления одной рукой и резкое увеличение количества виртуальных органов управления. В качестве датчиков, на основе показаний которых «выделяют» данные движения, предложено использование инерционных сенсоров способных определить свою угловую ориентацию в трёхмерном пространстве. Приложения, которые управляются с помощью данного типа сенсоров, получили название «инерциальных». Однако такой методики ввода информации пока не существует, поэтому данный дипломный проект посвящен разработке модуля, содержащий малогабаритные полупроводниковые сенсоры (3 акселерометра и 3 магнитных сенсора). Разработке алгоритмов и программного обеспечения, позволяющего распознавать определённый набор жестов руки, удерживающей модуль, на основе данных, снимаемых с сенсоров.
По результатам анализа технического задания на дипломное проектирование была составлена структурная схема модуля инерционного сенсора. Модуль работает следующим образом: ПЛИС циклически, с частотой 2кГц, опрашивает магниторезистивные сенсоры, предварительно размагничивая их через схему сброса, акселерометры и температурный сенсор, и записывает результаты опроса в 7 внутренних регистров. Микроконтроллер, с той же частотой, проводит считывание данных из этих семи регистров, проводит первичную фильтрацию показаний акселерометров и магниторезистивных сенсоров методом скользящего среднего, проводит температурную, масштабную и линейную коррекцию. По поступлению сигнала через интерфейс RS-232C Микроконтроллер начинает последовательно передавать фильтрованные и подкорректированные показания акселерометров и магниторезистивных сенсоров по интерфейсу RS-232С устройству инициировавшему передачу.
По результатам анализа структурной схемы был проведён подбор элементной базы и разработана схема электрическая принципиальная. Был проведён расчет потребляемой мощности модуля.
Плата 1.
D1 – HMC1023 – магниторезистивный сенсор.
D2 – ADXL202AE – акселерометр.
D3..D9 – AD623BR – операционник.
D10 – AD7305BRU – ЦАП
D11,D12 – ADG143BR – мультиплексор.
D13,D14 – AD8534AR – Операционник.
D15 – AD7864AS-2 – АЦП
D16 – IRF7105 – полевик.
D17 – EPM7160STI100-10 - ПЛИС
D18 – TMP03 – темпер. датчик
Плата2
D2 – ADXL202AE – акселерометр.
Плата3
D1 - AT89S8252 – микроконтроллер.
D2 – SP202EEN – преобразователь уровня.
Далее в соответствии с разработанной схемой электрической принципиальной был сделан сборочный чертеж плат модуля. Платы довольно компактны и собранный на их основе модуль легко помещается в руке.
Достоверность показаний модуля инерционного сенсора, собранного на основе сборочных чертежей, будет зависеть от точности ориентации чувствительных осей акселерометров и магниторезистивных сенсоров, а также от точности определения их индивидуальных электрических характеристик: начального смещения и коэффициента чувствительности. Эти коэффициенты следует получить в едином технологическом процессе, названном: Технологическим процессом начальной калибровки модуля инерционного сенсора, выполняемом один раз после сборки модуля. Суть данного процесса состоит в установке модуля в 6 различных положений, для которых заранее известны эталонные значения вектора гравитации и магнитного вектора. Последующего снятия показаний датчиков в этих 6-и положениях и расчете калибровочных коэффициентов k0 и k1 для акселерометров и l0 и l1 для магнитных сенсоров. Схема алгоритма технологического процесса показана на плакате 9. Для проведения начальной калибровки было написано приложение для ПК, которое опрашивает модуль сенсора и рассчитывает калибровочные коэффициенты. После проведения технологического процесса калибровочные коэффициенты акселерометров прошиваются в микроконтроллер, а калибровочные коэффициенты магнитных сенсоров прошиваются в ПЛИС.
В соответствии с техническим заданием и конструкцией модуля инерционного сенсора была разработан алгоритм выделения базовых движений. Условно его можно разбить на три части:
-
Алгоритма опроса и фильтрации показаний модуля инерционного сенсора
-
Алгоритма выделения Flip движений
-
Алгоритма выделения Push движений
В соответствии с разработанным модулем инерционного сенсора и применением стандартного алгоритма фильтрации – метода скользящего среднего был разработан алгоритм опроса и фильтрации показаний модуля инерционного сенсора.
В соответствии с техническим заданием и алгоритмом опроса и фильтрации был разработан алгоритм выделения Flip движений. Алгоритм не теряет работоспособность при изменении модуля суперпозиции вектора гравитации и линейного ускорения и модуля магнитного поля, и при изменении направления суперпозиции вектора гравитации и линейного ускорения за счёт центробежного ускорения возникающего при Flip движении.
Также, в соответствии с техническим заданием и алгоритмом опроса и фильтрации был разработан алгоритм выделения Push движений.
На основе разработанного алгоритма выделения базовых движений и специфики операционной системы Palm OS, данные алгоритмы были реализованы в виде разделяемого ресурса базы данных инерционного сенсора. Этот ресурс представляет собой бинарный файл объемом 7кБайт и загружается в КПК всего один раз, далее любое инерциальное приложение может свободно им пользоваться.
Для апробации предложенного подхода управления программным обеспечением КПК с помощью пространственных жестов руки была создана компьютерная игра Cosmicon, т.к. игры наиболее полно удовлетворяют требованиям, предъявляемым к приложениям демонстрирующим возможности новых органов управления. Объем исходного кода Cosmicon составил 64кБайт, а объём откомпилированного исполняемого файла 192кБайта. Демонстрация игры Cosmicon показала эффективность предложенного подхода. Реализация такой игры без модуля инерционного сенсора будет невозможна или потребует дополнения передней панели КПК десятью кнопками.
В экономической части дипломного проекта было проведено планирование проведения работ по созданию модулей игры с использованием метода сетевых графиков. Анализ сетевого графика проведения работ позволил составить календарный график выполнения проекта, а также была составлена смета затрат на создание этого программного продукта.
Для предотвращения травм при разработке программно-аппаратного комплекса управления программным обеспечением КПК с помощью пространственных жестов руки в рамках дипломного проекта были рассмотрены многие аспекты обеспечения безопасности на рабочем месте и проведён расчет искусственного освещения.
Многочисленные тестирования программно-аппаратного комплекса показали, что управление жестами руки является удобным, простым и интуитивно понятным, а сам разработанный программно-аппаратный комплекс полностью удовлетворяет техническому заданию на дипломный проект.