Как сделать умный дом на Arduino своими руками. Настройка плат Arduino при первом подключении к ПК Программирование mega 2560

Arduino Mega построена на микроконтроллере ATmega2560 (). Плата имеет 54 цифровых входа/выходов (14 из которых могут использоваться как выходы ШИМ), 16 аналоговых входов,4 последовательных порта UART, кварцевый генератор 16 МГц, USB коннектор, разъем питания, разъем ICSP и кнопка перезагрузки. Для работы необходимо подключить платформу к компьютеру посредством кабеля USB или подать питание при помощи адаптера AC/DC, или аккумуляторной батареей. Arduino Mega 2560 совместима со всеми платами расширения, разработанными для платформ или Duemilanove .

Схема и исходные данные

Краткие характеристики
Микроконтроллер ATmega2560
Рабочее напряжение
Входное напряжение (рекомендуемое) 7-12В
Входное напряжение (предельное) 6-20В
Цифровые Входы/Выходы 54 (14 из которых могут работат также как выходы ШИМ)
Аналоговые входы 16
Постоянный ток через вход/выход 40 mA
Постоянный ток для вывода 3.3 В 50 mA
Флеш-память 256 KB (из которых 8 КB используются для загрузчика)
ОЗУ 8 KB
Энергонезависимая память 4 KB
Тактовая частота 16MHz
Питание

Arduino Mega может получать питание как через подключение по USB, так и от внешнего источника питания. Источник питания выбирается автоматически.

Внешнее питание (не USB) может подаваться через преобразователь напряжения AC/DC (блок питания) или аккумуляторной батареей. Преобразователь напряжения подключается посредством разъема 2.1 мм с положительным полюсом на центральном контакте. Провода от батареи подключаются к выводам Gnd и Vin разъема питания (POWER).

Платформа может работать при внешнем питании от 6 В до 20 В. При напряжении питания ниже 7 В, вывод 5V может выдавать менее 5 В, при этом платформа может работать нестабильно. При использовании напряжения выше 12 В регулятор напряжения может перегреться и повредить плату. Рекомендуемый диапазон от 7 В до 12 В.

Плата Mega2560, в отличие от предыдущих версий плат, не использует FTDI USB микроконтроллер. Для обмена данными по USB используется микроконтроллер Atmega8U2, запрограммированный как конвертер USB-to-serial.

Выводы питания:

  • VIN . Вход используется для подачи питания от внешнего источника (в отсутствие 5 В от разъема USB или другого регулируемого источника питания). Подача напряжения питания происходит через данный вывод. Если питание подается на разьем 2.1mm, то на этот вход можно запитаться.
  • 5V . Регулируемый источник напряжения, используемый для питания микроконтроллера и компонентов на плате. Питание может подаваться от вывода VIN через регулятор напряжения, или от разъема USB, или другого регулируемого источника напряжения 5 В.
  • 3V3. Напряжение на выводе 3.3 В генерируемое микросхемой FTDI на платформе. Максимальное потребление тока 50 мА.
  • GND. Выводы заземления.
Память

Микроконтроллер ATmega2560 имеет: 256 кБ флеш-памяти для хранения кода программы (4 кБ используется для хранения загрузчика), 8 кБ ОЗУ и 4 Кб EEPROM (которая читается и записывается с помощью библиотеки EEPROM).

Входы и Выходы

Каждый из 54 цифровых выводов Mega, используя функции pinMode() , digitalWrite() , и digitalRead() , может настраиваться как вход или выход. Выводы работают при напряжении 5 В. Каждый вывод имеет нагрузочный резистор (стандартно отключен) 20-50 кОм и может пропускать до 40 мА. Некоторые выводы имеют особые функции:

  • Последовательная шина: 0 (RX) и 1 (TX); Последовательная шина 1: 19 (RX) и 18 (TX); Последовательная шина 2: 17 (RX) и 16 (TX); Последовательная шина 3: 15 (RX) и 14 (TX). Выводы используются для получения (RX) и передачи (TX) данных TTL. Выводы 0 и 1 подключены к соответствующим выводам микросхемы последовательной шины ATmega8U2.
  • Внешнее прерывание: 2 (прерывание 0), 3 (прерывание 1), 18 (прерывание 5), 19 (прерывание 4), 20 (прерывание 3), и 21 (прерывание 2). Данные выводы могут быть сконфигурированы на вызов прерывания либо на младшем значении, либо на переднем или заднем фронте, или при изменении значения. Подробная информация находится в описании функции attachInterrupt().
  • PWM: 2 до 13 и 44-46. Любой из выводов обеспечивает ШИМ с разрешением 8 бит при помощи функции analogWrite() .
  • SPI: 50 (MISO), 51 (MOSI), 52 (SCK), 53 (SS). Посредством данных выводов осуществляется связь SPI, например, используя библиотеку SPI . Также выводы SPI могут быть выведены на блоке ICSP, который совместим с платформами Uno, Duemilanove и Diecimila.
  • LED: 13. Встроенный светодиод, подключенный к цифровому выводу 13. Если значение на выводе имеет высокий потенциал, то светодиод горит.
  • I2C: 20 (SDA) и 21 (SCL). Посредством выводов осуществляется связь I2C (TWI). Для создания используется библиотека Wire (информация на сайте Wiring). Расположение выводов на платформе Mega не соответствует расположению Duemilanove или Diecimila.

На платформе Mega2560 имеется 16 аналоговых входов, каждый разрешением 10 бит (т.е. может принимать 1024 различных значения). Стандартно выводы имеют диапазон измерения до 5 В относительно земли, тем не менее имеется возможность изменить верхний предел посредством вывода AREF и функции analogReference().

