01 02.2017
Шильды Arduino пестрят своим разнообразием и функционалом. Дополнительные платы расширяют возможности основного контроллера. Эти платы позволяют обеспечить функции, которые нужны для определённых задач в конкретных проектах. На рынке их навалом. Давайте рассмотрим наиболее популярные и интересные модули для практических применений в разработке устройств.
Из этой статьи вы узнаете:
Приветствую уважаемый посетитель! Меня зовут Гридин Семён, я являюсь автором блога kip-world, обо мне вы можете почитать . Рынок пестрит разнообразием различных плат, в том числе и клонов. Сегодня в этой статье я выделил модули, которые по-моему мнению основные и представляют наибольший интерес. Их основные функции и работу с ними я опишу в следующих сериях статей. Я относительно поделил шильды на несколько групп:
- Коммуникационные;
- Силовые;
- Датчики-сенсоры;
- Модемы;
- Специальные.
Коммуникационные модули позволяют обеспечивать различные способы связи между девайсами, как проводной, так и беспроводной. Платы расширяют функционал в частности и систему в целом. В эту группу входят различные WI-FI, Ethernet, различные интерфейсы, создающую гибкость системы.
Силовые модули — драйверы двигателей, драйверы для шаговиков, сервоприводы. Релейные и транзисторные шильды тоже можно отнести к силовым.
Видеть, слышать и чувствовать система может только через датчики . Их достаточно много. Среди большого числа датчиков существует и экзотика — датчик дыма, датчик влажности почвы, инфракрасный датчик. И, благодаря создателям Ардуино, цена очень демократичная. Так как я работаю в сфере автоматизации, эти же датчики будут стоить в 200-300 раз дороже.
К группе модемов я отнес GPRS-модемы. Работают они с GSM связью. Модули выполняют совершенно специфическую функцию — сбор данных, отправка СМС, приём звонков.
В категорию специальных попадают те, которые сложно определить к какой-либо группе. Разработчики выпускают кучу всяких переходников, пультов, сенсорных панелей, ЖК-индикаторов. Специальный ключ RFID тоже можно отнести в эту группу.
Если чего-то не хватает в списке, пишите в комментариях, я буду дополнять. Для тех, кто впервые связывается с Ардуино предлагаю прочитать про . А сейчас я расскажу о 5 модулях, с которыми мне хотелось бы ознакомиться в первую очередь, и предлагаю их вам!!
Интернет-модуль Ethernet shield W5100
На первое, что обращу внимание это Ethernet shield W5100. Модуль интернет-адаптера для отображения так называемой «визуализации» в браузере. Идеально подходит для системы «умного дома», метеостанции, диспетчеризации (если необходимо следить за физическими параметрами). Существует возможность использования в облачных технологиях .
Описание модуля:
- Поддержка протокола TCP/IP
- Слот для карты памяти microSD
- Уровень напряжения 3.3/5 В
- Совместима с платами Arduino UNO и MEGA
- Уровни системы: UDP, TCP, IPv4, ARP, MAC
GPRS-модем GSM shield SIM900
Следующая в списке плата расширения GSM shield SIM900.Если устройство находится далеко от вас и требуется беспроводная связь, то технология GSM связи для вас. Есть возможность отправлять SMS в случае аварии или какого-нибудь события. Можно применить например в теплице для периодического контроля температуры и влажности.
Характеристики платы расширения:
- Сборка на основе микросхемы SIM900
- Рабочая частота GSM 850/900/1800/1900 МГц
- Управление с помощью AT-команд
- встроенный протокол TCP / UDP
- возможность подключения динамика и наушников, есть возможность отправлять сигналы DTMF и проигрывать записи как на автоответчике
- держатель SIM-карты и GSM антенны
- 12 выводов GPIO (General Purpose Input/Output), 2 ШИМ (широтно-импульсная модуляция) и АЦП (аналогово-цифровой преобразователь)
Есть и дорогие аналоги для более серьёзных и надёжных систем. Совсем недавно я написал программу для взаимодействия GPRS модема ПМ-01 и ПЛК100. В случае возникновения аварии устройство отправляет смс на номер получателя.
WI-FI модуль ESP8266
Еще один способ передачи информации по беспроводной связи, это передача по WI-FI. Для такого случая есть небольшой модуль WI-FI ESP8266.Способ подключения и принцип действия мы рассмотрим позже. Выглядит она таким образом.
Описание модуля:
- Беспроводной интерфейс: Wi-Fi 802.11 b/g/n 2,4 ГГц
- Режимы: P2P (клиент), soft-AP (точка доступа)
- Максимальная выходная мощность: 19,5 дБ·мВт (89 мВт)
- Номинальное напряжение: 3,3 В
- Портов ввода-вывода свободного назначения: 2
- Частота процессора: 80 МГц
Драйвер двигателей L293D
Для управления различных машинок и танчиков на двигателях постоянного тока в основном применяется драйвер двигателей L293D.Существует несколько вариаций подключения — и для шаговых двигателей, и для сервоприводов. Всё зависит от программы, которую вы напишите. Напишите в комментариях, как вы используете данный драйвер? В ближайшее время хочу приобрести данный девайс, очень интересно собрать робота на колёсах. Да, кстати вот он сам:
Его характеристики:
- Cовместим с Arduino Mega 1280 и 2560, UNO, Duemilanove, Diecimila
- 4-х канальное управление
- питание моторов от 4.5В до 36В
- допустимый ток нагрузки 600мА на канал, пиковый ток - 1.2A
- защита от перегрева
- 2 интерфейса с точным таймером Arduino (не будет «дрожания») для подключения сервомоторов на напряжение 5В, если напряжение питания нужно повыше, то подключение по питанию нужно переделать как описано ниже
- возможно одновременно управлять 4 двунаправленными DC коллекторными моторами или 2 шаговыми, и 2 сервомоторами
- разъем для подключения внешнего источника для раздельного питания управляющей логики и моторов
Модуль интерфейса RS-485
Для меня лично интересна ещё вот такая штука — RS485 Shield. Почему? Интерфейс RS-485 является промышленной витой парой для соединения различных промышленных модулей. Шина работает с протоколом ModBUS RTU и ModBUS ASCII. Просто интересно, как будут взаимодействовать Arduino с остальными устройствами по интерфейсу.
Характеристики модуля:
- Питание 5.0 В
- 16 цифровой порт ввода-вывода (в том числе интерфейс I2C)
- 6 аналоговых I/O портов
- Переключатель в режима программирования
- Автоматический / ручной переключатель режима трансивера
- Стандартный интерфейс RS485, мини-интерфейс RS485 (PH2.0) и выводы RS485
Ну, на этом всё, с этими модулями мне бы хотелось поработать больше всего. А что можете предложить вы? Что можно добавить в список? Пишите в комментах...
В следующей статье я расскажу как можно подключить к Ардуино, не пропустите будет интересно... Подпишитесь на обновления!
С уважением, Гридин Семён.
«Шилд» своими руками
В этой статье рассказывается, как сделать собственный «шилд» для платы Arduino , используя для этого беспаечную макетную плату.
Необходимые компоненты
- Маленькая беспаечная макетная плата (Digikey 923273-ND)
- Маленькая печатная плата (Radio Shack 276-150)
- Два простых 8 -контактных гребешка (Jameco 70755 или Digikey AE10048-ND)
- Два 8 -контактных однорядных гребешка для монтажа накруткой (Jameco 78642 или Digikey S7006-ND)
Шаги
- Берем печатную плату.
- Берем гребешки для монтажа накруткой, вставляем их в крайний ряд отверстий на печатной плате и припаиваем.
- Вставляем простые гребешки рядом с гребешками для монтажа накруткой. Припаиваем их.
- Снимаем защитный слой с двусторонней клейкой ленты на макетной плате. Клеим макетную плату к печатной плате рядом с припаянными гребешками.
- Осторожно сгибаем один ряд контактов для монтажа накруткой в сторону другого такого же ряда. Это нужно сделать, потому что расстояние между двумя гребешками на Arduino не соответствует шагу 2,54 мм , как на печатной плате. Да, очень жаль.
- Готово! Финальный продукт выглядит примерно так:
На печатной плате два ряда контактов соединены друг с другом, поэтому использовать провода, чтобы соединить эти ряды друг с другом, не требуется – достаточно простой пайки.
На противоположный угол печатной платы можно нанести немного клея, чтобы он уравновешивал гребешки, а плата держалась ровно.
Использование
Собранный нами «шилд» получился односторонним, поэтому его можно подключить к плате так, чтобы ее верхняя сторона оставалась открытой.
Впрочем, «шилд» можно подключить и традиционным способом, как показано на самой первой картинке к этой статье. В таком виде доступ к разъему для питания и аналоговым контактам особых проблем не доставляет, но кнопку сброса и ICSP -гребешок достать уже сложнее. О, и все это заняло у меня примерно 10 минут работы .
Шилд - это плата дополнения. Я предлагаю разделить шилды на полноразмерные и отдельные модули. Полноразмерные своими очертаниями повторяют форму платы Arduino, будь то UNO, Nano или MEGA. Отдельные модули - это платы произвольной формы, созданные для выполнения определенного набора функций. И те и другие могут быть как универсальными, так и для выполнения узконаправленных задач.
В магазинах можно встретить великое множество шилдов, а при определенной квалификации вы сами можете развести печатную плату, по форме и расположению выводов повторяющую ардуину и собрать свой уникальный. На картинке изображена с набором шилдов.
Начнем с шилда, который не несёт в себе никаких особенных функций, а создан для удобства монтажа ваших проектов. Итак первый в нашем обзоре облегчит монтаж проектов с платой Arduino Nano, правда толку от малых размеров «НАНО» в таком случае ноль.
На плате расположен разъём для подключения штекера от блока пиитания, стабилизатор напряжения, а также клеммные колодки. Они подписаны и соответствуют выводам «Нанки». Кроме того присутствует кнопка «сброс» и светодиод «Питание».
Второй шилд предназначен для платы Uno. На нем расположена беспаечная макетная плата для сборки проекта и выводы, дублирующие те, что на самой ардуине - удобное решение.
Любой аналоговый датчик нуждается в питании и минусовом контакте, когда их много - перемчек становится столько, что разобраться в схеме будет очень трудно. Поэтому конструкторы придумали шилды для таких решений. В них выведены все входы и выходы, а питающие контакты продублированы и размещены рядом.
Вот пример такой платы для Ардуино версии Мега.
Проводная и беспроводная связь
С помощью этих плат можно организовать управление микроконтроллером по сети через кабель Ethernet, например, или беспроводов - через GSM-связь, вставив сим-карту.
Эта плата называется w5100 - содержит Ethernet модуль и модуль SD-кардридера. Это значит, что можно хранить данные, например лог измерений датчиков на карту памяти и управлять системой через web-интерфейс. Чтобы связать с ним ардуино пользуйтесь библиотеками:
Ethernet library;
Обратите внимание внешне он повторяет концепцию Arduino UNO R3, кроме того, он подойдет и на Mega.
Если W5100 вам кажется слишком крупным - то ENC28J60 займет меньше места. К сожалению в нем уже отсутствует SD-модуль.
Минусом является то, что он не может быть монтирован на плату, а выполнен в виде отдельного модуля.
W5500 - еще один вариант Ethernet-шилда. По своей сути - это доработанная версия W5100, оптимизированная в плане скорости и энергоэффективности.
Обратите внимание, на полноразмерных шилдах все пины дублируются клеммной колодкой. К сожалению, шилды используют порты. Конкретно этот задействует MOSI, MISO, SCK, и пин 10, для сигнала CS (выбор адресата для связи).
Если вам нужна беспроводная связь - ваш выбор это Wi-fi шилды, если есть интернет и роутер, а если этого нет - GSM-модули или GPRS Шилды.
На фото официальный шилд. На нём установлен слот под Micro SD-карту памяти, а связывается с микроконтроллером он по SPI-протоколам, через Mini-USB можно обновлять его программное обеспечение. Поддерживает 802.11b/g.
GPRS-шилд от «Амперки» вы видите выше. Вы можете заменить антенну на более мощную. Ближе к зрителю виден слот для SIM-карты, чуть дальше слот под батарейку CR1225. Батарейка на плате нужна для хота часов реального времени, а это немаловажное дополнение к возможностям GPRS-шилда. Вы можете отправлять СМС на него и с него.
С помощью этой платы можно вести контроль и давать команды (или любому другому проекту вашей реализации) находясь на любом удалении. Важно, чтобы вы находились в зоне приема сотовой связи.
Как хранить данные на Arduino?
В проектах не вся информация помещается в память микроконтроллера. Иногда требуется хранить некоторые объемы информации. Первое, что приходит на ум, уже сказано - это запись информации с датчиков, чтобы в дальнейшем изучать как изменяется окружающая среда с течение часов, дней, лет. Отличным примером является - домашняя метеостанция. Это полезно не только ученым-исследователям, но и любителям для общего образования и развития.
Это скорее не шилд, а модуль. Он миниатюрен и легок для повторению, кстати, вот его схема.
Есть и полноразмерный шилд хранения данных. Работает с SD-картами памяти, на борту есть модуль часов реального времени, которые питаются от батарейки CR1220 напряжением в 3 В, что является неплохим бонусом.
Управляем мощной нагрузкой с микроконтроллера
Первое что может прийти в голову - это реле. С их помощью можно коммутировать как цепи постоянного тока, так и с бытовой электросетью 220 Вольт они справятся на ура.
Конкретно тот модуль что изображен ниже может коммутировать 1 кВт 220 В нагрузки (или 5А) по каждому из каналов, для повышения мощности можно либо запараллелить несколько каналов, либо включать этим реле . В таком случае реле со шилда будут играть роль промежуточных усилителей.
Конечно вы можете коммутировать реле так, как я описал в статье , через транзистор и подобрать нужно реле по току, но использовать готовую плату будет надежнее, удобнее и выглядит лучше.
У реле есть один недостаток - ограниченное количество срабатываний - это следствие выгорания контактов. Это бывает из-за возникновения дуги, при размыкании мощной нагрузки (особенно индуктивного характера - это двигателя и т.п.). Сделать такой шилд можно по следующей схеме:
А вот как это выглядит в сборе:
Поэму для включения нагрузки переменного тока можно использовать тиристоры и симисторы. Одна проблема - прямо к ардуине подключать их нельзя, при пробое pn- перехода управляющего электрода, 220 В могут оказаться на плате микроконтроллера и сжечь его. Выход из этой ситуации - использования оптосимистора.
Так как это задача часто становится перед изобретателями, было разработано готовое решение - симисторный shield, его полное название - ICStation 8 Channel EL Escudo Dos Shield for Arduino. Он изначально предназначался для управления свечением «гибкого неона».
У него есть 8 каналов, к которым подключается сеть переменного тока и нагрузка.
Шилды для двигателей
Управление электродвигателем не всегда легкий процесс. В некоторых ситуациях вам может не хватить пинов для реализации поставленной задачи, или алгоритм управления достаточно сложный. С такими платами вы гораздо быстрее одолеете проект своего робота.
Мотор-ШИЛД для ардуино может управлять электродвигателями постоянного тока (4 штуки) или двумя шаговыми моторчиками.
Он построен на базе двух L293. Эта микросхема представляет собой сборку из двух H мостов, это позволяет управлять с возможностью реверса двумя ДПТ, либо 1 шаговым биполярным двигателем. Схемы подключения соответсвенно:
А в левом верхнем углу платы есть две колодки под сервоприводы (плюс, минус и управляющий сигнал). Красным кругом обведено место куда устанавливается перемычка джампер. Если она стоит - то эта плата питается от базовой платы ардуино, а если нет - от внешнего источника на 5 В.
С помощью этого модуля от отечественного производителя можно управлять двумя двигателями постоянного тока, в нём тоже есть джампер объединяющий линии питания микроконтроллера или разъединающий их - для питания от отдельного источника.
Можно управлять двигателями, которые рассчитаны на диапазон напряжение от 5 до 24 Вольт. Вместо 2-х DC-моторов можно использовать 1 однофазный шаговый или запараллелить каналы и подключить 1 мощный DC мотор с током до 4А, а это не мало - 48 Вт при напряжении питания в 24 В.
Для подключения сервопривода нужно три провода - плюс, минус и сигнал, но что делать, если у вас много серв? Ваша плата превратится в месиво из перемычек. Чтобы это избежать есть Мультисерво шилд.
Здесь тоже есть возможность разделения цепей питания, как это было в предыдущем варианте. Итого можно подключить 18 сервоприводов (на плате нумерация от 0 до 17).
Везде есть своя специфика, шилды для необычных задач…
В атмеге328, сердце нашей платы, есть АЦП. Главная проблема в том, что на плате ардуино уно мы видим всего лишь 6 аналоговых входов. Что делать если у нас больше аналоговых датчиков?
Можно собрать две ардуино в единую сеть. Одну использовать в качестве основной, а вторую вспомогательную для изменений и с первой отправлять на сервер сигналы измерений или выводить их на экран… Но это сложно: нужно тратить память на дополнительные строки программного кода для реализации такой системы.
А что если умножить каждый вход на 16? Итого у нас может быть до 16*6=96 аналоговых входов. Это реально с помощью мультиплексора. Он просто переключает по очереди 16 аналоговых каналов на один аналоговый выход, который вы подключаете к такому же входу любого мироконтроллера.
Средствами микроконтроллера Атмега о-о-очень трудно релизовать функцию распознавания голоса, но ардуинщики могут не отчаиваться, есть специальное решение - EasyVR Shield 3.0.
Это готовое, но дорогое решение, на момент написания статьи он стоит почти 100 долларов в России. Сначала шилд запишет вашу команду, затем сравнит её с тем что записано в памяти, определив номер - выполнит её.
Вы можете устроить «диалог с компьютером», он может воспроизводить то, что в нём записано. Без дополнительных усилителей рекомендуется «общаться» с этой платой с расстояния не более 60 см.
Выводим изображение
LCD Keypad shield - это настоящая панель управления. На нём расположен дисплей LCD1602 (16 символов в две строки), и набор кнопок. Из-за них задействовано довольно много портов, например A0 и с D4 по D7 под клавиатуру, а порт D10 - ШИМ-регулятор яркости подсветки. D8 и D9 - сброс и включение.
На самом деле существует много дисплеев совместимых с ардуино. Вернее тех, о которых написано больше всего информации и вы легко их запустите в своей системе. Довольно популярен в кругах самодельщиков дисплей от NOKIA 5110, на выбор есть и OLED и TFT экраны, работающие по I2C. Но они не в «шилдовом» исполнении.
Автономное питание
Довольно необычный шилд в этой подборке, который выполняет обычную задачу. Power shield - это со всеми необходимыми защитами и разъёмом для зарядки. Вроде бы ничего особенного, но это обеспечит завершенный вид вашему проекту, а цепи питания не придется размещать рядом с основными платами.
Заключение
Использование шилдов для всех задач проекта позволит избежать излишнего числа перемычек и соединений, а это снизит количество ошибок и лишних перемычек. После сборки вы получите многоэтажный бутерброд из плат заводского изготовления. Такой подход иногда называют «модульная конструкция». Между прочим, это облегчит обслуживание, ремонт и наладку оборудования.
Энтузиасты практикуют проектирование, разводку и сборку уникальных модулей. Это одна из причин высокой популярности Ардуино не просто как платформы для самоделок, макетов и прототипов, но и как платформы для готовых решений.
Мигать светодиодом и тому подобное — это конечно здорово, но захотелось сделать что-нибудь действительно более-менее стоящее, что можно применить в быту. Наверное самое простое — включать и выключать мощные потребители тока — лампочки, ве нтиляторы, насосы, магнитофоны и т.п. Для этого нам и поможет Реле-Shield. Существуют готовые решения, куча схем в инете. Но приятней сделать своими руками.
Вот. Теперь можно приступать к запайке компонентов. Первым делом перемычки и мелкие элементы (резисторы, диодная сборка, транзисторы).
Самое хлопотное — запайка штырьков-коннекторов.... Но, как-то справился:) Значит и вы сможете. Главное, что бы не было "соплей", "коротышей" и "непропая" :)
Вот несколько фото готового изделия. Скажем так, не выставочный вариант, но все же...
Кстати, снизу видны SMD диоды, стоящие параллельно обмоткам реле. Трансформатор закреплен двумя проволочками.
И заливаем тестовый скейтч:
/*
Test Home made rele Shield (Ghost D. 2012)
Используем цифровые выводы № 7 и №8
*/
void setup() {
//
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
}
void loop() {
digitalWrite(7, HIGH); // Включаем первое реле
delay(2000); // ждем
digitalWrite(8, HIGH); //Включаем второе реле
delay(2000);
digitalWrite(8, LOW); // Выключаем второе реле
delay(2000);
digitalWrite(7, LOW); // выключаем первое реле
delay(2000); //
}
Наш новый шилд щелкает релюшками. Вуаля!!!
P.S. В моем варианте, в ходе тестирования, достаточно сильно греется трансформатор. То ли на БП (откуда я его выковырял) неверно была указана информация (типа 300 мА), то ли с ним какая-то неприятность...