Shield usb что это

Обновлено: 06.07.2024

Как я должен маршрутизировать экран USB Connector на печатной плате? Должен ли он подключаться к плоскости GND прямо там, где находится USB, или если экран изолирован от GND или должен быть подключен к заземлению через микросхему защиты от ESD, резистор или плавкий предохранитель сопротивления?

PS. Должен ли я устанавливать экранированные соединения на схему или просто маршрутизировать его на печатную плату?

Для того чтобы экран был эффективным, он требует как можно более полного полного сопротивления заземления экрана. Я думаю, что рекомендующие резисторы, или вообще не подключающие его к земле, или строго говоря о вашем цифровом логическом заземлении, и предполагая, что у вас есть отдельная защита. Если у вас есть металлический корпус, это будет ваш щит. В какой-то момент ваша цифровая земля должна подключаться к вашему заземлению экрана. По причинам EMI эта единственная точка должна быть близка к вашей области ввода-вывода. Это означает, что лучше всего разместить ваш USB-разъем с любыми другими разъемами ввода-вывода вокруг одной секции платы и найти свой экран в точке логической точки в этом месте. Есть некоторые исключения для единственной точки, правила, если у вас есть сплошной металлический корпус без каких-либо апертур, например, может быть полезно несколько точек подключения. В любом случае, при подключении заземления экрана к цепи, некоторые могут рекомендовать использовать резистор или конденсатор (или оба), но редко есть разумная причина для этого. Вы хотите, чтобы между ними находилось соединение с низкой индуктивностью, чтобы обеспечить путь для синфазного шума. Зачем отвлекать шум, хотя паразитная емкость (например, излучать его в окружающую среду)? Единственной причиной, которая обычно дается для такой тактики, является предотвращение наземных циклов, но вы говорите об USB, наземные петли, скорее всего, не будут проблемой для большинства приложений USB. Разумеется, такая тактика будет препятствовать наземным лучам, но они также разрушат вашу защиту, но неэффективны.

Эни Отт обсуждает это в своей книге «Электромагнитная совместимость». Вам нужно посмотреть на нее с большей картины. IE, что делает щит?

Для низкочастотных сигналов экран используется для защиты передаваемого сигнала. Вы хотите, чтобы радиосигналы линии электропередач /AM /FM не попадали в ваш сигнал, потому что это будет мешать нормальной работе. Поэтому вы не должны привязывать GND на обоих концах. Заземляющие петли вызовут небольшие шумы, чтобы соединиться с вашим сигналом, поэтому заземляющий контур должен быть сломан. Это не означает, что вы оставите щит висящим. Вы должны привязать экран кабеля, к вашему корпусу и, если необходимо (как в случае коаксиального кабеля), вы можете привязать землю своей цепи к этой же точке. Вы хотите использовать одноточечное заземление как можно больше для низкой частоты по вышеуказанным причинам.

Однако для высокочастотных сигналов выполняется обратное. Обычно это цифровые сигналы на очень высоких частотах. Даже если некоторый шум действительно связан, цифровая природа электроники, а также фильтрация должны легко поддерживать нормальную работу. Вы хотите уменьшить выбросы сигналов данных, НЕ защищать их от излучения. По этой причине самый низкий импедансный путь должен быть подключен к экрану на концах BOTH. Да, будут наземные петли, и шум будет связан, но это не имеет значения. В случае высокой частоты предпочтительно использовать многоточечное заземление.

Убедитесь, что производитель вашего USB-чипа указывает, что вы должны использовать. Я уверен, Cypress рекомендует 1M резистор и 4.7nf колпачок, соединяющий экран с землей. Два защитных отверстия должны быть соединены с очень большим следом (я полагаю, они предложили 100 мил?)

Плата расширения USB Host Shield 2.0 позволяет Arduino выступать в роли родительского USB-устройства для практически любой имеющейся USB-периферии. С этой платой открывается масса новых возможностей для создания интересных устройств. В настоящее время платой USB Host Shield 2.0 поддерживаются следующие классы устройств:

HID-устройства, такие как клавиатуры, мыши, джойстики и др.;

