LinTai: качественные китайские корпуса и каркасы
РадиоЛоцман - Все об электронике

Сетевые возможности Arduino-приложений и систем

Arduino

Журнал РАДИОЛОЦМАН, март 2012

Lee Goldberg

Electronic Products

Сравнительное тестирование аккумуляторов EVE Energy и Samsung типоразмера 18650

Добавление сетевых коммуникационных возможностей к открытой аппаратно-программной платформе Arduino реализуется просто и относительно дешево, но благодаря им открывается мир новых приложений, как для любителей, так и для инженеров и коммерческих разработчиков (Рисунок 1). Из предлагаемой ознакомительной статьи вы узнаете, как добавить Ethernet, Wi-Fi или интерфейс стандарта 802.15 в систему на базе Arduino.

Если вы еще не знакомы с Arduino, обратите внимание на ссылки в конце статьи.

Робот-игрушка RobotShop Rover под управлением Arduino

Рисунок 1. Робот-игрушка RobotShop Rover под управлением Arduino, который программируется и получает команды от ПК по интерфейсу USB. Модуль приемопередатчика XBee 2.4 ГГц может использоваться для удаленного управления и получения данных от робота.

На самом деле, практически каждое устройство Arduino имеет какие-то коммуникационные возможности. На самом базовом уровне платформа должна предоставлять некоторые средства для разработки и загрузки кода приложения с использованием персонального компьютера, а также должна обеспечиваться поддержка отладки и трассировки. Многие платы Arduino (такие как Uno, Mega2560) имеют интегрированный порт USB, используемый и в качестве канала связи, и в качестве маломощного источника питания. В некоторых специализированных платах такая роскошь как соединение по USB отсутствует, и в них используется возможность связи по последовательному интерфейсу RS-232 (или эквивалентному), что позволяет использовать для обмена с ними практически любое устройство с последовательным портом.

В платформе Arduino предусмотрены возможности последовательного обмена с другими микросхемами (расположенными на основной плате, или на отдельных модулях) посредством интерфейсов SPI, I2C или TWI. Во многих случаях это реализуется на основе ресурсов платы или небольших адаптеров.

Для многих современных приложений требуется наличие возможности сетевого обмена, посредством которого можно осуществлять локальный обмен данными с другими платформами Arduino или через Интернет. Шина CAN или интерфейс I2C часто используются для проводного M2M соединения (Machine-to-Machine – M2M – общее название технологий, позволяющих машинам обмениваться информацией друг с другом, или же передавать ее в одностороннем порядке), в то время как радиочастотный 802.15-совместимый интерфейс (2.4 ГГц) очень популярен для беспроводной передачи данных. Если для Вашего проекта требуется связь с «внешним миром», есть целый ряд аппаратных модулей расширения Arduino, которые могут предоставить Ethernet, Wi-Fi или CDPD/GSM связь.

Аппаратные средства – базовые понятия

Хотя процессорные платы Arduino отличаются друг от друга форм-факторами и возможностями, все они отвечают набору требований к аппаратной платформе с открытым исходным кодом, что делает их частично или полностью совместимыми между собой. К примеру, во многих платах Arduino используется одинаковое распределение сигналов по контактам разъемов, предоставляющих доступ к шине микроконтроллера и линиям ввода/вывода, что упрощает подключение плат расширения Ethernet, ZigBee или иных сетевых плат расширения.

В соответствии с этой философией, среда разработки Arduino была разработана для поддержки широкого спектра целевых плат с различными микроконтроллерами, различными компонентами ввода/вывода, различными тактовыми частотами и загрузчиками. Изначально разработанная для поддержки микроконтроллеров AVR серии ATmega компании Atmel (микроконтроллеров с загрузчиком Arduino Uno), с недавних пор среда разработки поддерживает варианты плат Uno и Mega на базе 32-разрядных микроконтроллеров Microchip серии PIC32MX.

Программные средства – базовые понятия

Программный комплекс Arduino состоит из интегрированной среды разработки и соответствующих программных библиотек. Приложения (скетчи) пишутся на языке Processing, который, фактически, является надстройкой над Java. Приложения перед компиляцией предварительно обрабатываются для определения аппаратно-зависимых аспектов целевой платы (или любых плат расширения, которые они используют).

Характеристики каждой платы определены в файле с именем boards.txt с использованием нескольких переменных с соответствующим префиксом. Плата описывается последовательностью переменных с именем самого параметра, типа BOARD.name, BOARD.build.f_cpu (например, "ATmega328" или "ATmega1280") и BOARD.build.core, которые содержат необходимые данные необходимые для компилятора и приложения.

Процесс компиляции собирает все базовые и пользовательские библиотеки, используемые приложением, включая библиотеку поддержки последовательного интерфейса, которая служит для обмена данными между платой Arduino и ПК или другим микроконтроллером, эмулируя 9-контактный последовательный порт, который часто встречается в компьютерах. Сопутствующая библиотека сетевых функций позволит плате Arduino наладить обмен данными через Интернет, а также организовать функции клиент/сервер.

Набор базовых библиотек также включает в себя поддержку специфических сетевых интерфейсов, включая USB, SPI, TWI/I2C и Ethernet. Дополнительные, отдельно поставляемые библиотеки, могут использоваться для реализации Web-интерфейса, а также для поддержки других проводных и беспроводных протоколов.

Сетевые технологии, доступные на платформе Arduino

