Возможности ардуино уно – схема платы, пины, подключение, питание, память

Содержание

Что такое Arduino и что с ним можно сделать 🚩 что такое arduino uno 🚩 Электроника

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

"Мозг" Arduino - это микроконтроллер семейства Atmega. Микроконтроллер представляет из себя микропроцессор с памятью и различными периферийными устройствами, реализованный на одной микросхеме. Фактически это однокристальный микрокомпьютер, который способен выполнять относительно простые задачи. Разные модели из семейства Arduino оснащены разными микроконтроллерами.

На фото микроконтроллер Atmega328. Такие микроконтроллеры стоят на Arduino UNO и Arduino Nano (но в другом корпусе).

Но какой толк от мозга, если он не имеет рук? Руками в данном случае служат электрические выводы, размещённые по периметру платы Arduino. Есть платы с большим количеством выводов, есть с меньшим. Например, самая большая плата в семействе Ардуино -

Arduino Mega - имеет более 70 независимых выводов, а самая маленькая - Arduino Pro Mini - всего 22 вывода.

На фотографии показаны в сравнении Arduino Mega и Arduino Pro Mini.

Не все выводы у Arduino одинаковые. Есть выводы цифровые, а есть аналоговые. Принципиальная разница между ними в том, что на цифровых выводах может быть только два значения: либо логическая "1" (TRUE, от 3 до 5 вольт), либо логический "0" (FALSE, от 0 до 1,5 вольт), а на аналоговых выводах - диапазон от логической 1 до 0 разбит на множество мелких участков.

Зачем это нужно? Давайте рассмотрим такой наглядный пример. Если подключить к цифровому выводу Arduino светодиод и подать на вывод логическую "1", то светодиод загорится с максимальной яркостью; если подать "0" - светодиод погаснет. Никаких промежуточных вариантов нет. Если светодиод подключить к аналоговому выводу, то яркостью светодиода можно управлять плавно. На практике к аналоговым выводам чаще всего подключаются какие-либо аналоговые датчики. 

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



  • кнопки,

  • светодиоды,


  • микрофоны и динамики,

  • электродвигатели и сервоприводы,

  • ЖК дисплеи,

  • считыватели радиометок (RFID и NFC),

  • ультразвуковые и лазерные дальномеры,

  • bluetooth, WiFi и Ethernet модули,

  • считыватели SD карт,

  • GPS и GSM модули...

А также десятки различных датчиков:



  • освещённости,

  • магнитного поля,

  • гироскопы и акселерометры,

  • датчики дыма и состава воздуха,

  • температуры и влажности и многое, многое другое.

Всё это превращает Arduino в универсальное ядро системы, которое может быть сконфигурировано совершенно разнообразными способами. Хотите сделать радиоуправляемую кормушку для питомца? Пожалуйста! Хотите чтобы при начале дождя у вас на лоджии закрывалось окно? Пожалуйста! Хотите управлять яркостью освещения в комнате со смартфона? Запросто!

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

Как же процессор узнаёт, что именно ему следует делать? Вы должны рассказать ему это. Существует язык для общения с микроконтроллером, упрощённый и адаптированный специально для Arduino. Освоить этот язык совсем не сложно при желании и определённой настойчивости, даже если вы никогда раньше не программировали. 

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

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

www.kakprosto.ru

Проекты ардуино на Arduino Uno, Mega, Nano для начинающих

В этой статье вы найдете обзор инженерных проектов ардуино с кратким описанием каждого из них. Мы постарались не просто рассказать о проектах для начинающих, но и дать краткие комментарии с примерами и схемами реализации. Большинство проектов могут быть созданы с контроллерами Arduino Uno R3, Nano или Mega. Надеемся, что ваше знакомство с платформой продолжится, и вы сможете не только повторить уже существующие идеи, но и придумать свои решения, вдохновленные примерами.

Проекты Arduino для начинающих

Если посмотреть  на все проекты ардуино, информация о которых доступна в интернете, то можно их разделить на несколько основных групп:

  • Начальные учебные проекты, не претендующие на какое-то важное практическое использование, но помогающие разобраться в разных аспектах платформы.
    • Мигающие светодиоды – маячок, мигалка, светофор и другие.
    • Проекты с датчиками: от простейших аналоговых до цифровых, использующих разнообразные протоколы для обмена данными.
    • Устройства регистрации и отображения информации.
    • Машины и устройства с сервоприводами и шаговыми двигателями.
    • Устройства с использованием различных беспроводных видов связи и GPS.
  • Проекты для автоматизации жилья – умные дома на Arduino, а также отдельные элементы управления домашней инфраструктурой.
  • Разнообразные автономные машины и роботы.
  • Проекты для исследования природы и автоматизации сельского хозяйства
  • Необычные и креативные – как правило, развлекательные проекты.

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

Как создавать проект на ардуино

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

Если речь идет не об учебном проекте, то вы обязательно столкнетесь со следующими этапами реализации с такими вот задачами:

  • Придумать что-то, что будет полезно и (или) интересно для окружающих. Даже самый простой проект несет какую-то пользу – как минимум, он помогает изучать новые технологии.
  • Собрать схему, подключить модули друг к другу и к контроллеру.
  • Написать скетч (программу) в специальной среде и загрузить ее в контроллер.
  • Проверить, как все работает вместе, и исправить ошибки.
  • После тестирования – готовиться к созданию готового устройства. Это означает, нужно собрать устройство в каком-то пригодном для эксплуатации корпусе, предусмотреть систему питания, связи с окружающей средой.
  • Если вы собираетесь распространять созданные вами устройства, то придется также заняться дизайном, системой транспортировки, задуматься о безопасности использования необученными пользователями и обучением этих самых пользователей.
  • Если ваше устройство работает, оно протестировано и обладает какими-то преимуществами перед другими решениями, то можно попытаться сделать из вашего инженерного уже бизнес-проект, попробовать привлечь инвестиции.

Каждый из этих этапов создания проекта достоин отдельной статьи. Но мы уделим главное внимание этапам сборки электронных схем (основы электроники) и программирования контроллера.

Электронные схемы

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

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

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

Где купить все необходимое

Мы собрали ссылки Aliexpress на стартовые наборы Arduino Starter Kit, в которых есть все самое необходимое для создания своих первых проектов.

 

Простые проекты Ардуино

Давайте начнем наш обзор с традиционно самых простых, но очень важных проектов, включающих в себя минимальное количество элементов: светодиоды, резисторы и, конечно же, плату ардуино. Все примеры рассчитаны на использование Arduino Uno, но с минимальными изменениями будут работать на любой плате: от Nano и Mega до Pro, Leonardo и даже LilyPad.

Проект с мигающим светодиодом – маячок

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

 

Нам понадобится:

  • Плата Ардуино Uno, Nano или Mega со встроенным светодиодом, подключенным к 13 пину.
  • И все.

Что должно получиться в итоге:

Светодиод мигает – включается и выключается через равные промежутки времени (по умолчанию – 1 сек). Скорость включения и выключения можно настраивать.

Схема проекта

Схема проекта довольно проста:  нам нужен только контроллер ардуино со встроенным светодиодом, подсоединенным к пину 13. Именно этим светодиодом мы и будем мигать. Подойдут любые популярные платы: Uno, Nano, Mega и другие.

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

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

Программирование в проекте Ардуино

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

Открываем программу Arduino IDE, убеждаемся, что выбран нужный порт.

Проверка порта Ардуино – выбираем порт с максимальным номером

Затем открываем уже готовый скетч Blink – он находится в списке встроенных примеров. Откройте меню Файл, найдите подпункт с примерами, затем Basics и выберите файл Blink.

Открываем пример Blink в Ардуино IDE

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

Кнопки компиляции и загрузки скетчаИнформация в Arduino IDE – Загрузка завершена

Ждем немного (внизу можно отследить процесс загрузки) – и все. Плата опять подмигнет несколькими светодиодами, а затем один из светодиодов начнет свой размеренный цикл включений и выключений. Можно вас поздравить с первым загруженным проектом!

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

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

Графическое изображение схемы подключения доступно на следующем рисунке:

Другие идеи проектов со светодиодами:

  • Мигалка (мигаем двумя свтодиодами разных цветов)
  • Светофор
  • Светомузыка
  • Сонный маячок
  • Маячок – сигнализация
  • Азбука Морзе

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

Проекты Ардуино в Интернете

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

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

Управление телевизором силой мысли и Ардуино.

Управление телевизором силой мысли и Ардуино

Этот оригинальный проект кажется невероятным, ведь для переключения канала нужен не пульт, а мысль о его смене. Для создания потребуется Ардуино Уно, игра Star Wars Force Trainer, инфракрасные приемник и передатчик.

Проект был реализован Дэниэлом Дэвисом в домашних условиях. За основу он взял игру 2009 года Star Wars Force Trainer и разобрал ее. Сама игра содержит гарнитуру, которая может обнаружить электрические поля разума (аналогично ЭЭГ). Внутри был обнаружен чип NeuroSky ЭЭГ, который Дэниэл подключил к плате Ардуино. Данные ЭЭГ собираются и преобразовываются на компьютере.

