#2 Знакомство с Arduino, выбор платы и компонентов

Привет начинающим ардуинщикам!)

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

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

Arduino — что же это такое? Наверняка многие из вас уже имеют представление об этой платформе, которая разрабатывалась для прототипирования (то есть разработки) различных устройств. И со временем так получилось, что эта платформа стала одной из самых популярных в кругу начинающих любителей электроники. И тут все дело в простоте: подключили плату к компьютеру, установили программную среду и уже можно писать свои первые программы, причем, на упрощенном, высокоуровневом языке – обо всем этом мы обязательно поговорим в следующих выпусках.

В видеоролике на этом моменте я предлагаю посмотреть на примеры некоторых проектов на Arduino, ну а мы, минуя этот момент, продолжим.. 🙂

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

Ну а история появления бренда Arduino берет своё начало ещё в далеком 1002 году, в Италии, где с 1002 по 1004г.г. правил король Ардуин, в честь которого и была названа эта платформа. А её создателем является Массимо Банци (Massimo Banzi), который в 2005 году, вместе со своей группой разработчиков выпустил скромный инструмент для студентов в Институте проектирования взаимодействий города Ивреа. Первый прототип платы выглядел достаточно просто, и тогда еще не имел никакого названия — чуть позднее Массимо назвал плату в честь бара Arduino, владельцем которого он тогда и являлся.

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

Продукт, который создала команда, состоял из дешевых и доступных компонентов и главная задача разработчиков состояла в том, чтобы гарантировать работу устройства по принципу «plug-and-play», — то есть, чтобы пользователь, достав плату из коробки и подключив к компьютеру, мог немедленно приступить к работе.

Так и появилась Arduino, которая очень быстро набрала популярность в интернете и в настоящий момент является одной из самых популярных платформ для создания устройств любителями и новичками в этой сфере. До сих пор настоящие, оригинальные платы Arduino производятся только в Италии в городе Торино и в США, в Нью-Йорке.

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

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

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

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

Таким образом, любая плата Arduino, это, прежде всего, микроконтроллер, выводы которого удобно разведены по краям платы и подписаны. У Arduino UNO таких выводов 20, 6 из которых аналоговые, а остальные 14 — цифровые.

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

Так же у Uno есть младший аналог – это Arduino Nano, которая, если рассматривать китайские аналоги, отличается от UNO меньшими размерами применяемых компонентов и, отсюда, небольшими размерами самой платы. Здесь уже стоит отталкиваться от того, кому как удобнее.

Наоборот, старшим аналогом UNO является плата Arduino Mega с микроконтроллером ATmega1280, либо 2560 в зависимости от конфигурации. Такая плата подходит для уже более серьезных проектов, рассчитанных на большое количество подключаемых устройств и емкого программного кода, поэтому она содержит 54 цифровых выхода и 16 аналоговых, а так же объем памяти в ней по сравнению c Uno и Nano уже не 32Кб, а 128Кб — что, в 4 раза больше.

Следующей в списке идет Arduino Leonardo, совпадающая по размерам с UNO, но отличающаяся в применяемом микроконтроллере – на сей раз это Atmega32u4. Эту плату компьютер распознает как подключенную к нему клавиатуру или мышь, поэтому, она, помимо прочего, идеально подходит для создания на ее основе различных джойстиков и других устройств ввода.

Специально для реализации небольших устройств, разработчики Arduino создали плату под названием Arduino Mini, имеющую очень компактные размеры и построенную на базе микроконтроллера ATmega168. Так же существует версия Arduino Pro Mini, главным отличием которой является отсутствие ножек-выводов. Из-за такого сокращения компонентов плата не имеет собственного USB и программируется через специальные USB-преобразователи и адаптеры.

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

Зачастую для ваших проектов будет не хватать одной лишь платы Arduino — например, в случае, если вы захотите взаимодействовать с интернетом, или управлять множеством сервоприводов. И здесь на помощь приходят так называемые шилды (от англ. Shield — щит), представляющие собой платы расширения, и подключаемые к Arduino по принципу бутерброда.

Их количество очень разнообразно и каждый шилд отвечает за выполнение каких-либо конкретных задач.

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

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

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

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

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

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

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

Помните, я упомянул про три возможных варианта, и не назвал еще один. Так вот, средними по ценовому диапазону и качеству компонентов являются платы так называемых xDuino производителей. Где вместо x подставляются различные наименования разработчиков, например, Freeduino, Seeeduino, CraftDuino и так далее. Эти платы являются полностью Arduino-совместимыми и зачастую имеют всяческие штрихи и дополнения, в виде каких-то улучшений или доработок.

Версия платы Arduino под названием Craftduino

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

Перед вами две фотографии этих плат, давайте посмотрим на их отличия.

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

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

Итак, самую главную часть для дальнейшей работы мы рассмотрели и теперь осталось определиться с тем, что еще понадобится вам при дальнейшем обучении по этому курсу:

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

2. Набор из резисторов различных номиналов, о назначении которых мы говорили в прошлом выпуске

3. Небольшое количество светодиодов

4. Кнопки

5. Соединительные провода

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

Модуль реле — он позволит вам управлять различной нагрузкой в вашем доме.

Датчик движения – позволит регистрировать перемещение нагретых тел в зоне его видимости (пригодится при создании, например, автоматического включения света или сигнализации)

Фоторезистор – позволит наблюдать за степенью освещенности комнаты.

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

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

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

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

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

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

