Блок GY-521 блок
Блок GY-521 блок
Здравствуйте . Помогите .Создал пользовательский блок GY-521 акселерометр и гироскоп в FlProg , есть проблема с работой блока. Немогу решить.
Скеч для блока брал из Arduino IDE в примерах есть MPU6050_giro_pitch_roll_yaw
Все работает , разобрался ,читал,видео смотрел по теме. Но одно но, при включении питания (nano )нет показаний.Или что то есть но не то и по одной оси. Показания вывожу на дисплей по 3 осям.Стоит нажать кнопку RESET на nano , становится все окей.
Скеч для блока брал из Arduino IDE в примерах есть MPU6050_giro_pitch_roll_yaw
Все работает , разобрался ,читал,видео смотрел по теме. Но одно но, при включении питания (nano )нет показаний.Или что то есть но не то и по одной оси. Показания вывожу на дисплей по 3 осям.Стоит нажать кнопку RESET на nano , становится все окей.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Uriy0206 12 мар 2024, 07:20, всего редактировалось 1 раз.
-
- Капитан
- Сообщения: 908
- Зарегистрирован: 04 окт 2015, 19:10
- Откуда: Новосибирск
- Имя: Павел
- Благодарил (а): 20 раз
- Поблагодарили: 22 раза
Блок GY-521 блок
Скорее всего при включении питания гироскоп не успевает полностью проинициализироваться. При сбросе контроллера через reset питание на гироскопе уже есть, тут уже успевает.Uriy0206 писал(а): 11 мар 2024, 20:39 Но одно но, при включении питания (nano )нет показаний. Или что то есть но не то и по одной оси. Показания вывожу на дисплей по 3 осям. Стоит нажать кнопку RESET на nano , становится все окей.
Последний раз редактировалось Naladchik 12 мар 2024, 07:31, всего редактировалось 1 раз.
Блок GY-521 блок
Спасибо за совет!Простыню убрал. Прошу прощения, первый раз на форуме .(Да ! первый раз за 50 лет на форуме
) Подскажите пожалуйста , питание аппаратно подавать с задержкой или програмно можно сделать? Сегодня попробую в ручную сделать задержку .
О результатах отпишусь.

