Страница 1 из 1

GY-85

Добавлено: 10 апр 2019, 19:33
mic10154
Здравствуйте. Помогите пожалуйста! У меня проект на GY-85. В основном меня интересует компас. На сайте пользователем был создан очень полезный блок для этого модуля viewtopic.php?f=112&t=4371 Там же ссылка на библиотеку.Но сейчас китайцы ставят микросхему компаса не HMC5883 а QMC5883. Даташиты на них тоже разные. В общем в библиотеке есть поддержка только HMC5883. При запуске скетча exemple показывает все значения,кроме компаса,одни нули. Помогите пожалуйста адаптировать библиотеку под QMC5883.

GY-85

Добавлено: 10 апр 2019, 20:22
AVGN
mic10154 писал(а): 10 апр 2019, 19:33 Помогите пожалуйста адаптировать библиотеку под QMC5883.
Здесь не помогут. Вам дорога на форумы программистов. Библиотеки пишут на языке С++.
Если будет библиотека то и можно сделать блок для FLProg.

Отправлено спустя 2 минуты 16 секунд:
Хотя вот кажется библиотека

Отправлено спустя 5 минут 54 секунды:
[ref]mic10154[/ref], проверяйте с Вашей железкой библиотеку.

GY-85

Добавлено: 11 апр 2019, 17:53
mic10154
Ок. Спасибо все заработало!!! Но можно ли создать пользовательский блок бод это? Просто я не специалист в этом.

Отправлено спустя 2 часа 15 минут 43 секунды:
Вроде бы получилось.
Компас_QMC5883l_(CODE).ubi

GY-85

Добавлено: 11 апр 2019, 19:32
AVGN
mic10154 писал(а): 11 апр 2019, 17:53 Вроде бы получилось.

Компас_QMC5883l_(CODE).ubi
FLP пишет "Блок не корректный".
Разбираться не стал. Сделал по быстрому свой.
Проект компилируется. В железе не проверял ибо нет. Тестируйте.
Компас Mecha_QMC5883L_FLP_4_2_4 test.flp
Отправлено спустя 36 минут 44 секунды:
Вот еще одна библиотека нашлась здесь
Проект с библиотекой. Тестируйте.
Компас QMC5883L_wiki_FLP_4_2_4 test.flp

GY-85

Добавлено: 12 апр 2019, 14:52
mic10154
Блок стал не корректным из за добавления Параметра пользователя. Но у меня все работает.

GY-85

Добавлено: 12 апр 2019, 19:31
AVGN
[ref]mic10154[/ref], мои проекты протестировали?

GY-85

Добавлено: 14 апр 2019, 10:16
mic10154
Нет еще. Времени не было.

GY-85

Добавлено: 18 апр 2019, 16:07
mic10154
Проверил на железе. Вроде бы работает. Да кстати я азимут упустил. Но вот не задача. Азимут работает вправо и влево и вверх и вниз. Что не так? Очень нужно получать данные поворота головы.

GY-85

Добавлено: 18 апр 2019, 18:30
AVGN
mic10154 писал(а): 18 апр 2019, 16:07 Азимут работает вправо и влево и вверх и вниз. Что не так? Очень нужно получать данные поворота головы.
Где Ваш проект?

GY-85

Добавлено: 19 апр 2019, 06:40
mic10154
Поворот.flp
Отправлено спустя 9 минут 48 секунд:
Еще вот такие ошибки в IDE показывает
Ошибки.txt

GY-85

Добавлено: 19 апр 2019, 16:55
AVGN
mic10154 писал(а): 19 апр 2019, 06:40 Еще вот такие ошибки в IDE показывает
Потому что блок уже имеет выходы в виде переменных
int x;
int y;
И Вы еще объявляете одноименные переменные X и Y.
Вот подправил -компилируется в ID.
Поворот_без ошибок.flp

GY-85

