Попал мне тут давече в руки интересный девайс - TrackIR. http://ru.wikipedia.org/wiki/TrackIR
Вкратце - это девайс, который отслеживает положение головы, и сообщает это положение компу. Применяется в играх для управления обзором (очень удобно в авиасимуляторах).
Поигрался - круто. Но ценник негуманен - 6.000 рублей за родное устройство. 3к - за российский аналог, на который ругательных отзывов больше, чем порносайтов.
И задумался я, а что, если такой девайс сделать самому? Технически, там ничего сложного нет. От слова вообще.
Гугл на экран, паяльник в руки, и вот, что получилось:
-----------------------------------------------------------------------------------
Забегая вперед - плюсы и минусы самопального устройства:
Плюсы:
- Суммарная цена нужных деталей - 500 рублей! Из которых 300 - говновебкамера. Крутых вебок не нужно. Если есть старенькая вебка, которую нежалко раскурочить, то вообще в 200 рублей уложится.
- В отличии от родного устройства, которое работает строго с определенным списком игр, которые поддерживают девайс - сапопал работает везде! Где-то, как родной TrackIR, где-то через эмуляцию джойстика, где-то через привязанные клавиши (забиндить, например PageUP на подъем головы, и в игре, которое о существовании такого устройства не подозревает).
- У самопала, инфракрасные датчики расположены на голове, а не светят в лицо. Меня, честно говоря, напрягает факт, что мне в рожу светит 400мВт в инфракрасном диапазоне. Думается мне, что это нифига не полезно для глаз. Хотя, кому пофиг, могут собрать схему с отражателями, а не IR-диодами на голове.
Минусы:
- Точность позиционирования и задержка. Она есть. Очень маленькая, почти не ощутимая. Впрочем, если вам не с чем сравнить, и у вас под рукой нет родного устройства TrackIR - то об этом минусе вы даже не узнаете.
- Не слишком эстетичная "люстра" на голове. Если питание внешнее, а не батарейкой - то еще и провод к бейсболке на голове.
---------------------------------------------------------------------------
Итак, нам поднадобятся:
1) Вебкамера с минимум 30 кадрами в секунду (большинство современных), и с ручной, а не автоматической настройкой освещенности. В некоторых камерах есть автоматическое регулирование FPS в зависимости от освещения. В настройках это называется - "компенсация низкой освещенности" - этот параметр нужно отключать! Если его отключить нельзя - такая камера не подходит!
Я вpял Logitech Webcam (номер не помню, какая-то простенькая, за 300 рублей). Логитечи, имхо, подходят все. Разрешение - выше 640х480 - не нужно. Ключевая позиция - количество кадров в секунду.
2) 3 инфракрасных светодиода с максимумом углом свечения. Я взял в "Чип и Дипе" 860нм - длина волны, 100 мВт - яркость.
3) Фильтр видимого света. Подойдет магнитный диск от старой 3.5 дискеты или кусок засвеченной (и проявленной) фотопленки.
4) Бейсболка ненужная.
Урлы, что-бы почитать и понять процесс, а так-же взять софт:
http://www.free-track.net/english/
Там подробно расписан процесс, с фотографиями и онлайновым калькулятором подбора резисторов.
Расскажу вкратце свой процесс, и подскажу кое-какие хинты:
1) Инфракрасный фильтр из вебкамеры удалять обязательно! Это несложно, 5 минут работы отверткой и макетным ножом. Причем, если у вас фильтр находится в съемном "объективе" - то вам повезло - удалять смело и безбоязненно. Если-же фильтр непосредственно на фото-матрице - удалять предельно аккуратно! Заденете ножом матрицу - камеру можно выкидывать (я одну выкинул).
Фильтр опознать довольно легко - чаще всего это прямоугольное стеклышко переливающиеся голубовато-красным.
После чего вырезать кружочек из дискеты или фотопленки (дискета лучше) и вставить внутрь или наклеить снаружи. Я зажал круглый кусочек дискеты между "объективом" и внешним корпусом. Внутрь объектива, имхо, лучше не вставлять - велика вероятность задеть и повредить матрицу.
У вас получится инфракрасная камера - легко пропускающая инфракрасный свет, и задерживающая видимый.
2) На бейсболку нацепляем IR-диоды - два по краям козырька, один на лоб бейсболки. Сверху я надел колпачки из салфеток (вырезал прямоугольнички, скрутил колпачки и надел). Необходимо для того, что-бы камера регистрировала повороты более, чем угол самого светодиода (они обычно довольно узким пучком светят).
Hints: светодиоды подсоединять ТОЛЬКО последовательно. Это даст равномерное свечение и более долгий ресурс.
Необходимый резистор можно рассчитать там-же на сайте. Кстати, к компьютерным кулерам очень часто идет кабелек с врезанным резистором как раз нужного номинала. Для питания от компьютерного блока питания 5+вольт трех вышеназванных диодов соединенных последовательно - требуется 54 ома. Вот ровно такой резистор у меня и был.
Собственно у меня запитаны последовательно от +5 компа. (красный провод).
Получилось следующее:
3) Скачиваем программу, настраиваем вебку. Следим, что-бы FPS камеры входящий был 30 (или больше, если камера может). Если ФПСы упали до 8-10, значит мы или забыли отключить "компенсация низкой освещенности", или изображение слишком светлое. В идеале, что-бы при предпросмотре на экране были видны только 3 яркие точки - светодиоды, а остальное - черное. Предпросмотр удобно делать в Скайпе. Играться параметром "Выдержка". Остальное - лучше не трогать.
Обязательно измерить линейкой и ввести параметры расстановки светодиодов - для более точного позиционирования.
Запускаем игру - наслаждаемся. Я сейчас играю в X3 Albion Prelude - вообще теперь без фритрака не могу. Настроил в Planetside2 обзор из кабины самолета джойстиком, и повесил на фритрак эмуляцию джойстика.
Попробовал в Арму2 погонять. Прикольно, но непривычно. Нужно много настроить под себя. Работают наклоны туловища (смещением влево-вправо), поворот головы, и приблизить-отдалить (путем приближения отдаления головы к монитору).
В принципе, я сделал и другой вариант - в морду светят диоды (их не видно - ИК диапазон все-таки), а на голове стоят отражатели в тех-же местах, что и диоды. Это удобней, в плане того, что провода к голове не идет, но напрягает тот факт, что в морду светят ИК. Так-что я лучше с проводом посижу...
В общем - если кому интересно - надеюсь то, что написал - поможет.
P.S. Если нужна эмуляция джоя под вин7-64 - винду следует запускать в "test drivers mode" - иначе дрова эмулятора не встанут.
Если кто заморочится делать схему с отражателями - вот тут http://www.comp2.ru/Items/mmnpdots.htm можно купить родные отражатели. Стоят копейки, а отражают ИК лучше всего.