Изучаем Arduino: инструметы и методы технического волшебства - [57]

Шрифт
Интервал

В наших примерах будем использовать модули ХВее серии 1, non-Pro, с рабочей частотой 2,4 ГГц со встроенной антенной, работающие в режиме последовательного обмена данными. Маркировка и назначение контактов модуля приведены на рис. 11.3.


Рис. 11.3. Фрагмент технического описания модуля ХВее Series 1. маркировка и назначение контактов

ВНИМАНИЕ!

Для питания модуля ХВее необходимо напряжение 3,3 В, при подаче питания 5 В модуль выйдет из строя.

- 226 -


11.1.2. Платы расширения для ХВее

Существуют специальные переходники - платы расширения (рис. 11.4 ), позволяющие легко подключить модуль ХВее к плате Arduino. Есть несколько разновидностей ХВее-переходников, обладающих одинаковыми функциями и незначительно отличающихся друг от друга.

Рассмотрим функции плат расширения ХВее.

Arduino Wireless Shield

Sparkfun ХЬее Shield

Cooking Hacks ХВее Shield

Рис. 11.4. Внешний вид различных плат расширения для подключения модулей ХВее

Стабилизатор 3,3 В

Большинство плат Arduino работает от источника 5 В, логические уровни также находятся в диапазоне от 0 (низкий уровень) до 5 В (высокий уровень). Напряжение питания модулей ХВее равно 3,3 В, логические уровни тоже другие. Хотя у Arduino есть встроенный стабилизатор на 3,3 В, его ток недостаточен для питания ХВее-модуля. Поэтому на большинстве ХВее-переходников установлен линейный стабилизатор для питания модуля ХВее.

Согласование логических уровней

Для реализации обмена UART соединяют контакты Тх и Rx платы Arduino и модуля ХВее, однако при этом необходимо учитывать разный логический уровень для Arduino и ХВее. Сигналы нужно привести к одному уровню ( согласовать логические уровни). В различных моделях плат расширения это реализовано поразному.

Светодиодные индикаторы

На большинстве плат расширения установлены два светодиодных индикатора:

+ Associate -мигает, когда модуль работает в режиме последовательного обмена данными;

+ RSSI-загорается на короткое время при получении данных.

- 227 -

Перемычка или переключатель выбора UART

Модули ХВее общаются с Arduino через последовательный универсальный асинхронный приемопередатчик (UART) по контактам Rx и Тх. На многих платах Arduino (кроме Mega и Due) есть один доступный UART, который к тому же осуществляет USB-соединение с компьютером для программирования и отладки. На плате Leonardo тоже один UART (контакты Rx и Тх), но они не дуплексированы, т. к. программный интерфейс USB непосредственно встроен в микроконтроллер.

В случае платы Arduino Uno возникает вопрос: как модуль ХВее и компьютер подключить к одному разъему UART. Схема соединения контактов Rx и Тх (при подключении модуля ХВее через плату расширения) приведена на рис. 11.5.

Рис. 11.5. Возможность возникновения коллизий в линиях UART

Обратите внимание на надпись "Коллизии" на рис. 11.5. Подумайте, что произойдет, если модуль ХВее и ваш компьютер будут одновременно передавать данные на плату Arduino. Как Arduino узнать, откуда приходят данные? Если данные будут передаваться одновременно, произойдет так называемая коллизия, и информация исказится. Значит, плата Arduino не сможет одновременно общаться с компьютером и модулем ХВее по последовательному порту. Решить эту проблему можно двумя способами:

• отсоединять переходник ХВее при программировании платы Arduino;

• установить на переходнике ХВее перемычку или переключатель для подключения к плате Arduino.

Теперь при необходимости запрограммировать плату Arduino нужно либо отсоединить переходник ХВее, либо установить в требуемое положение переключатель (перемычку).

Программная или аппаратная реализация UART

Для соединения платы Arduino с модулями ХВее служит аппаратный UART-интерфейс (контакты 0 и 1 на плате Arduino). Эти выводы также используются для

- 228 -

подключения к компьютеру по USB. Большинство переходников также осуществляет соединение между ХВее и платой Arduino через аппаратный последовательный порт. Можно не отсоединять переходник ХВее при программировании платы Arduino, если воспользоваться библиотекой SoftwareSerial. Эта библиотека позволяет определить два произвольных цифровых контакта платы Arduino в качестве выводов Rx и Тх при соединении с переходником ХВее-. Но на переходнике ХВее обязательно должен быть переключатель для выбора контактов платы Arduino в качестве Rx и Тх. На переходнике Sparkfun ХВее установлен такой переключатель, коммутирующий контакты 2 и 3 платы Arduino в качестве линий Rx и Тх. Если на вашем переходнике есть такой переключатель, можно организовать взаимодействие с радиомодулями ХВее с помощью библиотеки SoftwareSerial.

11.2. Настройка модулей ХВее

Прежде чем использовать модули ХВее, их необходимо настроить для обмена информацией друг с другом. На заводе-изготовителе модули ХВее по умолчанию настраивают на определенный канал и режим работы. При включении они сразу могут принимать или отправлять данные на другой совместимый модуль ХВее. Иногда требуется внести изменения в стандартные настройки и далее вы узнаете, как это сделать.

11.2.1. Настройка с помощью USB-адаптера

Модули ХВее можно запрограммировать так же, как и плату Arduino, через интерфейс USB. Существуют два способа: с помощью платы Arduino и преобразователя