«Шилд» Arduino WiFi Shield позволяет подключить вашу Arduino к беспроводному интернету. Как и всегда у Arduino, все компоненты платформы – «железо», ПО и документация – доступны бесплатно по принципу «open-source». Это значит, что ничего не мешает вам изучить плату, а затем использовать ее дизайн в качестве отправной точки для собственных проектов.
Характеристики:
Требуется плата Arduino (в комплекте не идет)
Рабочее напряжение – 5 вольт (идут от платы Arduino)
«Шилд» Arduino WiFi Shield позволяет подключить плату Arduino к интернету при помощи стандарта беспроводной связи 802.11. Он базируется на SIP-чипе HDG204, но также на «шилде» имеется чип AT32UC3, который обеспечивает сетевой (IP) стек, способный работать как с TCP, так и с UDP. Для написания скетчей, использующих подключение к интернету при помощи этого «шилда», существует библиотека WiFi. Вдоль «шилда» расположены гребешки – через них плата подсоединяется к шилду, и это выполняется при помощи монтажа накруткой. Благодаря этому типу соединения контакты остаются свободными, что позволяет поместить сверху еще один «шилд».
«Шилд» Arduino WiFi Shield может подключаться к беспроводным сетям формата 802.11b и 802.11g.
Также на «шилде» имеется слот для карты типа Micro-SD, который можно использовать, чтобы хранить файлы для обслуживания сети. Он совместим с Arduino Uno и Arduino Mega.
Доступ к слоту для SD-карты осуществляется при помощи библиотеки SD. Учтите, однако, что при работе с этой библиотекой SS-контактом является 4-ый контакт.
Arduino коммуницирует и с процессором «шилда», и с SD-картой при помощи шины SPI (через ICSP-гребешок). На Uno этот интерфейс находится на контактах 11, 12 и 13, а на Mega – на контактах 50, 51 и 52. На обеих платах SS-контактами выступают 10-ый контакт (для HDG204) и 4-ый контакт (для SD-карты). Эти контакты нельзя использовать в качестве I/O контактов общего назначения. На Mega аппаратным SS-контактом является 53-ий контакт, и он не используется ни для выбора HDG204, ни для выбора SD-карты, но его нужно оставить выходным, иначе шина SPI попросту не будет работать.
Цифровой контакт 7 используется для рукопожатия между «шилдом» и Arduino, и его использовать не следует.
Обратите внимание, что поскольку HDG204 и SD-карта работают через одну и ту же шину SPI, одновременно может быть активным только одно из этих устройств. Если в вашем скетче используются оба этих устройства, эта проблема решается использованием соответствующих библиотек. Если вы используете в скетче лишь одно из этих устройств, то выбор второго устройства нужно отменить. Если вам не нужна SD-карта, то 4-ый контакт выставить в режим OUTPUT и подать на него значение HIGH. Если вам не нужен HDG204, то же самое нужно сделать с 10-ым контактом.
«Шилд» умеет подключаться к сетям с шифрованием WPA2 Personal и WEP, а также к открытым сетям. Чтобы «шилд» мог подключиться к сети, она должна транслировать свой SSID.
Внимание!
Предыдущая версия «шилда» использует HDG104 вместо HDG204.
Встроенные интерфейсы
Кнопка сброса на «шилде» сбрасывает и HDG204, и плату Arduino.
На «шилде» имеется встроенный коннектор типа Micro-USB. Он служит не для того, чтобы программировать подключенную Arduino, а для обновления чипа AT32UC3 при помощи протокола Atmel DFU. При обычном использовании программирующая перемычка, находящаяся рядом с шиной питания и аналоговыми контактами, должна оставаться неподключенной.
Она используется только для режима программирования DFU.
Соединение FTDI обеспечивает последовательную коммуникацию с чипом 32U (в отладочных целях). Список доступных команд можно найти тут.
Индикаторы
На «шилде» имеется несколько информационных светодиодов:
L9 (желтый) – он подключен к 9-ому цифровому контакту
LINK (зеленый) – сообщает о подключении к сети
ERROR (красный) – сообщает об ошибке подключения
DATA (синий) – сообщает о передаваемых/получаемых данных
Обновление прошивки
О том, как обновить прошивку «шилда», читайте в этом руководстве.
Calibration - Определение максимума и минимума для данных от аналогового датчика.
Fading - Использование выходного аналогового контакта (ШИМ) для затухания/загорания светодиода.
Smoothing - Сглаживание серии данных, считанных с входного аналогового контакта.
Связь
ReadASCIIString - Анализ строки, состоящей из разделенных запятыми int-значений, и их последующее использование для управления RGB-светодиодом.
ASCII Table - Демонстрирует продвинутые способы вывода данных на Serial Monitor.
Dimmer - Изменение яркости светодиода при помощи движения мышкой.
Graph - Отправка данных на компьютер и их графическое отображение в скетче Processing.
Physical Pixel - Включение/выключение светодиода путем отправки данных со скетча Processing (или Max/MSP) на Arduino.
Virtual Color Mixer - Отправка с Arduino на компьютер сразу нескольких значений, а затем их считывание при помощи скетча для Processing или Max/MSP.
Serial Call Response - Многобайтная передача данных при помощи метода вызова и ответа (метода «рукопожатия»).
Serial Call Response ASCII - Многобайтная передача данных при помощи метода вызова и ответа (метода «рукопожатия»). До передачи данные зашифровываются в ASCII.
SerialEvent - Демонстрирует использование SerialEvent().
MIDI - Передача через последовательный порт сообщений с MIDI-нотами.
MultiSerialMega - Использование двух последовательных портов на Arduino Mega.
Управляющие структуры
If Statement - Как использовать оператор «if» для создания условий, опирающихся на входные аналоговые данные, при которых светодиод будет либо включаться, либо оставаться выключенным.
For Loop - Управление несколькими светодиодами, чтобы они мигали, как LED-полоска у автомобиля Китт из сериала «Рыцарь дорог».
Array - Вариация примера «For Loop», но с использованием массива.
While Loop - Использование цикла while() для калибровки датчика. Калибровка включается при нажатии на кнопку.
Switch Case - Как совершать какие-либо действия в зависимости от значений, полученных от датчика. Эквивалент примера «If Statement», но если бы условий было не два, а четыре. Этот пример демонстрирует, как дробить диапазон данных от датчика на четыре «суб-диапазона», а затем в зависимости от полученных результатов совершать одно из четырех действий.
Switch Case 2 - Второй пример, демонстрирующий использование оператора switch. Показывает, как совершать различные действия в зависимости от определенных символов, полученных через последовательный порт.
Датчики
ADXL3xx - Считывание данных с акселерометра ADXL3xx.
Knock - Определение стука при помощи пьезоэлемента.
Memsic2125 - Считывание данных с 2-осевого акселерометра Memsic2125.
Ping - Определение объектов при помощи ультразвукового дальномера.