Ардуино зависает. Помехи?

Тема в разделе "Схемотехника, компоненты, модули", создана пользователем orehov_alex, 29 май 2019.

  1. parovoZZ

    parovoZZ Гуру

    я так думаю, что надо поморгать светодиодиком. Причем в разных местах кода мигаем разное количество раз. Я так отлаживался, когда не понимал, почему USB интерфейс не отдает данные.
     
    Ariadna-on-Line нравится это.
  2. b707

    b707 Гуру

    Попробуйте вовсе убрать из системы этот длинный провод. Возьмите любой небольшой пауэрбанк с USB-выходом, положите его на платформу рядом с ардуино и запитайте ардуину от него. Вы конечно не сможете получать данные на комп - но зато сможете следить по миганию светодиодов, зависает ардуина или нет. Если без длинного кабеля зависать перестанет - будете думать как от него избавится
     
    Daniil нравится это.
  3. AlexU

    AlexU Гуру

    Какие библиотеки используются для модуля GY-86?
    Сталкивался с проблемой с ардуиновскими библиотеками TWI.h и Wire.h в связке с i2cdevlib. Проблема выражалась в зависании микроконтроллера Arduino. Исследования показали, что причиной является кривая реализация этих библиотек. Суть в том, что при аппаратном сбое на шине i2c библиотека TWI сбрасывала интерфейс TWI, но остальной функционал (библиотеки Wire и i2cdevlib) об этом сбое ни чего не знали и пытались продолжать обмен с модулем из-за чего происходило зависание в обработчике TWI.
     
  4. orehov_alex

    orehov_alex Нерд

    Плоттер. Но монитор порта тоже зависает, если через него смотреть.

    Для работы с гироскопом-акселерометром в данный момент использую два разных фильтра Калмана. Первый взял из какой-то статьи (в ридми указан источник https://github.com/TKJElectronics/KalmanFilter, но на первый взгляд скетчи немного различаются). Второй взял отсюда https://github.com/jarzebski/Arduino-KalmanFilter, для магнитометра и барометра использую библиотеки отсюда же. С барометром проблем нет, а магнитометром еще предстоит разбираться. И конкретно с библиотекой TWI.h мне еще не приходилось встречаться.


    Рассказываю, что мне удалось узнать за сегодня. Поменял питание модуля от платы с 5В на 3,3В - не помогло. Поигрался с дополнительным экранированием - не помогло. Нашел второй ноутбук и стал на нем тестировать те же скетчи с библиотеками на той же версии Ардуино 1.8.5. В процессе выяснилось, что на первом (старом) ноутбуке все разъемы USB 2.0, а на новом один из разъемов USB 3.0. И, подключая плату именно через этот порт на новом ноутбуке, плоттер Ардуино при запуске поворотной установке не зависает. Причем, если подключать кабель к порту 2.0, который находится на этом же ноуте с другой стороны, зависание опять повторялась.

    Напомню в чем проявляется проблема: плоттер виснет в момент запуска/остановки поворотной остановки, а также при переключении направления, то есть в моменты резкого скачка сигнала (если смотреть на графики). Причем, если я правильно понял, чем выше угловая скорость - тем мощнее сигнал.
    Я протестировал каждый USB-порт на обоих ноутбуках в разных диапазонах угловых скоростей и могу сказать следующее: при подключении к USB 2.0 на малых угловых скоростях (т.е. с малым сигналом) скоростях плоттер виснет. Иногда с первого раза, иногда с десятого. При средних и больших сигналах - виснет сразу, при включении. При подключении к USB 3.0 плоттер ни разу не завис.

    Так что же получается, модуль выдает слишком большой сигнал и пропускной способности USB 2 не хватает?

    Еще параллельно понаблюдал за индикаторами на плате:
    На старом ноутбуке просто при подключении к USB все светодиоды кроме ТХ горят. При запуске плоттера ТХ загорается.
    На новом ноутбуке просто при подключении к USB все светодиоды тоже горят, но ТХ очень быстро мигает. При запуске плоттера ТХ также начинает гореть стабильно. При переключении направления вращения на установке ТХ гаснет на доли секунды и начинает снова гореть стабильно. От версии USB ничего не меняется. И во время работы поворотной установки светодиоды также стабильно горят.
    Я еще не до конца понимаю как интерпретировать эту индикацию, но по идее светодиоды должны вести себя одинаково на обоих ноутбуках?
     

    Вложения:

    • Kalman 1.zip
      Размер файла:
      7,6 КБ
      Просмотров:
      293
    • Kalman 2.zip
      Размер файла:
      184,2 КБ
      Просмотров:
      290
  5. parovoZZ

    parovoZZ Гуру

    это что такое?
     
  6. orehov_alex

    orehov_alex Нерд

    Не знаю. Предположение.
    Можно посмотреть по графикам: 1 - сигнал при скорости 10 град/сек, 2 - при 80 град/сек (еще не предел). Здесь как раз отражен момент запуска поворотной установки. Во втором случае сигнал больше.
     

    Вложения:

  7. Daniil

    Daniil Гуру

    Ноут в розетку включен? Там куча преобразователей, но мало ли пропускает...
    А если ардуинку в металлическую коробочку засунуть? (консервы, напитки, конфеты, печеньки в таких продают)
    до конца непонятно - что такое "зависает плоттер" и что такое "зависает терминал"?
     
  8. orehov_alex

    orehov_alex Нерд

    Плата и сам модуль уже находятся в корпусе
     
  9. Что это за метровые сопли у вас висят, аж в кадр не влезают? Всё укоротить и собрать в один пучок.
     
  10. orehov_alex

    orehov_alex Нерд

    Не метровые, а стандартные 20 см из набора. Да и так понятно, что не в их длине дело.
     
  11. parovoZZ

    parovoZZ Гуру

    Предположение чего? Что такое БОЛЬШОЙ сигнал? В физике такими понятиями не оперируют.
    Я телефон вообще в какое только дерьмо не втыкаю. И не в какие его коробочки, баночки и прочее не помещаю. Телефон при этом не виснет. Он даже не виснет рядом с пылесосом.
     
  12. parovoZZ

    parovoZZ Гуру

    на длину проводов нет никакого стандарта)))
     
  13. orehov_alex

    orehov_alex Нерд

    Залил скетч, запустил плоттер - убеждаюсь что графики бегут около нуля. Когда же переключаю поворотную установку - плоттер попросту замирает, зависает, графики останавливаются. Как еще объяснить? Могу видео залить, только подскажите на какую платформу удобнее. Или в архив.
     
  14. parovoZZ

    parovoZZ Гуру

    Когда светодиод поставишь? Мне имхуется, что преобразователь USB - UART, что на уноплате, гонит пургу.
    Пробуй свою плату вертикально поставить.
     
  15. orehov_alex

    orehov_alex Нерд

    Понятно что не гост. Ладно, завтра ради интереса укорочу провода. Пока что лучше объясните, почему при подключении к USB 2 зависания есть, а на USB 3 их нет.
     
  16. Значит у вас проблема со стороны usb, чего вообще было время тратить с "помехами".
     
  17. parovoZZ

    parovoZZ Гуру

    так же как, почему потрепанную CD пластинку DVD плеер играет, а CD плеер нет?
     
  18. parovoZZ

    parovoZZ Гуру

    Я бы вообще в данном случае не заморачивался с USB. Тем более, что его там наматывает на клубок. Для этого nRF24l01+ подходит идеально.
     
  19. b707

    b707 Гуру

    Может быть совершенно банальная причина - розетка USB3 плотная, провод в ней держится хорошо, а USB2 все разболтанные и провод выскакивает.
    Вообще, глядя на фото - я удивляюсь, кто вас в лабораторию пустил :) Кто так провода к подвижному прибору крепит? На картинке 333 "бочонок" на кабеле USB должен быть стяжкой плотно притянут к фанере, чтобы разъем в самом приборе вообще не шевелился при повороте установки. Условно говоря, провод должен быть закреплен так, чтобы вашу серую коробку можно было за него поднять в воздух и провод не только не выдернулся из разъема - а даже не изменил положения ни на миллиметр.
     
    Ariadna-on-Line нравится это.
  20. orehov_alex

    orehov_alex Нерд

    Не поверите, я сегодня пришел к такому же выводу. Завтра попробую еще раз проверить плату на помехоустойчивость без какого-либо экранирования.
    Да, в перспективе нужно решать эту проблему с проводами. Докупать модули, ждать пока приедут, разбираться с подключением. Но сейчас, на этапе подготовки макета, мне нужно удостовериться, что я могу стабильно снимать хотя бы какие-то показания.

    Спасибо за замечание, завтра поработаю над этим.
     
    Последнее редактирование: 30 май 2019