игровые устройства: Sony PS3, Nintendo Wii, Xbox360;

USB преобразователи: FTDI, PL-2303, ACM, а также некоторые аппараты и GPS-приемники;

цифровые фотоаппараты: Canon (EOS, PowerShot), Nikon.

Плата расширения USB Host Shield
CashBack 1
USB Host Shield 2.0

Интерфейс USB

Последовательный интерфейс USB используется для подключения периферийных устройств. Соответственно, существуют понятия "главное устройство" — хост (он управляет обменом данными через интерфейс, выступает инициатором обмена) и "периферийное устройство" — клиент (в процессе обмена данными он "подчиняется" хосту). Логика работы хоста и клиента принципиально отличаются, поэтому нельзя напрямую соединять устройства "хост — хост" и "клиент — клиент". Имеются специальные устройства — хабы, которые подключаются в качестве клиента к одному хосту и, в то же время, выступают хостом для других периферийных устройств. Хабы также применяются для "разветвления" шины USB.

Физически интерфейс USB (до версии 2.0) использует 4 провода

D–, D+ — линии приема/передачи данных (обозначения D+ и D– условны, с электрическими потенциалами это никак не связано).

Спецификация USB 1.0 определяла два типа разъемов: A — на стороне контроллера или концентратора USB и B — на стороне периферийного устройства. Впоследствии были разработаны миниатюрные разъемы для применения USB в переносных

Назначение контактов USB 1.0, USB 2.0
Назначение контактов USB 1.0, USB 2.0

и мобильных устройствах, получившие название Mini-USB. Новая версия миниатюрных разъемов, называемых Micro-USB, была представлена USB Implementers Forum 4 января 2007 года.

Благодаря встроенным линиям питания USB позволяет подключать периферийные устройства без собственного источника питания (максимальная сила тока, потребляемого устройством по линиям питания шины USB, не должна превышать 500 мА, у USB 3.0 — 900 мА).

Стандарт USB поддерживает концепцию plug-and-play. Эта концепция подразуме- вает, что пользователю достаточно "воткнуть" устройство в соответствующий порт ПК. Дальше ОС автоматически определит тип подключенного устройства, найдет подходящий для данного устройства драйвер, сконфигурирует устройство и т. д. Для того чтобы это все работало, стандартом USB предусмотрены некие общие требования для всех устройств:

каждое устройство содержит дескриптор (описание) устройства;

есть общий для всех USB-устройств механизм, который позволяет ОС прочитать дескриптор устройства для того, чтобы идентифицировать устройство, узнать его характеристики;

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

HID (Human Interface Device) — устройство, подключаемое к вычислительной технике, с тем, чтобы с ней мог работать человек. Говоря проще, HID — это устройство ввода информации. Устройства ввода необходимы для непосредственного участия человека в работе компьютера: для введения исходных данных для вычислений, для выбора параметров действия, для редактирования имеющихся данных и результатов и т. д.

HID-устройства ввода различаются по типу вводимой информации:

для текстовой информации — это преимущественно клавиатуры. Они служат для управления техническими и механическими устройствами (компьютер, калькулятор, кнопочный телефон). Каждой клавише устройства соответствует один или несколько определенных символов. Возможно увеличить количество действий, выполняемых с клавиатуры, с помощью сочетаний клавиш. В клавиатурах такого типа клавиши сопровождаются наклейками с изображением символов или действий, соответствующих нажатию;

для звуковой информации — это микрофон. Электроакустические приборы, преобразующие звуковые колебания в колебания электрического тока, используются во многих устройствах (телефоны и магнитофоны, приборы звукозаписи и видеозаписи на радио и телевидении, для радиосвязи);

для графической информации:

• сканер — устройство для считывания плоского изображения и представления его в растровой электронной форме;

• цифровая камера — устройство (фотоаппарат), использующее массив полупроводниковых светочувствительных элементов (матрицу), на которую изображение фокусируется с помощью системы линз объектива. Полученное изображение сохраняется в электронном виде в памяти самой камеры или же дополнительном цифровом носителе;