Дополнительная пара выводов платформы:

  • AREF. Опорное напряжение для аналоговых входов. Используется с функцией analogReference() .
  • Reset. Низкий уровень сигнала на выводе перезагружает микроконтроллер. Обычно применяется для подключения кнопки перезагрузки на плате расширения, закрывающей доступ к кнопке на самой плате Arduino.
Связь

На платформе Arduino Mega2560 установлено несколько устройств для осуществления связи с компьютером, другими устройствами Arduino или микроконтроллерами. ATmega2560 поддерживает 4 порта последовательной передачи данных UART для TTL. Установленная на плате микросхема ATmega8U2 направляет один из интерфейсов через USB, предоставляя виртуальный COM порт программам на компьютере (машинам под упровлением Windows для корректной работы с виртуальным COM портом необоходим.inf файл, системы на базе OSX и Линукс, автоматически распознаю COM порт). Утилита мониторинга последовательной шины (Serial Monitor) среды разработки Arduino позволяет посылать и получать текстовые данные при подключении к платформе. Светодиоды RX и TX на платформе будут мигать при передаче данных через микросхему ATmega8U2 и USB подключение (но не при использовании последовательной передачи через выводы 0 и 1).

Программирование

Микроконтроллер ATmega2560 поставляется с записанным загрузчиком, облегчающим запись новых программ без использования внешних программаторов. Связь осуществляется оригинальным протоколом STK500.

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

Код прошивки для контроллера ATmega8U2 доступен для свободного скачивания . Контроллер ATmega8U2 имеет собственный DFU загрузчик, который может быть активирован замыканием джампера на обратной стороне платы (рядом с картой Италии) и перезагрузкой контроллера. Для записи новой прошивки возможно использовать Atmel"s FLIP (под Windows) или (на Mac OS X или Linux). Также можно переписать прошивху внешним программатором, используя ISP вход.

Автоматическая (программная) перезагрузка

Mega разработана таким образом, чтобы перед записью нового кода перезагрузка осуществлялась самой программой, а не нажатием кнопки на платформе. Одна из линий ATmega8U2, управляющих потоком данных (DTR), подключена к выводу перезагрузки микроконтроллера ATmega2560 через конденсатор 100 нФ. Активация данной линии, т.е. подача сигнала низкого уровня, перезагружает микроконтроллер. Программа Arduino, используя данную функцию, загружает код одним нажатием кнопки Upload в самой среде программирования. Подача сигнала низкого уровня по линии DTR скоординирована с началом записи кода, что сокращает таймаут загрузчика.

Функция имеет еще одно применение. Перезагрузка Mega2560 происходит каждый раз при подключении к программе Arduino на компьютере с ОС Mac X или Linux (через USB). Следующие полсекунды после перезагрузки работает загрузчик. Во время программирования происходит задержка нескольких первых байтов кода во избежание получения платформой некорректных данных (всех, кроме кода новой программы). Если производится разовая отладка скетча, записанного в платформу, или ввод каких-либо других данных при первом запуске, необходимо убедиться, что программа на компьютере ожидает в течение секунды перед передачей данных.

На Mega2560 имеется возможность отключить линию автоматической перезагрузки разрывом соответствующей линии. Контакты микросхем с обоих концов линии затем могут быть соединены с целью восстановления. Линия маркирована «RESET-EN». Отключить автоматическую перезагрузку также возможно подключив резистор 110 Ом между источником 5 В и данной линией.

Токовая защита разъема USB

В Arduino Mega2560 встроена перезагружаемая плавкая вставка, защищающая порт USB компьютера от токов короткого замыкания и сверхтоков. Хотя практически все компьютеры имеют подобную защиту, тем не менее, данный предохранитель обеспечивает дополнительный барьер. Предохранитель автоматически прерывает обмен данных при прохождении тока более 500 мА через USB порт.

Физические характеристики и совместимость с платами расширения

Длинна и ширина печатной платы Mega2560 составляют 10,2 и 5.3 см соответственно. Разъем USB и силовой разъем выходят за границы данных размеров. Три отверстия в плате позволяют закрепить ее на поверхности. Расстояние между цифровыми выводами 7 и 8 равняется 0,4 см, хотя между другими выводами оно составляет 0,25 см.

Arduino Mega2560 совместима со всеми платами расширения, разработанными для платформ Uno, Duemilanove или Diecimila. Расположение выводов 0 - 13 (и примыкающих AREF и GND), аналоговых входов 0 - 5, силового разъема, блока ICSP, порта последовательной передачи UART (выводы 0 и 1) и внешнего прерывания 0 и 1 (выводы 2 и 3) на Mega соответствует расположению на вышеприведенных платформах. Связь SPI может осуществляться через блок ICSP, как на платформах Duemilanove / Diecimila, так и на Mega2560. Однако расположение выводов (20 и 21) связи I2C на платформе Mega не соответствуют расположению тех же выводов (аналоговые входы 4 и 5) на Duemilanove / Diecimila.

Система «Умный дом» на Arduino пользуется большим спросом у людей, стремящихся создать максимальный комфорт дома или в офисе.

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

Одним из главных элементов системы умный дом в рассматриваемом варианте является Arduino. Что это такое? Как он работает? Какие функции выполняет? Все подробно мы рассмотрим в этой статье.

Что такое Arduino?

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

В основе платформы лежит открытый код, а само устройство построено на печатной плате с «вшитым» в ней программным обеспечением.

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

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

Существует несколько моделей плат, самые распространённые из них – UNO, Mega 2560 R3.

Не менее важная особенность печатной платы заключается в наличии 22 выводов, которые расположены по периметру изделия. Они бывают аналоговыми и цифровыми.

Особенность последних заключается в управлении с помощью только двух параметров - логической единицы или нуля. Что касается аналогового вывода, между 1 и 0 имеется много мелких участков.

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

Устройства на Ардуино могут работать в комплексе с ПО на компьютере или самостоятельно.

