Мой UrGear. Текущие проекты в процессе.

Долго думал писать или нет, потом решил, что одна голова хорошо а много — хоть и некрасиво, но эффективно. Представляю вашему вниманию один из своих текущих проектов.

Не секрет, что я люблю на досуге поиграться в старый добрый Ил-2. Даже в скваде =V= состою. И, как всякий Вирпилко, стараюсь сделать игровой процесс максимально комфортным. Комфорт в виртуальном полете и воздушном бою создается тремя железными составляющими кроме мощного компа: джойстиком, педалями и устройством управления взглядом. Последнее достаточно важно, потому как от обзора и контроля за ситуацией зависит твоя виртуальная жизнь и жизнь твоих товарищей по команде. Об этом и пойдет речь дальше.

Существует много разновидностей устройств управления взглядом. От мышки и хатки до TrackIRа. Все эти устройства имеют свои преимущества и свои недостатки. Подробно их рассматривать не буду, все есть в сети. Скажу только, что сейчас я использую FreeTrack и меня не все в нем устраивает. Фирменный же TrackIR стоит больших денег, которые пока нет возможности выделить из семейного бюджета.

Когда Ди выложил на сайте первый обзор компаса-акселерометра LSM303DLH мне пришла в голову мысль: Вот бы такую штуку прикрепить к наушникам вместо моих ик-светодиодов и по USB нужные данные компу слать. Начал ковырять эту тему.
Сначала заказал компаса. Пока они мне шли — занимался ковырянием с STMовскими USB-библиотеками, т.к. решил, что раз есть железный интерфейс — нафиг извраты со всякими виртуальными. HID протокол я успешно запустил, зацепил на макетке пару резюков на АЦП и с помощью отвертки покрутил головой в Иле.
Потом заЛУТил макетку для компаса, все запаял и стал экспериментировать.
Вобщем процесс был долгим и мучительным. Отчасти потому, что в интерфейсе i2c не стал контролировать корректность работы шины, а, так как макетка с компасом была зацеплена BLS-ками — периодически случался неконтакт при кручении платы и все становилось колом… Контроль шины я потом все же прикручу, сейчас он не так актуален.
Но это не главная помеха на пути к цели. Самое противное, что судя по показаниям компаса у меня магнитная линия направлена практически вертикально в пол. Думал что битая микросхема, развел прототип готового устройства, впаял другую — те же яйца вид с боку.

Внешне у меня получилась такая коробочка:



Немного про внутренности:
контроллер STM32F103C8T6
компас LSM303DLH
кварц на 8 МГц
2 преобразователя питания на LM1117 (3.3 и 1.8 В)
защита USB от статики STM USBLC6-2SC6
питание платы от USB
разъем программирования и USART.

2 светодиода для разной индикации, кнопка сброса, функциональная кнопка для входа в загрузчик и кнопка центровки.
Немножко поясню: сброс — это железный сброс контроллера.
функциональная кнопка — для дополнительных функций типа смены прошивки на новую. Планировал прикрутить в конце загрузчик предоставленный rtxonair и описанный в статье Ди Прошивка ARM Cortex M3 на примере STM32 и LPC1300, если автор загрузчика не будет против.
Обе этих кнопки сделаны заподлицо с крышкой корпуса и просто так их не нажать.
Основная кнопка центровки выступает над корпусом.

Математику сделал без заморочек используя лишь библиотеку math. Пока рассматриваю варианты более оптимальной реализации тригонометрических функций.
На данном этапе проекта — ковыряю LabView, чтобы по Уарту получать данные с компаса и оценить погрешности расчета контроллера в сравнении с расчетами компа и для проверки разных математических извращений, которые мне могут прийти в голову для повышения функциональности платы.

Пока собствено все…
  • +2
  • 12 марта 2011, 15:05
  • Ultrin

Комментарии (14)

RSS свернуть / развернуть
У компаса три оси. По ним можно ориентироваться сразу по всем. Причем оси какие то неравноправные. Такое ощущение, что у Z коэффициент усиления намного ниже.
0
Да, у Z усиление ниже. Фигня в том, что изменения по нужным осям в горизонтальной плоскости минимальны.
Я использовал расчеты, которые STMовцы в апноте к компасу приводят. и еще один затык — из-за такого направления силовой линии небольшой наклон платы приводит к смене знака арктангенса, что равносильно повороту на 180 градусов…
0
Компас будет находится в наушниках около динамика? Тогда его может приглючить…

А вообще идея классная :)
0
коробочку надо закрепить на голове. Сверху, снизу, где угодно. Влияние динамика не проверял, но можно не ставить рядом.
0
и оно реально удобно использовать? ведь если крутишь головой то надо и монитор за глазами двигать. или оно как то по другому работает? если я хочу посмотреть за левое плечо, у меня ведь нет там монитора, как увидеть изображение?
+1
  • avatar
  • kest
  • 12 марта 2011, 16:21
Все настраивается чувствительностью/плавностью. Достаточно небольшое смещение головы приводит к серьезному повороту в игре.
0
насчет удобства — понятно, что освобожджаются… имеется ввиду удобство использования такого управления… я человек весьма увлекающийся и азартный — и во вемя игры совершаю много различных движений в т.ч. и головой, поэтому тяжело себе представляю как можно так играть, когда малейшее движение головы влияет на обзор… надо будет попробовать как-нибудь
0
Привыкать надо по любому. Я первый фритрак собирал на 1 светодиоде. Вот там точно голова отваливалась, и спина тоже, потому как каждое шевеление воспринималось как поворот головы :D.
0
а по удобству даже нет вопросов. Освобождаются руки и кнопки.
0
А почему-бы не заюзать в качестве управляющего сигнала наклоны головы?

Наклонил голову вправо, камера ушла вправо…
0
Это просто, но неудобно/непривычно. К тому же это пока я делаю работу по 2м осям. Современные устройства типа FreeTrack и TrackIR поддерживают работу по 6ти осям. В Иле это по умолчанию не держится, только в специальном МОДе. А вот готовящийся к выходу BOB вроде должен држать 6 осей сразу.
0
Как я и говорил — полезно иногда взрывать мозг ПЛИСами. Вроде мысля поперла — щас проверяю :D
0
В том, что магнитная индукция направлена в пол ничего удивительного. В Петербурге, например, горизонтальные компоненты 14,7 мкТл и 2,5 мкТл, вертикальная 50,1 мкТл. Есть онлайн калькулятор магнитного поля www.ngdc.noaa.gov/geomagmodels/IGRFWMM.jsp
0
Спасибо за ссылку. Посмотрю.
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.