• веб-камера — цифровая видео- или фотокамера, способная в реальном времени фиксировать изображения, предназначенные для дальнейшей передачи по сети Интернет как в потоковом режиме, так и за определенные промежутки времени;

• плата захвата (тюнер) — электронное устройство для преобразования аналогового видеосигнала в цифровой видеопоток. Используется для захвата телесигнала, сигнала с камер видеонаблюдения и др.

HID-устройства управления различаются по функционалу:

относительное позиционирование (обрабатывают информацию о перемещении):

• мышь — манипулятор, преобразующий механические движения в движение курсора на экране. Различают механические, оптические, гироскопические, сенсорные мыши;

• трекбол — манипулятор, чей принцип работы сходен с шариковой механической мышью и аналогичен мыши по принципу действия и по функциям. Однако пользователь не передвигает мышь, а управляет с помощью ладони или пальцев непосредственно шариком, закрепленным на специальном держателе с датчиками;

• трекпойнт — миниатюрный тензометрический джойстик, применяемый в ноутбуках для замены мыши. Трекпойнт считывает направление и силу давления пальца пользователя;

• тачпад — сенсорная панель, применяемая, в основном, в портативных ком- пьютерах. В отличие от трекпойнта, считывающего давление пальца, тачпад считывает емкостные характеристики при соприкосновении пальца с поверхностью емкостных датчиков. Поэтому управление тачпадом с помощью непроводящих предметов (ручка, карандаш, стилус) достаточно проблематично;

• джойстик — устройство ввода информации, которое представляет собой ка- чающуюся в двух плоскостях ручку, боковое давление которой считывается датчиками в основании устройства. Используется как игровой гаджет, а так же как средство управления (например, роботизированной техникой на производстве);

абсолютное позиционирование (высчитывают абсолютные координаты на плоскости, в качестве которой выступает устройство):

• графический планшет — устройство для ввода графики (отдельных линий и рисунков) от руки непосредственно в компьютер. Состоит из пера и плоского планшета, чувствительного к нажатию пера;

• тачскрин (сенсорный экран) — устройство ввода информации, представляющее собой экран, реагирующий на прикосновения к нему (используется в современных смартфонах, платежных и информационных терминалах).

Отдельно хочется выделить специальные HID-устройства для компьютерных игр:

игровые мыши — отличаются от обычных компьютерных мышей высокой чувствительностью, настраиваемым весом, большим количеством программируемых кнопок;

кейпады — специальные игровые клавиатуры-приставки, в которых кнопки скомбинированы для максимального удобства игрока (в современные модели встраивается мини-джойстик);

руль и педали — манипуляторы для игр жанра "автогонки" (рэйсинг);

джойстики — используются для игр жанра "авиасимуляторы";

геймпады — специальные игровые манипуляторы, используемые в аркадных жанрах (перешли с игровых консолей);

танцевальные платформы — специальные платформы с датчиками давления. Управление производится с помощью ног. Используются для игр жанра "танцевальные аркады";

музыкальные инструменты (гитары, барабаны) — специальные манипуляторы в форме музыкальных инструментов с кнопками и датчиками давления. Используются для игр жанра "музыкальные аркады".

Операционные системы, как правило, имеют встроенные драйверы HID-класса, так что у разработчиков отпадает необходимость в трудоемкой собственной разработке драйвера для нового устройства. Чтобы определить устройство как HID, необходимо поддержать ряд структур, описывающих HID-интерфейс, а также написать алгоритм обмена по interrupt-каналу (каналу прерываний) передачи данных. Во многих отношениях устройства HID не имеют никаких особенных отличий от других USB-устройств. Однако кроме требований, которые относятся ко всем USB-устройствам, устройства HID выдвигают ряд дополнительных требований:

HID-устройство должно иметь Interrupt In — конечную точку для выдачи данных в хост. Interrupt Out — конечная точка для получения периодических данных от хоста, является опциональной и может не использоваться;

HID-устройство должно содержать дескриптор класса — Device Class Descriptor и один или более дескрипторов репорта HID Report Descriptor;

