Open
Close

Многофункциональный шилд ардуино. Самые интересные шилды для Arduino GPRS-модем GSM shield SIM900

Шилд - это плата дополнения. Я предлагаю разделить шилды на полноразмерные и отдельные модули. Полноразмерные своими очертаниями повторяют форму платы 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 - это со всеми необходимыми защитами и разъёмом для зарядки. Вроде бы ничего особенного, но это обеспечит завершенный вид вашему проекту, а цепи питания не придется размещать рядом с основными платами.

Заключение

Использование шилдов для всех задач проекта позволит избежать излишнего числа перемычек и соединений, а это снизит количество ошибок и лишних перемычек. После сборки вы получите многоэтажный бутерброд из плат заводского изготовления. Такой подход иногда называют «модульная конструкция». Между прочим, это облегчит обслуживание, ремонт и наладку оборудования.

Энтузиасты практикуют проектирование, разводку и сборку уникальных модулей. Это одна из причин высокой популярности Ардуино не просто как платформы для самоделок, макетов и прототипов, но и как платформы для готовых решений.

Занимаясь роботостроением нам рано или поздно придется задуматься о сборке платы для управления двигателями. В случае если вам нужна фиксированная скорость моторов, без потери мощности, то лучше собрать реле шилд. В случае, если вам нужна плавная регулировка скорости вращения моторов и вы готовы ограничиться максимально потребляемым током мотора в 600мА, тогда читаем эту статью и собираем плату управления на широко известной микросхеме L293D. Встречайте Motor shield L293D .

Посмотрев даташит на последнюю микруху, можно понять, что она включает в себя 4 логических элемента И-НЕ. Возможна замена 74HC00 на советские аналоги К155ЛАЗ К155ЛА8. Принцип его работы можно понять, посмотрев на рисунок приведенный ниже (в зависимости от подаваемых сигналов на входы а & b мы получаем значение на выходе с). На рисунке также приведена "таблица истинности" для данного элемента.

Смыслом использования микросхемы 74HC00 в нашем устройстве является возможность менять единицу и ноль местами на выводах Output1 и Output2 микросхемы L292D, реверсируя этим направление вращения мотора, используя для этого только один вывод контроллера.

Направление вращения моторов мы задали, но без подачи питания на вывод Enable1 двигатель вращаться не будет. Подачей ШИМ сигнала именно на этот вывод мы и будем управлять скоростью вращения мотора. Более подробно про принцип работы L293D можно почитать .

Управление 1ым мотором (пин 4 - задаем направление вращения, пин 3 (ШИМ ATmega 168,328) разрешение вращения и регулировка скорости)

Управление 2ым мотором (пин 7 - задаем направление вращения, пин 5 (ШИМ ATmega 168,328) разрешение вращения и регулировка скорости)

В завершение вышесказанного, прикрепляю принципиальную схему (кликабельна).

Для управления скоростью моторов, выбраны оставшиеся ШИМ выводы (3, 5), которые, правда, доступны только на ATmega168, 328.

На мой взгляд, при использовании Мега8 лучше потерять возможность регулирования скорости движения, зато у вас будут доступны 3 свободных вывода (ШИМ на ATMEGA8 (9, 10, 11)) для управления сервоприводами, да и 8ую на 328ую можно заменить в любой момент, получив этим доступ к регулировке скорости.

Работа с серво

На плату установлены четыре разъема для подключения сервоприводов (6, 9, 10, 11).

На плате Ардуино уже имеется стабилизатор напряжения серии 7800, а именно 7805, который должен обеспечивать стабильное напряжение для работы контроллера. Во избежание просадки напряжения в цепи питания контроллера при резком запуске мощных сервоприводов - решено питать силовую серво часть от отдельного стабилизатора.

КР142ЕН5А является линейным стабилизатором, а это подразумевает, что вся преобразуемая энергия переводится в тепло и при подключении нагрузки стабилизатор начинает нагреваться прямо пропорционально величине потребляемого тока. Ввиду этого рекомендуется посадить стабилизатор на радиатор.