Что касается плат, их можно собрать своими руками или же приобрести готовое изделие. Программирование Arduino производится на языке Wiring.

ЧИТАЙТЕ ПО ТЕМЕ : , обзор, комплектация, подключение и настройка своими руками, сценарии.

Чем управляет Arduino?

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

Кроме того, к Ардуино подключается набор датчиков в зависимости от задач, поставленных перед системой. Как правило, устанавливаются датчики освещенности, дыма и состава воздуха, магнитного поля, влажности, температуры и прочие.

Благодаря этой особенности, Arduino становится универсальным устройством - «мозговым центром» системы «Умный дом» с возможностью конфигурации с учетом поставленных задач.

Принцип работы системы

Устройство Arduino работает следующим образом. Информация, собранная с различных датчиков в доме, направляется по беспроводной сети на планшет или ПК. Далее с помощью специального софта производится обработка данных и выполнение определенной команды.

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

Питание

Питание Arduino производится через USB разъем или от внешнего питающего устройства. Источник напряжения определяется в автоматическом режиме.

Если выбран вариант с внешним питанием не через USB, можно подключать АКБ или блок питания (преобразователь напряжения). В последнем случае подключение производится с помощью 2,1-миллиметровго разъема с «+» на главном контакте.

Провода от АКБ подключаются к различным выводам питающего разъема - Vin и Gnd.

Для нормальной работы платформа нуждается в напряжении от 6 до 20 Вольт. Если параметр падает ниже 7 вольт, на выводе 5V может оказаться меньшее напряжение и появляется риск сбоя.

Если подавать 12 В, возможен перегрев регулятора напряжения и повреждения платы. По этой причине оптимальным уровнем является питание с помощью 7 - 12 В.

В отличие от прошлых типов плат, Arduino Mega 2560 работает без применения USB-микроконтроллера типа FTDI. Для обеспечения обмена информацией по USB применяется запрограммированный под конвертер USB-to-serial конвертер.

ПОПУЛЯРНО У ЧИТАТЕЛЕЙ : .

На Ардуино предусмотрены следующие питающие выводы:

  • 5V - используется для подачи напряжения на микроконтроллер, а также другие элементы печатной платы. Источник питания является регулируемым. Напряжение подается через USB-разъем или от вывода VIN, а также от иного источника питания 5 Вольт с возможностью регулирования.
  • VIN - применяется для подачи напряжения с внешнего источника. Вывод необходим, когда нет возможности подать напряжение через USB-разъем или другой внешний источник. При подаче напряжения на 2,1-миллиметровй разъем применяется этот вход.
  • 3V3 - вывод, напряжение на котором является следствием работы самой микросхемы FTDI. Предельный уровень потребляемого тока для этого элемента составляет 50 мА.
  • GND - заземляющие выводы.

Принципиальную схему платы в pdf формате можно посмотреть .

Связь

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

Модель ATmega 2560 отличается наличием 4 портов, через которые можно передавать данные для TTL и UART. Специальная микросхема ATmega 8U2 на плате передает интерфейс (один из них) через USB-разъем. В свою очередь, программы на ПК получают виртуальный COM.

Здесь имеются нюансы, которые зависят от типа операционной системы:

  • Если на ПК установлен Linux, распознавание происходит в автоматическом режиме.
  • Если стоит Windows, потребуется дополнительный файл.inf.

С помощью утилиты мониторинга обеспечивается отправление и получение информации в текстовом формате после подключения к системе.

Мигание светодиодов TX и RX свидетельствует о передаче данных. Для последовательной отправки информации применяется специальная библиотека Software Serial.

К особенностям ATmega 2560 стоит отнести наличие интерфейсов SPI и I2C. Кроме того, в состав Ардуино входит библиотека Wire.

Разработка проекта

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

Какие проекты можно создавать на Arduino?

Ардуино позволяет создавать множество уникальных проектов. Вот лишь некоторые из них:

  • Сборка кубика Рубика (система справляется за 0,887 с);
  • Контроль влажности в подвальном помещении;
  • Создание уникальных картин;
  • Отправка сообщений;
  • Балансирующий робот на двух колесах;
  • Анализатор спектра звука;
  • Лампа оригами с емкостным сенсором;
  • Рука-робот, управляемая с помощью Ардуино;
  • Написание букв в воздухе;
  • Управление фотовспышкой и многое другое.

Составление проекта для умного дома

Рассмотрим ситуацию, когда необходимо сделать автоматику для дома с одной комнатой.

Такое здание состоит из пяти основных зон - прихожей, крыльца, кухни, санузла, а также комнаты для проживания.

При составлении проекта стоит учесть следующее:

  • КРЫЛЬЦО . Включение света производится в двух случая - приближение хозяина к дому в темное время суток и открытие дверей (когда человек выходит из здания).
  • САНУЗЕЛ . В бойлере предусмотрен выключатель питания, который при достижении определенной температуры выключается. Управление бойлером производится в зависимости от наличия соответствующей автоматики. При входе в помещение должна срабатывать вытяжка, и загорается свет.
  • ПРИХОЖАЯ . Здесь требуется включение света при наступлении темноты (автоматическое), а также система обнаружения движения. Ночью включается лампочка небольшой мощности, что исключает дискомфорт для других жильцов дома.
  • КОМНАТА . Включение света производится вручную, но при необходимости и наличии датчика движения эта манипуляция может происходить автоматически.
  • КУХНЯ . Включение и отключение света на кухне осуществляется в ручном режиме. Допускается автоматическое отключение в случае продолжительного отсутствия перемещений по комнате. Если человек начинает готовить пищу, активируется вытяжка.

Отопительные устройства выполняют задачу поддержания необходимой температуры в помещении. Если в доме отсутствуют люди, нижний предел температуры падает до определенного уровня.