Добавлено: 20 апр 2019, 09:25
mic10154
Ошибки те же. Он у меня и до этого компилировался. Больше интересует то что он реагирует не только на поворот вокруг своей оси,но и вверх вниз на целых 100 градусов. Цифровой фильтр гистерезиса точно не поможет. Думаю дело в самом чипе. Заказал уже 2 модификации на HMC5883l. С ним вроде проблем нет в интернете.

GY-85

Добавлено: 20 апр 2019, 10:51
ViktorPetrov
Не спешите с выводами,с начало проверить датчик на примере из библиотеки: тест,поворачивайте компас в горизонтальной плоскости вокруг часовой стрелки, в последнем столбце будет изменятся азимут.

GY-85

Добавлено: 20 апр 2019, 17:21
AVGN
mic10154 писал(а): 20 апр 2019, 09:25Ошибки те же.
никаких ошибок
[spoiler]
Поворот_без ошибок.PNG
[/spoiler]
mic10154 писал(а): 20 апр 2019, 09:25 Больше интересует то что он реагирует не только на поворот вокруг своей оси,но и вверх вниз на целых 100 градусов.
так проверьте блок сделанный на другой библиотеке
AVGN писал(а): 11 апр 2019, 19:32 Компас QMC5883L_wiki_FLP_4_2_4 test.flp
ViktorPetrov писал(а): 20 апр 2019, 10:51 проверить датчик на примере из библиотеки: тест
как раз на этом примере и сделан блок в проекте Компас QMC5883L_wiki_FLP_4_2_4 test.flp

GY-85

Добавлено: 21 апр 2019, 10:19
mic10154
На всех библиотеках,примерах и проектах результат один и тот же. Азимут показывает в градусах очень четко при повороте вокруг своей оси. К этому претензий нет. Но при опускании или поднятии (как по оси Y) показания тоже меняются на 100 градусов. Есть у кого нибудь еще подобный чип для проверки?

GY-85

Добавлено: 21 апр 2019, 11:13
ViktorPetrov
В двух словах :нужна компенсация наклона для компаса .При отклонении датчика магнитометра по осям X и Y нужно вносить поправки от акселерометра. Более подробно можно ознакомется здесь .Пример описанный в статье, эффективен в диапазонах изменения угла от -45 ° до + 45 ° , в большинстве случаев вполне достаточно .

GY-85

Добавлено: 21 апр 2019, 11:31
Mining

GY-85

Добавлено: 22 апр 2019, 09:47
mic10154
ViktorPetrov писал(а): 21 апр 2019, 11:13 В двух словах :нужна компенсация наклона для компаса .При отклонении датчика магнитометра по осям X и Y нужно вносить поправки от акселерометра. Более подробно можно ознакомется здесь .Пример описанный в статье, эффективен в диапазонах изменения угла от -45 ° до + 45 ° , в большинстве случаев вполне достаточно .
А вот это уже кое что. Осталось только сделать это в FL prog.

Отправлено спустя 4 минуты 13 секунд:
Этот вариант не подходит т.к. Эта калибровка предназначена для программы на ПК, в общем для игр. Но на заметку возьму.

GY-85

Добавлено: 22 апр 2019, 13:44
ViktorPetrov
mic10154 писал(а): 22 апр 2019, 09:47 А вот это уже кое что. Осталось только сделать это в FL prog.
Подумать нужно,желательно отдельным блоком сделать,чтоб основные блоки для акселерометра и магнитометра не переписывать пример компесации наклона
И еще пожалуй нужен фильтр для акселерометра и гироскопа Arduino-KalmanFilter с ним меньше шумов будит от датчика.

GY-85

Добавлено: 22 апр 2019, 17:28
AVGN
mic10154 писал(а): 21 апр 2019, 10:19 Но при опускании или поднятии (как по оси Y) показания тоже меняются на 100 градусов. Есть у кого нибудь еще подобный чип для проверки?
к сожалению чипа нет , ищите инфу в интернете, если подскажут код как с этим бороться можно сделать блок для FLProg.