При использовании маломощных сервоприводов типа рекомендую использовать пятивольтовый стабилизатор с маркировкой 7805 он же КР142ЕН5А. Пяти вольт для питания сервоприводов такого типоразмера будет достаточно с головой.

В архиве лежат две папки и список деталей

. Папка MSV1DIY1 включает в себя шаблон ПП совместимой ТОЛЬКО с Arduino DIY (USB, COM), имеющими дополнительный выход VTG INPUT, напряжение на котором берется еще до защитного диода. При такой совместимости возможно запитывать и Ардуину от шилда, и силовую часть шилда от Ардуины, и стабилизатор для питания сервоприводов от Ардуино.

. Папка MSV1DIY2 включает в себя шаблон платы совместимой с оригинальными Arduino.

Открываем фото => Печать => Во всю страницу

Разница состоит в том, что возможное соединение питаний происходит на пине Vin Arduino. Напряжение на этом выходе получается равным входному минус потеря напряжения на защитном диоде (подаем к примеру 8 Вольт на разъем питания Ардуино, получаем примерно 7.4 Вольт на выходе Vin, а, следовательно, и на питание силовой части реле шилда), также и максимальный ток через диод ограничен 1000мА. Терять 0.7 вольта впустую не всегда позволительно. Выход из этой ситуации прост: запитывать не шилд от Ардуины, а Ардуину от шилда,тем самым минуя защитный диод.

Этот вариант также можно использовать и с самодельными версиями Ардуино по тому же принципу.

Для облегчения распайки smd компонентов с обратной стороны платы, где нет маркировки, приведу картинку.

MSV1DIY1

MSV1DIY2

Как правило, знакомство с аппаратной платформой Arduino начинается с подключения простейших периферийных устройств: светодиодов, кнопок, зуммеров и т.п. Обычно для этого схемы собирают на макетной плате, но возможен другой вариант. В продаже имеется шилд на котором уже скомпонована наиболее широко распространенная простая периферия. Данный многофункциональный шилд был приобретен на Али за 2 доллара.

Устройство поставляется в антистатическом пакете. Модуль имеет габариты 69 х 53 х 20 мм, масса 24,4 г.

Устройство рассчитано на совместную работу с платами Arduino UNO, Arduino Leonardo и Arduino Mega, хотя, разумеется, используя провода можно подключить данное устройство к любой плате семейства Arduino. Впрочем, последнее кажется автору настоящего обзора не рациональным, так как в этом случае утрачивается главное достоинство данной платы – простота монтажа.

Следует отметить, что при установке данной платы поверх классической Arduino UNO, плата встает с небольшим перекосом, причиной этого является достаточно крупный разъем USB-BF на плате Arduino UNO . Разумеется, на плате Arduino Leonardo такой проблемы не будет. Впрочем, на работе данного шилда это ни как не отразилось.

На плате имеется 4 семисегментных индикатора, включенных через сдвиговые регистры 74HC595, рядом с которыми располагается кнопка перезагрузки и разъем APC220 для подключения модулей Bluetooth или голосового модуля .

Кроме этого на плате имеется четыре красных светодиода, подключенные к портам D10, D11, D12, D13 платы Arduino. Зуммер подключается к порту D3, следует заметить, что звукоизлучатель оснащен встроенным генератором, так что воспроизвести простую мелодию с его помощью не получится. В нижней части платы располагается подстроечный резистор, подключенный к порту A0.

Три кнопки, подсоединены к портам A1, A2, A3 (цифровые порты D15, D16, D17, соответственно). Четыре трехконтактных разъема подключены портам D5, D6, D9, A5 и предназначены для подключения внешних устройств. Завершает список устройств разъем для подключения аналогового LM35 или цифрового DS18B20 датчиков температуры. Датчики подключаются к порту A4. Перемычка J1 подключает или отключает резистор 10 кОм для корректной работы датчиков