Рассмотрим примеры сетевых технологий, имеющихся в экосистеме Arduino. Эти примеры, как правило, касаются «официальных» решений, предлагаемых сообществом Arduino, однако сейчас существует множество аналогичных коммерческих и некоммерческих вариантов, доступных от различных производителей и групп пользователей.

USB

Многие платы Arduino уже содержат в себе интерфейс USB, но некоторые, в компактном форм-факторе или бюджетные варианты, его не имеют. Самый простой способ добавить USB к таким платам – использование дополнительного адаптера USB Serial Light adapter (Рисунок 2), выполняющего функцию моста USB-UART (преобразует сигналы Rx и Tx последовательного порта микроконтроллера в сигналы интерфейса USB).

Адаптер Arduino USB Serial Light adapter

Рисунок 2. Адаптер Arduino USB Light adapter может использоваться для реализации USB интерфейса на платах Arduino.

В адаптере используется микроконтроллер ATmega8U2, запрограммированный для выполнения функций конвертера USB-UART. Так как ПО микроконтроллера использует стандартные драйверы USB COM, установка внешних драйверов не потребуется. Кроме того, пользователи могут самостоятельно изготовить такой адаптер, как на микроконтроллере ATmega8U2, так и на специализированной микросхеме FT232RL производства компании Future Technology.

Ethernet

Платы Arduino Uno и Mega, а также многие их производные, позволяют использовать стандартную плату расширения Ethernet Shield (Рисунок 3), построенную на базе 10/100 Ethernet контроллера Wiznet W5100. Плата также имеет установленный слот для карт памяти microSD, которая может использоваться для хранения файлов, доступ к которым возможен через сеть. Arduino «общается» с контроллером Ethernet и картой памяти по интерфейсу SPI (посредством разъема ICSP). Питание плата может получать по сетевому Ethernet кабелю (технология Power-over-Ethernet), но для этого требуется специальный модуль DC/DC преобразователя. Основная Ethernet библиотека содержит файлы, которые позволяют платам Arduino Uno и Mega инициализировать контроллер Ethernet и работать с ним, организовать Клиент или Сервер для четырех одновременных входящих или исходящих соединений.

плата расширения Arduino Ethernet Shield

Рисунок 3. Плата расширения Arduino Ethernet Shield, поддерживающая 10/100 Мбит/с Ethernet, может работать совместно с модулем PoE.

802.15/XBee

Для Arduino доступно множество различных опций беспроводной передачи данных по стандарту IEEE 802.15.3 частотного диапазона 2.4 ГГц. В целом, сетевой протокол ZigBee не очень популярен из-за его требований к большому объему памяти и вычислительной мощности. Вместо него получил достаточно широкое распространение ZigBee-подобный протокол, названный XBee. Он также поддерживает звездообразную и полносвязную топологию сети и использует стандартный набор модемных AT команд для управления передачей данных.

Одной из самых популярных реализаций беспроводной передачи данных является плата расширения XBee Shield, разработанная компанией Libelium в тесном сотрудничестве с Arduino (Рисунок 4а и 4b). Плата выполнена на базе радио модулей XBee или XBee-Pro, производства компании Digi. Модули поддерживают различные топологии сети и могут использоваться в качестве беспроводного моста USB-Serial.

Платы расширения Libelium XBee Shield

Рисунок 4 Платы расширения Libelium XBee Shield позволяют непосредственно подключить радио модули MaxStream к популярным платам Arduino.

CDPD/GSM передача данных

Добавление мобильного сотового подключения в проект Arduino может быть выполнено с помощью GSM платы расширения (CDPD – цифровая сотовая пакетная передача данных). Плата расширения Arduino GPRS/GSM Shield выполнена на базе радио модуля Quectel M10, который управляется AT командами по последовательному интерфейсу. Для идентификации пользователя и системы в сотовой сети потребуется SIM карта. Много продуктов доступно и от других производителей, к примеру, CuteDigi, HW Kitchen и Sparkfun, которые используют в своих решениях 4-диапазонный радио модуль Spreadtrum SM5100B.

Другие приложения

Платформа Arduino также включает в себя платы расширения и специализированные процессорные платы, поддерживающие и другие проводные и беспроводные сетевые технологии, включая Wi-Fi, CAN и ModBus. Кроме того, существуют расширения для поддержки локальных интерфейсов, таких как SPI и низкоскоростной сигнальный интерфейс 1-Wire. Об этих возможностях мы постараемся рассказать в последующих статьях.

Ссылки

  1. Журнал «РадиоЛоцман», 2011, 11, стр. 13, «Как создавали и продвигали Arduino».
  2. Журнал «РадиоЛоцман», 2011, 12, стр. 44, «Открытая платформа Arduino высвобождает творческий потенциал».
  3. Журнал «РадиоЛоцман», 2012, 01, стр. 34, «Открытая платформа Arduino высвобождает творческий потенциал. Arduino Shields – расширение возможностей аппаратной платформы».
  4. Журнал «РадиоЛоцман», 2012, 02, стр. 41, «Аналоговый функционал Arduino: как использовать его в своих проектах».

Перевод: Vadim по заказу РадиоЛоцман

На английском языке: Networking Options for Arduino-Based Systems

Электронные компоненты. Бесплатная доставка по России
Для комментирования материалов с сайта и получения полного доступа к нашему форуму Вам необходимо зарегистрироваться.
Имя