После появления людей в здании этот параметр поднимается до прежнего значения. Рекуперация воздуха осуществляется в случае, когда система обнаружила присутствие владельца. Продолжительность процесса - не более 10 минут в час.

Стоит обратить внимание, что если в доме планируется установка , то для управления ими лучше использовать приложения на мобильных устройствах, WIFI или через SMS сообщения.

Визуальное программирование для Arduino можно осуществлять с помощью специального приложения FLProg, которое можно скачать с официального сайта http://flprog.ru/.

Подбираем комплектацию под проект на примере Arduino Mega 2560 R3

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

Что входит в комплект поставки?

Если ваша цель - «Умный дом» на базе Arduino, требуется подготовить следующее оборудование - саму плату Mega 2560 R3, модуль Ethernet (ENC28J60), датчик движения, а также другие датчики и контроллеры.

Кроме того, стоит подготовить кабель вида «витая пара», резистор, реле, переключатель и кабель для модуля Ethernet.

Необходимы и дополнительные инструменты - отвертки, паяльники и прочее.

Учтите, что покупать наборы для монтажа системы стоит в сертифицированных пунктах. Это объясняется тем, что при реализации проекта применяется электричество, а использование подделки может привести к снижению уровня безопасности.

Все программы для адаптации можно найти в сети на официальном сайте Arduino http://arduino.ru. При выборе датчиков стоит ориентироваться на задачи, которая должен решать «Умный дом».

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

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

Что касается ПО, которое применяется в Ардуино, оно написано на языке Си. На число байт имеются определенные ограничения, но текущей памяти достаточно для реализации поставленной задачи.

Начало работы

Как только необходимое оборудование подготовлено, а проект разработан, можно приступать к выполнению поставленной задачи.

Этапы

При организации системы «Умный дом» на базе Ардуино, стоит действовать по следующему алгоритму:

  • Инсталляция программного кода;
  • Конфигурация приложения под применяемое устройство;
  • Переадресация портов (для роутера);
  • Проведение тестов;
  • Внесение правок и так далее.

В Сети имеется весь необходимый софт на применяемое оборудование - его достаточно скачать с официального сайта и установить (ссылку смотрите выше).

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

Последовательность действий при подключении к компьютеру

Чтобы начать работать с Ардуино в Windows, сделайте следующие шаги:

  • Подготовьте необходимое оборудование - USB-кабель и Arduino.
  • Скачайте программу на странице arduino.cc/en/Main/Software.
  • Подсоедините плату с помощью USB-кабеля. Проследите, чтобы загорелся светодиод PWR.
  • Поставьте необходимый набор драйверов для работы с Ардуино. На этом этапе стоит запустить установку драйвера и дождаться завершения процесса.
    После жмите на кнопку «Пуск» и перейдите в панель управления. Там откройте вкладку «Система и безопасность» и выберите раздел «Система». После открытия окна выберите «Диспетчер устройств», жмите на название Ардуино и с помощью правой кнопки мышки задайте команду обновления драйвера. Найдите строчку «Browse my computer for Driver software!», кликните по ней и выберите соответствующий драйвер для вашего типа платы - ArduinoUNO.inf (находится в папке с драйверами). Это может быть UNO, Mega 2560 или другая.
  • Запустите среду разработки Ардуино, для чего дважды кликните на значок с приложением.
  • Откройте готовый пример (File - Examples - 1.Basics - Blink).
  • Выберите плату. Для этого перейдите в секцию Tools, а дальше в Board Menu.
  • Установите последовательный порт (его можно найти путем отключения и подключения кабеля).
  • Скачайте скетч в Ардуино. Кликните на «Upload» и дождитесь мигания светодиодов TX и RX на плате. В завершение система показывает, что загрузка прошла успешно. Через несколько секунд после завершения работы должен загореться светодиод 13 L (он будет мигать оранжевым). Если это так, система готова к выполнению задач.

Работа с роутером

Для полноценной работы «Умного дома» важно правильно обращаться с роутером. Здесь требуется выполнить следующие действия - открыть конфигурацию, указать адрес Arduino IP, к примеру, 192.168.10.101 и открыть 80-й порт.

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

Расширение возможности на Ардуино

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

Упомянутая программная технология применяется для решения интернет-задач, поэтому для визуализации «Умного дома» используется язык Java Script (именно с его помощью создается обработчик и сервер). Результаты можно увидеть на экране компьютера или ПК.

Для реализации задуманного подойдет ноутбук, обычный ПК или Raspberry Pi. Применение такой системы позволяет увеличить ее возможности. Так, если на плате Ардуино имеется небольшой объем памяти, на сервере такие ограничения отсутствуют. Программа пишется таким образом, чтобы обеспечить полное управление платформой.

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

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

Общение с Arduino

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

Оформление и отправка сообщения контроллеру называется программированием. Чтобы упростить процесс, разработана среда Arduino IDE, в состав которой входит множество программ. Их изучение позволяет получить массу полезной информации о работе с Ардуино.

Как можно управлять?

Как отмечалось, сервер Node.js позволяет связать между собой оборудование в доме. Одним из способов управления процессами являются облачные сервисы в Сети. При этом включить отопление или бойлер можно за один-два часа до приезда.

Еще один способ - управление с помощью сообщений (MMS или SMS). Этот вариант актуален в случае, когда нет связи с Интернетом. Одним из преимуществ системы является возможность получения информации о форс-мажорной ситуации (например, протечке). Здесь помогает плата Edison от компании Intel.

В итоге, что мы получим?

Сегодня Arduino востребовано среди людей, которые ничего не знают о программировании.

Причиной этому является простой интерфейс, а также ряд преимуществ - простой язык программирования, возможность создания своего алгоритма, благодаря открытому исходному коду, а также легкость переноса программ с помощью USB-кабеля. Необходимый для Ардуино софт имеется в Интернете, поэтому тут проблем нет.

