Описание XBee Shield v5
XBee Shield v5 (далее XBee Shield) реализует беспроводную связь между Arduino/Freeduino с помощью модулей XBee от компании Maxstream, работающих по стандарту ZigBee.
Maxstream предлагает весьма обширный перечень различных модификаций модулей XBee, отличающихся выходной мощностью, чувствительностью приемника, конструкцией антенны. Так, модули XBee имеют выходную мощность 1мВт, и производитель декларирует радиус действия до 90м на открытом пространстве и до 30м в помещении, а у модулей XBee-PRO заявленный радиус действия до 1,2 км на открытом пространстве и 90м в помещении. Следует заметить, что достижимый на практике радиус действия может отличаться в зависимости от условий, таких как расположение модулей относительно стен в помещении.
Скорость передачи данных в сети ZigBee составляет 250 кбит/сек, реальная скорость может отличаться, а в условиях помех и при слабом уровне сигнала возможны потери передаваемых данных.
Модули XBee являются достаточно развитыми устройствами и работают под управлением собственного микроконтроллера MC9S08. Производитель предлагает специальное ПО для гибкой конфигурации модулей, а также альтернативные прошивки управляющего микроконтроллера, и таким образом, функционал приемо-передатчика для Arduino – лишь часть возможностей XBee.
Для обмена данными с Arduino модуль занимает последовательный порт (выводы 0 и 1), и в конфигурации по умолчанию работает со скоростью 9600 бит/сек. При этом все переданные (с помощью Serial.Write) байты передаются «в эфир», а переданное «в эфир» другими модулями поступает в порт, и может быть прочитано с помощью Serial.Read.
В процессе работы модуль управляется AT-командами, позволяющими изменить такие параметры, как адрес в сети ZigBee, скорость работы с последовательным портом, управлять состоянием дополнительных выходов модуля, и многое другое. Исчерпывающий список команд можно найти в документации производителя (на сайте www.digi.com).
Для упрощения работы с модулями XBee существует библиотека xbee-arduino, доступная по адресу http://code.google.com/p/xbee-arduino/ вместе с примерами и документацией.
Комплектация
Существует четыре варианта комплектации XBee Shield, ориентированных на разные варианты применения, и различающихся монтажом разъемов и компонентов. Немонтируемые в той или иной версии разъемы высылаются вместе с платой для возможного последующего монтажа.
Модули XBee/XBee-PRO в комплект поставки не входят, и заказываются отдельной позицией.
Плата ориентирована на использование совместно с полноразмерными Arduino-совместимыми устройствами.
В комплект поставки входит XBee Shield со смонтированными разъемами «классической» Arduino, а также разъемы Arduino Nano.
Плата ориентирована на использование совместно с устройствами в формате Arduino Nano.
В комплект поставки входит XBee Shield со смонтированными разъемами Arduino Nano, а также разъемы <классической> Arduino.
Внимательно следите за ориентацией платы и устанавливайте ее согласно иллюстраций, а также ориентируясь по первому выводу, имеющем квадратную площадку под пайку.
Плата может быть удобна для прямого монтажа Arduino Nano без переходных разъемов, или других нестандартных вариантов применения.
В комплект поставки входит XBee Shield, разъемы Arduino Nano и разъемы «классической» Arduino.
При использовании плат в формате Arduino Nano внимательно следите за ориентацией платы и устанавливайте ее согласно иллюстраций, а также ориентируясь по первому выводу, имеющем квадратную площадку под пайку.
Плата ориентирована на подключение к ПК по USB интерфейсу.
В комплект поставки входит XBee Shield со смонтированной микросхемой FT232RL и разъемом mini-USB, разъемы Arduino Nano и разъемы «классической» Arduino.
Технические характеристики
При разработке XBee Shield v5 мы ориентировались на оригинальный Arduino Xbee shield, но постарались максимально расширить функционал:
- возможность работы с платами в форм-факторе «классической» Arduino;
- возможность работы с платами в форм-факторе Arduino Nano;
- возможность работы по интерфейсу USB (при монтаже FT232RL);
- линии RTS и DTR при работе по USB – для обновления прошивки модулей XBee;
- автоматический выбор питания (Arduino/USB);
- все выводы XBee выведены на контактные площадки с шагом 2,54 мм;
При использовании плат в формате Arduino Nano внимательно следите за ориентацией платы и устанавливайте ее согласно иллюстраций, а также ориентируясь по первому выводу, имеющем квадратную площадку под пайку.
принципиальная схема по лицензии Creative Commons Attribution-ShareAlike 2.5
Режимы работы
Режим работы XBee Shield выбирается с помощью перемычек. Краткие пояснения по режимам работы и расположению перемычек приведены на самой плате.
С помощью группы перемычек JP1 выбирается подключение UART интерфейса XBee модуля либо к микроконтроллеру ATmega на плате Freeduino/Arduino, либо к внешнему интерфейсу платы Freeduino/Arduino (COM-порт в случае Freeduino MaxSerial, либо USB для Freeduino 2009 и Through-Hole), либо к собственному USB интерфейсу (только для USB версий XBee Shield).
Последовательный интерфейс, используемый для обмена данными с модулем XBee (по нему же происходит обмен данными между Freeduino/Arduino и ПК и загрузка прошивок) имеет 2 линии у каждого из устройств: прием (RX) и передача (TX). Данные, передаваемые одним устройством (с вывода TX), должны приниматься другим устройством (на выводе RX) и наоборот. Поэтому RX первого устройства должен быть подключен к TX второго, а RX второго к TX первого.
Подключение к микроконтроллеру ATmega
Режим используется для обмена данными между микроконтроллером и модулем XBee.
В данном режиме RX/TX модуля XBee подключены к TX/RX микроконтроллера ATmega соответственно. При этом важно отметить, что на самой плате Freeduino/Arduino остается подключение TX/RX микроконтроллера ATmega к RX/TX внешнего интерфейса (USB-контроллер, либо преобразователь MAX232 в случае Freeduino MaxSerial), поэтому все, что будет передаваться микроконтроллером ATmega, будет приниматься как модулем XBee, так и ПК.
Подключение к внешнему интерфейсу
Режим обычно используется, когда нужно обмениваться данными между модулем XBee и ПК, и плата Freeduino/Arduino выступает только в роли переходника между ними.
В данном режиме RX/TX модуля XBee подключены к TX/RX внешнего интерфейса платы Freeduino/Arduino (USB-контроллер, либо преобразователь MAX232 в случае Freeduino MaxSerial) соответственно. При этом важно отметить, что на самой плате Freeduino/Arduino микроконтроллер ATmega остается подключенным к внешнему интерфейсу, и если не принять специальных мер, он будет мешать обмену между модулем XBee и ПК. Для нормальной работы нужно отключить в микроконтроллере последовательный интерфейс, загрузив в него следующую программу:
{
pinMode(0, INPUT);
pinMode(1, INPUT);
}
void loop()
{
}
Подключение к собственному USB интерфейсу
Если используется USB версия XBee Shield, то для организации обмена данными между модулем XBee и ПК по шине USB базовая плата Freeduino/Arduino не нужна.
В данном режиме RX/TX модуля XBee подключены к TX/RX USB контроллера FT232RL на самом модуле XBee Shield.
Другие варианты подключения
Убрав перемычки с JP1, и подключив к линиям RX и TX модуля XBee проводники можно подключить модуль к любому другому последовательному интерфейсу, например к реализованному программно с помощью библиотеки SoftwareSerial на удобных для Вас выводах.
Линии RTS и DTR
В USB версиях XBee Shield с помощью группы перемычек JP2 подключаются либо отключаются линии RTS и DTR между собственным USB интерфейсом и модулем XBee.
Обычно эти линии отключены, но их нужно подключить для обновления Firmware XBee модуля с помощью программы X-CTU от производителя модулей (доступна на сайте www.digi.com).
ВНИМАНИЕ! Обновление Firmware модулей XBee может нарушить их нормальную работу, и должно проводиться только в соответствии с рекомендациями производителя при полном понимании пользователем целей такого обновления и возможных последствий.