С помощью  serial монитора можно посмотреть сигналы, которые передает пульт на ИК приемник при переключении каналов. Далее записывается код кнопки и пишется небольшая программа.

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

Механическая рука, которая записывает время на доске.

Механическая рука, которая записывает время на доске

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

Для реализации проекта нужны 3D принтер, Ардуино Уно, 3 сервомотора, болты и гайки, маркер для стираемой доски, белая поверхность.

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

Окей Google, Сезам, открой дверь

Окей Google, Сезам, открой дверь

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

Для создания потребуются Ардуино Уно, серводвигатель, Bluetooth модуль.

Для разблокирования двери используются команды Google Now. Для смартфонов и планшетов есть приложение с названием «Сезам», которое и отправляет команду дверному замку при произношении слов «О’кей Google, Сезам, откройся».

Сервопривод подключается к дверному замку. Модуль Bluetooth ожидает команду, и при ее получении подает сигнал Ардуино через serial  порт. Arduino Uno отдает команду сервоприводу и дверь открывается.

Светодиодный куб 4х4х4.

Светодиодный куб 4х4х4

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

Для создания понадобится 64 светодиода, 4 резистора 100 Ом, проводники, макетная плата, коннекторы, коробка, источник питания на 9 В и плата Ардуино Уно.

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

Робот пылесос

Робот пылесос

На базе Ардуино можно создать полезную вещь для дома – робота-уборщика. Самостоятельно сделанная модель не будет уступать по своим характеристикам магазинному экземпляру.

Для сборки потребуется:

  • Arduino;
  • драйвер L298N для управления двигателем;
  • миниатюрные двигатели с редуктором и колесами;
  • 6 инфракрасных датчиков;
  • двигатель для турбины;
  • турбина;
  • двигатели для щеток;
  • датчики столкновения;
  • 4 аккумулятора;
  • повышающий и понижающий преобразователи тока;
  • контроллер для батареи.

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

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

Система распознавания лиц и слежения за ними на Ардуино

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

Для реализации потребуются:

  • программное обеспечение Arduino IDE, OpenCV;
  • плата Ардуино Уно;
  • 2 сервомотора;
  • веб-камера.

Автоматизированная система для аквариума

Автоматизированная система для аквариума

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

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

Чтобы собрать устройство, потребуются плата Ардуино Уно, пьезо сигналка, RGB лента, белая диодная лента, датчик температуры и влажности, LCD экран, часы, 2 реле, ик-приемник, транзисторы.

Схем реализации прибора существует множество. Пример одной из них приведен ниже.

Требуется также прописать код для включения того или иного цвета в зависимости от условий и настроить работу ЖК экрана.

Теплица для растений

Теплица для растений

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

Чтобы собрать проект, нужны следующие компоненты:

  • Ардуино Уно;
  • USB кабель;
  • плата прототипирования;
  • провода;
  • фоторезистор;
  • резистор на 10 кОм;
  • температурный датчик;
  • модуль температуры и влажности окружающей среды;
  • модуль влажности почвы.

Фоторезистор отвечает за измерение освещенности. Температурный сенсор получает температуру воздуха. Модуль влажности почвы помещается в землю и измеряет уровень воды в ней.

Отслеживание потребляемого электричества в реальном времени при помощи Ардуино и LabVIEW.

Отслеживание потребляемого электричества в реальном времени при помощи Ардуино и LabVIEW

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

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

Мигание светодиода детектирует фоторезистор. Аналоговые данные считываются с помощью делителя напряжения.

Для работы потребуются:

  • Ардуино;
  • фоторезистор;
  • светодиод;
  • модуль Xbee;
  • программное обеспечение Arduino IDE, LabView;
  • простые и подстроечные резисторы;
  • провода.

В программе будет отображаться график потребления за последние 5 минут и в реальном времени.

Аудиоплеер

Аудиоплеер

Своими руками на базе Ардуино можно создать аудиопроигрыватель. Его конструкция проста – он состоит из динамика, транзистора, micro-sd карты с записанными на нее треками. В качестве платы используется Ардуино, также можно взять контроллер Seeeduino 2.21 или Garagino на ATmega328.

Для сборки нужны:

  • контроллер;
  • карт-ридер;
  • динамик;
  • печатная плата;
  • карта памяти с записанными аудиотреками;
  • транзистор;
  • резистор;
  • провода.

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

Предварительно песню нужно преобразовать в формат .wav. Сделать это можно с помощью самого простого онлайн-конвертера. Музыкальные файлы имеют ограничения при воспроизведении мелодии. Транзистор не сможет прочитать сложные .wav-файлы, поэтому советуется преобразовать треки к следующему виду: 16 кГц в секунду, моно канал, бит на сэмпл – 8.

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

Рекомендации по работе с проектами Ардуино в Интернете

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

Другие идеи проектов

Проекты умного дома на Ардуино

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

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

Что может являться прототипом умного дома на ардуино:

  • Системы освещения с автоматическим включением и отключением в зависимости от показателей датчиков. Наиболее популярнее варианты – использовать датчик освещенности, PIR датчик движения или датчик звука.
  • Дистанционно управляемые электрические приборы. Например, включение или выключение системы отопления в зависимости от температуры или умное управление освещением в помещениях. Здесь вам понадобятся различные виды реле и один из механизмов обеспечения беспроводной связи: WiFi, GPRS, Bluetooth или радиоканал. Управлять устройствами можно через Web-интерфейс (через браузер) или с использованием соответствующего мобильного приложения (можно написать самому или выбрать одну из готовых платформ).
  • Всевозможные системы учета: воды, тепла, электроэнергии. Начинающим доступны любительские датчики напора воды, температуры, влажности, силы тока. Можно использовать и профессиональные приборы, взаимодействуя с ними по одному из промышленных протоколов. Полученные данные можно собирать локально или отправлять в облако для последующего анализа.
  • Охранные системы и контролирование внештатных ситуаций. Здесь понадобится различные датчики присутствия, движения, звука, магнитные датчики Холла и другие. Естественно, не обойтись без коммуникаций и возможности быстрой передачи информации владельцу через интернет.

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

Проекты «Зеленой робототехники»

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

  • Умная теплица
  • Полив растений
  • Умный инкубатор
  • Умный улей
  • Антигрызуны
  • Умный агроном
  • Умный ошейник для животных
  • Расширенная метеостанция
  • Робот – сеяльщик
  • Счетчик муравьев

Проекты с дронами: аэрофотосъемка, внесение удобрений.

arduinomaster.ru

Сравнение плат Arduino [База знаний]

Сравнение плат Arduino. Какую выбрать?

Теория

КОМПОНЕНТЫ
ARDUINO
ИНТЕРФЕЙСЫ ПЕРЕДАЧИ ДАННЫХ

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

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

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


Таблица сравнения

 


1. Arduino Uno

Arduino Uno является стандартной платой Arduino и возможно наиболее распространенной. Она основана на чипе ATmega328, имеющем на борту 32 КБ флэш-памяти, 2 Кб SRAM и 1 Кбайт EEPROM памяти. На периферие имеет 14 дискретных (цифровых) каналов ввода / вывода и 6 аналоговых каналов ввода / вывода, это очень разносторонне-полезные девайсы, позволяющие перекрывать большинство любительских задач в области микроконтроллерной техники. Данная плата контроллера является одной из самых дешевых и наиболее часто используемых. При планировании нового проекта, если вы незнакомы, с платформой Arduino, советуем начать с Uno.

 


2. Arduino Leonardo

Та же Arduino Uno, но с другим микроконтроллером, который находится в том же классе, но имеет некоторые отличия положительного характера. Большее количество аналоговых входов (12 против 6) для сенсоров, больше каналов ШИМ (7 против 6), больше пинов с аппаратным прерыванием (5 против 2), раздельные независимые serial-интерфейсы для USB и UART. Arduino Leonardo может притворяться клавиатурой или мышью (HID-устройством) для компьютера. Это позволяет легко сделать своё собственное устройство ввода. Из-за распиновки чуть отличной от Arduino Uno возможна несовместимость с некоторыми платами расширения.

 


3. Arduino Nano

Arduino Nano — это функциональный аналог Arduino Uno, но размещённый на миниатюрной плате. Отличие заключается в отсутствии собственного гнезда для внешнего питания, использованием чипа FTDI FT232RL для USB-Serial преобразования (либо Ch440G, требуется установить соответствующие драйвера) и применением mini-USB кабеля для взаимодействия вместо стандартного. В остальном, начинка и способы взаимодействия совпадают с базовой моделью. Платформа имеет штырьковые контакты, что позволяет легко устанавливать её на макетную плату. Используйте Arduino Nano там, где важна компактность, а возможностей Arduino Mini либо не достаточно, либо не хочется заниматься пайкой.

 


4. Arduino Mega

Как Arduino Uno, но на базе более мощного микроконтроллера той же архитектуры. Отличный выбор «на вырост» или если Arduino Uno перестала справляться. В разы больше памяти: 256 КБ против 32 КБ постоянной и 8 КБ против 2 КБ оперативной. В разы больше портов: 60 из них 16 аналоговых и 15 с ШИМ. Немного длиннее базовой Arduino Uno: 101×53 мм против 69×53 мм.

 


5. Arduino Due

Одна из самых производительных плат от Arduino на микроконтроллере Cortex-M3 по форм-фактору аналогичная Arduino Mega. Процессор на 84 МГц и 512 КБ памяти. 66 пинов ввода-вывода, из которых 12 могут быть аналоговыми входами, 12 поддерживают ШИМ и все 66 могут быть настроены, как аппаратные прерывания. Встроенный контроллер шины CAN позволяет создавать сеть из Due или взаимодействовать с автомобильной электроникой. Два канала ЦАП позволяют синтезировать стереозвук с разрешением в 4,88 Гц. Родным напряжением для платы является 3.3 В, а не традиционные 5 В. Необходимо следить, чтобы выбираемая периферия поддерживала работу с этим уровнем или ставить преобразователи уровней напряжения.

 


6. Arduino Mini

Та же Arduino Uno, но в другом форм-факторе. Компактная: всего 30×18 мм. Из-за форм-фактора нельзя без ухищрений устанавливать платы расширения Arduino. Предполагается соединение с дополнительными модулями проводами и/или через макетную плату. На плате нет USB-порта, поэтому прошивать нужно через отдельный USB-Serial адаптер.

 


7. Arduino Micro

Arduino Micro — это Arduino Leonardo, исполненный на компактной плате. Отличие заключается в отсутствии собственного гнезда для внешнего питания, но оно может быть подведено непосредственно к контакту Vi. В остальном, начинка и способы взаимодействия совпадают с Arduino Leonardo. Он также имеет один микроконтроллер ATmega32u4 и для прошивки через USB, и для исполнения программ; также может выступать в роли клавиатуры или мыши; предоставляет то же количество памяти, цифровых, аналоговых и ШИМ-портов.

 


8. Arduino M0

Забудьте про экономию памяти программ и ресурсов на Arduino Uno. С платой Arduino M0 выполнять сложные математические расчёты, получать более точные аналоговые значения и при этом слушать музыку напрямую с микроконтроллера. Arduino M0 основана на 32-битном ARM-процессоре ATSAMD21G18 от Atmel с вычислительном ядром Cortex® M0. Микроконтроллер работает на частоте 48 МГц. А благодаря своей 32-битной архитектуре он выполняет большинство операций над целыми числами всего за один такт. В отличии от большинства плат Arduino, родным напряжением Arduino M0 Pro является 3.3 В, а не 5 В. Соответственно, выходы для логической единицы выдают 3.3 В, а в режиме входа ожидают принимать не более 3.3 В. Arduino M0 смотрит в сторону USB через виртуальный serial-порт, не через аппаратный. Это означает, что 0-й и 1-й контакты аппаратного порта остаются свободными и вы можете использовать их одновременно с коммуникацией с компьютером. Виртуальный serial-порт доступен через объект SerialUSB, а аппаратный — через объект Serial1.

 


9. Arduino LilyPad

Arduino LilyPad — довольно интересное устройство. Оно выпадает из привычных стереотипов об обычном Arduino, потому что имеет не прямоугольную, а круглую форму. Во-вторых, оно не поддерживает механические соединения с шилдами. Оно предназначено для, небольших автономных устройств. Круглая форма продиктовала то, что разъемы равномерно распределены по окружности, и его небольшой размер (2 дюйма в диаметре) делает его идеальным для переносных устройств. Это устройство легко спрятать, и несколько производителей разработали устройства, специально для LilyPad: экраны, датчики света, даже коробки для батарей питания, которые могут быть зашиты в ткань. Для того, чтобы сделать LilyPad как можно меньше и как можно легче, на сколько возможно, были принесены некоторые жертвы. У LilyPad нет регулятора напряжения на борту, так что ему для питания будет необходимо обеспечить по крайней мере 2.7 вольт, и не более 5.5 вольт.

 


ampermarket.kz

устройства для начинающих, необычные проекты

Большинство электронщиков предпочитают строить свои проекты на основе микроконтроллера Аrduino uno, о которой и мы писали уже несколько раз. В статье далее мы рассмотрим простые конструкции электронных устройств для начинающих и самые необычные проекты, в основе которых лежит упомянутый микроконтроллер.

Особенности проектов на Ардуино уно

Для начала стоит познакомиться с функционалом микропроцессора Ардуино уно, на котором строится большинство проектов, а также рассмотреть причины выбора данного приспособления. Ниже описаны факторы, по которым начинающему изобретателю стоит остановиться на Аrduino uno:

  1. Довольно простой в использовании интерфейс. Понятно, где какой контакт, и к чему прикреплять соединительные провода.
  2. Чип на плате подключается прямо к USB-порту. Преимущество этой установки заключается в том, что последовательная связь – это очень простой протокол, который проверен временем, а USB делает соединение с современными компьютерами очень удобным.
  3. Легко найти центральную часть микроконтроллера, которая представляет собой чип ATmega328. Он имеет больше аппаратных функций, таких как таймеры, внешние и внутренние прерывания, пины PWM и несколько режимов ожидания.
  4. Устройство с открытым исходным кодом, поэтому большое количество радиолюбителей могут исправить баги и неполадки в программном обеспечении. Это облегчает отладку проектов.
  5. Тактовая частота равна 16 МГц, что достаточно быстро для большинства приложений и не ускоряет работу микроконтроллера.
  6. Очень удобно управлять мощностью внутри него, и она имеет функцию встроенного регулирования напряжения. Также микроконтроллер можно отключить от USB-порта без внешнего источника питания. Можно подключить внешний источник питания до 12 В. Причем микропроцессор сам определит нужное напряжение.
  7. Наличие 13 цифровых контактов и 6 аналоговых контактов. Эти пины позволяют подключать оборудование к плате Arduino uno со стороннего носителя. Контакты используются в качестве ключа для расширения вычислительной способности Arduino uno в реальном мире. Просто подключите свои электронные устройства и датчики к разъемам, которые соответствуют каждому из этих контактов.
  8. Имеется в наличии разъем ICSP для обхода USB-порта и сопряжения с Arduino напрямую в качестве последовательного устройства. Этот порт необходим, чтобы перезагрузить чип, если он поврежден и больше не может использоваться на вашем компьютере.
  9. Наличие 32 КБ флэш-памяти для хранения кода разработчика.
  10. Светодиод на плате подключается к цифровому контакту 13 для быстрой отладки кода и упрощения этого процесса.
  11. Наконец, у него есть кнопка для сброса программы на чипе.

Arduino был создан в 2005 году двумя итальянскими инженерами – Дэвидом Куартиллесом и Массимо Банзи с целью, чтобы ученики научились программировать микроконтроллер Arduino uno и улучшить свои навыки в области электроники и использовать их в реальном мире.

Arduino uno может воспринимать окружающую среду, получая вход от различных датчиков, и способен влиять на окружающую среду, контролируя свет, двигатели и другие исполнительные механизмы. Микроконтроллер запрограммирован с использованием языка программирования Arduino (на основе проводки) и среды разработки Arduino (на основе обработки).

Теперь переходим непосредственно к проектам на Аrduino uno.

Самый простой проект для начинающих

Рассмотрим несколько простых и интересных проектов Ардуино uno, которые под силу сделать даже новичкам в этом деле - система сигнализации.

Мы уже делали урок по этому проекту - Датчик движения с Arduino, HC-SR04 и светодиодом (LED). Вкратце о то, что делается и как.

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

Он является библиотекой Arduino, которая помогает вам контролировать и тестировать ваш датчик расстояния сонара. Хотя это не совсем целая защита дома, она предлагает идеальное решение для защиты небольших помещений, таких как спальни и ванные комнаты.

Для этого проекта вам понадобятся:

  1. Ультразвуковой датчик «пинг» – HC-SR04.
  2. Пьезо-зуммер.
  3. Светодиодная лента.
  4. Автомобильное освещение посредством ленты RGB. В этом руководстве по проекту Arduino вы узнаете, как сделать внутреннее освещение автомобиля RGB, используя плату Arduino uno.

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

Вы можете изменить цвет освещения с помощью устройства Android (телефон или планшет) с помощью приложения «Bluetooth RGB Controller» (Dev Next Prototypes), которое вы можете бесплатно загрузить с Android Play Store. Также вы можете найти схему электронной EasyEDA или заказать свою собственную схему на основе Arduino на печатной плате.

Удивительные проекты на Ардуино Уно

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

  1. Добавление ИК-пульта в акустическую систему. В бытовой электронике пульт дистанционного управления является компонентом электронного устройства, такого как телевизор, DVD-плеер или другой бытовой прибор, используемый для беспроводного управления устройством с короткого расстояния. Пульт дистанционного управления, в первую очередь, удобен для человека и позволяет работать с устройствами, которые не подходят для непосредственной работы элементов управления.
  2. Будильник. Часы реального времени используются для получения точного времени. Здесь эта система отображает дату и время на ЖК-дисплее, и мы можем установить будильник с помощью кнопок управления. Как только время сигнала тревоги наступит, система подает звуковой сигнал.
  3. Шаговый двигатель. Шаговый двигатель означает точный двигатель, который можно поворачивать на один шаг за раз. Такое устройство делают с помощью робототехники, 3D-принтеров и станков с ЧПУ.

    - Для этого проекта возьмите самый дешевый шаговый двигатель, который вы можете найти. Двигатели доступны в режиме онлайн. В этом проекте используется шагомер 28byj-48, который подходит для большинства других подобных проектов. Его легко подключить к плате Arduino.
    - Вам понадобятся 6 кабелей с разъемами типа «женщина-мужчина». Вам просто нужно подключить двигатель к плате, и все! Вы также можете добавить небольшую часть ленты на вращающуюся головку, чтобы увидеть, что она производит вращательные движения.

  4. Ультразвуковой датчик расстояния. В этом проекте используется популярный ультразвуковой датчик HC-SR04, чтобы устройство могло избежать препятствий и двигаться в разных направлениях.

Когда вы закончите работу, на экране появится результат ваших действий. Чтобы все было просто и понятно, рекомендуется использовать ЖК-дисплей с конвертером I2C, поэтому вам нужно всего лишь 4 кабеля для подключения к плате Arduino.

arduinoplus.ru

● Уроки и проекты Arduino

Что такое Arduino?

Платформа Ардуино пользуется огромной популярностью во всем мире благодаря удобству и простоте языка программирования, а также открытой архитектуре и программному коду. Плата Arduino состоит из микроконтроллера Atmel AVR и элементов обвязки для программирования и интеграции с другими схемами.  Подробнее ...

Первое включение. Установка Arduino IDE

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

Умный дом и интернет вещей. Элементы, решения, системы управления, проекты

Самый главный компонент любой "умной" системы – его контроллер. Контроллер предназначен для получения информации и управления "умным" домом. В нашем наборе два контроллера! Это плата Arduino MEGA и модуль NodeMCU v3 Lua WI-FI ESP8266 Ch440. Вы можете выбрать любой из них. Подробнее ...
 

Arduino проект 34: Организация подключения к сети Интернет с помощью модуля Ai-Thinker A6

В предыдущих главе мы рассмотрели мы сделали большие шаги построения "умного дома" –  оснастили его датчиками и исполнительными устройствами и создали и обеспечили определенную степень автоматизации для создания комфорта и безопасности. Теперь пришло время сделать наш "умный дом" устройством IoT (Интернета вещей), чтобы получить доступ к нему для мониторинга и управления из любой точки мира по сети интернет. Организуем доступ контроллеров нашего дома к сети интернет. Подробнее ...
 

Arduino проект 33:  Модуль GPS. Принцип работы, подключение, примеры

В этом эксперименте рассмотрим работу модуля GPS-приемника, позволяющего определять наше местоположение с помощью глобальной системы GPS, и подключение данного приемника к плате Arduino. GPS (Global Positioning System) – это система, позволяющая с точностью не хуже 100 м определить местоположение объекта.  Подробнее ...

Arduino проект 32: Беспроводная связь. Модуль GSM/GPRS SIM900

В этом эксперименте рассмотрим работу модуля GSM/GPRS Shield – платы расширения, позволяющей Arduino работать в сетях сотовой связи по технологиям GSM/GPRS для приёма и передачи данных, SMS и голосовой связи. GSM/GPRS Shield на базе модуля SIMCom SIM900 выпускают несколько производителей, и платы имеют незначительные отличия. Также на некоторых платах расположены: слот для SIM-карты, стандартные 3,5 мм джек для аудиовхода и выхода и разъём для внешней антенны. На плате GSM/GPRS shild имеется несколько перемычек, позволяющих выбрать тип serial-соединения.  Подробнее ...

Arduino проект 31: Беспроводная связь. Модуль Bluetooth HC-05

В этом эксперименте рассмотрим работу модуля Bluetooth HC-05, позволяющего плате Arduino установить беспроводную связь и обмениваться данными с другими устройствами по протоколу Bluetooth. Bluetooth позволяет объединять в локальные сети любую технику: от мобильного телефона и компьютера до холодильника. При этом одним из немаловажных параметров новой технологии являются низкая стоимость устройства связи (в пределах 20 долларов), его небольшие размеры.  Подробнее ...
 

Arduino проект 30:  Беспроводная связь. Модуль Wi-Fi ESP8266

В этом эксперименте мы познакомимся с модулем ESP8266, с помощью которого можно подключить плату Arduini к сетям Wi-Fi, и напишем скетч для передачи данных датчика температуры на веб-сервис Народный мониторинг. Платы на ESP8266 – это не просто модули для связи по Wi-Fi. Чип, по сути, является микроконтроллером со своими интерфейсами SPI, UART, а также портами GPIO, а это значит, что модуль можно использовать автономно без Arduino и других плат с микроконтроллерами.  Подробнее ...
 

Arduino проект 29: Работа с Интернетом на примере Arduino Ethernet Shield W5100

В этом эксперименте мы покажем, как нашей плате Arduino получить доступ к сети Интернет с помощью модуля Ethernet shield W5100. Ethernet Shield позволяет легко подключить вашу плату Arduino к локальной сети или сети Интернет. Он предоставляет возможность Arduino отправлять и принимать данные из любой точки мира с помощью интернет-соединения.  Подробнее ...
 

Arduino проект 28:  Считыватель RFID на примере RC522. Принцип работы, подключение

В этом эксперименте мы покажем, как плата Arduino получает доступ к данным RFID-карт и брелоков Mifare с помощью RFID-считывателя RC522C. Идентификация объектов производится по уникальному цифровому коду, который считывается из памяти электронной метки, прикрепляемой к объекту идентификации. Считыватель содержит в своем составе передатчик и антенну, посредством которых излучается электромагнитное поле определенной частоты.  Подробнее ...
 

Arduino проект 27:  SD-карта. Чтение и запись данных

В этом эксперименте мы покажем, как к плате Arduino подключить SD-карту. Если вашим Аrduino-проектам не хватает памяти, а объем энергонезависимой памяти EEPROM в платах Arduino совсем небольшой, можно использовать внешние носители. Один из самых простых по подключению к платам Arduino – это SD-карта. Можно подсоединиться к SD-карте напрямую, а можно использовать модули.  Подробнее ...
 

Arduino проект 26:  Часы реального времени. Принцип работы, подключение, примеры

В этом эксперименте мы рассмотрим модуль часов реального времени на микросхеме DS1307. Микросхема Dallas DS1307 представляет собой часы реального времени с календарем и дополнительной памятью NW SRAM (56 байт). Микросхема подключается к микроконтроллеру при помощи шины I2C. Количество дней в месяце рассчитывается с учетом високосных лет до 2100 г. В микросхеме DS1307 имеется встроенная схема, определяющая аварийное отключение питания  Подробнее ...
 

Arduino проект 25:  ИК-фотоприемник и ИК-пульт. Обрабатываем команды от пульта

В этом эксперименте мы организуем беспроводную ИК-связь, которая нам позволит отправлять на плату Arduino команды с помощью любого ИК-пульта. В качестве приемника будем использовать микросхему TSOP31236. В одном корпусе она объединяет фотодиод, предусилитель и формирователь. На выходе формируется обычный ТТЛ-сигнал без заполнения, пригодный для дальнейшей обработки микроконтроллером.  Подробнее ...
 

Arduino проект 24:  3-осевой гироскоп + акселерометр на примере GY-521

В этом эксперименте мы познакомимся с акселерометром и гироскопом и будем с помощью Arduino получать показания с этих датчиков. Модуль GY-521 на микросхеме MPU6050 содержит гироскоп, акселерометр и температурный сенсор. На плате модуля GY-521 расположена необходимая обвязка MPU6050, в том числе подтягивающие резисторы, стабилизатор напряжения на 3,3 В с малым падением напряжения с фильтрующими конденсаторами. Обмен с микроконтроллером осуществляется по шине I2C.  Подробнее ...
 

Arduino проект 23:  Ультразвуковой датчик расстояния HC-SR04. Принцип работы, подключение, пример

В этом эксперименте мы рассмотрим ультразвуковой датчик для измерения расстояния и создадим проект вывода показаний датчика на экран ЖКИ Wh2602. Ультразвуковой дальномер HC-SR04 – это помещенные на одну плату приемник и передатчик ультразвукового сигнала. Излучатель генерирует сигнал, который, отразившись от препятствия, попадает на приемник. Измерив время, за которое сигнал проходит до объекта и обратно, можно оценить расстояние.  Подробнее ...
 

Arduino проект 22:  Датчики газов. Принцип работы, пример работы

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

Arduino проект 21:  Датчик влажности и температуры DHT11

В этом эксперименте мы рассмотрим датчик для измерения относительной влажности воздуха и температуры DHT11 и создадим проект вывода показаний датчика на экран ЖКИ Wh2602. Датчик DHT11 состоит из емкостного датчика влажности и термистора. Кроме того, датчик содержит в себе простенький АЦП для преобразования аналоговых значений влажности и температуры.  Подробнее ...
 

Arduino проект 20:  Датчик температуры DS18B20


В этом эксперименте мы рассмотрим популярный цифровой датчик температуры DS18B20, работающий по протоколу 1-Wire, и создадим проект вывода показаний датчика на экран ЖКИ Wh2602. DS18B20 – цифровой термометр с программируемым разрешением от 9 до 12 битов, которое может сохраняться в EEPROM-памяти прибора. DS18B20 обменивается данными по шине 1-Wire и при этом может быть как единственным устройством на линии, так и работать в группе. Все процессы на шине управляются центральным микропроцессором.  Подробнее ...
 
Arduino проект 19:  Шаговый двигатель 4-фазный, с управлением на ULN2003 (L293)

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

Arduino проект 18:  Обрабатываем данные от джойстика. Управление Pan/Tilt Bracket с помощью джойстика

В этом эксперименте мы рассмотрим подключение к Arduino двухосевого аналогового джойстика. Для плат Arduino существуют модули аналогового джойстика, имеющие ось X, Y (потенциометры 10 кОм) и дополнительную кнопку – ось Z. Джойстик позволяет плавно и точно отслеживать степень отклонения от нулевой точки. Сам джойстик подпружиненный, поэтому он будет возвращаться в центральное состояние после его отпускания из определенной позиции.  Подробнее ...
 

Arduino проект 17:  Сервопривод. Крутим потенциометр, меняем положение

Сервопривод управляется с помощью импульсов переменной длительности. Угол поворота определяется длительностью импульса, который подается по сигнальному проводу. Это называется широтно-импульсной модуляцией. Сервопривод ожидает импульса каждые 20 мс. Длительность импульса определяет, насколько далеко должен поворачиваться мотор.  Подробнее ...
 

Arduino проект 16:  Графический индикатор. Подключение дисплея Nokia 5110

В этом эксперименте мы рассмотрим графический дисплей Nokia 5110, который можно использовать в проектах Arduino для вывода графической информации. Жидкокристаллический дисплей Nokia 5110 – монохромный дисплей с разрешением 84×48 на контроллере PCD8544, предназначен для вывода графической и текстовой информации. Питание дисплея должно лежать в пределах 2.7–3.3 В (максимум 3.3 В, при подаче 5 В на вывод VCC дисплей может выйти из строя). Но выводы контроллера толерантны к +5 В, поэтому их можно напрямую подключать к входам Arduino. Немаловажный момент – низкое потребление, что позволяет питать дисплей от платы Arduino без внешнего источника питания.  Подробнее ...
 

Arduino проект 15:  Индикатор LCD1602. Принцип подключения, вывод информации на него


В этом эксперименте мы познакомимся с жидкокристаллическими индикаторами Winstar для вывода символьной информации. Научимся в Arduino-проектах применять библиотеки и создадим проект вывода показаний датчика температуры LM335 на экран дисплея. Жидкокристаллические индикаторы (ЖКИ, англ. LCD) являются удобным и недорогим средством для отображения данных ваших проектов. Символьный индикатор Wh2602 позволяет выводить на экран 2 строки по 16 символов (размером 5×7 или 5×10 и дополнительная строка под курсор). Управляет работой дисплея контроллер.  Подробнее ...
 
Arduino проект 14:  Датчик температуры аналоговый LM335. Принцип работы, пример работы

В этом эксперименте мы познакомимся с аналоговым датчиком для измерения температуры LM335. LM335 – это недорогой температурный чувствительный элемент с диапазоном от –40 °C до +100 °C и точностью в 1 °C. По принципу действия датчик LM335 представляет собой стабилитрон, у которого напряжение стабилизации зависит от температуры.  Подробнее ...
 

Arduino проект 13:  Фоторезистор. Обрабатываем освещённость, зажигая или гася светодиоды

В этом эксперименте мы познакомимся с аналоговым датчиком для измерения освещенности – фоторезистором. Распространённое использование фоторезистора – измерение освещённости. В темноте его сопротивление довольно велико. Когда на фоторезистор попадает свет, сопротивление падает пропорционально освещенности.  Подробнее ...
 

Arduino проект 12:  Управляем реле через транзистор

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

Arduino проект 11:  Транзистор MOSFET. Показываем усилительные качества транзистора. На примере электродвигателя изменяем обороты

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

Arduino проект 10:  Управляем пьезоизлучателем: меняем тон, длительность, играем музыку

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

Arduino проект 9:  Матрица светодиодная 8x8

В этом эксперименте мы рассмотрим каскадное подключение нескольких микросхем 74HC595, что позволит, используя 3 вывода Arduino, управлять множеством контактов, что будет продемонстрировано в примере вывода фигур на экран светодиодной матрицы 8×8. В эксперименте будем использовать двухцветную светодиодную матрицу FYM-23881BUG-11.  Подробнее ...
 

Arduino проект 8:  Микросхема сдвигового регистра 74НС595. Управляем матрицей из 4 разрядов, экономим выходы Arduino


В этом эксперименте мы рассмотрим работу Arduino с микросхемой 74HC595 – расширителем выходов, позволяющей уменьшить количество выводов Arduino для управления 4-разрядной семисегментной матрицей. Цифровых выводов Arduino Nano и UNO, а иногда даже и Arduino Mega может не хватить, если требуется управлять большим количеством выводов. В этом случае можно использовать микросхему 74HC595.  Подробнее ...
 
Arduino проект 7: Матрица 4-разрядная из 7-сегментных индикаторов. Делаем динамическую индикацию

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

Arduino проект 6:  Семисегментный индикатор одноразрядный. Выводим цифры


В этом эксперименте мы рассмотрим работу с семисегментным светодиодным индикатором, которая позволяет Arduino визуализировать цифры. Светодиодный семисегментный индикатор представляет собой группу светодиодов, расположенных в определенном порядке и объединенных конструктивно. Светодиодные контакты промаркированы метками от a до g (и дополнительно dp – для отображения десятичной точки), и один общий вывод, который определяет тип подключения индикатора (схема с общим анодом ОА, или общим катодом ОК).  Подробнее ...
 

Arduino проект 5: RGB-светодиод. Широтно-импульсная модуляция. Переливаемся цветами радуги


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

Arduino проект 4: Светодиодная шкала 10 сегментов. Вращением потенциометра меняем количество светящихся светодиодов


В этом эксперименте мы рассмотрим работу аналоговых входов Arduino, работу потенциометра в качестве аналогового датчика и будем демонстрировать показания аналогового датчика с помощью светодиодной шкалы. ля получения аналоговых данных Arduino имеет аналоговые входы, оснащенные 10-разрядным аналого-цифровым преобразователем для аналоговых преобразований.  Подробнее ...
 
Arduino проект 3: Потенциометр. Показываем закон Ома на примере яркости светодиода

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

Arduino проект 2: Обрабатываем нажатие кнопки на примере зажигания светодиода. Боремся с дребезгом контактов

Это эксперимент по работе с кнопкой. Мы будем включать светодиод по нажатии кнопки и выключать по отпускании кнопки. Рассмотрим понятие дребезга и программные методы его устранения. При использовании Arduino в качестве входов используют pull-up- и pulldown-резисторы, чтобы вход Arduino не находился в «подвешенном» состоянии (в этом состоянии он будет собирать внешние наводки и принимать произвольные значения), а имел заранее известное состояние (0 или 1).  Подробнее ...
 

Arduino проект 1:  Мигаем светодиодом

В этом эксперименте мы научимся управлять светодиодом. Заставим его мигать. Светодиод – это полупроводниковый прибор, преобразующий электрический ток непосредственно в световое излучение. По-английски светодиод называется light emitting diode, или LED.  Подробнее ...
 

arduino-kit.ru

С чем едят Arduino Uno

Все Arduino Uno одинаковы, так что текст не столько про то, что мне пришло, сколько про то, что из него получилось и как с помощью двух резисторов, конденсатора и зубочистки имитировать пульт радиовыключателей. Т.е. похвастаться и, если повезет — поделиться идеями.

Вместе c Uno заказал: Ethernet-шилд со слотом microSD (Wiznet W5100), комплект из двух блоков по 4 реле в каждом, два комплекта простейших OOK/ASK приемников и передатчиков. Ну и проводочки, куда без них?

В двух словах. Игрушка потрясающая, и уже понимает мои команды через интернет, апп в смартфоне и голосовые команды в нем же.

ps. Текст пишу уже почти месяц (можете представить, сколько там всякой фигни), надеюсь, что читать будете меньше, но на всякий случай запасайтесь попкорном.

АПДЕЙТ 30.10.2013

Для тех, кому интересно: полностью поменялась процедура управления выключателями Livolo. Теперь все оформлено в виде отдельной библиотеки Livolo с возможностью имитации множества пультов (методом проб и ошибок).

Скачать:
Библиотека управления выключателями Livolo с помощью Arduino

Сначала сразу о покупках и впечатлениях о продавце.

ПОКУПКИ


Упаковка — коробка из плотного картона, обмотанная традиционным желтым скотчем. Ниток и кожзама нет, поэтому ничего не торчит и не пахнет. Внутри коробки все уложено довольно плотно, и без дополнительной защиты/амортизации. Плохо или нет — не знаю, доехало целым.

Открытки для фанатов анпакинга

Arduino Uno

Что характерно, на плате надпись Arduino, хотя у продавца картинка c Funduino. С другой стороны, я все равно оригинал от копии не отличу. Да и не надо это — функционально они идентичны.

Ethernet-шилд Wiznet W5100, $9.87

Удобно, что он без проблем встает на посадочные места Uno. Что касается слота SD, то это вещь с одной стороны полезная, с другой стороны — для меня пока абстрактная, поскольку до ее рабочего применения я еще не дошел.

комплект из двух блоков по 4 реле, $13.88 за комплект

Как видите, реле уже с управляющим каскадом на борту, поэтому управляются Arduno напрямую, без дополнительных компонентов. Достаточно общей земли и цифрового выхода контроллера. Каждое реле можно использовать в режимах NO/NC (нормально разомкнут/замкнут). И у каждого реле — светодиод-индикатор включения.

Питать от выхода Arduino, несмотря на совпадение напряжения (5В) мне кажется не лучшей идеей, поскольку на одно реле заявлен ток порядка 80 мА. Так что если включить все четыре, то получится под 400 мА, а это для встроенного стабилизатора уже слишком. Резюме — управлять можно с Arduino, а вот для питания катушек реле нужен отдельный источник (ну, в том или ином виде).

Зачем мне 8 реле? Я не был уверен, что разберусь с управлением по радиоканалу, поэтому рассчитывал на то, что прицеплю реле к кнопкам существующих пультов ДУ. Восемь каналов на первое время должно было хватить. К тому же, под этот проект уже было готовое решение Eight Control.

комплект из двух пар приемник-передатчик, $5.99 за комплект

Очень спартанские вещи. Передатчик, если я правильно понял, состоит практически из резонатора и ВЧ-транзистора. В приемнике вместо транзисторов усилитель. Поставляются без антенн, так что пришлось заняться творчеством и сделать из проводочков требуемое. Для диапазона 433 МГц длина антенны — около 17,3 см. Для экономии места можно свернуть в трубочку, но это же ухудшит характеристики.

Передатчик:

По субъективному ощущению, передатчики неплохие. По крайней мере, при своих 5В питания они довольно надежно переключают все, что я хочу. И делают это явно лучше, чем штатные пульты розеток при 12В питания.

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

Приемник:

макетные проводочки мама-папа. Две «ленты» по 40 штук длиной по 20 см. $8.68 за комплект.

ОСОБЕННОСТИ КИТАЙСКОЙ ТОРГОВЛИ


Будьте внимательны, у продавцов на Aliexpress есть очень нехорошая привычка писать в названии продукта что-то вроде 2pcs, что как бы намекает, что это две штуки наименования за указанную цену. Но это немного не так, и сделано для стимуляции импульсивных покупок.

Например, в описании платы Arduino Uno написано, что «UNO R3 MEGA328P ATMEGA16U2 + USB Cable (1UNO R3 + 1 cables) Best prices & Free shiping !!!», указана цена $9.98 и добавлено, что это lot (2 pieces/lot).

На первый взгляд кажется, что это ДВЕ (profit!!!) платы Arduino Uno. Но по факту за 2 pieces/lot скрывается именно то, что написано в названии и, чуть ниже в описании (к чести китайцев — огромными буквами). Именно:

— Arduino Uno — 1 штука
— USB-кабель — 1 штука
Итого: ДВЕ штуки

Т.е. в данном случае один лот — это плата + кабель. Извиняет продавца разве что то, что цена средняя по рынку.

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

В остальном все терпимо. Доставка заняла примерно месяц, упаковка — довольно жесткая картонная коробка, обмотанная скотчем. Внутри все в антистатических пакетиках, плата Ethernet-шилда наколота на полипропиленовые (?) подушечки, чтобы не гнулись контакты.

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

ЧТО И ЗАЧЕМ


По моим наблюдениям, 90% покупающих Arduino, мигают лампочками или крутят моторчики. Я отношусь к первой категории, а поскольку дома четыре радиорозетки и столько же радиоуправляемых выключателей света, понятно, чем я собрался управлять.

Это объясняет и комплект:

— Arduino — центральный контроллер
— Приемник — для обучения командам
— Передатчик — трансляция команд на радиорозетки и выключатели
— Ethernet-шилд — управление по LAN/WAN
— Реле — на всякий случай, как исполнители, если не удастся прочитать команды пультов. Тогда пульты можно просто припаять к реле и закрыть вопрос с обучением командам.

Мое ТЗ на систему вкратце выглядит вот так:

1) управление безымянными радиорозетками и выключателями света Livolo через браузер на любом компьютере/смартфоне/планшете в домашней сети

2) Удаленное управление -//- через интернет

3) Управление (пп. 1 и 2) через апп

4) Голосовое управление (пп. 1 и 2) с помощью смартфона

5) Автоматический рестарт модема, если нет соединения с интернетом и уведомление об этом через почту/Твиттер

6) Дистанционное включение и выключение веб-камеры

7) Перспективные функции управления: автоматическое управление светом с помощью датчиков движения и освещения

8) Перспективные функции контроллера: получение данных с беспроводного датчика метеостанции, функции охранно-пожарной сигнализации

ЧТО ПОЛУЧИЛОСЬ


Теперь вкратце итоги.

Вот так выглядит готовая коробочка с Arduino в интерьере:

Вот так — отдельно:

Если вам понравилась коробочка - еще ракурсы

Пульт ДУ на смартфоне:

Текущий функционал:

1) Управление четырьмя радиорозетками и четырьмя выключателями Livolo

а) Через браузер
б) Через апп в смартфоне
в) Через голосовое управление в смартфоне

2) Автоматический/ручной рестарт модема/маршрутизатора, если нет интернета

3) Дистанционное включение/выключение домашней веб-камеры

4) Автоматическое включение/выключение света в гардеробе по беспроводному датчику открытия двери (работает почему-то нестабильно, но я не разобрался почему)

5) Предупреждение о протечках (беспроводной датчик протечки)

6) Возможность подключения дополнительных беспроводных датчиков задымления, открытия дверей, движения и протечки от обычных китайских сигнализаций

8) Уведомление по e-mail о том, что кто-то звонит в звонок входной двери

7) Уведомление о важных событиях по e-mail

Скетчи:

1) Тестовый скетч для управления выключателями Livolo

2) Скетч с почти полным функционалом (без звонка и небольших оптимизаций), как образец (уведомления через Twitter закомментированы — экономлю память и скорость, но можете попробовать включить)

УПРАВЛЕНИЕ РАДИОРОЗЕТКАМИ


В первую очередь я, понятно, помигал встроенным в Arduino светодиодом на всем известном пине #13, а потом прицепил к плате приемник и воспользовался отличной библиотекой RC-Switch, которая умеет читать и передавать команды пультов управления радиорозетками. Получилось все с первого раза и без вопросов.

Для проверки подключил к Arduino передатчик и немного помигал домашним светом, подключенным через радиорозетки. Следующим номером попробовал прочитать коды пульта освещения, но затея провалилась: RC-Switch не смог принять команды Livolo.

Радиорозетки вот такие:

Внутренности

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

УПРАВЛЕНИЕ РАДИОВЫКЛЮЧАТЕЛЯМИ


Речь идет о радиовыключателях Livolo, приобретенных около года назад и замечательно описанных Online_buyer.

Я не особенно надеялся на собственный интеллект в решении этой проблемы, так что сначала попробовал самый простой способ.

Одна из идей была аналогична тому, как давным давно поступали с сигналами ИК-пультов. Т.е. записать сигнал в качестве звука и потом его воспроизводить. Но выяснилось, что Arduino не обладает достаточной производительностью для воспроизведения звука с необходимым качеством, хотя для платформы существует WAV-плеер и воспроизведение действительно работает (для этой цели очень кстати пришелся слот SD на Ethernet-шилде).

Поэтому я перешел к следующему пункту программы. А именно — решил попробовать повторить форму сигнала, не вдаваясь в декодирование. Исходил из того, что в пультах стоят PIC16F690, т.е. примерно такие же по производительности кристаллы, что и у меня в Arduino и обычный OOK/ASK передатчик (PT4450). Из этого я сделал вывод, что если правильно посчитать длину импульсов в команде, то шансы повторить ее довольно высоки: модуляция совпадает, скорость микроконтроллера, несмотря на высокоуровневое программирование, — тоже.

Так что подключил приемник через делитель к микрофонному входу ноутбука, запустил Audacity и несколько раз, с интервалом в 2-3 секунды нажал одну и ту же кнопку на пульте. Это было нужно, чтобы убедиться в идентичности команд, или понять, что команды меняются и без декодирования задача не решается.

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

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

Видно, что в данном случае физический уровень представлен пятью различными импульсами (длинный вниз, короткий вверх, короткий вниз, средний вверх, средний вниз). Повторюсь, про логику я ничего не знаю, моя задача — имитация сигнала в радиоканале.

Поэтому на следующем шаге последовательно увеличивал каждый интересующий меня импульс и буквально на глаз определял его длительность по линейке Audacity. В качестве вспомогательного инструмента можно использовать ProtocolAnalyzer, но там сигнал выглядит немного по-другому, и длину самого короткого импульса с ним прикинуть не удалось. Зато по относительно длинным импульсам (от 300 мксек) есть шансы посмотреть ориентировочные величины, которые помогают при расшифровке в Audacity.

Здесь красным и синим выделены возможные границы импульсов, причем истина также может быть где-то между, потому что в цифровом сигнале фронты вертикальные, а здесь — косые из-за особенностей аналоговой передачи.

Для примера смотрим на длинный вниз, ориентируемся по красным линиям. Получается: 2,11680 — 2,11624 = 0,56 мс. Умножаем на 1000 и получаем 560 микросекунд. Я это округлил до 550. Кстати, округление — тоже на глаз, в пределах разумного. Т.е. 10 мксек можно округлить, а вот 50 — уже чревато тем, что принимающая сторона не поймет.

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

Когда есть длины импульсов и их последовательность, написал простой код для Arduino, подключил передатчик, и передал сигнал. Одновременно записал его через описанную выше конструкцию в Audacity, чтобы сравнить два пакета — оригинальный Livolo и только что сгенерированный. Лампочка не среагировала, зато в Audacity стали заметны расхождения между длительностью импульсов, которые я снова подкорректировал на глаз.

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

Осталось только записать в Audacity сигналы всех нужных кнопок, переписать их последовательности импульсов и, в общем, все.

Вот тестовый код для Livolo с командами одиннадцати кнопок моего пульта (0 — 9 и «Выключить все»). Так как выключатели Livolo обучаются, думаю, можно их запросто обучить этим командам — нужно только перевести выключатель в режим обучения, и «нажать» нужную кнопку.

УПРАВЛЕНИЕ ЧЕРЕЗ СЕТЬ И ИНТЕРНЕТ


Теперь все готово к следующему шагу — то есть, управлению.

За основу я взял скетч в котором комбинируется RC-Switch и классический веб-сервер для Arduino, все у того же автора RC-Switch.

Его можно адаптировать как угодно, поэтому я немного расширил функционал. А именно — добавил контроль соединения с интернетом, перезагрузку модема, если интернета нет и уведомление через почту/Твиттер об этом удивительном факте. Строго говоря, это экспериментальные функции, особенно Твиттер, но почта имеет двойной смысл: дело в том, что mail.ru включает в заголовки IP-отправителя. Это очень актуально потому что у меня дома веб-камера, которую я бы хотел смотреть, например, в отпуске. Но иногда дома выключают электричество, или модем просто зависает, а при перезагрузке меняется его адрес, так что «кино» заканчивается. Поэтому уведомление по почте автоматически дает мне новый внешний IP.

Другие изменения — практически полное избавление от секции HTML, потому что если писать в ней все команды для простого управления через браузер, Arduino в какой-то момент зависает еще на старте. Я решил, что это из-за ограниченных ресурсов Arduino, и не стал вдаваться в этот вопрос. Поэтому получилось, что управлять через браузер можно, но команды необходимо вводить в строке адреса. Например: 192.168.1.1/?1-on.

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

Первые два пункта ТЗ считаем выполненными.

УПРАВЛЕНИЕ ЧЕРЕЗ АПП НА СМАРТФОНЕ


У меня смартфон с Android, для которого есть замечательный апп Tasker. Именно его я и хотел использовать для автоматизации.

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

Процедура такова:

1) Методично создаем новые задачи Tasks в категории Net — GET request. В параметрах запроса нужно только одно: заполнить строчку адреса полной командой. В моем случае, к примеру, 192.168.1.1/?1-on.

2) Открываем редактор сцен Scenes, и там добавляем нужные кнопочки, не забыв назначить на короткое нажатие одну из ранее созданных задач.

3) Создаем служебные задачи: Show Scene и Destroy Scene, они потребуются, чтобы открывать и закрывать виртуальный пульт ДУ. В принципе, можно обойтись без Destroy, нужно только в Show Scene убедиться, что включена опция кнопки выхода.

Вот, в общем-то, и все. Таким образом реализуется третий пункт ТЗ: управление через апп на смартфоне.

ГОЛОСОВОЕ УПРАВЛЕНИЕ ЧЕРЕЗ СМАРТФОН


Для четвертого пункта я воспользовался еще одним замечательным аппом — Utter! Voice Commands Beta, поскольку он интегрируется с Tasker и может выполнять его задачи по голосовой команде.

Но настройка требует просто ангельского терпения. Процедура простая: несмотря на требование Utter! устанавливаем русский язык голосового поиска Android. Потом открываем интерфейс Utter! (важно — не распознавание команд, а интерфейс программы) — Customisation — Create commands — Run Tasker Task — выбираем задачу и пытаемся два раза подряд одинаково произнести команду. Если получилось — не расслабляемся и говорим еще два слова: для успешного выполнения команды и ошибки.

Если Utter! совсем не понимает, то движок поиска можно оставить английским и найти любое слово/фразу, которое можете произнести два раза подряд одинаково. Это же касается сообщений для подтверждения и ошибки. Потом просто идем в пункт Edit commands и заменяем тексты на нужные. Только помним, что Utter! не умеет говорить по-русски, и поэтому сообщения о подтверждении и ошибке лучше записать по-английски или транслитом.

Да, не пугаемся, когда Utter! при повторении команды на русском не проговаривает ее. Это, опять же, следствие того, что апп не умеет пользоваться русским голосовым движком.

В общем, задача муторная, но решаемая.

МАЛЕНЬКИЕ ХИТРОСТИ


Для пунктов 5 и 6 ТЗ я воспользовался блоком реле, а не беспроводными розетками, поскольку модем, камера и Arduino можно расположить друг рядом с другом.

А чтобы не резать провода штатных сетевых адаптеров, подключил питание модема и камеры через разъемы, коммутируемые реле. Всего получилось две пары разъемов, при этом с разъема камеры (5В) я беру питание для блока реле, передатчика и приемника, а с разъема модема (9В) — для Arduino. Это позволяет минимизировать количество сетевых адаптеров, иначе ниша для всякого такого оборудования рискует превратиться в что-то с блекджеком и, да, вы поняли.

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

СПАСИБО КИТАЙСКИМ СИГНАЛИЗАЦИЯМ


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

А это поколение относится к удивительному открытию. Оказывается, дешевые китайские беспроводные сигнализации комплектуются датчиками, которые с точки зрения уже известной нам библиотеки RC-Switch ничем не отличаются от пультов ДУ с одной кнопкой. Т.е. внутри датчика стоит кодирующая микросхема, которая выдает уникальную последовательность нулей и единиц, и передатчик, который все это счастье выплевывает в эфир.

Не спорю, вероятно, есть и другие варианты, но у меня подозрение, что эта технология — основная.

По этому поводу я купил пару разных датчиков (открытия двери и протечки), чтобы сравнить их внутренности и попробовать подключить к Arduino. После вскрытия выяснилось, что внутренности совершенно идентичны, а после экспериментов с контроллером — что RC-Switch великолепно принимает их сигналы.

Слева датчик протечки, справа — датчик открытия двери.

Настолько похожи, что из одного можно сделать другой:

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

Звонок я, если честно, даже не открывал. Просто считал код в RC-Switch, и добавил его контроль к функционалу коробки.

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

1) В исключительно редких (помним про закон подлости) ситуациях, когда одновременно срабатывает несколько датчиков, кто-то потеряется;

2) Длительная передача может стать помехой для других беспроводных систем;

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

По итогам два имеющихся датчика используются следующим образом: датчик протечки — под раковиной на кухне, датчик открытия двери контролирует открытие раздвижных дверей гардероба, а по его сигналу Arduino включает/выключает свет внутри.

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

Таким образом считаю, что пункты ТЗ 7 и 8 по большей части закрыты.

И ТО, ЧТО НЕ


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

С третьей стороны, пока не совсем понимаю, зачем бы мне это понадобилось, кроме как «чтобы было».

СКОЛЬКО СТОЯТ КАПРИЗЫ


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

1) Arduino Uno: $9,98
2) Ethernet shield: $9,87
3) Блок из 4 реле: $6,94
4) Пара приемник/передатчик: $3
5) Один комплект макетных проводов: $4,34
7) Корпус, кажется, G1037B (да, в Чип и Дипе ценник конский): $10
8) Штекеры NP117A, 7 штук: $9,3
9) Гнезда для штекеров, 4 штуки: 5,3
10) Двужильный провод, 3 м (ну, он еще остался, конечно): $2,2

ИТОГО, грубо: $61

Для справки: розетки стоят примерно $50 за три штуки, радиовыключатели — $23 за штуку, датчик открытия — $5, датчик протечки — $7.

Спасибо за внимание )

mysku.ru

Arduino Uno: характеристики, распиновка, питание платы

Arduino Uno R3 – самая популярная плата, построенная на базе процессора ATmega328. В зависимости от конкретной модели платы этой линейки используются различные микроконтроллеры, на момент написания статьи самой распространённой является версия именно R3.

Плату используют для обучения, разработки, создания рабочих макетов устройств. Ардуино, по своей сути, – это AVR микроконтроллер с возможностью упрощенного программирования и разработки. Это достигнуто с помощью специально подготовленного загрузчика, прошитого в память МК, и фирменной среды разработки.

Плата Ардуино Уно

Размеры Уно

Размеры платы представлены на схеме ниже. Общие размеры Уно составляют 53,4 мм на 68,6 мм.

Характеристики

В основе платы лежит процессор ATmega 328. Кроме него на плате находится модуль USB для связи с компьютером и прошивки. Этот модуль называется «USB-TTL преобразователь». На фирменных платах Arduino Uno для этой целей используется дополнительный микроконтроллер ATmega16U2.

Характеристики Arduino Uno R3
Микроконтроллер ATmega328
Рабочее напряжение
Напряжение питания (рекомендуемое) 7-12В
Напряжение питания (предельное) 6-20В
Цифровые входы/выходы 14 (из них 6 могут использоваться в качестве ШИМ-выходов)
Аналоговые входы 6
Максимальный ток одного вывода 40 мА
Максимальный выходной ток вывода 3.3V 50 мА
Flash-память 32 КБ (ATmega328) из которых 0.5 КБ используются загрузчиком
SRAM 2 КБ (ATmega328)
EEPROM 1 КБ (ATmega328)
Тактовая частота 16 МГц

Особенность этого чипа заключается в аппаратной поддержке USB, что позволяет организовывать связь без дополнительных преобразователей. В то время как ATmega328 не поддерживает такой функции, поэтому 16u2 выступает в роли преобразователя данных из USB в последовательный порт для МК AVR. В него залита программа для выполнения этой задачи.

Однако так происходит не всегда: в более мелких платах, таких как Arduino Nano, используют преобразователи уровней на базе различных микросхем, например FT232, CP21XX, Ch440g и подобных. Это решение является более дешевым и не требует прошивки дополнительного связывающего контроллера, как описано выше.

Внимание! Не всё так однозначно с DCcduino UNO r3 на ch440g. В ней как раз и использован более дешевый, чем в оригинале, вариант преобразователя USB-TTL.

На плате есть выход 3.3 В, он нужен для подключения периферии и некоторых датчиков, его пропускная способность по току равна 50 мА.

ATmega328 работает на частоте 16 МГц. Она фиксирована кварцевым резонатором, который вы можете, по желанию, заменить, тем самым ускорив работу Uno r3.

Важно! После замены кварцевого резонатора функции, связанные со временем, такие как Delay, не будут соответствовать введенным значениям. Это функция задержки времени, по умолчанию её аргументом является требуемое время задержки в мс. Функция прописана в библиотеках Ардуино, с учетом стандартной тактовой частоты в 16 МГц. Поэтому после замены кварца заданное время не будет соответствовать написанному. Для этого нужно либо подбирать опытным путем и устанавливать зависимости, либо править файлы библиотек.

Память Ардуино Уно

Микроконтроллер Arduino Uno содержит 32 кб флэш-памяти, из которой пользователю доступно 31.5 кб, потому как 0.5 занимает загрузчик.

  • ОЗУ – 2 кб памяти.
  • EEPROM - 1 кб памяти.

Как осуществляется питание платы?

Чтобы включить плату, нужно на неё подать питание либо от USB порта, можно прямо от ПК, либо от внешнего источника питания – от 7 до 15 Вольт. На плате установлен линейный стабилизатор, типа L7805, или же LDO. Он нужен для того, чтобы на микроконтроллер подавалось стабилизированное напряжение 5 В.

При этом приоритетно выбирается внешний источник питания, а не ЮСБ-порт. Внешнее питание подключается к выводу с пометкой «Vin» в разделе Power на плате.

Расположение выводов, распиновка

Разработчики платы Arduino очень удобно и логично расположили выводы платы. Дело в том, что при разработке на «чистых» МК АВР приходилось обращаться к выводу порта, для этого нужно было запомнить название каждой ножки на чипе. Здесь это гораздо проще. На самой плате указано название каждого из пинов. Удобства добавляет и то, что пины разбиты на 3 группы:

  1. Digital – блок цифровых пинов.
  2. Analog – блок аналоговых пинов.
  3. Power – блок пинов, которые связаны с питанием и работой микросхемы.
Распиновка платы

При этом в разделе Digital пины, которые могут выдавать ШИМ-сигнал (PWM), помечены тильдой «~». Для служебных целей и проверки работоспособности контроллера на плате установлен светодиод, который подключен к 13-му выводу, а из среды разработки Arduino IDE к нему можно обращаться через встроенную директиву LED_BUILTIN. Такие схемы расположения пинов называются «Arduino UNO pinout», при этом, вместо UNO, может быть указано название другой платы, которая вас интересует.

Описание пинов платы

Микроконтроллер имеет 14 цифровых пинов, они могут быть использованы, как вход или выход. Из них 6 могут выдавать ШИМ-сигнал. Они нужны для регулировки мощности в нагрузке и других функций.

Пин ардуино Адресация в скетче Специальное назначение ШИМ
Цифровой пин 0 0 RX
Цифровой пин 1 1 TX
Цифровой пин 2 2 Вход для прерываний
Цифровой пин 3 3 Вход для прерываний ШИМ
Цифровой пин 4 4
Цифровой пин 5 5 ШИМ
Цифровой пин 6 6 ШИМ
Цифровой пин 7 7
Цифровой пин 8 8
Цифровой пин 9 9 ШИМ
Цифровой пин 10 10 SPI (SS) ШИМ
Цифровой пин 11 11 SPI (MOSI) ШИМ
Цифровой пин 12 12 SPI (MISO)
Цифровой пин 13 13 SPI (SCK)
К выходу дополнительно подсоединен встроенный светодиод

Вызов ШИМ-сигнала осуществляется через команду AnalogWrite (номер ножки, значение от 0 до 255). Для работы с аналоговыми датчиками присутствует 6 аналоговых входов/выходов.

Пин Адресация в скетче Специальное назначение
Аналоговый пин A0 A0 или 14
Аналоговый пин A1 A1 или 15
Аналоговый пин A2 A2 или 16
Аналоговый пин A3 A3 или 17
Аналоговый пин A4 A4 или 18 I2C (SCA)
Аналоговый пин A5 A5 или 19 I2C (SCL)

Их тоже можно использовать, как цифровые.

Аналоговый сигнал обрабатывается 10 битным аналогово-цифровым преобразователем (АЦП), а при чтении микроконтроллер выдаёт численное значение от 0 до 1024. Это равно максимальному значению, которое можно записать в 10 битах. Каждый из выводов способен выдать постоянный ток до 40 мА.

Принципиальная схема платы выглядит так (нажмите для увеличения):

Микроконтроллер ATMega 328

Как мы написали выше, ATmega328 работает на частоте 16 МГц. Распиновка микроконтроллера ниже (нажмите на изображение для увеличения):

Работа в комплексе с другими системами

Самое первое, с чем вы можете познакомиться, даже без приобретения дополнительных устройств для разработки – это связь по последовательному порту. Он активируется по команде Serial.begin (скорость, например 9600). Подробно о каждой команде вы можете прочитать в обучающем разделе на официальном сайте проекта Arduino.ru. Вы можете обмениваться с компьютером информацией. Плата, в зависимости от программного кода, может вам присылать данные, а вы их, через монитор портов в Arduino IDE, можете читать.

Кроме последовательного порта, в ардуино UNO реализована поддержка таких интерфейсов:

Через них можно осуществлять «общение» между несколькими платами, а также подключать разную периферию: датчики и дисплеи.

Платы расширения

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

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

Одним из самых популярных является Arduino Ethernet Shield. Он нужен для связи с Ардуино по обычному сетевому кабелю, витой паре. На нём расположен разъём rj45.

С подобным шилдом можно управлять вашим микроконтроллером по сети через веб-интерфейс, а также считывать параметры с датчиков, не отрываясь от компьютера. Существуют проекты с использованием такого комплекта в домашнем облачном хранилище, с ограничением по скорости, всё-таки Атмега328 слабовата для таких задач, и для этого лучше подойдут одноплатные компьютеры типа Raspberry pi.

Как преодолеть аппаратные ограничения

Большинство распространённых плат имеют аналогичные характеристики, среди них:

  • Uno;
  • Nano;
  • Pro mini;
  • и подобные.

Но с развитием ваших навыков разработки в этой среде появляется проблема нехватки мощности и быстродействия этой платформы. Первым шагом для преодоления ограничений является использование языка C AVR.

С его помощью вы ускорите на порядок скорость обращения к портам, частоту ШИМ и размер кода. Если вам и этого недостаточно, то вы можете воспользоваться мощными моделями с аналогичным подходом к разработке. Для этого подойдёт плата Arduino Mega2560. Еще более мощная – модель Due. В противном случае вам стоит ознакомиться с разновидностями одноплатных компьютеров и STM микроконтроллеров.

Ардуино Uno R3 – отличная плата для большинства проектов, которая служит для изучения устройств цифровой электроники.

arduinoplus.ru

Отправить ответ

avatar
  Подписаться  
Уведомление о