hm4_c.gif (6237 bytes)

build by GO!

(устройство управлением обзором в авиасимуляторах

при помощи поворота головы)

Head Mouse Zoom

В HeadMouse Zoom (HMZ) развиты идеи, заложенные в предыдущей версии HeadMouse. Теперь усовершенствованное устройство обеспечивает обзор в авиасимуляторе уже по трем осям. Добавилась ось Z (приближение - удаление).

Принцип работы

Принцип работы основан на измерении уровня сигнала от четырех сегментов излучателя. Уровень принимаемых сигналов обратно пропорционален квадрату расстояния от излучателя до приемника. Также следует учесть, что при отклонении головы от направления центра обзора уровень входного сигнала фотоприемника заметно снижается. Степень снижения связана с координатами X и Y, это позволяет использовать их для поправки измеренного значения оси Z. Отклонение головы влево-вправо симметрично влияет на координату Z, а при отклонении головы вверх-вниз значение Z изменяется по-разному. Это происходит потому что излучатель укреплен на лбу. При отклонении головы вверх лоб движется назад, что приводит к увеличению расстояния излучатель-приемник, а при отклонении головы вниз лоб движется вперед и расстояние излучатель-приемник уменьшается.

Опытным путем были получены следующие выражения, обеспечивающие наилучшую работу устройства по оси Z:

R = (X^2 + (Y+dY)^2) / sqrt(2)
Z = (sqrt(Ul)+sqrt(Ur)+sqrt(Uu)+sqrt(Ud))*(1 + R)

 

R - промежуточный результат, пропорциональный отклонению обзора от центра.
X,Y - вычисленные координаты X и Y.
dY - коэффициент отклонения положения излучателя от центрального по оси Y (если излучатель закреплен на лбу, dY приблизительно равен -0.25).
Ul,Ur,Uu,Ud - измеренные уровни сигналов с четырех сегментов излучателя.
Z - вычисленная координата по оси Z.

Эти выражения позволяют получить незначительное изменение угла зрения при отклонениях обзора от центра, превышаюших половину, т.е. до крыла или даже немного более (~ до 85%). При больших отклонениях обзора угол зрения неизбежно расширится, вплоть до значения "широкоугольный обзор". С этим можно бороться, ограничив область, в которой действует ось Z. В HMZ для этого введена настройка "Radius". Она задает расстояние от прицела (0-141), на котором будет действовать управление по оси Z.

Программа

После вычисления координаты Z ее следует передать в авиасимулятор. К сожалению, NewView  пока еще не поддерживает ось Z. ИЛ2 пока еще тоже не поддерживает ось Z, зато поддерживает ступенчатое изменение угла обзора, в меню "Управление" это команды:

keyF11F12.gif (5387 bytes)

Если в ИЛе на них забиндить кнопки F11 и F12, а затем в HMZ генерировать нажатие этих кнопок, когда необходимо изменить угол зрения, то получим ступенчато работающую ось Z. В HMZ предусмотрено два режима работы по оси Z: трех- и триннадцатиступенчатый. Выбор такого непопулярного числа связан с тем, что в ИЛе именно 13 фиксированных углов обзора (от 30 до 90 градусов через каждых 5 градусов).

Рассмотрим настройки программы подробнее:

hmz_soft.gif (11267 bytes)

Для управления по оси Z введены следующие регуляторы:

Zmax (Zmin...65535) - задает максимальную координату по оси Z. Координаты, равные и большие Zmax, будут соответствовать углу обзора 30 градусов - "Прильнуть к прицелу".

Radius (0...141) - задает максимальное расстояние от прицела, на котором будет действовать управление по координате Z. Красная окружность на индикаторе показывает эту границу.

dZtime, mS (10...100) - временной интервал в миллисекундах, через который посылаются, при необходимости, виртуальные нажатия кнопок F11 и F12.

Zoffset (-100...100) - смещение, необходимое для компенсации несимметричного влияния на Z координаты Y. Соответствует 100*dY в выражениях для координаты Z, описанных выше.

Hysteresis (0...100) - гистерезис по оси Z. Определяет сдвиги границ ступеней в процентах от |Zmax-Zmin| при увеличении и уменьшении координаты Z. Это дает возможность устранить "дрожание" по оси Z на границах ступеней обзора. Аналогично действию "мертвой зоны" в NewView.

