Одним из ключевых преимуществ платформы Arduino является популярность. Популярную платформу активно поддерживают производители электронных устройств, выпускающие специальные версии различных плат, расширяющих базовую функциональность контроллера. Такие платы, совершенно логично называемые платами расширения (другое название: arduino shield, шилд), служат для выполнения самых разнообразных задач и могут существенно упростить жизнь ардуинщика. В этой статье мы узнаем, что такое плата расширения Arduino и как ее можно использовать для работы с разнообразными устройствами Arduino: двигателями (шилды драйверов двигателей), LCD-экранами (шилды LCD), SD-картами (data logger), датчиками (sensor shield) и множеством других.
Плата расширения или Arduino shield?
Давайте сперва разберемся в терминах. Плата расширения Ардуино – это законченное устройство, предназначенное для выполнения определенных функций и подключаемое к основному контроллеру с помощью стандартных разъемов. Другое популярное название платы расширения – англоязычное Arduino shield или просто шилд. На плате расширения установлены все необходимые электронные компоненты, а взаимодействие с микроконтроллером и другими элементами основной платы происходят через стандартные пины ардуино. Чаще всего питание на шилд тоже подается с основной платы arduino, хотя во многих случаях есть возможность запитки с других источников. В любом шилде остаются несколько свободных пинов, которые вы можете использовать по своему усмотрению, подключив к ним любые другие компоненты.
Англоязычное слово Shield переводится как щит, экран, ширма. В нашем контексте его следует понимать как нечто, покрывающее плату контроллера, создающего дополнительный слой устройства, ширму, за которой скрываются различные элементы.
Зачем нужны шилды arduino?
Все очень просто: 1) для того, чтобы мы экономили время, и 2) кто-то смог заработать на этом. Зачем тратить время, проектируя, размещая, припаивая и отлаживая то, что можно взять уже в собранном варианте, сразу начав использовать? Хорошо продуманные и собранные на качественном оборудовании платы расширения, как правило, более надежны и занимают меньше места в конечном устройстве. Это не значит, что нужно полностью отказываться от самостоятельной сборки и не нужно разбираться в принципе действия тех или иных элементов. Ведь настоящий инженер всегда старается понять, как работает то, что он использует. Но мы сможем делать более сложные устройства, если не будем каждый раз изобретать велосипед, а сосредоточим свое внимание на том, что до нас еще мало кто решал.
Естественно, за возможности приходится платить. Практически всегда стоимость конечного шилда будет выше цены отдельных комплектующих, всегда можно сделать аналогичный вариант подешевле. Но тут уже решать вам, насколько критично для вас потраченные время или деньги. С учетом посильной помощи китайской промышленности, стоимость плат постоянно снижается, поэтому чаще всего выбор делается в пользу использования готовых устройств.
Наиболее популярным примерами шилдов являются платы расширения для работы с датчиками, двигателями, LCD-экранами, SD-картами, сетевые и GPS-шилды, шилды со встроенными реле для подключения к нагрузке.
Подключение Arduino Shields
Для подключения шилда нужно просто аккуратно «надеть» его на основную плату. Обычно контакты шилда типа гребенки (папа) легко вставляются в разъемы платы ардуино. В некоторых случаях требуется аккуратно подправить штырки, если сама плата спаяна неаккуратно. Тут главное действовать аккуратно и не прилагаться излишней силы.
Как правило, шилд предназначен для вполне конкретной версии контроллера, хотя, например, многие шилды для Arduino Uno вполне нормально работают с платами Arduino Mega. Распиновка контактов на меге выполнена так, что первые 14 цифровых контактов и контакты с противоположной стороны платы совпадают с расположением контактов на UNO, поэтому в нее легко становится шилд от ардуино.
Программирование Arduino Shield
Программирование схемы с платой расширения не отличается от обычного программирования ардуино, ведь с точки зрения контроллера мы просто подключили наши устрйоства к его обычным пинам. В скетче нужно указывать те пины, которые соединены в шилде с соответствующими контактами на плате. Как правило, производитель указывает соответствие пинов на самом шилде или в отдельной инструкции по подключению. Если вы скачаете скетчи, рекомендованные самим производителем платы, то даже это делать не понадобится.
Чтение или запись сигналов шилдов производится тоже обычным методом: с помощью функций analogRead (), digitalRead (), digitalWrite () и других, привычных любому ардуинщику команд. В некоторых случаях возможны коллизии, когда вы привыкли к оной схеме соединения, а производитель выбрал другую (например, вы подтягивали кнопку к земле, а на шилде – к питанию). Тут нужно быть просто внимательным.
Arduino Sensor Shield
Как правило, эта плата расширения идет в наборах ардуино и поэтому именно с ней ардуинщики встречаются чаще всего. Шилд достаточно прост – его основная задача предоставить более удобные варианты подключения к плате Arduino. Это осуществляется за счет дополнительных разъемов питания и земли, выведенных на плату к каждому из аналоговых и цифровых пинов. Также на плате можно найти разъемы для подключения внешнего источника питания (для переключения нужно установить перемычки), светодиод и кнопка перезапуска. Варианты шилда и примеры использования можно найти на иллюстрациях.
Существует несколько версий сенсорной платы расширения. Все они отличаются количеством и видом разъемов. Наиболее популярными сегодня являются версии Sensor Shield v4 и v5.
Arduino Motor Shield
Данный шилд ардуино очень важен в робототехнических проектах, т.к. позволяет подключать к плате Arduino сразу обычный и серво двигатели. Основная задача шилда – обеспечить управление устройствами потребляющими достаточно высокий для обычной платы ардуино ток. Дополнительным возможностями платы является функция управления мощностью мотора (с помощью ШИМ) и изменения направления вращения. Существует множество разновидностей плат motor shield. Общим для всех них является наличие в схеме мощного транзистора, через который подключается внешняя нагрузка, теплоотводящих элементов (как правило, радиатора), схемы для подключения внешнего питания, разъемов для подключения двигателей и пины для подключения к ардуино.
Arduino Ethernet Shield
Организация работы с сетью – одна из самых важных задач в современных проектах. Для подключения к локальной сети через Ethernet существует соответствующая плата расширения.
Платы расширения для прототипирования
Эти платы достаточно просты – на них расположены контактные площадки для монтажа элементов, выведена кнопка сброса и есть возможность подключения внешнего питания. Предназначение данных шилдов – повысить компактность устройства, когда все необходимые компоненты располагаются сразу над основной платой.
Arduino LCD shield и tft shield
Данный тип шилдов используется для работы с LCD-экранами в ардуино. Как известно, подключение даже самого простого 2-строчного текстового экрана далеко не тривиальная задача: требуется правильно подключить сразу 6 контактов экрана, не считая питания. Гораздо проще вставить готовый модуль в плату ардуино и просто загрузить соответствующий скетч. В популярном LCD Keypad Shield на плату сразу заведены от 4 до 8 кнопок, что позволяет срзау организовать и внешний интерфейс для пользователя устройства. TFT Shield также помогает
Arduino Data Logger Shield
Еще одна задача, которую достаточно трудно реализовывать самостоятельно в своих изделиях – это сохранение данных, полученных с датчиков, с привязкой по времени. Готовый шилд позволяет не только сохранить данные и получать время со встроенных часов, но и подключить датчики в удобном виде путем пайки или на монтажной плате.
Краткое резюме
В этой статье мы с вами рассмотрели только небольшую часть огромного ассортимента всевозможных устройств, расширяющих функциональность ардуино. Платы расширения позволяют сосредоточиться на самом главном – логике вашей программы. Создатели шилдов предусмотрели правильный и надежный монтаж, необходимый режим питания. Все, что вам остается, это найти нужную плату, используя заветное английское слово shield, подключить ее к ардуино и загрузить скетч. Обычно любое программирование шилда заключается в выполнении простых действий по переименованию внутренних переменных уже готовой программы. В итоге мы получаем удобство в использовании и подключении, а также быстроту сборки готовых устройств или прототипов.
Минусом использования плат расширения можно назвать их стоимость и возможный потери эффективности из-за универсальности шилдов, лежащей в их природе. Для вашей узкой задачи или конечного устройства все функции шилда могут быть не нужны. В таком случае стоит использовать шилд только на этапе макетирования и тестирования, а при создании финального варианта своего устройства задуматься о замене конструкцией с собственной схемой и типом компоновки. Решать вам, все возможности для правильного выбора у вас есть.
Шилд расширения для Ардуино Нано не добавляет никакого нового функционала, но делает подключение дополнительных модулей и датчиков более удобным и комфортным. Это возможно благодаря тому, что каждый контакт микроконтроллера выведен на шилд и соседствует с персональными пинами GND (земля) и +5 вольт. Теперь не обязательно использовать макетную плату для разводки питания. Около каждого пина есть свои контакты питания. Это очень удобно для прототипирования проектов «навесным монтажом».
Что еще есть на шилде расширения:
- Разъем для подключения питания.
- Резистор и микросхема AMS1117 для стабилизации питания на 5 В
- Отдельные выводы для интерфейсов SPI и I2C
- Кнопка перезагрузки
- Контактные площадки под форм-фактор Arduino Uno
Данный shield можно использовать как адаптер модели Нано под форм-фактор модели Ардуино Уно. Для этого необходимо самостоятельно припаять контакты в подготовленные отверстия. Обратите внимание, что вы можете припаять контакты типа «папа» снизу платы и использовать эту плату как шилд расширения для Arduino Uno. Если припаять контакты типа «мама» сверху, то вы получите Ардуино Нано в форм-факторе Ардуино Уно. Это позволит использовать множество шилдов, разработанных для модели Uno.
- Цена: $17.99
Arduino — это общее название для серии аппаратных платформ (микрокомпьютеров) на основе микроконтроллеров ATmega. Эти платы могут использоваться как для создания полностью автономных устройств/приборов/игрушек, так и подключающихся к компьютеру и взаимодействующих с каким-либо программным обеспечением. Опишу в одном обзоре зачем и кому всё это надо, пару устройств и некоторые дополнения к ним.А заодно, не отходя от кассы, вас ждёт возможность лично «причаститься к техническому прогрессу».Оффтоп Тех кто дочитает до конца — ждёт небольшой интерактив и наглядная демонстрация с возможностью потереть шаловливые ручки, потыркать кнопки и немного помучить результаты моей скромной деятельности.Вводная Начну с того, что Arduino — это открытая платформа, а это означает что все принципиальные схемы, рисунки печатных плат, исходные коды прошивок, программное обеспечение и т.д. находятся в общем доступе и при желании любой может не покупать эту плату, а самостоятельно собрать из доступных/найденных/купленных радиодеталей, внести свои изменения, скачать прошивку и получить готовое устройство. А самое главное что и купленный и самопальный вариант можно использовать и применять совершенно бесплатно, без каких-либо лицензионных ограничений.По технической части Платы Arduino и их аналоги представляют собой набор из собственно платы, на которой размещён микроконтроллер ATmega (разных версий) съёмный либо впаяный, с которого разведены несколько цифровых и аналоговых (ШИМ) вводов-выводов, а также сопутствующую обвязку, как правило это: — токоограничительные резисторы на вводы-выводы — несколько светодиодов-индикаторов — резонатор (кварцевый или керамический) — кнопка сброса — стабилизатор напряжения +5в и/или +3.3в — микросхема отвечающая на соединение по USB (может не быть в зависимости от версии) — разъём USB (зависит от версии) — разъём внешнего питания (зависит от версии) — на версиях с внешним разъёмом питания — входной защитный диод от переполюсовкиПо программной части Имеется собственная среда разработки, в которой можно писать программы («скетчи») на Си-подобном языке и который люто ненавидят AVR-щики, называя её «птичий язык». Это среда, конечно же, имеет свои недостатки, не даёт полного контроля над всеми возможностями процессора, но при этом очень сильно упрощает жизнь и ускоряет процесс моделирования. За удобство надо платить, да. Скажу, что совершенно не обязательно её использовать, можно писать на чём угодно, например, на том же GCC и WinAVR, благо, сердце Arduino — тот же самый AVR. А самые заядлые хардкорщики могут писать под Ардуино на Си и ассемблере.Кому и зачем нужно? Кому? Глупый вопрос — мне конешно 🙂 Зачем? Для реализации творческого процесса. Если серьёзно, то на основе этих платформ можно соорудить практически всё что угодно (в разумных, конечно, пределах) начиная от охранной системы с кучей функций, типа включения сирены и отправки СМС, и заканчивая разнообразными контрольно-измерительными приборами. Если несерьёзно, то при наличии фантазии и пары сервоприводов можно соорудить какую-нибудь игрушку, поворотное устройство (следящее за солнцем, например, или за фонариком), автокормилку для рыбок, механическую руку, устройство для заварки чая, наливайку для пива и многое другое 🙂Преимущества Нанотехнологии для домохозяек 🙂 Микроэлектроника для ленивых — без паяльника и пайки 🙂 Можно действительно собрать реально действующий прототип какого либо устройства, не прибегая к пайке (правда, чтобы совсем уж не прибегать к пайке придётся покупать, покупать и покупать простейшие вещи, которые можно легко сделать вручную). Помимо простоты технической части, существует большая официальная библиотека примеров (программ, «скетчей») для Arduino с помощью которых можно делать те или иные вещи. Не говоря уже о неофициальных, любительских проектах.Однако, следует оговориться, что эта простота не отменяет наличия, хотя бы минимального количества мозгов и прямых рук. Порой приходится посидеть и серьёзно подумать над реализацией простейшей вещи, которая штатными средствами либо ну никак не хочет получаться, либо просто не предусмотрена…Что имеем на деле (варианты, версии, плюшки, фотки) Заранее прошу прощения за качество фотографий — в отсутствие, на данный момент, нормального фотоаппарата, они сделаны вебкамерой. Моя версия Arduino Uno куплена на Алиэкспрессе, различий с версией которая на BiC практически не имеет, разве что на фотках BiC присутствует надпись «made in Italy» (что, естественно, не так :))). Аппаратно обе версии соответствуют первой ревизии оригинальной Arduino Uno. Я позиционирую лично для себя это устройство как основную плату для проектирования. Точнее для максимально быстрого прототипирования, особенно в сочетании с мегашилдом: На фото может быть не очень понятно, но я поясню, мегашилд не имеет на своём борту никаких электронных компонентов (за исключением одного светодиода и пары резисторов), и представляет из себя очень удобно разведённую схему для подключения датчиков, сервоприводов и т.д. При этом все стандартные выводы так же сохранены. Плюсом является стандартизированная организация выводов — например для подключения сервоприводов не нужно делать разветвитель от «родных» контактов Arduino на питание и землю — всё уже выведено на шилде группами по 3 пина: земля-питание-сигнал. Вот как выглядит этот «сэндвич»: К слову, мегашилд с BiCa приехал со слегка погнутыми ножками, т.к. был просто брошен в большую посылку с антистатическом запаянном пакете, без всякой дополнительной защиты. При вскрытии пакета оказалось, что помимо погнутых ножек, вся плата затыкана отпечатками китайских пальцев густо намазанных акриловым клеем 🙂 Следующая плата Arduino Nano. Не очень удобна для проектирования, но ввиду исключительно маленького размера идеальна для конечного устройства. Особенно если это устройство планируется использовать совместно с компьютером — т.к. она так же имеет USB выход. Для конечного устройства в котором не предполагается контактов с внешним миром можно использовать исключительно дешёвую плату Arduino Pro Mini. Минус этой платы в том что для её программирования нужен либо переходник USB-serial, либо ещё одна плата Arduino с USB выходом. Своей фотки нет, даю с ДХ:Примеры использованияКонтроллер штангенциркуля + вывод на дисплей от Нокии 5510(3310) из обзора про штангенциркульТермометр и гигрометр на основе датчика DHT11 (фигня, DHT22 лучше, но на BiC нету) и вражеского неправославного LCD дисплея HD44780 (нет поддержки кириллицы):Моторизированная вебкамера — управляемая с компьютера (подробности см. ниже)
[Подвал]Официальный Ардуинский сайтarduino.ccArduino Unobuyincoins.com/details/high-quality-arduino-uno-atmega328p-pu-module-atmega8u2-avr-usb-cable-board-product-10252.htmlArduino Nanobuyincoins.com/details/arduino-nano-v3-0-avr-atmega328-p-20au-moudle-board-with-usb-cable-product-10178.htmlArduino Pro Minidx.com/p/arduino-pro-mini-w-atmega328p-electronic-building-blocks-interactive-media-improved-version-104332Мегашилдbuyincoins.com/details/perfect-high-quality-new-arduino-sensor-shield-digital-analog-module-servos-v4-product-9030.htmlМакетка (беспаечная) buyincoins.com/details/high-quality-mini-solderless-breadboard-bread-board-400-contacts-available-product-11082.htmlАкселерометрbuyincoins.com/details/mma7361-angle-sensor-inclination-accelerometer-acceleration-module-arduino-speed-product-10248.html Двухстрочный 16тисимвольный LCD дисплейbuyincoins.com/details/new-character-lcd-module-display-lcm-1602-16×2-hd44780-blue-blacklight-product-9000.htmlСервопривод SG90 (рулевая машинка) buyincoins.com/details/1x-9g-micro-servo-for-rc-helicopter-plane-futaba-hitec-product-3457.htmlДатчик температуры и влажности DHT11buyincoins.com/details/new-dht11-digital-temperature-and-humidity-sensor-product-6732.htmlПроводки-коннекторы (40шт) buyincoins.com/details/40pcs-dupont-wire-color-connector-cable-line-1-pin-new-product-7224.html[Интерактив] К чему всё это может привести, можно посмотреть и даже пощупать (да, да!) здесь (шибко не издевайтесь, комп старенький, при большом онлайне будет подтормаживать)Работает. Антимат потихоньку совершенствуется, не пускает матюки, заодно убирает мусор типа «тест», «111», «ололо» и прочих «ракодилов».Выражаю огромную благодарность всем неравнодушным людям, которые помогали советами и кодом, без которых я бы так быстро не «допилил» игрушку до приемлемого уровня. А заодно и матершинникам, которые сподвигли сделать антимат, и безостановочно снабжали меня своей фантазией, когда изощрялись пролезть через фильтры — благодаря вам я теперь знаю практически все ваши уловки :)))Кот, по просьбам :о)Шедевр называется «Котэ крутен» © неизвестный авторДополнительная информация по просьбамQ: Как долго собиралось?A: Железо — примерно 15 минут, программная часть 3-4 вечера, из-за своих же ошибок.Q: Во сколько обошлось?A: С учётом всех скидок — примерно в 25$ (считая дисплей бесплатным, т.к. самоделка)Q: Какие языки программирования использовались?A: Родной ардуинский для прошивки и вижуал басик 6.0 для web-com прокси.Q: Можно более подробно о материальной и программной части?A:Матчасть: — ардуино уно (мегашилд можно исключить) — две сервы (рулевые машинки по ссылке из обзора) — вебкамера (любая USB) — компутерПрограммное обеспечение: — среда разработки, например родная Arduino — из программного комплекта ардуино — две библиотеки — serial и servo — если просто рулить самому — достаточно виндовс терминала — если так как у меня: апач, пхп, рамдиск (виртуальный диск в памяти для ускорения и разгрузки винчестера), веб-ком прокси (самопальная), и любая программа для вебкамеры, которая либо поток шлёт, либо сохраняет картинки на диск, либо регистриуется аккаунт на смотрикоме и транслируется видеопоток, без нагрузки на свой комп (но будет задержка секунд 7-10)Постскриптум 2013 Сайт уже больше не представляет из себя одинокую страничку, всё переведёно на CMS движок, комп тот же, камера та же, экран — уже другой, в составе шилда, от USB я отказался, перевёл всё на LAN, сервы отработали почти полтора года и до сих пор живы. Используемые источники:- https://arduinomaster.ru/platy-arduino/shildy-i-platy-rasshireniya-arduino/
- https://all-arduino.ru/product/shield-rasshireniya-arduino-nano/
- https://mysku.ru/blog/china-stores/3748.html