Как видно, Ардуино - не просто плата, позволяющая подключить различные устройства. Это мощная база, которую можно использовать для создания «Умного дома». При этом нет нужды тратить большие деньги за дорогостоящие устройства, стоимость которых в 5-10 раз больше.

Это и есть основные преимущества системы.

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

Управление автоматикой возможно через Интернет или посредством сообщений. Так что Ардуино отлично подходит для создания устройств повышенной сложности.

В этой инструкции, для примера, рассмотрим начало работы в операционной системе Windows. Для операционных систем Microsoft (Windows 2000/Vista) различия незначительны, они в основном относятся к названиям вкладок в Диспетчере устройств. В прочих операционных средах, таких как Linux, FreeBSD, Mac OS X и т.д, порядок настройки значительно отличается. При необходимости организовать работу с этим программным обеспечением, рекомендуем искать ответы на вопросы на основном сайте разработчика //www.arduino.cc .

В качестве подключаемой платформы возьмём Arduino Uno. Разница с другими платами у неё минимальна.

Кабель для связи с ПК

Для передачи данных с персонального компьютера на Arduino, необходимо подыскать соответствующий кабель. С отдельными платами кабель не поставляется, только есть в стартовом наборе Arduino для практикующего конструктора-программиста.

Arduino U no , Arduino M ega 2560 соединяются кабелем со штекерами USB тип А. Такой кабель часто применяется для подключения принтера или сканера.

Arduino Leonardo , Arduino Due для подключения имеют гнездо micro USB тип В.

Arduino Nano, Freeduino Nano подключаются через гнездо mini USB тип B.

Для подключения Freeduino MaxSerial потребуется кабель последовательного порта 9M-9F.

Возникла неполадка : Arduino IDE не запускается.

Способ устранения.

Скорее всего, на компьютере установлена неподходящая виртуальная среда JRE (Java Runtime Environment), необходимая для запуска графических приложений.

Возвратитесь к переустанавке Arduino IDE: на этот раз инсталлятор развернет работу по настройке JRE.

Подключение плат Arduino к компьютеру

После успешного запуска среды разработки Arduino IDE пришло время связать какую-то платформу Arduino с компьютером. Как вы уже знаете, подключение плат Arduino к ПК выполняется через USB-кабель.

Соединив консоль Arduino с ПК, на ней загорится один светодиод «ON», и начнёт мигать другой «L». Это означает, что через кабель подано питание и микроконтроллер начал выполнять предустановленную на заводе программу Blink (мигание).

Остается только узнать, какой номер COM-порта присвоил компьютер нашей плате Arduino , что важно для корректной работы программного обеспечения Arduino IDE с новым устройством.

Номер COM-порта можно узнать в «Диспетчере устройств», вкладка «Порты (COM и LPT)».

На системах Windows скорее всего нашей Arduino Uno с последовательным интерфейсом присвоится один из портов COM1 или COM2. Для Ардуино с USB-контроллером портом ввода будет COM4, COM5, COM6 или выше.

На системах Linux последовательным портом будет USB0 либо USB1.

Высветилось новое устройство Arduino в «Диспетчере устройств» - значит, операционная система распознала нашу плату, нашла для неё подходящий USB-драйвер и присвоила номер её интерфейсу. При совместном подключении ещё одной платы Arduino, ей присвоиться уже другой номер порта.

Возникла неполадка: при подключении платы Arduino к компьютеру, в Диспетчере устройств она не появляется.

Способы устранения:

  1. Не всунут до конца или поврежден USB-кабель или порт.
  2. Нет драйвера для этой платы Arduino. Если у вас китайская Arduino или от другого неизвестного производителя, попробуйте переустановить USB-драйвер вручную.
  3. Блокировка со стороны антивирусника.
  4. Неисправна плата Arduino.

В открытой Arduino IDE, заходим: Инструменты > Порт > выбираем номер порта COM - сообщаем программе номер порта, к которому подключена микропроцессорная платформа Arduino.

Чтобы у прошивающей программы Arduino IDE не осталось никаких сомнений, с чем ей предстоит работать, указываем тип нашей подключенной платы. Для этого переходим по меню: Инструменты > Плата > выбираем тип своей платы Arduino.

Возникла неполадка: во вкладке Порт нет ни одного COM-порта.

Способ устранения.

Очевидно, нарушено соединение устройства Arduino с компьютером. Верните устойчивое соединение с ПК.

Или нет драйвера. Скачать можно в конце статьи.

Как проверить подключение устройства Arduino

Все числовые данные, поступающее через COM-порт, выводятся в Монитор порта во всё той же удобной графической среде Arduino IDE. Следовательно, нажав соответствующую иконку «Монитор порта» в верхнем правом углу консоли или найдя соответствующий пункт в меню Сервис, по изменяющимся числам в открывшимся окошке можно убедиться, что через USB-кабель передаются данные, а значит, и плата Arduino надежно подключена.

Обратите внимание, что в нижней части окошка Монитора порта выводится информация о скорости работы с COM-портом «19200 baud» (19200 бит/сек). Такая скорость задана по умолчанию в предустановленном скетче на плате Arduino. В этом скетче есть строка Serial.begin(19200), в которой можно задать любую требуемую скорость передачи, но это возможно только при работе через USB-кабель. Ежели передача данных идет через радиоканал Bluetooth, то скорость обмена с COM-портом должна быть задана заранее, точно такой же, какую мы выбираем при отладке Bluetooth-модуля.

Возникла неполадка: невероятно тормозит Arduino IDE при навигации по меню.

Способ устранения.

В Диспетчере устройств, во вкладке Bluetooth Serial отключите Bluetooth-соединение с мобильным телефоном. Все внешние подключения через Bluetooth значительно пожирают объем виртуальной памяти.