Zmin (0...Zmax) - задает минимальную координату по оси Z. Координаты, равные и меньшие Zmin, будут соответствовать углу обзора 90 градусов - "Широкоугольный обзор".

Zcontrol - задает режим управления по оси Z:

3 - трехступенчатый,

13 - тринадцатиступенчатый,

Off - управление по оси Z отключено.

Включать/отключать управление по оси Z можно также горячей кнопкой "ScrollLock".

Управление в 3х-ступенчатом режиме осуществляется так:

При Zmin<Z<Zmax "Ил" находится в режиме "Угол зрения 60 градусов". При увеличении Z до Zmax или более генерируется 6 нажатий кнопки F11 "Уменьшить угол зрения". Угол обзора сужается до "Прильнуть к прицелу". При уменьшении Z до Zmin<Z<Zmax генерируется 6 нажатий кнопки F12 "Увеличить угол зрения". Угол обзора расширяется до "Угол зрения 60 градусов". При уменьшении Z до Zmin или менее генерируется 6 нажатий кнопки F12 "Увеличить угол зрения". Угол обзора расширяется до "Широкоугольного обзора". И, наконец, при увеличении Z до Zmin<Z<Zmax генерируется 6 нажатий кнопки F11 "Уменьшить угол зрения". Угол обзора сужается до "Угол зрения 60 градусов".

В 13ти-ступенчатом режиме управление осуществляется аналогично, с той разницей, что нажатия кнопок F11 и F12 генерируются по одному, при переходе координаты Z в область соседней ступеньки (с учетом гистерезиса).

Электроника

В электроннную часть устройства внесены небольшие изменения. Это связано с добавлением дополнительного канала калибровки. Координаты оси Z связаны с абсолютной величиной входных сигналов. Поэтому необходимо, чтобы измеренный уровень входных сигналов не зависел от температуры и связанного с ней изменения параметров аналоговой части устройства. Канал калибровки представляет собой светодиод, укрепленный позади фотодиода приемника так, чтобы при прохождении через светодиод ипульса тока, на фотодиод поступало излучение, примерно равное засветке полезным сигналом. Новую принципиальную схему можно посмотреть здесь:

Нажмите, чтобы загрузить схему HeadMouseZoom (hm4zoom_sch.gif 41959 bytes)

Калибровочный импульс один раз за полный цикл измерения подается с CPU (порт P1.6) через буфер ULN2003A и токоограничительный резистор 1кОм на светодиод синего цвета, укрепленный вплотную за фотодиодом приемника. Принятый фотоприемником сигнал поступает в компьютер для поправки уровня измеренных сигналов. Этот способ обладает большой эффективностью. Так, без применения калибровочного импульса изменение уровня сигнала с сегментов излучателя достигает при прогреве в течение трех с половиной часов 50%, а с применением калибровки не превышает +/-5%.

Синий светодиод теперь заодно выполняет роль индикатора питания.

Качество обзора.

Качество обзора с помощью HeadMouse Zoom можно оценить, просмотрев несколько треков к игре "ИЛ2. Асы В Небе. ver2.04" или видеоролик:

3х ступенчатая ось Z:
HMZ03_JAK9KvsBF109G.ntrk ( 221 362 bytes)

Трек "ЯК9К против BF109G" ( 221 362 bytes)

HMZ03_JAK9Kvs4RUDEL.ntrk ( 325 080 bytes)

Трек "ЯК9К против 4RUDEL" ( 325 080 bytes)

13ти ступенчатая ось Z:
HMZ13_JAK3PvsJU87G1.ntrk ( 414 627 bytes)

Трек "ЯК3П против 4JU87G1" ( 414 627 bytes)

HMZ13_JAK9KvsHE111Z.ntrk ( 479 078 bytes)

Трек "ЯК9К против 2HE111Z" ( 479 078 bytes)

Видео:
hmz.avi ( 1 869 824 bytes)

Видеоролик, демонстрирующий действие HeadMouse Zoom (с 13ти ступенчатой осью Z). Длительность 69 секунд. Кодек MS MPEG-4 3688 V3. (1 869 824 байт)

 

(written by "GO!" 07.02.2005)
HeadMouse4 Main

 

Хостинг от uCoz