HID-устройство должно поддерживать специфический для класса управляющий запрос Get_Report, а также опционально поддерживать дополнительный запрос Set_Report;

для передачи Interrupt In (данные из устройства в хост) устройство должно положить данные репорта в FIFO соответствующей конечной точки и разрешить передачу;

для передачи Interrupt Out (данные из хоста в устройство) устройство должно разрешить соответствующую конечную точку Out, а затем, после прихода пакета, забрать данные из FIFO.

В библиотеке USB Host Shield 2.0 имеется пример для подключения к Arduino HID-мыши USB — USBHIDBootMouse.pde. Загружаем его и смотрим в мониторе по- следовательного порта результат работы скетча.

Скетч для подключения HID-мыши USB
Скетч для подключения HID-мыши USB

Теперь создадим собственный проект. Будем управлять роботом с помощью игрового манипулятора — руля Defender Forsage Drift GT. Для этого необходимо организовать беспроводное управление моделью робота данным устройством. Для беспроводной передачи данных воспользуемся беспроводным радиомодулем NRF24L01.

Руль подсоединен к плате Arduino через USB Host Shield. В качестве блока управления подсоединяем к Arduino модуль 2,4 ГГц NRF24L01. Дополнительно к Arduino робота подключаем такой же радиомодуль 2,4 ГГц NRF24L01. Электрическая схема блока робота представлена на рисунке.

Электрическая схема блока робота
Электрическая схема блока робота

Загружаем скетч USB_HID_Desc.pde, входящий в примеры библиотеки USB_Host, подсоединяем к Arduino через USB Host Shield наш руль и получаем Descriptor Report HID-устройства

Скетч получения Descriptor Report HID-устройства
Скетч получения Descriptor Report HID-устройства

Usage Page Gen Desktop Ctrls(01) Usage Game Pad

Collection Application Collection Logical Report Size(08)

Report Count(04) Logical Min(00) Logical Max(FF00) Physical Min(00) Physical Max(FF00) Usage X

Usage Y Usage Z Usage Z Usage Rz

Report Count(01) Logical Max(07) Physical Max(3B01) Unit(14)

Usage Hat Switch Input(01000010)

Unit(00) Report Size(01)

Report Count(0C) Logical Max(01) Physical Max(01) Usage Page Button(09) Usage Min(01)

Usage Max(0C) Input(00000010)

Usage Page Undef(00) Report Size(08) Report Count(02) Logical Max(01) Physical Max(01) Usage Input(00000010)

End Collection Collection Logical Report Size(08) Report Count(04) Physical Max(FF00) Logical Max(FF00) Usage Output(00000010) End Collection End Collection

ArduinoUSBhostShield.jpg

«Шилд» Arduino USb Host Shield позволяет подключать к плате Arduino устройства с разъемом USB. «Шилд» создан на базе чипа MAX3421E (даташит) – это контроллер, который благодаря аналоговому «железу» и цифровой логике обеспечивает совместимость периферийных USB-устройств (на полной скорости) и хоста (на полной и низкой скоростях) со стандартом USB 2.0. Кроме того, «шилд» совместим со стандартом TinerKit, благодаря чему вы можете подключать к плате модули типа TinkerKit.

«Шилд» поддерживает следующие устройства:

  • HID-устройства (устройства для взаимодействия техники и человека): мыши, джойстики и т.д.
  • Игровые контроллеры: Sony PS3, Nintendo Wii, Xbox 360.
  • Конвертеры, преобразовывающие USB-данные в последовательные данные: FTDI, PL-2303, ACM, а также определенные сотовые телефоны и GPS-ресиверы.
  • Планшеты и смартфоны на Android, совместимые с ADK.
  • Цифровые камеры: Canon EOS, Powershot, цифровые зеркалки и компактные камеры Nikon, а также устройства, работающие через протокол PTP.
  • Устройства для хранения данных: USB-флэшки, кардридеры, внешние жесткие диски и т.п.
  • Bluetooth-адаптеры.

