Короче пришел у меня такой же. Вряд ли с ним получится - в нем нет компаса. Заказал параллельно еще другой - пока не получил. За основу думаю взять вот этот проект. Акселерометр взял такой же как и там - с компасом.
Короче пришел у меня такой же. Вряд ли с ним получится - в нем нет компаса. Заказал параллельно еще другой - пока не получил. За основу думаю взять вот этот проект. Акселерометр взял такой же как и там - с компасом.
Мельком смотрел этот проект. Что-то там не то с математикой. Но "вертеть головой" будет, собственно там и показано.
Точно не то. Функция FilterSensorData не по классике, а тупой смутинг. Но голова "двигаться" всеравно будет, дело привычки...
Да самое главное вообще запустить, а там дальше будет видно. Что-то в теме про newview не открывается ссылка с примером dll...
вот тут ссылки на dll, но они не открываются... как координаты в newview передавать?
первый пробный запуск "MPU6050 + ProMicro".
пока две оси, пока в абсолютном режиме.
начиная с 25 секунды трекер брошен на стол, а показания паразитно плывут.
не забывайте что мы живем в стране с обширными недокументированными возможностями (c)bash.org.ru
Приветствую.
Дрейф возможно из-за дрейфа или неоткалиброванности гироскопов, если они участвуют в твоих вычислениях.
Чтоб разобраться конкретнее, нужны подробности. Какие оси из MPU6050 используются, и какие отображаются в программе ? Какой базовый матаппарат используется ?
Чтоб полностью (точнее - по максимуму) победить дрейф гироскопов, для устройства обзора, необходимо использование еще одной оси с помощью магнитометра (электронного компаса), например на HMC5883L или HMC5983.
Komaroff,
в прошивке включена математика "Mahony complementary filter", на комп забираю все выходные данные математики, пока использованы только две оси по показаниям "pitch" и "yaw".
так навскидку дрейф межд показателями идет в районе 3го знака после запятой, так что можно фильтровать слабые перемещения.
не забывайте что мы живем в стране с обширными недокументированными возможностями (c)bash.org.ru
продолжаю
идея с простой фильтрацией дрейфа имеет право на жизнь.
осталось активировать эмуляцию мышки и погонять это на наушниках.
кто желает влиться в тестирование будут нужны железо:
1)
ProMicro - 8$
2)
MPU6050 - 4$
от меня прошивка и софт, от вас пожелания и тесты.
не забывайте что мы живем в стране с обширными недокументированными возможностями (c)bash.org.ru
Засада Железо это есть, но со временем полный абзац. Кстати, есть в наличии и упомянутые выше магнитометры.
Ближе к теме. Я не понял какие параметры и по какому принципу ты фильтруеш.
Сделай тест на величину отклонения показаний (относительно начальных) при физическом возврате в исходное состояние после комплекса движений с поворотами.
Гироскопы откалибровал ?
Сейчас у нас с курсом устаканится, и я себе такое закажу - тебе помогать буду
проект "бешеная мышка" , вот теперь можно цеплять сенсор к наушникам и оглядываться.
видео
не забывайте что мы живем в стране с обширными недокументированными возможностями (c)bash.org.ru
Прям руки чешутся поэкспериментировать!
С Teensy2 и MPU-6050 я думаю проблем не будет?
если будет работать на "promicro", сделаем портирование на любую плату с "mega32u4".
из новостей,
от "мышки" как устройства передачи информации в виндовс отказался, никак в центр не возвращается.
перекрутил на двуосевой джойстик, вот тут адекватная реакция.
не хватает времени протестировать.
не забывайте что мы живем в стране с обширными недокументированными возможностями (c)bash.org.ru
Ок. Заказал парочку 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
//-----------------------------//
};
Успехов!
ну вот, получай деревня трактор, трекер.
минимальный набор для работы
окошки программы в действии:
больше информации там
не забывайте что мы живем в стране с обширными недокументированными возможностями (c)bash.org.ru
не забывайте что мы живем в стране с обширными недокументированными возможностями (c)bash.org.ru
Сегодня как раз все спаял, собрался что-нибудь замутить, зашел сюда...
Короче готов протестировать.
Правда у меня датчики GY-291 и GY-80. Чипы по сути те же, а в GY-80 еще и барометр. И ProMini без порта - просто через USB-COM гоняю.
Заказал, уже где-то летит/едет
Ну тогда займусь своим вариантом.
постоянная ссылка, где будут обновления прошивки и софта:
https://drive.google.com/folderview?...nc&usp=sharing
и небольшая инструкция
не забывайте что мы живем в стране с обширными недокументированными возможностями (c)bash.org.ru
Приехали гироскопчики. На дня припаяю ноги и можно тестить.