Управление светодиодами и звуковым излучателем ничем не отличается от управления любым простым цифровым устройством. Для примера можно помигать светодиодами и по пищать зуммером с помощью программы port_D.

Работа с потенциометром, также может быть описана классическим примером AnalogInput , который при помощи переменного резистора управляет частотой мигания светодиода, подключенного к порту D13.

Можно попробовать по управлять светодиодами с помощью кнопок, для этого надо загрузить программу _3_LED_with_button

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

Проверить их работоспособность можно с помощью программы _7seg

В принципе на основе данного шилда, без каких либо аппаратных доработок можно собирать разнообразные таймеры, например таймер обратного отсчета Count_Down_Timer . Таймер позволяет задавать временные промежутки от 10 сек до 60 мин 50 сек с шагом 10 сек. В этом таймере кнопкой A2 устанавливаются минуты, кнопкой A3 – секунды, а кнопка A1 запускает обратный отсчет. По окончании заданного отрезка времени раздается звуковой сигнал.

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

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

Здесь вопрос в другом, если целью является создать прототип устройства за минимальное время, то лишние тривиальные операции это как раз то, что собственно отвлекает от творчества. По сути данный шилд укладывается в идеологию покупки удобств и собственного свободного времени за деньги.

Полезные ссылки

  1. http://radioskot.ru/blog/raspinovka_usb_i_micro_usb/2013-09-11-97
  2. http://publicatorbar.ru/2017/12/21/arduino-multi-function-shield/
  3. http://robocraft.ru/blog/arduino/59.html
  4. https://www.youtube.com/watch?v=_z263RK31QA

Обзор подготовил Denev.

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

В этой статье рассказывается, как сделать собственный «шилд» для платы Arduino , используя для этого беспаечную макетную плату.

Необходимые компоненты

  • Маленькая беспаечная макетная плата (Digikey 923273-ND)
  • Маленькая печатная плата (Radio Shack 276-150)
  • Два простых 8 -контактных гребешка (Jameco 70755 или Digikey AE10048-ND)
  • Два 8 -контактных однорядных гребешка для монтажа накруткой (Jameco 78642 или Digikey S7006-ND)

Шаги

  1. Берем печатную плату.
  2. Берем гребешки для монтажа накруткой, вставляем их в крайний ряд отверстий на печатной плате и припаиваем.
  3. Вставляем простые гребешки рядом с гребешками для монтажа накруткой. Припаиваем их.
  4. Снимаем защитный слой с двусторонней клейкой ленты на макетной плате. Клеим макетную плату к печатной плате рядом с припаянными гребешками.
  5. Осторожно сгибаем один ряд контактов для монтажа накруткой в сторону другого такого же ряда. Это нужно сделать, потому что расстояние между двумя гребешками на Arduino не соответствует шагу 2,54 мм , как на печатной плате. Да, очень жаль.
  6. Готово! Финальный продукт выглядит примерно так:

На печатной плате два ряда контактов соединены друг с другом, поэтому использовать провода, чтобы соединить эти ряды друг с другом, не требуется – достаточно простой пайки.

На противоположный угол печатной платы можно нанести немного клея, чтобы он уравновешивал гребешки, а плата держалась ровно.

Использование

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

Впрочем, «шилд» можно подключить и традиционным способом, как показано на самой первой картинке к этой статье. В таком виде доступ к разъему для питания и аналоговым контактам особых проблем не доставляет, но кнопку сброса и ICSP -гребешок достать уже сложнее. О, и все это заняло у меня примерно 10 минут работы .

Мигать светодиодом и тому подобное — это конечно здорово, но захотелось сделать что-нибудь действительно более-менее стоящее, что можно применить в быту. Наверное самое простое — включать и выключать мощные потребители тока — лампочки, ве нтиляторы, насосы, магнитофоны и т.п. Для этого нам и поможет Реле-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 мА), то ли с ним какая-то неприятность...