Информацию об использовании платы вместе с Android OS читайте тут и тут. Arduino «общается» с MAX3421E при помощи шины SPI (через ICSP-гребешок). На Uno она находится 10-ом, 11-ом, 12-ом и 13-ом контактах, а на Mega – 10-ом, 50-ом, 51-ом и 52-ом контактах. В качестве SS-контакта (для выбора чипа MAX3421E) на обеих платах используется 10-ый контакт. Контакты 7, 8 и 9 используются для контактов GPX, INT и RES.

Технические характеристики

  • Рабочее напряжение – 5 вольт
  • USB-контроллер –
  • Максимальная сила тока – 500 миллиампер (если Arduino питается через надлежащий источник питания, подключенный к разъему для питания на Arduino) или 400 миллиампер (если Arduino питается через USB-порт)

Информацию о гарантии можно прочесть тут.

С чего начать

Всю необходимую информацию о том, как настроить плату, использовать IDE Arduino и т.д. можно найти здесь. Нужна помощь?

  • Почитать о ПО можно здесь
  • О проектах – здесь
  • Запросить клиентскую поддержку можно здесь

Документация

«Шилд» Arduino USB Host Shield – это устройство, изготовленное по принципу «open source». Вы можете создать на его основе собственную плату, используя следующие файлы:

Библиотека

Руководства

Питание

У «шилда» Arduino USB Host Shield нет разъема для питания, и он питается, только если подключен к плате Arduino.

«Шилд» оснащен USB-портом (типа «папа»), к которому можно подключать USB-устройства. Кроме того, на «шилде» есть несколько входных/выходных коннекторов TinkerKit и других интерфейсов, которые упрощают создание проекта/прототипа.

  • Два входных коннектора TinkerKit: INT2 и INT3 (3-контактные, белые) – эти контакты ведут к входным аналоговым контактам A2 и A3 на Arduino.
  • Два выходных коннектора TinkerKit: OUT5 и OUT6 (оранжевые) – эти контакты ведут к 5-ому и 6-ому контактам, которые в Arduino отвечают за выдачу ШИМ.
  • Два коннектора TinkerKit для TWI: эти коннекторы (4-контактные, белые) ведут к интерфейсу TWI на Arduino. Оба подключены к одному и тому же TWI-интерфейсу, что позволяет создавать цепь TWI-устройств.

Физические характеристики

Arduino — крохотная плата с большими возможностями, типичный представитель Open Hardware и одно из первых устройств, завоевавших широкую популярность у аппаратных хакеров. Не мудрено: удобный электронный конструктор позволяет даже новичкам быстро разобраться и начать с нуля разрабатывать собственные устройства.

Как быстро начать?

Для быстрого начала новичку проще всего купить готовую плату — стоит она примерно $30. На плате будет всего два чипа — микроконтроллер ATMEL и микросхема USB-интерфейса, к которой он подключен. Все остальные элементы добавляются самостоятельно по мере необходимости.


Программы для Arduino (называемые на сленге «скетчами») пишутся на языке Wiring. По сути, это обычный C++, расширенный специальными процедурами типа «digitalWrite» (записать значение в порт) или «analogRead» (прочитать значение из АЦП). Осваивается все это в один-два присеста, особенно если у тебя уже есть опыт программирования на C++. Написанные скетчи компилируются и загружаются в Arduino через USB с помощью среды ArduinoIDE (arduino.cc/en/Main/Software). Чтобы собрать простейший проект требуются какие-то минут тридцать, без необходимости глубокого погружения в даташиты ATMEL и конструкции ассемблера. Язык интуитивно понятен, а разобраться с нюансами поможет неплохой онлайн-хелп. Да и паять, кстати, тоже необязательно, если есть беспаечная макетка и набор проводков.


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

Что такое Shield-плата?

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


Дальше остается лишь подцепить соответствующую библиотеку к основному скетчу и опробовать работу схемы с помощью прилагаемого к библиотеке скетча-примера. При таком подходе время экономится дважды: сначала на разработку и отладку аппаратной части, а затем — программной. Однако по-настоящему удачных и популярных шилд-плат существует всего пара десятков. Чем хороший шилд отличается от плохого?


