Проблема с Xbee.Помогите!!

Тема в разделе "Проводная и беспроводная связь", создана пользователем Maori, 25 ноя 2013.

  1. Maori

    Maori Нуб

    Использую:
    Spankfun'овский Usb adapter
    2 ардуины
    2 шилда Lilypad Xbee
    2 Xbee s2 с PCB антенной

    Все делаю по инструкции DoorBell из книги Wireless Networks

    Код 1 ардуины:

    int BUTTON = 2;
    void setup() {
    pinMode(BUTTON, INPUT);
    Serial.begin(9600);
    }
    void loop() {
    if (digitalRead(BUTTON) == HIGH) {
    Serial.print('D');
    delay(10);
    }
    }

    Код 2 ардуины:

    int BELL = 5;
    void setup() {
    pinMode(BELL, OUTPUT);
    Serial.begin(9600);
    }
    void loop() {
    if (Serial.available() > 0) {
    if (Serial.read() == 'D'){
    digitalWrite(BELL, HIGH);
    delay(10);
    digitalWrite(BELL, LOW); }
    }
    }




    Вместо звонка естессно светодиод)) Все мигает,все передатся.... но данные передаются не всегда. Иногда при передаче на обоих шилдах загорается RSSI светодиод и модуль залипает намертво на какое-то время. Подскажите что может быть не так??

    Заранее спасибо
     
  2. nailxx

    nailxx Официальный Нерд Администратор

    Подскажите, а если вы нажимаете кнопку редко: только когда RSSI не горит, случаются ли залипания?

    Проблема может быть в недостаточном питании XBee
     
  3. Maori

    Maori Нуб

    При первой же передаче RSSI загорается. если очень редко то вроде не залипает.
    Еще заметил что тупит только при передачи с координатора на роутер, в другую сторону нормально
     
    Последнее редактирование: 11 дек 2013
  4. nailxx

    nailxx Официальный Нерд Администратор

    Даже в случае, если физически махнуть модули местами?
     
  5. Maori

    Maori Нуб

  6. Много, и довольно успешно, поковырявшись с xBee (правда, только со 2-й серией, 1-ю не застал), могу предположить (чисто теоретически), что взятые Вами примеры относятся к старым версиям xBee. Новые железки очень хитрые, в части энергосбережения, и могут прошиваться разными прошивками, для разных сетей в том числе. Скажите точные модели, и установленные прошивки.

    Первое впечатление по описанным симптомам - одно из устройств спит для энергосбережения, периодически просыпаясь. "Координаторы" не спят никогда, "рутеры" тоже не спят.

    Вы написали "рутер" - с чего Вы решили, что он "рутер", а не "end device"?
     
  7. Maori

    Maori Нуб

  8. acos

    acos Официальный гик Администратор

    Xbee, как оказалось, оочень хитрые в плане энергосбережения. Мой координатор еще ко всему прочему перед тем как в спячку уходить еще и reset ардуины нажимал (решилось настройкой DIO7 координатора в DISABLE). Короче говоря проблема залипания координатора решается настройкой адресации этого координатора на конкретный End Device. Как это сделать хорошо написано на вики в разделе «адресация»
     
  9. Это правильно, она и должна работать: xb-24zb.
    Роль устройства (и, в том числе, его сонность), задаются прошивкой, отличаются первыми двумя цифрами номера версии прошивки.
    Вопрос в том, какая версия прошита: роли нумеруются по версиям, координатор 21хх, рутеры 29хх, и так далее. Смотрите номера и роли, смотрите параметр SM, определяющий сонность.
     
  10. acos

    acos Официальный гик Администратор

    В том то и дело, что у координатора этого параметра нет) у него там только SP, который немного не о том. Задача ТС была — с координатора на энд девайс передача тупит. Повторил эксперимент - все то же самое. Задача решилась назначением координатору конкретного адреса назначения.
     
  11. Правильно, SM у координатора нет, потому, что он не спит никогда, ему SM не нужен.
    Второе-то устройство как прошито, номер прошивки?
     
  12. acos

    acos Официальный гик Администратор

    Номер прошивки не смогу посмотреть в ближайшее время. Второй девайс был прошит как router/endpoint. его SM был выставлен в disable - это я специально проверял.
    Про то, что координатор не спит я тоже читал, но как-то это расходилось с практикой. Координатор достаточно часто затупливал на пару секунд, а потом выплевывал почти все, что ему свалилось в буфер за это время. Почти - потому что не все)
    Роль координатора - ZNET 2.5 COORDINATOR AT, версия прошивки 1047. По крайней мере именно это у меня написано в X-CTU было) 21xx почему-то нигде не видно.
    Код отправки простейший
    Код (Text):

    void setup() {
    Serial1.begin(9600);
    }
    void loop() {
      static int i=0;
    Serial1.println(i);
    Serial1.flush();
    delay(100);
    ++i;
    }
     
    Последнее редактирование: 20 дек 2013
  13. Znet 2.5 - это не номер прошивки, это тип сети.
    Прошивка с номером 1047 - это версия прошивки xb-24b, без буквы "зэт", роль "ZNET 2.5 COORDINATOR AT" - это морально устаревшая сеть Znet, устройство в роли координатора, в текстовом режиме команд. Спать такое устройство не должно. Про совместимость с новой сетью ZigBee не разбирался.

    Модули приходят с прошивками Znet, я сразу перешиваю на ZigBee xb-24zb, с буквой "зэт". Железо одинаковое, производитель одобряе.

    По-первости - не различал прошивки, много времени потратил, смотрите очень внимательно, чем что прошито. Znet и ZigBee - разные сети.

    И текстовый режим не использую, API=2 наше всё, термометры второй месяц на даче работают :)
     
  14. avt34

    avt34 Нерд

    Столкнулся с той же проблемой. В моём случае с одной ардуины на другую шлются команды через xbee радиомодем. команда представляет собой управляющее слово из 8 байт. Каждые 5-10 команд на приёмнике происходит фриз в несколько секунд. Команды шлются каждые 50 (фризы были и при 1000) милисекунд. тормозит именно приёмник, я слежу за источником через монитор порта, работает как пулемёт. Я уже в качестве эксперимента flush вставлял после получения каждого слова в надежде чистить буфер от переполнения, но без результа. Ч то по итогу, кто-то разобрался как справиться с фризами, есть рекомендации, коллеги?
     
  15. avt34

    avt34 Нерд

    И кстати. Раз уж зашёл разговор. Я в конце управляещего слова пишу контрольную сумму. Её имеет смысл вставлять, может в модеме уже ведётся проверка ошибок?
     
  16. avt34

    avt34 Нерд

    Решил задачу высокоскоростной передачи данных посредством радиомодемов XBEE. Без лагов, засыпаний и потери данных, с контрольной суммой, подтверждением получения. Когда будет время напишу подробную заметку.
    Интересующиеся могут изучить вот этот материал и вот эту библиотеку.
     
  17. avt34

    avt34 Нерд

    Вот здесь я изложил принцип высокоскоростной передачи данных через модемы XBee.