Модули ардуино: восемь важнейших электронных устройств
Содержание:
Что купить для первого проекта Arduino
Итак, вы готовы приступить к сборке своих первых ардуино проектов и стоите перед выбором – что нужно для этого приобрести. Список доступных компонентов огромен и если разбираться с этим самостоятельно, то можно потратить слишком много драгоценных времени и сил. Далеко не все понадобится сразу, поэтому нужно понимать, без чего нельзя обойтись, а что можно купить позже.
Как правило, список обязательного оборудования «must have» для начинающих выглядит следующим образом:
- Плата контроллера. Как правило, это Arduino Uno – с нее проще всего начать.
- Макетная плата.
- «Россыпь» резисторов и светодиодов. Для первого проекта хватит сопротивления номиналом 220 Ом и самых простых светодиодов.
- Соединительные провода.
- Простейшие датчики, например, кнопки и переменные резисторы
В дальнейшем список необходимых компонентов будет пополняться:
- Датчики для проектов: температуры, освещения, расстояния, движения и многие другие.
- Корпуса и боксы для ардуино и компонентов.
- Разнообразные платы расширения (шилды).
- Система питания: блоки питания, преобразователи, контроллеры и наборы батареек и аккумуляторов с корпусами.
- Экраны и дисплеи
- Реле и модули сопряжения c сетями высокого напряжения.
- Моторы, серводвигатели, шаговые двигатели, насосы, помпы и т.д.
- Системы коммуникации и беспроводной связи
Шилды Ethernet Shield для Arduino Uno или Nano
Наиболее удобным способом работы с W5100 является использование готовых шилдов Ethernet Shield для Arduino Uno или Nano. На таких модулях уже выполнены все необходимые обвязки, шилд просто вставляется в соответствующие разъемы платы и вам остается только загрузить скетч. Естественно, что при желании к плате могут быть подключены и другие устройства.
Arduino Ethernet Shield
Подключение платы расширения происходит через соединение RJ-45. Плата обладает встроенным слотом SD/MicroSD , который используется для хранения файлов, используемых для подключения и передачи по локальной сети. Такой слот совместим со всеми платами Arduino/Genuino, т.е. работать с данными на карте можно с помощью стандартной библиотеки SD Library. На плате расширения также можно найти кнопку перезагрузки . питания. Ранние версии платы расширения не дружили с ардуино мега, там требовался ручной сброс после поступления питания.
Если плата оснащена POE модулем (питание подается по витой паре), то шилд будет соответствовать следующим спецификациям:
- Совместим со стандартом IEEE3af.
- Имеет низкие пульсации на выходе.
- Защищает от явлений перегрузки и короткого замыкания.
- Эффективно преобразует напряжение.
- Имеет изоляцию 1500 вольт на точке между «вход-выход»
По умолчанию плата не комплектуется данным модулем, нужно находить соответствующую модель.
Назначение светодиодов Ethernet Shield:
- PWR показывает наличие питания на плате.
- LINK светится при наличии сети и мигает при передаче/приеме данных.
- FULLD обозначает сетевое полнодуплексное соединение.
- 100M обозначает сетевое соединение со скоростью 10мбит/сек.
- RX мигает при приеме экраном данных.
- TX мигает при отправке данных экраном.
- COLL мигает при обнаружении сетевых конфликтов.
Кроме этих имеются еще пара светодиодов на гнезде rj 45, один из которых при подключенном шнуре светится, а другой мерцает при поступлении данных.
Ehternet для Arduino Nano
Отдельного упоминания заслуживает модуль Arduino Nano Ethernet. Он выполнен в формфакторе, облегчающим подключение к плате Nano v 3.0, но обладает практически такими же возможностями, что и “обычный” вариант для Uno. В основе шилда лежит микросхема ENC28J60.
Шилд Ethernet Arduino Nano Shield
Модуль точно так же имеет разъем RJ-45, слот для SD и в некоторых модификациях тоже оснащен PoE контроллером.
Плата расширения или Arduino shield?
Давайте сперва разберемся в терминах. Плата расширения Ардуино – это законченное устройство, предназначенное для выполнения определенных функций и подключаемое к основному контроллеру с помощью стандартных разъемов. Другое популярное название платы расширения – англоязычное Arduino shield или просто шилд. На плате расширения установлены все необходимые электронные компоненты, а взаимодействие с микроконтроллером и другими элементами основной платы происходят через стандартные пины ардуино. Чаще всего питание на шилд тоже подается с основной платы arduino, хотя во многих случаях есть возможность запитки с других источников. В любом шилде остаются несколько свободных пинов, которые вы можете использовать по своему усмотрению, подключив к ним любые другие компоненты.
Англоязычное слово Shield переводится как щит, экран, ширма. В нашем контексте его следует понимать как нечто, покрывающее плату контроллера, создающего дополнительный слой устройства, ширму, за которой скрываются различные элементы.
Подключение Arduino Shields
Для подключения шилда нужно просто аккуратно «надеть» его на основную плату. Обычно контакты шилда типа гребенки (папа) легко вставляются в разъемы платы ардуино. В некоторых случаях требуется аккуратно подправить штырки, если сама плата спаяна неаккуратно. Тут главное действовать аккуратно и не прилагаться излишней силы.
Как правило, шилд предназначен для вполне конкретной версии контроллера, хотя, например, многие шилды для Arduino Uno вполне нормально работают с платами Arduino Mega. Распиновка контактов на меге выполнена так, что первые 14 цифровых контактов и контакты с противоположной стороны платы совпадают с расположением контактов на UNO, поэтому в нее легко становится шилд от ардуино.
Пример использования модуля
Примеры того, как можно применять данный чип, уже частично описаны выше. Подробнее стоит рассмотреть самые популярные решения:
- Весы через hx711, о которых мы и поговорим ниже. Здесь система достаточно простая: состоит из датчика, МК и самого чипа. Логика построения кода и самого проекта также незамысловата, достаточно всё это подключить последовательно и в правильном порядке. Естественно, ко всему вышеперечисленному, стоит докупить интерфейс, который будет выводить полученные данные. Или же специальный блютуз модуль, позволяющий подключить систему к смартфону и смотреть всю информацию уже непосредственно на нём. Всё зависит от того, каким проект вы видите сами. Также, для большего усиления сигнала, если потребуется, можно последователь подсоединять несколько чипов.
- Датчики на различных устройствах, от 3Д принтера, до специальных приспособлений для тестирования продукции. Чип выдаёт данные именно о давлении, и уже через формулы в коде вы их преобразовываете в килограммы веса. Соответственно, если нужно измерить силу, достаточно применить соответствующие алгоритмы перевода единиц, и у вас на руках будет уже совершенно другое устройство. Сферы его применения зависят исключительно от фантазии инженера, но чаще всего такие датчики используют именно в 3Д-принтерах, по понятным причинам.
Программирование EV3 на RobotC
Среда программирования RobotC специально разработана для образовательной робототехники. Этот язык может использоваться и новичками, и опытными программистами и является кросс-платформенным. Есть базовый и расширенный режим программирования.
В среде программирования присутствует C-подобный язык и язык RobotC. Язык RobotC – это переходный язык от визуального программирования к текстовым блокам. Для использования RobotC требуется перепрошивка микроконтроллера EV3. Использовать RobotC можно со многими робототехническими платформами. Это такие платформы как :
- VEX IQ;
- VEX CORTEX (EDR);
- VEX PIC (Legacy Support);
- LEGO MINDSTORMS EV3;
- LEGO MINDSTORMS NXT;
- TETRIX;
- RCX (поддержка прежних версий);
- UNO Arduino / MEGA 1280, MEGA 2560;
Среда программирования RobotC похожа на среду программирования Visual Studio и имеет интерфейс на английском языке. RobotC является платным с десятидневным бесплатным периодом.
После окончания бесплатного периода нужно приобретать лицензию. Стоимость годовой лицензии:
- На один компьютер 49 долларов;
- На шесть рабочих мест 149 долларов;
- На тридцать рабочих мест 299 долларов.
- Кроме этого предлагаются бессрочные лицензии.
Операционная система для RobotC должна быть из семейства Microsoft Windows. При помощи среды программирования RobotC можно создавать эффективные программы с использованием сложных математических выражений.
Как подключить модуль Ethernet к Arduino
Подключение модулей w5100 к ардуино осуществляется через SPI. При наличии некоторого опыта работы c платформой никаких трудностей это вызвать не должно. В самом простом случае нужно просто “надеть” плату шилда, вставив в соответствующие разъемы платы Uno или Nano. В случае использования отдельного модуля подключить w5100 к ардуино можно через стандартные SPI-выводы.
Нужно помнить, что в Arduino Uno для SPI выделены пины 11, 12, 13. В Arduino Mega – 50, 51, 52. На шилде для Uno SS сигнал связан с 10 пином. На плате Mega за SS отвечает пин 53, но он не используется. Не смотря на этой, вам нужно обязательно установить его в режим OUTPUT с помощью функции pinMode.
Распиновка шилда с описанием элементов платы для Arduino Uno представлена на следующем рисунке.
Схема шилда Arduino Ethernet Shield
После подключения внешнего модуля к арудино нужно будет подключить его к уже существующей сетевой инфраструктуре через витую пару с RJ45 разъемом. Причем подключать можно и к WiFi роутеру, что позволяет вашему проекту выходить на связь в беспроводном режиме (провод от ардуино до роутера все равно понадобится).
Выполнив физическое подключение, останется сделать только последний, но самый сложный и важный шаг. Нужно написать и загрузить в плату соответствующий скетч, который превратит плату в сервер, отвечающий на запросы удаленных устройств или в клиента, собирающего данные с серверов или отправляющего на них данные.
Описание платы Arduino Leonardo
Платформа Ардуино позволяет создавать самые разнообразные автономные устройства, но вот при подключении к компьютеру традиционных плат Uno, Nano, Mega невозможно было заставить их работать как обычную периферию – например, мышки или клавиатуры. Нельзя просто подключить обычный джойстик через ардуино уно к компьютеру и управлять им, например, курсором – придется устанавливать приложение на самом компьютере, которое будет интерпретировать коды с последовательного порта и устанавливать курсор в нужное место.
Плата Arduino Leonardo существенно расширяет возможности для подключения Arduino к компьютеру. Она рассматривается компьютером как стандартное HID-устройство и может напрямую слать нужные управляющие сигналы. Нельзя сказать, что эта плата может заменить Uno, но обладая уникальными свойствами, она может стать основной новых очень интересных и необычных проектов.
В основе Leonardo лежит достаточно продвинутый микроконтроллер ATmega32u4. Сама плата достаточно сильно похожа на Uno, на ней можно найти два десятка входов и выходов, разъем micro-USB, кнопка для перезагрузки, а также разъемы ICSP и силовой вход. Питание платы стандартное для ардуино, рекомендуемой напряжение 7-12 вольт.
Количество цифровых входов и выходов 20, а аналоговых — 12. К обычным аналоговым пинам A0-A5 тут добавляются еще пины 4,6,8, 9,10, 12, подключенные к АЦП. Встроенная flash-память имеет объем 32 КБ, из которых четыре предназначены загрузчику. ОЗУ устройства 2,5 КБ, а тактовая частота равна 16 МГц.
Особенности платы Arduino Leonardo (некоторые из них являются общими для любых устройств на микроконтроллеров ATMega):
- Возможность прямого подключения, от внешнего источника питания или через USB. Выбор питания осуществляется в автоматическом режиме. Платформа работает при подаче напряжения в пределах от 6 до 20 Вольт.
- Программирование производится с помощью драйвера Arduino Leonardo. Микроконтроллер в основе устройства поставляется уже с загрузчиком, что упрощает установку ПО. Для связи применяется протокол AVR109.
- Предусмотрена автоматическая перезагрузка (нет необходимости нажимать дополнительную кнопку). Процесс запускается при открытии виртуального CDC COM-порта со скоростью в 1200 бод. После этого система перезагружается. При желании можно активировать процесс вручную с помощью специальной кнопки Reset. При подаче питания контроллер сразу работает с учетом установленного ПО.
- В устройстве предусмотрен предохранитель, обеспечивающий защиту от повышенных токов перегруза и КЗ в системе. Несмотря на наличие такой опции во всех ПК, дополнительная надежность не бывает лишней. Вставка плавкая перегорает при протекании тока больше 0,5 Ампер. Цепочка разрывается до момента восстановления нормального режима.
- Плата Arduino Leonardo имеет стандартные для Uno габариты — всего 69 на 53 мм. Вне границы устройства выходит только силовой разъем. Расстояние между седьмым и восьмым выводом равно 4 мм, а в остальном — 2,5 мм.
В целом, плата выглядит довольно традиционно, но отдельного внимания заслуживают разъемы платы, на которых остановимся подробно.