В первую очередь, на нем обязана быть кнопка сброса. Оценить это может любой, кто отлаживал Arduino с одетым шилдом — штатная кнопка сброса становится недоступной и упражнения по ее нажиманию при помощи подручных продолговатых предметов порядком раздражают. Хороший шилд также должен быть совместим с Arduino Mega — если у тебя расширенная версия Arduino на ATmega1280 или ATmega2560, еще не факт, что с ней заработает шилд, созданный для привычной Uno или Duemilanova. А все из-за того, что в Mega отвечающие за аппаратный SPI пины перенесли в другое место! Так что если шилд общается с Arduino по шине SPI, обязательно изучи его «брюхо» — надеяться на совместимость с Mega можно, если ты увидишь там не только штырьки, но и черный квадратный разъем-розетку 2х3. Ниже я подготовил обзор лучших готовых Shield-плат для решения частых задач.

Управление моторами


Главное преимущество шилда заключается в его универсальности, поскольку он поддерживает до четырех моторов прямого тока, до двух шаговых двигателей и двух серво-приводов. Можно комбинировать: например, один шаговый и два двигателя постоянного тока. Основу шилда обеспечивают две микросхемы счетверенного H-моста L293D, способные выдавать ток до 600 мА на канал и работать напряжениями от 4,5 до 36 В. Запараллелив входы одной микросхемы, можно отодвинуть ограничение по току до 1,2 А.


Работа с Ethernet

Существуют два основных варианта шилдов для работы с Ethernet — на основе старого доброго чипа ENC28J60 от Microchip и более совершенного W5100 от Wiznet. Оба решения используют для обмена шину SPI, отнимая всего четыре пина Arduino. Но ENC28J60 появился много раньше и явно проигрывает продвинутому W5100: только 10 Мбит/с, нет аппаратной поддержки IP, UDP, TCP. Кроме того, W5100 позволяет работать с четырьмя сокетами (что означает поддержку до четырех одновременных соединений).


В общем, настоятельно рекомендую использовать именно W5100, потому что он существенно экономит ключевой ресурс микроконтроллера — оперативную память (SRAM), которую приходится экономить (у Atmega328 — всего один килобайт). Ну и все остальные преимущества предобработки налицо: пока W5100 сам переспрашивает пакеты по протоколу TCP и считает контрольные суммы заголовков, Atmegа может спокойно заниматься более важными вещами.

Другим образцовым примером является шилд Arduino Ethernet Shield (arduino.cc/en/Main/ArduinoEthernetShield) от команды Arduino. С его помощью можно создать скетч, который будет способен:


Применение такому шилду — исключительно в неподвижных конструкциях, требующих взаимодействия по сети TCP/ IP. Например, отображение в браузер состояния подключенных датчиков или удаленное управление какими-то механизмами.

Сразу вспоминается проект «твиттер-цветочка», в котором связка Arduino+Ethernet при помощи воткнутого в землю датчика влажности через твиттер жаловалась на сухость и требовала немедленного полива. При всем многообразии применения EthernetShield хочу предупредить о том, что каждая библиотека, безусловно, экономит время, однако и отнимает несколько килобайт флеш-памяти микроконтроллера. Поэтому, если рано или поздно упрешься в предельный размер 30 Кб своей Arduino Duemilanova — подумай о замене на Mega 2560, памяти для скетчей будет раз в восемь с половиной больше.

Использование SD-карт

В проектах, связанных с накоплением какой-либо информации (например, GPS-координат), часто требуется нарастить объем доступной энергонезависимой памяти. Проще всего это сделать, подключив стандартную SD-карту. Для этого есть несколько готовых шилдов. Самый симпатичный из известных мне вариантов — microSD module, разработан испанской фирмой Libellium, специализирующейся на мониторинге окружающей среды (goo.gl/iHCy4).

Шилд занимает всего одну колодку пинов Arduino и позволяет работать с SD и SDHC-картами, предварительно отформатированными на в FAT16 (предпочтительнее) или FAT32. Единовременно можно работать только с одним файлом, длинные имена не поддерживаются.

Беспроводные шилды