Соединение установлено, среда разработки настроена - теперь в ваших руках отлаженный инструмент для прошивки любых микроконтроллеров AVR серии: ATtiny, ATmega, AT90S, AT90CAN, AT90PWM.

В среде разработки Arduino IDE есть много готовых образцов для различных задач, но для проверки отзывчивости платы на перепрошивку достаточно внести небольшие изменения в предустановленную программу Blink (мигание светодиода «L» на плате).

Достаточно в открытом эскизе Blink внести свои изменения в строчке delay(1000), нажать «Вгрузить» и засечь изменения в работе платы Arduino.

Установив delay(500) - светодиод «L» будет мигать в два раза чаще, с задержкой в пол секунды.

Задав delay(100) - светодиод «L» будет загораться и гаснуть в 10 раз быстрее, чем по заводской настройке, то есть каждые 100 миллисекунд.

Возникла неполадка : при загрузке скетча всплыла ошибка вида «not in sync».

Способ устранения.

Значит, подключенная платформа Arduino не была распознана операционной системой. Вернитесь к пунктам установки правильного номера COM-порта и модели платы в меню Инструменты Arduino IDE.

Да и напоследок, если вы купили плату Arduino на каком-нибудь онлайн китайском рынке, то очень часто возникают проблемы при подключении платы – просто она не определяется. Чтобы решить эту проблему умельцами был создан драйвер.

Самодельный трекер для солнечных батарей на Arduino

Эта плата отличается от других ардуинок большим количеством вводов и выводов, увеличенным объемом памяти и другими характеристиками, о которых мы расскажем ниже. Ардуино Мега представлена в нескольких версиях. Они практически не отличаются друг от друга. Отличия Arduino Mega 2560 R3 от предыдущих версий платы заключаются в следующих деталях:

  • Для преобразования интерфейса USB-UART используется микроконтроллер ATmega16U2 в R3 версии и ATmega8U2 в версиях платы R1 и R2.
  • Начиная с версии R2 на плате добавлен притягивающий резистор для линии HWB. Это делает процесс прошивки микроконтроллера более простым и удобным.
  • В версии R3 были добавлена пара выводов для последовательного интерфейса I2C SDA и SCL.
  • Так же была улучшена помехоустойчивость цепи сброса.
  • Заменен микроконтроллер для работы с интерфейсом USB-UART с ATmega8U2 на ATmega16U2

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

Arduino Mega 2560 R3

Ардуино Мега 2560 снабжена микроконтроллером ATmega2560 с тактовой частотой 16 мГц.

Характеристики Ардуино Мега 2560

  • Микроконтроллер: ATmega2560
  • Тактовая частота: 16 мГц
  • Рабочее напряжение: 5 В
  • Предельные напряжения питания: 5-20 В
  • Рекомендуемое напряжение питания: 7-12 В
  • Максимальная сила тока с одного вывода: 40 мА
  • Цифровые входы/выходы: 54
  • Цифровые входы/выходы с поддержкой ШИМ: 15
  • Аналоговые входы: 16
  • Flash-память: 256 КБ (8 из них используются загрузчиком)
  • SRAM: 8 КБ
  • EEPROM: 4 КБ

Подключение Arduino Mega 2560 к питанию

Эту плату можно питать четырьмя разными способами:

  1. Через порт USB. Можно питать ардуино от компьютера, powerbank, смартфона (если он поддерживает режим OTG) или от адаптера, вставленного в розетку.
  2. Через пин +5V. Этот пин является не только выводом, но и вводом. Будьте внимательны! На этот пин нужно подавать ровно 5 вольт. В противном случае можно спалить сам микроконтроллер.
  3. Через штекер питания, расположенный на плате. Можно использовать, батарейки, аккумуляторы и разнообразные блоки питания. Этот штекер подключен к пину VIN. О напряжении и мерах предосторожности написано в следующем пункте.
  4. Через пин VIN. Ток от этого пина проходит через встроенный стабилизатор напряжения. По заявлениям производителя можно подавать от 5 до 20 вольт. Но это не совсем так. Так как стабилизатор имеет не 100% КПД, то при подаче 5 вольт на пин VIN напряжения может не хватить на питание микроконтроллера, да и на цифровых пинах будет не 5 вольт, а меньше. Также не стоит работать на максимальном напряжении. При 20 вольтах на пине VIN будет сильно греться стабилизатор напряжения, вплоть до выхода из строя. Поэтому рекомендуется использовать напряжение от 7 до 12 вольт.

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

Аналоговые пины являются входами и не имеют подтягивающих резисторов. Они измеряют поступающее на них напряжение и возвращают значение от 0 до 1024 при использовании функции . Эти пины измеряют напряжение с точностью до 0,005 В.

ШИМ Arduino Mega

Если внимательно посмотреть на плату то можно увидеть значок тильды (~) рядом с некоторыми цифровыми пинами. Этот значок означает, что данный пин может быть использован как выход ШИМ. На некоторых платах ардуино этого значка нет так как производители не всегда находят место для этого символа на плате. У Arduino Mega есть 15 выводов ШИМ, это цифровые пины со 2 по 13 и с 44 по 46. Для использования ШИМ в Arduino есть специальная функция .

