Arduino библиотека и MBee-2.4

Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1 2 3 След.
Ответить
RSS
Arduino библиотека и MBee-2.4
 
В разработанной Arduino-библиотеке и примерах все время идет ссылка на модули 868 МГц, в связи с этим возник вопрос. Подойдет ли данная библиотека для использования с модулями диапазона 2,4 ГГц ? Какие функции будут доступны/недоступны ?
 
Добрый день! Программное обеспечение для модулей диапазона 2,4 ГГц является значительно более мощным по сравнению с ПО для модулей диапазона 868 МГц, Поэтому, даже если поддержать это ПО на уровне библиотеки Arduino, освоение этой библиотеки будет соизмеримо по времени и сложности с освоением встроенного в ПО MBee-ZigBee пользовательского прикладного интерфейса (API) и потребует достаточно высоких профессиональных навыков. В тоже время, платформа Arduino рассчитана в основном на умеренный уровень подготовки пользователя. Как показывает наш опыт и опыт наших клиентов, для решения большинства задач, связанных с беспроводной передачей данных, программное обеспечение модулей 868 МГц оказывается вполне достаточным. К тому же этот диапазон имеет значительное преимущество перед 2,4 ГГц в дальности связи. Именно поэтому мы не форсируем пока разработку библиотеки Arduino для ПО MBee-ZigBee, хотя и не отказываемся от сделанных нами ранее анонсов. Если мы увидим реальную заинтересованность в этом продукте со стороны достаточного числа потребителей, то мы, разумеется, вернемся к этой разработке.
 
Спасибо за ответ!
У меня в изделиях работают ваши модули с частотой 2,4 ГГц (так исторически сложилось) в режиме удлинителя интерфейса UART. Изделие - самоходная каретка, перемещающаяся по канату и управляемая пультом дистанционного управления. Иногда возникают аварийные ситуации из-за того, что сообщения теряются в пути. Поэтому возникла необходимость получения от адресата подтверждения о доставке пакета и настройке автоматической повторной отправки.
Модули диапазона 868 МГц привлекают своей простотой и функционалом, но покупка их в работающие изделия (+замена тех модулей, что еще ожидает установки) повлечет неоправданные траты. Есть ли возможность с вашей стороны в обозримые сроки написать минимальный функционал библиотеки для модулей 2,4 ГГц в виде подтверждения получения сообщения и настройки автоматической повторной отправки?! P.S. Функционала, показанного в примере "Tx_Callbacks" для модуля 868 МГц больше, чем достаточно!
 
Здравствуйте! Если модули в Вашей системе работают в режиме удлинителя последовательного интерфейса, значит они настроены на работу в прозрачном режиме. В тоже время, для того, чтобы получать подтверждения о доставке, модули должны находиться в пакетном режиме. Опишите, пожалуйста, подробнее структурные схемы Ваших устройств, чтобы мы смогли Вам что-нибудь порекомендовать.
 
Добры вечер!
В общем виде структурная схема устройств выглядит так:
- пульт управления (микроконтроллер, кнопки, потенциометры, экран, радиомодуль)
- каретка (микроконтроллер, мотор, энкодер, концевые датчики, АКБ, терморезистор, радиомодуль)

Кнопки на пульте управления отвечают за направление вращения мотора, потенциометры за ускорение, торможение и скорость.

Пульт управления при нажатии на кнопку или изменении значения потенциометра отправляет пакет данных (идентификатор кнопки, значения потенциометров) на каретку (CRC пакета рассчитывается).
Каретка в свою очередь должна отправить подтверждение о получении пакета, и только после этого на экране пульта высветиться, что команда успешно выполнена.
Также каретка с частотой 10 Гц отправляет данные о заряде АКБ и температуре мотора.
Очень хотелось бы на пульте реализовать еще отображение качества связи с кареткой, но как это корректно сделать пока не представляю. Может подскажете, как это можно сделать?
 
Здравствуйте! Получить данные о качестве связи (уровень RSSI) возможно только в пакетном режиме работы UART радиомодуля. В Вашем случае, насколько мы поняли, UART радиомодуля пульта работает в прозрачном режиме. Единственным вариантом получения значения RSSI является использование прошивки MB-ZigBee с поддержкой пакетного режима. Микроконтроллер пульта, в этом случае, должен будет общаться с радиомодулем с помощью пакетов определенного формата (API-фреймов). Форматы этих фреймов подробно описаны в документации, имеющейся на нашем сайте. С помощью пакетного режима можно легко получать также и подтверждение доставки.
Если переход в пакетный режим по каким-то причинам нежелателен для Вас, то есть возможность получать подтверждение (или не подтверждение) доставки оставаясь в прозрачном режиме. Но для этого Вам придется модифицировать программу микроконтроллера. Стандартный подход такой:
1. Отправка сообщения удаленному модулю и запуск таймера для ожидания ответа.
2. Если по истечении интервала ответа от удаленного модуля нет, то повторная передача сообщения требуемое число раз.
3. Если по исчерпании числа попыток передачи ответа от удаленного модуля не поступило, то принимается решение о потере связи.
И еще. На наш взгляд получение диагностических данных от каретки 10 раз в секунду слишком сильно перегружает сеть. Потери управляющих пакетов от пульта могут происходить как раз вследствие коллизий при передаче. Нам кажется, что частоту отправки телеметрии необходимо снизить до более адекватных значений.
 
Спасибо за развернутый ответ!

Да в моем случае модули работают в прозрачном режиме.
Я сознательно остановился именно на этом режиме, поскольку из документа MbeeAPI я понял, что можно с помощью API фреймов общаться с удаленным Mbee модулем (считывать его настройки, состояния портов входа, управлять выходами и др.), но не нашел алгоритм общения с микроконтроллером, который подключен к интерфейсу UART?! Также пакетный режим работает только на скорости 38400 бит/с и включенной функции RTS/CTS (но ардуино не поддерживает RTS/CTS)?!