Самые простые RF-модули на амплитудной модуляции (ASK), работающие в нелицензируемом диапазоне 433 и 313 МГц хоть и могут использоваться с Arduino через библиотеку VirtualWire, но все равно представляются мне довольно плохим вариантом.


Слишком сильно они подвержены помехам, устойчиво работают только на низких скоростях, не имеют аппаратного разделения на каналы — несколько одновременно работающих передатчиков будут мешать друг другу. Может быть, именно поэтому шилд-плат для них я пока не встречал.

Полярную противоположность представляют платы семейства Xbee, основанные на протоколах Zigbee, идеально подходящие для организации распределенных сенсорных сетей с автономным питанием. Каждая такая плата сама по себе является устройством с микроконтроллером на борту, и от шилда требуется совсем немного — обеспечить согласование с Arduino. Называются такие шилды обычно «Xbee Shield», но не всегда — например, Libellium разработал Communication Shield (goo.gl/OZDxl). Шилд обязательно содержит два ряда колодок, к которым пристыковывается модуль в формате Xbee.

Единственный недостаток, пожалуй, это цена самого модуля Xbee. Взамен получаем скорость до 250 Кбит/с, дальность в пределах прямой видимости до 90 метров (модификация Xbee PRO может добивать до 1,2 км), шифрование, экономное энергопотребление и возможность ретрансляции данных (два модуля прозрачно общаются друг с другом через третий).

Для обмена данными через GSM обычно используется мобильник, способный работать по последовательному порту на уровнях TTL.
Но сейчас таких все меньше и меньше — их вытесняет USB, для работы с которым требуется быть хостом (а не девайсом, каковым является Arduino). Но, к счастью, производители уже давно штампуют законченные GSM-модули, к которым остается при крутить внешнюю антенну и разъем симки. За примером далеко ходить не надо — GPRS Quadband module for Arduino от Libellium (goo.gl/KueFH), который базируется на GPRS-модеме от SAGEM.
Особенность именно этой модели — GRPS-модуль съемный, и можно передавать не только данные — разведен выход на внешний спикерфон.

Разные шилды

Подводя краткий итог, можно с уверенностью сказать — решения почти всех типичных задач давно существуют в виде шилдов. Но не стоит думать, что на этом все заканчивается. Вот несколько примеров: Radiation Sensor Board от Libellium (счетчик Гейгера).


И вроде бы идея не нова — но все равно, пока Фукусима не грянула, никому в голову не пришло запустить подобное в серийное производство. Другая интересная идея заложена в основу Seeeduino Stalker — она способна при необходимости быть и Arduino-совместимой платой, и шилдом, что достигается при помощи двух параллельных рядов контактов. В настоящий момент идет активная разработка USB Host Shield — он позволит подключать к Arduino устройства, подключаемые в обычных условиях к компьютеру. Существует также масса шилдов для индикации — начиная с семисегментных дисплеев, заканчивая TFT-экранами с тачскином. Меня больше всего заинтересовал LoL-Shield. Вроде бы простая матрица из светодиодов, но на принципе хекосплексирования. Этот хитрый прием использует возможность пинов Atmega находиться в трех состояниях (0, 1 и высокое сопротивление). В результате усердной пайки 126 светодиодов, получаем полноценную матрицу 9х14, не израсходовав даже всех пинов Arduino, а в качестве примеров к библиотеке предлагаются игры «Жизнь», «Тетрис», «Пинг-понг» и «Space Invaders».
Поэтому, если у тебя есть свободное время и оригинальная идея — обязательно найди время поделиться с сообществом — глядишь, тебе и схему поправят, и с разводкой помогут. Ведь нет ничего более захватывающего, чем коллективное творчество.

Шилд своими руками

В качестве примера создадим свой собственный LCD-шилд. Схема подключения популярного алфавитно-цифрового ЖКИдисплея 1602 на контроллере HD44780 возможна в двух вариантах — восьмибитной шиной или четырехбитной. Самое время открыть стратегию шилдостроения Arduino: пинов много не бывает! Стараемся использовать их по минимуму и поэтому выбираем четырехбитную схему (на наше счастье, поддержка такой схемы входит в дистрибутив ArduinoIDE, в виде библиотеки LiquidCrystal).