Другие пины:

  • Serial: 0 (rx) и 1 (tx), Serial1: 19 (rx) 18 (tx), Serial2: 17 (rx) и 16 (tx), Serial3: 15 (rx) и 14 (tx) используются для передачи данных по последовательному интерфейсу.
  • Выводы 53 (SS), 51 (MOSI), 50 (MISO), 52 (SCK) рассчитаны для связи по интерфейсу SPI.
  • Так же на выводе 13 имеется встроенный в плату светодиод.
  • 20 (SDA) и 21 (SCL) могут использоваться для связи с другими устройствами по шине I2C. Подробнее про этот интерфейс вы можете почитать на википедии . В среде разработке Arduino IDE есть встроенная библиотека «wire.h» для более легкой работы с I2C.
  • Внешние прерывания: выводы 2 (прерывание 0), 3 (прерывание 1), 18 (прерывание 5), 19 (прерывание 4), 20 (прерывание 3) и 21 (прерывание 2). Эти выводы могут использоваться в качестве источников прерываний, возникающих при различных условиях: при низком уровне сигнала, при фронте, спаде или изменении сигнала. Для получения дополнительной информации см. функцию .
  • AREF. Опорное напряжение для аналоговых входов. Может быть задействован функцией .
  • Reset. Формирование низкого уровня (LOW) на этом выводе приведет к перезагрузке микроконтроллера. Обычно этот вывод служит для функционирования кнопки сброса на платах расширения

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

Arduino Mega имеет следующие размеры: длина 102 мм и ширина 54 мм. Arduino Mega весит около 45 грамм. Плата имеет 4 отверстия для возможности ее закрепления на поверхности. Расстояние между выводами равняется 2,5 мм, кроме выводов 7 и 8. Между ними 4 мм.

Принципиальная схема


Разрабатывая проекты на ардуино, вы рано или поздно столкнетесь с двумя проблемами:

  • необходимость минимизации места;
  • нехватка функциональных портов ввода-вывода.

Первая проблема решается элементарно – с помощью миниатюрных плат: nano, mini, pro mini, micro, digispark attiny 85. Если плата nano и другие мини-платы повторяют функционал обычной Arduino UNO, имея на борту atmega328/168, то платы с Attiny85 и ей подобные подходят для простейших проектов с минимальным функционалом.

Второй же вопрос решается двумя методами:

  1. Расширение числа выводов с помощью сдвиговых регистров, типа 74HC595. К сожалению, этот метод не позволяет использовать ШИМ для расширенных выводов, да и работает этот способ только для выходных сигналов.
  2. Объединение нескольких плат в одну систему и их связь с помощью различных интерфейсов обмена данными; однако этот метод довольно сложен, и не всегда оправдан.

Можно решить этот вопрос иначе – здесь на помощь придет большая плата Arduino mega 2560 или её аналог с поддержкой USB хоста – ADK Arduino, но обо всём по порядку.

Подробнее об Ардуино на Atmega 2560

Начнем с внешнего вида. На изображении выше очевидно, что плата Arduino mega 2560 r3 (актуальная версия на момент написания статьи) в два раза длиннее, чем UNO. Она имеет 54 порта ввода вывода, 15 из которых могут работать, как источник ШИМ сигнала, для плавного регулирования мощности, тока, скорости, яркости, в общем, всего, что можно регулировать с помощью широтно-импульсной модуляции, плюс к этому 16 аналоговых портов могут обрабатывать сигналы с датчиков, использоваться, как цифровой выход.

Для связи между разными устройствами предусмотрено целых 4 UART интерфейса, в их роли выступают выводы 0, 1, 14-19. Один из портов направлен на USB через микроконтроллер ATmega8U2 – он здесь применен вместо привычного по младшим платам USB-TTL контроллера, а его прошивка доступна для свободного скачивания. Для связи с различными дисплеями и другими исполнительными устройствами предусмотрена SPI и I2C технологии.

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

  • Микроконтроллер: ATmega2560
  • Тактовая частота: 16 мГц
  • Напряжение: 5 В
  • Предельные напряжения: 5-20 В
  • Рекомендуемое напряжение питания: 7-12 В
  • Макс. сила тока с одного вывода: 40 мА
  • Цифровые пины: 54
  • Цифровые пины с поддержкой ШИМ: 15
  • Аналоговые входы: 16
  • Flash-память: 256 КБ (8 из них используются загрузчиком)
  • SRAM: 8 КБ
  • EEPROM: 4 КБ

Распиновка платы

Ниже распиновка и назначение выводов – важнейшая информация для разработчика.

Размеры платы Arduino MEGA 2560 – 10.16 см на 5.3 см, против UNO – 6.9 см на 5.3. С одной стороны плата получилась великоватой, с другой – возросшие габариты позволяют удобно работать с мощным микроконтроллером.

Дополнительные изображения и принципиальную схему Меги смотрите на нашем сайте по . Наиболее распространенная сейчас – плата Arduino mega 2560 rev3. В сравнении с первыми ревизиями был проведен ряд доработок, связанных с перезагрузкой платы при прошивке, для достоверности загрузки данных, и другие мелкие апгрейды.

Atmega2560 чип платы Arduino MEGA 2560

Atmega2560 – это очень мощный чип. В распоряжении разработчика целых 256 кб Flash (в ардуино 8 кб занимает загрузчик), 8 кб SRAM и 1 кб EEPROM. Работает ардуино с таким сердцем на частоте 16 мГц, впрочем, как и младшие платы – UNO и многие другие.

Питание платы может осуществляться как от круглого разъёма питания 2.1 мм с плюсом по центру, так и от USB порта, источник выбирается автоматически. Стоит отметить, что при напряжении питания 7-20 вольт, плата работает отлично, а при меньшем, например, 5 вольт, могут возникнуть ситуации с нестабильной работой. Примите это к сведению.

Распиновка процессора

Ниже диаграмма распиновка чипа, для увеличения - нажмите на изображение:

В качестве источника годятся, как сетевые AC/DC преобразователи, такие как для светодиодной ленты (12 В), например, отлично подойдут, так и батареи аккумуляторов или одна ячейка Li-ion аккумулятора с повышающим преобразователем до нужных значений напряжения.

Проекты на основе плате

Использование Arduino MEGA 2560 дало возможность сделать по-настоящему большую и сложную микроконтроллерную систему. Например, есть очень интересный проект, который получил поддержку в РФ и активно развивается – это Arduino Mega Server. Микроконтроллер настолько мощный, что может стать целым сервером для интернета сайтов или облака.

Единственное ограничение на таком сервере – это объём памяти, ведь в качестве накопителя можно использовать micro SD-карты памяти, а Ethernet поддерживает максимальный объём памяти 32 гб.

Arduino Mega Server – это серьезный проект с широким функционалом, в котором поддерживаются все нужные для веб-мастера технологии:

  • HTML;
  • Javascript и другие.

На страницах, которые вы создадите, а их количество ограничено только их размером и объёмом вашей карты памяти, можно отслеживать в реальном времени состояние контроллера и управлять его входами и выходами с помощью кнопок на веб интерфейсе сайта. Поддержка многих библиотек Javascript позволит сделать интерфейс красивым и современным.

С помощью Arduino Mega Server вы можете сделать мощные разветвленные системы автоматизированного управления с удаленным управлением и мониторингом всех параметров или домашнее облачное хранилище. На рисунке ниже вы видите скриншот страницы управления умным домом с официального сайта проекта.

Вот небольшой перечень проектов, реализуемых с Arduino Mega Server:

  1. Умный дом – стал уже классической областью применения ардуино.
  2. Автоматизированная котельная.
  3. Тепличное хозяйство с автоматической поддержкой влажности и солевого состава почвы.
  4. Метеостанция.
  5. И многое другое.

Вы получаете операционную систему для работы с ардуино с компьютера или смартфона по web интерфейсу. Однако стоит осознавать возможности и мощность микроконтроллера Arduino mega 2560, хоть и сама плата мощнее свих предшественников, но по современным меркам морально устарела. Это все те же 8 бит и 8 кб ОЗУ. Скорость, с которой вы скачиваете данные с сервера, будет небольшой, но для веб-страниц вполне хватит.

Комплект для сборки сервера на ардуино

Для сборки проекта Arduino Mega Server нужно иметь минимум три составляющих:

  1. Плату Arduino Mega
  2. Ethernet shied для Ардуино.
  3. Micro SD-карта памяти.

Остальные компоненты набираются в соответствии с возложенными на сервер функциями. Чтобы ознакомиться со всеми нюансами и технической документацией, вы можете скачать все необходимые материалы и библиотеки с официального сайта проекта hi-lab.ru.

На момент написания статьи проект Arduino Mega Server поддерживается на трёх платформах, две из которых превосходят по характеристикам mega 2560:

  • Arduino mega 2560;
  • Arduino Due (32 битный МК, 84 мГц, 512 кб памяти и 96 кб озу разделенных на два банка – 64 кб и 32 кб);
  • Genuino 101 (Intel Quark – в качестве процессора, разрядность 32 бита, 32 мГц, 24 кб ОЗУ).

Другие интересные проекты на Arduino Mega 2560

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

Здесь, для связи со смартфоном, применен специальный шилд, его название «1shield». С помощью официального приложения вы можете подключиться к вашем шилду через WiFi или Bluetooth. Для того чтобы заставить его работать с Arduino, нужно скачать 1shield library – специальная библиотека.

Электронный бармен на ардуино

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

За основу проекта взяли Ардуино Мега, для реализации механизма движения стакана и разлива напитков использованы шаговый двигатель (для продольного перемещения емкости) и сервопривод, для открытия вентилей робота. Ниже приведена примерная схема устройства.

Выводы о плате Ардуино Мега

В сети есть много, как сторонников, так и противников 8 битной архитектуры плат ардуино – их пытаются вытеснить отладочные платы семейства STM, а порой сравнивают с одноплатными микрокомпьютерами. Однако век ардуино еще будет долго продолжаться, поскольку это простая платформа для веселого освоения электроники и микроконтроллеров.

К тому же рассмотренный сегодня Arduino mega 2560 server – это глоток свежего воздуха для всей платформы. Согласитесь, что приятно иметь возможность поставить личный сервер для своих сайтов с поддержкой необходимых технологий и низким энергопотреблением. Не стоит сравнивать эту идею с серверами на старом компьютерном железе и так далее, преимущества очевидны:

  1. Отсутствие шума во время работы, так как нет кулеров системы охлаждения.
  2. Малый объём занимаемого пространства.
  3. Низкая цена.
  4. Малое энергопотребление.

Изучайте микроконтроллеры и внедряйте в повседневную жизнь высокие технологии.

 
Статьи по теме:
Настройка плат Arduino при первом подключении к ПК Программирование mega 2560
Arduino Mega построена на микроконтроллере ATmega2560 (). Плата имеет 54 цифровых входа/выходов (14 из которых могут использоваться как выходы ШИМ), 16 аналоговых входов,4 последовательных порта UART, кварцевый генератор 16 МГц, USB коннектор, разъем пита
Проверяем скорость интернета: обзор способов
Интернет-провайдеры хвастаются максимальными скоростями передачи данных, но какова ситуация на самом деле? Скорость зависит от многих факторов: время и день недели, загруженность канала связи, техническое состояние серверов, состояние линий связи и даже п
World of Tanks
Во время боя очень важно получать оперативную и, главное, нужную информацию. Если вы начинающий игрок, то вряд ли сможете запомнить названия всех танков и их основные характеристики. Не каждому опытному танкисту это под силу. Мы вам представляем мод, позв
Новый режим Во что бы поиграть, пока тест временно недоступен, а в танки пока не хочется заходить
Обновлено (4-04-2018, 22:29): тест остановлен Помимо традиционного тестового сервера в World of Tansk, существует ещё «Песочница» - аналогичный тестовый сервер, но с некоторыми особенностями, о которых мы расскажем. Зайти в «Песочницу» может любой желаю