О результатах отпишусь.
-
- Капитан
- Сообщения: 908
- Зарегистрирован: 04 окт 2015, 19:10
- Откуда: Новосибирск
- Имя: Павел
- Благодарил (а): 20 раз
- Поблагодарили: 22 раза
Блок GY-521 блок
Для начала попробовать программно (это же проще). Есть такой участок.
// Initialize MPU6050
while (!mpu.begin(MPU6050_SCALE_2000DPS, MPU6050_RANGE_2G))
{
delay(500);
}
1. Просто добавить времени в delay, т.е. допустим сделать не delay(500) а delay(1000), или
2. поставить дополнительную задержку
// Initialize MPU6050
delay(500);
while (!mpu.begin(MPU6050_SCALE_2000DPS, MPU6050_RANGE_2G))
{
delay(500);
}
Может и поможет, пробуйте.
Блок GY-521 блок
Пока в школу ходил (1класс) , тоже подумал о delay. Спасибо за пример. Я в скечах на 1 уровне.
- rw6cm
- Полковник
- Сообщения: 2372
- Зарегистрирован: 06 сен 2015, 20:25
- Имя: Владимир
- Поблагодарили: 41 раз
Блок GY-521 блок
В Arduino IDE по деф нет этого примера.Uriy0206 писал(а): 11 мар 2024, 20:39 Скеч для блока брал из Arduino IDE в примерах есть MPU6050_giro_pitch_roll_yaw
В библиотеке пристегнутой к блоку тоже нет его, и она не работает с этим блоком (выдает ошибку)
Взял библиотеку с гита здесь
Ваш проект грузится и работает сразу, только инфу смотрел не на дисплее а по UART.
delay из секции loop надо полностью убрать. иначе толку не будет.
Его ставят в скетчах в основном для демонстрации конкретного примера, где он не критичен.
В составе большого проекта он посеет много "граблей"
На форуме есть много тем по этому датчику, например здесь есть подборка посмотрите может что то пригодится.
Win10-64, FLProg (portable)
Блок GY-521 блок
1.Пробовал увеличить и вставлять задержку в setup ,до инициализации датчика, после , после калибровки. Возможно опробовал все
варианты.Выставлял до 5000. Результата нет.
1. Пробовал питать через задержку по питанию. Питание на датчик постоянное ,на nano через кнопку.
При первоначальном включении питание идет на датчик, потом подаем питание на nano (кнопка без фиксации ) Результата нет.
Ели при подключенном питании ( nano и датчик ) снять питание с nano , датчик остается с питанием (даже моментально ,кнопка без
фиксации) все начинает работать как надо. Я так понимаю это тот же reset?
Отправлено спустя 5 минут 1 секунду:
Спасибо за совет попробую , отпишусь.
В Arduino IDE пример именно с выводо в UART , открывал и смотрел плоттер , очень понравилось как выводится кривая . Сигнал чистый.
Только из за этого и решил сделать свой блок для своих целей. Только нужны выходы нормальные.
Отправлено спустя 30 минут 23 секунды:
варианты.Выставлял до 5000. Результата нет.
1. Пробовал питать через задержку по питанию. Питание на датчик постоянное ,на nano через кнопку.
При первоначальном включении питание идет на датчик, потом подаем питание на nano (кнопка без фиксации ) Результата нет.
Ели при подключенном питании ( nano и датчик ) снять питание с nano , датчик остается с питанием (даже моментально ,кнопка без
фиксации) все начинает работать как надо. Я так понимаю это тот же reset?
Отправлено спустя 5 минут 1 секунду:
Спасибо за совет попробую , отпишусь.
В Arduino IDE пример именно с выводо в UART , открывал и смотрел плоттер , очень понравилось как выводится кривая . Сигнал чистый.
Только из за этого и решил сделать свой блок для своих целей. Только нужны выходы нормальные.
Отправлено спустя 30 минут 23 секунды:
пробовал убрал delay , результата нет.rw6cm писал(а): 12 мар 2024, 09:15 delay из секции loop надо полностью убрать. иначе толку не будет.
Блок GY-521 блок
Я тоже задумывался об этом. Выделим датчику отдельный контроллер. Да это черезмерно. Но я думаю надежней. Будет по I2C передовать данные. Вопрос победить загрузку.
- rw6cm
- Полковник
- Сообщения: 2372
- Зарегистрирован: 06 сен 2015, 20:25
- Имя: Владимир
- Поблагодарили: 41 раз
Блок GY-521 блок
Во первых в вашем блоке был двойной расчет одних и тех же данных (результат был не тот)
А тормоз при загрузки был из за цикла while, (конфликт с дисплеем который тоже сидит на i2c)
ну и с delay в loop надо помнить, если будет мешать значит сделать по другому. библ. П/с Не забываем о включенной калибровке. при вкл 5сек не трогаем датчик находящийся строго горизонтально
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Win10-64, FLProg (portable)
Блок GY-521 блок
Спасибо!!! Я уже начал думать о сбросе програмном или аппаратном. Это конечно не выход ,но все же...
Сегодня попробую ,отпишусь
Сегодня попробую ,отпишусь
Блок GY-521 блок
Дуратский вопрос ? Поймите правильно.
Отправлено спустя 20 минут 31 секунду:
Ешё вопрос. Вы ребята опытные подскажите- лучше в плане стабильности и надежности работы для таких вещей отдельный контроллер?
И просто получать данные на пин другого контроллера. Если отвалился то система остается рабочей .(Наверно это черезмеро, но думаю надежней.)
Отправлено спустя 1 минуту 56 секунд:
Адреса разные, почему конфликт. Потому что датчик в мастере?
Как то нужно благодорить? Ну там на шоколадку?Uriy0206 писал(а): 12 мар 2024, 07:26 Прошу прощения, первый раз на форуме .(Да ! первый раз за 50 лет на форуме )
Отправлено спустя 20 минут 31 секунду:
Ешё вопрос. Вы ребята опытные подскажите- лучше в плане стабильности и надежности работы для таких вещей отдельный контроллер?
И просто получать данные на пин другого контроллера. Если отвалился то система остается рабочей .(Наверно это черезмеро, но думаю надежней.)
Отправлено спустя 1 минуту 56 секунд:
rw6cm писал(а): 12 мар 2024, 13:04 А тормоз при загрузки был из за цикла while, (конфликт с дисплеем который тоже сидит на i2c)
Адреса разные, почему конфликт. Потому что датчик в мастере?
- rw6cm
- Полковник
- Сообщения: 2372
- Зарегистрирован: 06 сен 2015, 20:25
- Имя: Владимир
- Поблагодарили: 41 раз
Блок GY-521 блок
Здесь не в адресации дело. Инициализация датчика и дисплея отнимают очень много процессорного времени.
В одной только функции lcd1.init() пять delay, да и если посмотреть, то почти любое действие с дисплеем по i2c несет в себе delay.
По мне так это самая тормознутая "железка" в любом проекте.
Инициализация MPU6050 (mpu.begin()) тоже очень тяжелый процесс.
И здесь (мое предположение) при вкл пит. запрос состояния процесса инициализации датчика (в цикле while, for, или if) где то не укладывается во времени с дисплеем или чем то еще. Чтобы сказать точно надо проанализировать работу библиотек при старте.
Но этим заниматься нет желания. В данном случае мы не чего не берем с этой функции, в дисплей или куда ни будь, значит гонять ее в цикле нет смысла.
Win10-64, FLProg (portable)
Блок GY-521 блок
Спасибо за обьяснения. Дисплей подключен чисто для наглядности при тестировании.
Но пока работа датчик который Вы правили меня устраивает. Все пока на этапе эксперемента.
Но пока работа датчик который Вы правили меня устраивает. Все пока на этапе эксперемента.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя