Короче пришел у меня такой же. Вряд ли с ним получится - в нем нет компаса. Заказал параллельно еще другой - пока не получил. За основу думаю взять вот этот проект. Акселерометр взял такой же как и там - с компасом.
Вид для печати
Короче пришел у меня такой же. Вряд ли с ним получится - в нем нет компаса. Заказал параллельно еще другой - пока не получил. За основу думаю взять вот этот проект. Акселерометр взял такой же как и там - с компасом.
Мельком смотрел этот проект. Что-то там не то с математикой. Но "вертеть головой" будет, собственно там и показано.
Точно не то. Функция FilterSensorData не по классике, а тупой смутинг. Но голова "двигаться" всеравно будет, дело привычки...
Да самое главное вообще запустить, а там дальше будет видно. Что-то в теме про newview не открывается ссылка с примером dll...
вот тут ссылки на dll, но они не открываются... как координаты в newview передавать?
первый пробный запуск "MPU6050 + ProMicro".
пока две оси, пока в абсолютном режиме.
начиная с 25 секунды трекер брошен на стол, а показания паразитно плывут.
Приветствую.
Дрейф возможно из-за дрейфа или неоткалиброванности гироскопов, если они участвуют в твоих вычислениях.
Чтоб разобраться конкретнее, нужны подробности. Какие оси из MPU6050 используются, и какие отображаются в программе ? Какой базовый матаппарат используется ?
Чтоб полностью (точнее - по максимуму) победить дрейф гироскопов, для устройства обзора, необходимо использование еще одной оси с помощью магнитометра (электронного компаса), например на HMC5883L или HMC5983.
Komaroff,
в прошивке включена математика "Mahony complementary filter", на комп забираю все выходные данные математики, пока использованы только две оси по показаниям "pitch" и "yaw".
так навскидку дрейф межд показателями идет в районе 3го знака после запятой, так что можно фильтровать слабые перемещения.
продолжаю
идея с простой фильтрацией дрейфа имеет право на жизнь.
осталось активировать эмуляцию мышки и погонять это на наушниках.
кто желает влиться в тестирование будут нужны железо:
1)
Вложение 175438
ProMicro - 8$
2)
Вложение 175439
MPU6050 - 4$
от меня прошивка и софт, от вас пожелания и тесты.
Засада :) Железо это есть, но со временем полный абзац. Кстати, есть в наличии и упомянутые выше магнитометры.
Ближе к теме. Я не понял какие параметры и по какому принципу ты фильтруеш.
Сделай тест на величину отклонения показаний (относительно начальных) при физическом возврате в исходное состояние после комплекса движений с поворотами.
Гироскопы откалибровал ?
Вложение 175459
набросал калибровщик.
применил калибровку для гироскопа. дрейф снизился и уехал за 4й знак точности.
Сейчас у нас с курсом устаканится, и я себе такое закажу - тебе помогать буду :)
проект "бешеная мышка" , вот теперь можно цеплять сенсор к наушникам и оглядываться.
видео
Прям руки чешутся поэкспериментировать!
С Teensy2 и MPU-6050 я думаю проблем не будет?
если будет работать на "promicro", сделаем портирование на любую плату с "mega32u4".
из новостей,
от "мышки" как устройства передачи информации в виндовс отказался, никак в центр не возвращается.
перекрутил на двуосевой джойстик, вот тут адекватная реакция.
не хватает времени протестировать.
Ок. Заказал парочку MPU-6050
<от "мышки" как устройства передачи информации в виндовс отказался, никак в центр не возвращается.>
Можно сделать мышь в абсолютных координатах, наподобие тэчпада. Тогда центр не собьется. Примерно так:
char usbHidReportDescriptor[] = {
//--------- MOUS --------------//
0x05, 0x01, // USAGE_PAGE (Generic Desktop)
0x09, 0x02, // USAGE (Mouse)
0xa1, 0x01, // COLLECTION (Application)
//--------- But 8 -------------//
0x05, 0x09, // USAGE_PAGE (Button)
0x19, 0x01, // USAGE_MINIMUM (Button 1)
0x29, 0x08, // USAGE_MAXIMUM (Button 8)
0x15, 0x00, // LOGICAL_MINIMUM (0)
0x25, 0x01, // LOGICAL_MAXIMUM (1)
0x75, 0x01, // REPORT_SIZE (1)
0x95, 0x08, // REPORT_COUNT (8)
0x81, 0x02, // INPUT (Data,Var,Abs)
//--------- X,Y 16 ------------//
0x05, 0x01, // USAGE_PAGE (Generic Desktop)
0x09, 0x01, // USAGE (Pointer)
0xa1, 0x00, // COLLECTION (Physical)
0x09, 0x30, // USAGE (X)
0x09, 0x31, // USAGE (Y)
0x16, 0x01, 0x80, // LOGICAL_MINIMUM (-32767)
0x26, 0xff, 0x7f, // LOGICAL_MAXIMUM (32767)
0x75, 0x10, // REPORT_SIZE (16)
0x95, 0x02, // REPORT_COUNT (2)
0x81, 0x02, // INPUT (Data,Var,Abs)
0xc0, // END_COLLECTION
//-----------------------------//
0xc0, // END_COLLECTION
//-----------------------------//
};
ну вот, получай деревня трактор, трекер.
минимальный набор для работы
Вложение 175672
окошки программы в действии:
Вложение 175668Вложение 175669Вложение 175670Вложение 175671
больше информации там
Вложение 175673
Работающая связка "MM_Tracker" и "FaceTrackNoIR", собственно "FaceTrackNoIR" и будет заниматься связью с игрушками по всем другим протоколам (TrackIR(FreeTrack), SimConnect, FSUIPC, MouseLook).
Сегодня как раз все спаял, собрался что-нибудь замутить, зашел сюда...
Короче готов протестировать. :)
Правда у меня датчики GY-291 и GY-80. Чипы по сути те же, а в GY-80 еще и барометр. И ProMini без порта - просто через USB-COM гоняю.
Заказал, уже где-то летит/едет :D
Ну тогда займусь своим вариантом.
постоянная ссылка, где будут обновления прошивки и софта:
https://drive.google.com/folderview?...nc&usp=sharing
и небольшая инструкция
Приехали гироскопчики. На дня припаяю ноги и можно тестить.
mega_mozg_13 а можешь прошивочку для тинси2 сделать?
JimmyBV единая прошивка для тинзи и промикро(mega32u4, 16Mhz).
подключение:
Teensy2.SCL(PD0) = MPU6050.SCL
Teensy2.SDA(PD1) = MPU6050.SDA
ну и питание.
Собрал на макетной плате!
Рабооооотает!
Осталось придумать маленький удобный корпус и можно на наушники вешать.
(в играх не проверял)
С удовольствием.
Вот так сейчас выглядит тестовая ерунда на макетной плате и наушниках.
Вложение 176065
Записал видео с быстрой настройкой. Еще кучу всего нажно донастроить что бы отклики были адекватными, слишком большой диапазон кручения головой.
На записи из WarThunder мне приходилось оооочень сильно крутить головой что бы были адекватными движения.
(смотреть в 720р)
http://www.youtube.com/watch?v=4CRz6WNIAW0
я в "MM_Tracker" выставлял множетели для углов "1.5", а в "FaceTrackNoIR" все кривые выравнивал и выключал фильтры.
Вложение 176066
C FaceTrackNoIR я встретился вообще первый раз =) Ничего в принципе сложного, но раньше с УпОб дел не имел. Всё в новинку.
Множитель для горизонтали мне нужен небольшой, а вот для вертикали - достаточно приличный.
В общем в ближайшее свободное время буду экспериментировать.
p.s.: И надо собрать в какой-то компактный бокс. Такую тяжелую штуку неудобно на голове держать =)))
Офигительно! Мечта каждого фритраковода, которого замучил баланс "дрожь/плавность/четкое позиционирование" А подскажите пожалуйста, реализованы ли (будут ли) оси смещений? или только повороты и наклоны?
Вложение 176069
[v2014.05.13]
-добавлено интервал опроса трекера и отправки в "FaceTrackNoIR".
-настроена совместимость работы с другим софтом работающим с USB девайсами (у меня глючило "Prismatik" из проекта "lightpack").
Я искал по ключевому слову Deadreckoning (Dead reckoning). Это девайсы, позволяющие определять траекторию движения объекта при потере сигнала от GPS (например в туннеле, внутри строений). В нашем случае определять можно с помощью акселерометров. К сожалению готовых открытых решений не нашел. В одном из проектов системы навигации видел "заглушки" для Deadreckoning, найду - дам ссылку.
А что за "Prismatic" ?
"lightpack" исправил опечатку.Цитата:
А что за "Prismatic" ?
ок, спасибо. погуглю.Цитата:
Я искал по ключевому слову Deadreckoning (Dead reckoning)
А можно mpu6050 удалить на большое расстояние от teensy?
Думаю насчет разнести их. Teensy на столе, mpu6050 на наушниках.
Еще возник вопрос в каком месте лучше крепить сам mpu6050. Макушка на наушниках или где-то сбоку на ухе.
Вопрос именно в геометрии движения этой платы. В идеале она ведь должна быть в центре осей.
в таком случае рекомендуют подтяжку линий SDA SCL к питанию резюками с обеих сторон, со стороны mpu6050 уже установлены 2,2k. со стороны promicro/teensy нужно доставлять. потестируй, самому интересно насколько их можно растянуть.
для самостоятельного изучения
у меня в тестах на левой чашке наушника, не заметил искажений движений.
Я так понял что эту панельку надо всегда строго в горизонтальном положении крепить?
Закрепил вертикально и нормально не работает. Оси в разные стороны =)
на текущий момент да, потому что разные формулы расчетов углов для (поправка на силу гравитации для оси которая установлена вертикально, поумолчанию это "Z" = нормальное положение платы).
JimmyBV, вертикально - подробнее, куда у тебя край с выводами, в низ или в сторону?
Микросхемой к левому наушнику, VCC вперед и вниз.
Самая большая проблема с которой столкнулся это позиционирование микросхемы на наушниках. Хоть уровень бери да на голову клади с наушниками.
Если с поворотом головы проблем особых нет, то с наклоном вперед назад вечно проблемы. Из-за не точной оси наклона головы - движения получаются со сдвигами.
Ось ролл-а головы свел на ноль уменьшив множитель до очень малых значений.
Кстати без резисторов впаял провода от USB A-B (обрезав концы). Длина примерно 0.8-1м
Шум увеличился точно. (хотя может быть это проблема именного этой (второй) микросхемы гироскопа?)
Может быть есть смысл экран провода тоже на GND тинси кинуть?
[v2014.05.19] добавил выбор позиции сенсора относительно направления силы гравитации.
Вложение 176140
текущая "нормальная позиция" это вертикально по оси Z, чип ножками к земле крышкой к небу.
- - - Добавлено - - -
а попробуй с экраном, и потом и с резисторами.Цитата:
Сообщение от JimmyBV
еще подскажу, для инверсии сигнала можно использовать множитель с обратным знаком (ну это так чистая математика).
Прошил новой прошивкой.
После первого сохранения результатов усреднения - программа стала выдавать по осям нули.
Воткнул вторую плату со старой прошивкой - тоже нули.
Перепрошил вторую - опять нули.
Что-то не так...
JimmyBVв закладке "прошивка" кнопка "сброс памяти устройства", и потом перезагрузка или перевоткнуть в USB.
и вообще скриншоты в этом плане очень помогают =)
С помощью mega_mozg-а заимел собранное устройство:
Скрытый текст:
Настройки фэйстрека:
Скрытый текст:
И поменял настройки фильтра (вторая кривая такая же):
Скрытый текст:
Получилось вот так:
Скрытый текст:
Вау! Мне нравится. Очень нравится!
Насколько сложно эту микруху (6-осевой гироскоп без платы) купить в России?
Есть ли проблемы с центровкой?
По любому Mega_Mozg_13 - большой респект!!!