P.S. Некоторые ссылки для заказа компонентов вы найдете здесь:http://gointger.ru/komponentyi/

Нулевой выпуск из серии видеороликов по основам Arduino для начинающих

Привет всем любителям Arduino или пока только присматривающимся к этой платформе:)

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

Охранная сигнализация или система оповещения на Arduino

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

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

 

Ну а для тех, кто больше любит читать, продолжим.. 🙂

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

В моей системе необходимо было обеспечить возможность управления сигнализацией удалённо, то есть из дома, поэтому у меня было два пути решения этой проблемы:

1. Организовать беспроводное соединение между двумя Arduino.

2. Либо же обойтись одной Arduino и в гараж вывести лишь длинный провод с датчиками.

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

Я решил идти по второму пути — с проводом и одной Arduino, и вот почему: во-первых расстояние до моего гаража составляет примерно 50 метров, что не так много для ощутимого затухания сигнала в линии и вполне реализуемо по затратам кабеля, а во вторых, из-за неотапливаемости помещения зимой, температура в нем может опускаться до -30-35 градусов, что пагубно скажется на Arduino без дополнительного обогрева. Да и перебои с электричеством у нас частые, поэтому пришлось бы лепить дополнительный аккумулятор, что бы поддерживать обогрев и работоспособность.

В итоге я решил просто проложить витую пару и на ее конце навешать датчики. Ну а аккумулятор для резервного питания добавлю как-нибудь попозже.

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

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

Всю её можно разбить на три части: это та, что стоит дома (пульт управления), та, что стоит в охраняемом помещении (датчик Холла и пр), и та, что связывает эти части (витая пара).

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

Из корпуса выходит витая пара на 8 жил, на обратном конце которой расположены датчик температуры и влажности, датчик Холла и пьезо-пищалка с кнопкой:

WP_20160715_21_03_31_Pro

Схема подключения всей системы получилась довольно простой и выглядит как-то так:

signal_bb

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

Алгоритм работы сигнализации достаточно прост и представить его можно вот такой упрощенной блок-схемой:

блок-схема

Что касается кода, то объяснять его, я думаю, нет особого смысла, так как там все разбито по функциям и хорошо закомментировано. Скажу лишь только что код, конечно же, можно оптимизировать и внести в него изменения на своё усмотрение, он далек от идеала, но протестирован на живом примере и стабильно работает. Так же, если вам лень разбираться в коде и хочется просто собрать все по схеме, я специально оставил в самом верху листинга две переменные: первая отвечает за временную задержку на включение сигнализации после нажатия кнопки (я поставил 3 минуты), а вторая отвечает за включение оповещения об открытии двери, то есть то время, когда вы открыли дверь и еще не выключили сигнализацию — по умолчанию на это дается 30 секунд:

#define DELAY_CLOSE 180000
#define DELAY_OPEN 30000

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

Программный код и схемы вы найдете здесь: GitHub

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

 

Умный дом в массы! Открытый код системы

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

Подробности на видео:

ОСТОРОЖНО! Код написан не по «правилам хорошего кода» 🙁 Ожидается куча непонятных переменных и констант. За помощь в приведении его к более удобочитаемому виду — от меня огромная благодарность. У самого, к сожалению, сейчас на это совсем нет времени..

Итак, смотрим..

Программный код на GitHub: Посмотреть

Узнать о том, как все устроено и работает, а так же скачать схему прототипа вы можете здесь:

Общие сведения о системе «Умный дом»

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

Автоинформатор на Arduino. Озвучивание команд

Создание сервера для Arduino на Ethernet shield W5100

По заявкам трудящихся — первое видео из серии роликов о работе с Ethernet шилдом и Arduino.

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

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

Собственно, сам поясняющий видеоролик:


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

Ссылка для скачивания файла с кодом для Arduino:

Скачать с Яндекс.Диск

Автоинформатор на Arduino. Озвучивание команд

Ну что же, наверное вы заинтересованы возможностью озвучить ваш проект и придать ему некоторое очеловечивание. В этом видео я покажу вам как это можно сделать с помощью недорогого модуля WTV020, ссылку на приобретение которого вы найдете в разделе «Компоненты». Специально для облегчения вашего труда, я подготовил архив со всеми записями, которыми на данный момент снабжен автоинформатор «Умного дома». Архив содержит как обычные записи в формате WAV, так и конвертированные в специальный формат AD4  для используемого модуля.

Использованные файлы (библиотеки, код, схема, конвертер, пробная аудиозапись WAV и AD4):
Скачать с Яндекс.Диск

Полный сборник всех аудиозаписей в форматах WAV и AD4:
Скачать с Яндекс.Диск

Библиотека DHT:
Скачать с Яндекс.Диск

Общие сведения о системе «Умный дом»

В этой записи речь пойдет о том, из чего состоит прототип системы «Умный дом», демонстрационное видео которого вы можете посмотреть по этой ссылке.

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

Для тех, кому захочется повнимательней рассмотреть схему (кстати, созданную в удобной программе Fritzing) привожу ссылку для её скачивания: Схема

Весь код системы вы найдете в этой статье:

http://gointeger.ru/umnyiy-dom-v-massyi-otkryityiy-kod-sistemyi/

Все компоненты, использованные в макете, я специально разместил в разделе «Компоненты» на сайте:

http://gointeger.ru/komponentyi/