Возможно, я не верно что-то интерпретирую, поправьте меня, пожалуйста?!
Можете на конкретном примере показать работу пакетного режима?! Например, после нажатия на кнопку пульта, мне необходимо передать каретке следующую информацию: {0xAA, 0x45, 0xF6, 0xFF}
где
0xAA - идентификатор кнопки
0x45 - ускорение
0xF6 - торможение
0xFF - скорость

Как будет выглядеть API фрейм с рассчитанным FCS?
Что я увижу на UART выходе модуля MBee, установленном в каретке (т.е. что увидит микроконтроллер)?
Как будет выглядеть подтверждение о доставке от каретки на выходе UART модуля Mbee пульта (т.е. что увидит микроконтроллер)?
Как из ответа вычленить информацию об RSSI? Она просто лежит в 10 байте AF_DATA_RESPONSE? Какие значения может принимать это поле и как их интерпретировать (это мощность сигнала, приведенное время передачи пакета туда-обратно или что-то иное)?

Какой, по Вашему опыту, должна быть периодичность отправки сообщений от каретки, чтобы не перегружать сеть? Может ли каретка отправлять на пульт запросы и получать ответы?
 
Здравствуйте!
Цитата
Александр пишет:
но не нашел алгоритм общения с микроконтроллером, который подключен к интерфейсу UART?! Также пакетный режим работает только на скорости 38400 бит/с и включенной функции RTS/CTS (но ардуино не поддерживает RTS/CTS)?!
Нам не совсем понятно какой алгоритм Вы имеете в виду. Если в модуль загружена прошивка MB-ZigBee с поддержкой пакетного режима, то микроконтроллер должен общаться с модулем только с помощью пакетов, формат которых подробно описан в соответствующей документации. Документация содержит примеры с описанием для каждого типа API-фрейма.
RSSI - это мощность сигнала, зарегистрированная на входе приемника при приеме данного пакета, например AF_DATA_RESPONSE. Это число в дополнительно коде со знаком. С помощью него можно оценить качество радиолинии. Информации об RSSI в Интернете должно хватить для того, чтобы понять как это работает.
Ваше утверждение о том, что пакетный режим работает только на 38400 бит/с и с CTC/RTS не соответствует действительности. Вы всегда можете установить требуемую Вам скорость UART и управлять поддержкой линий CTS/RTS с помощью настроек в программе SysMC Bootloader.

Для освоения пакетного режима можем рекомендовать Вам фирменную утилиту Z-Tool, которая входит в пакет Z-Stack от Texas Instruments. Ее можно бесплатно скачать с сайта ti.com.
Периодичность отправки телеметрии в Вашем случае можно установить 1 секунду или даже реже. Вряд ли за этот интервал времени может произойти критический разряд аккумулятора или перегрев двигателя.
Поскольку протокол ZigBee обеспечивает двунаправленную передачу данных, то каретка также может отправлять запросы и получать ответы как и пульт.
 
Добрый день.
не получается разобраться с АТ командой удаленному модулю. Конкретнее - установить на удаленном модуле значение ШИМ
за основу взят пример из библиотеки. модули SeriStar, прошивка v2.1 (один модуль впаян и проблемновато сейчас обновить)
Код
   nss.println("Sending M1=0 command with apply only option."); //Посылаем команду ШИМ=0. При этом сохранения изменений не делаем, чтобы не уменьшать ресурс флеш памяти.
  remoteAtRequest.setRemoteAddress(remoteAddress); //Адрес удаленного модема.
  
  remoteAtRequest.setAcknowledge(true); //Для повышения пропускной способности можно отключить подтверждение получения команды от удаленным модемом.
  remoteAtRequest.setApplyChanges(false); //Измененный параметр не будет применен и сохранен сразу после выполнения команды, а помещен в очередь.
  remoteAtRequest.setSaveChanges(false); //Изменения будут сразу применены без сохранения.
  //remoteAtRequest.setCca(true);
  remoteAtRequest.setEncryption(false);
  remoteAtRequest.setSleepingDevice(false); //Команда не предназначается спящему модему.
  
  remoteAtRequest.setCommand(m1Cmd); //Изменяем  указатель на константу с символами кода команды.
  cmdParam[0] = 0; 
  cmdParam[1] = 0;
  cmdParam[2] = 0x19;
  cmdParam[3] = 0x64; // число 6500
  remoteAtRequest.setCommandValue(&cmdParam[0]); //Устанавливаем указатель на переменную с параметром команды.
  remoteAtRequest.setCommandValueLength(4); //Корректируем длину поля параметра команды.
  sendRemoteAtCommand();//*/
мастер настроен AT AP2, удаленный AT L2 17
если удаленный AP 0 то он в терминал выкидывает 7E 00 0B 17 01 00 01 04 4D 31 00 00 19 64 E7
если удаленный АP 2 то:7E 00 14 8F 00 01 BB 02 7D 5E 00 0B 17 01 00 01 04 4D 31 00 00 19 64 E7 2A

если разобрать побайтно, то вроде как все нормально выходит. однако реакции никакой не наблюдаю на выходе (поле Options
=4 -> устанавливаю 2-й бит)
 
Здравствуйте! Все должно работать. Примеры проверялись неоднократно. Будем разбираться. Для начала, проверьте, пожалуйста, установлен ли на мастере AP=2, параметры MY и TX на мастере и на удаленном модуле.
Страницы: 1 2 3 След.
Ответить
Читают тему
Форма ответов
 
Текст сообщения*
Отправить Отменить