Используем для построения нашего шилда специальную заготовку — протошилд, который представляет собой макетную плату с небольшими изысками. Самая главная его ценность — это правильно расставленные отверстия для пинов, для идеальной стыковки с Arduino. Так уж получилось, что все колодки пинов расположены на сетке с шагом 2,54 мм, кроме одной (если бы не этот досадный факт, можно было бы взять любой кусочек «дырчатой макетки» и впаять в него стыковочные вилки PLS). Сделано это было специально, чтобы реципиент по рассеянности не вставил шилд наоборот и не пожег на корню будущий шедевр.
Обрати внимание, что схема предусматривает наличие переменного резистора для регулировки контрастности. Это важно! Если забить на это, при правильной в остальном схеме и скетче ничего видно не будет. Подойдет любой на 10-20 кОм, а конкретно на этом протошилде он уже и так предусмотрен — правда подключен ко входу analog0, поэтому придется припаять лишний проводок.

Возьмем кусочек штыревой гребенки PLS и распаяем сначала на контакты дисплея, а затем — на шилд. После этого надо взять монтажный провод и аккуратно, по очереди, зачистить и напаять проводки от дисплея к пинам Arduino согласно схеме — благо, она несложная. У меня интуитивным образом получилось упрятать большую часть под дисплей.

Не так давно Google открыл API для работы Android устройств с USB. Сегодня пришло время пощупать что же это такое и узнать какие возможности нам открываются.



Итак, у нас имеется Arduino Mega 2560, USB Host Shield и HTC Desire с прошивкой cyanogen 7.1.0 RC1 (Android 2.3.4). На всякий случай напомню, что все что будет описываться дальше — работает только начиная с Android 2.3.4 для телефонов и Android 3.1 для планшетов.

Тут стоит отметить что данный USB Host Shield не совсем удачный, особенно в сочетании с Arduino Mega 2560. Первая проблема заключалась в том что данная плата расширения сделана для Arduino UNO, а она отличается от Mega положениями контактов SPI, поэтому пришлось кидать перемычки (см. фото). Второй проблемой, хотя и вполне ожидаемой, стала потребность во внешнем источнике питания для работы этой платы расширения. Более удачной считается USB Host Shield 2.0 от Circuits@Home, но она и дороже.



Плата с перекинутыми SPI контактами

Настройка Arduino ПО

Загрузка прошивки

Google любезно предоставляет свой DemoKit скетч для Arduino. Все что нужно — это открыть его из firmware/demokit/demokit.pde , скомпилировать и залить на плату.

Тестовое Android приложение

В DemoKit пакете также находятся исходники Android приложения для демонстрации возможностей. Google предлагает нам самостоятельно создать Android проект и собрать это приложение. Для начала нам надо будет установить API Level 10. Дальше все просто — создаем Android проект и указываем путь к папке app , в Build Target указываем Google APIs (Platform 2.3.3, API Level 10). Собираем приложение и устанавливаем на телефон. Кто не хочет возится со сборкой — может скачать готовый APK.

Запуск

Просто подключаем наш телефон к USB Host Shield. Если мы все сделали правильно, то на экране появится запрос запуска DemoKit приложения.


Само приложение содержит две вкладки — In (кнопки, джойстик и сенсоры) и Out (светодиоды, реле и сервоприводы).



Я решил что для демонстрации вполне достаточно пары светодиодов и кнопки. Как это все чудо работает можно пронаблюдать на видео.

Немного кода

Arduino

Android

Выводы

Открывая такие возможности Google в первую очередь конечно же рассчитывает на появление большого числа активных Android аксессуаров, но далеко не последнее место занимает тот факт, что по сути мы получаем удобное устройство для взаимодействия с различными датчиками, сенсорами и приводами. Такое устройство запросто может стать мозгом чего-то роботизированного.

Также нельзя забывать о том, что Android устройство для Arduino может выполнять роль платы расширения, в которой есть GPS, Bluetooth, WiFi, акселерометр и многое другое.

Читайте также: