Делаем мини-пианино с помощью Ардуино — схемы и видео
Компоненты
Необходимые компоненты для нашего проекта:
- Arduino UNO — 1 шт.
- Провода-переходники папа-папа — 104×4.
- Клавиатура — 14 Ом.
- Динамики — 1A.
- ПК или ноутбук.
Рабочий код
arduino-keypad.rar
#include#include «pitches.h» #define GND 12 const byte ROWS = 4; //four rows const byte COLS = 4; //four columns const int SPEAKER=11;//define the symbols on the buttons of the keypads char hexaKeys = { {‘0′,’1′,’2′,’3’}, {‘4′,’5′,’6′,’7’}, {‘8′,’9′,’A’,’B’}, {‘C’,’D’,’E’,’F’} }; byte rowPins = {3, 2, 8, 0}; //connect to the row pinouts of the keypad byte colPins = {7, 6, 5, 4}; //connect to the column pinouts of the keypad//initialize an instance of class NewKeypad Keypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS); void setup(){ Serial.begin(9600); pinMode(GND,OUTPUT); digitalWrite(GND,LOW); } void loop(){ char customKey = customKeypad.getKey(); if (customKey==’0′){ Serial.println(customKey); tone(SPEAKER,NOTE_C4,350); } if (customKey==’1′){ Serial.println(customKey); tone(SPEAKER,NOTE_D4,350); } if (customKey==’2′){ Serial.println(customKey); tone(SPEAKER,NOTE_E4,350); } if (customKey==’3′){ Serial.println(customKey); tone(SPEAKER,NOTE_F4,350); } if (customKey==’4′){ Serial.println(customKey); tone(SPEAKER,NOTE_G4,350); } if (customKey==’5′){ Serial.println(customKey); tone(SPEAKER,NOTE_A4,350); } if (customKey==’6′){ Serial.println(customKey); tone(SPEAKER,NOTE_B4,350); } if (customKey==’7′){ Serial.println(customKey); tone(SPEAKER,NOTE_C5,350); } if (customKey==’8′){ Serial.println(customKey); tone(SPEAKER,NOTE_D5,350); } if (customKey==’9′){ Serial.println(customKey); tone(SPEAKER,NOTE_E5,350); } if (customKey==’A’){ Serial.println(customKey); tone(SPEAKER,NOTE_F5,350); } if (customKey==’B’){ Serial.println(customKey); tone(SPEAKER,NOTE_G5,350); } if (customKey==’C’){ Serial.println(customKey); tone(SPEAKER,NOTE_A5,350); } if (customKey==’D’){ Serial.println(customKey); tone(SPEAKER,NOTE_B5,350); } if (customKey==’E’){ Serial.println(customKey); tone(SPEAKER,NOTE_C6,350); } if (customKey==’F ‘){ Serial.println(customKey); tone(SPEAKER,NOTE_D6,350); }}
Files — Example — Keypad — Custom Keypad
Играем песню «С Днем Рождения»
Как играть песню «С Днем Рождения» на клавиатуре:
4 4 5 4 B 6 4 4 5 4 7 B4 4 C 8 B 6 59 9 9 B 7 B
Видео:
Аппаратные прерывания
В Arduino имеется 4 вида аппаратных прерываний. Отличаются они сигналом на контакте прерывания.
- Контакт прерывания притянут к земле. Ардуино будет выполнять обработчик прерывания пока на пине прерывания будет сигнал LOW.
- Изменение сигнала на контакте прерывания. Ардуино будет выполнять обработчик прерывания каждый раз когда на пине прерывания будет изменяться сигнал.
- Изменение сигнала на контакте прерывания от LOW к HIGH. Обработчик прерывания исполняется только при изменении низкого сигнала на высокий.
- Изменение сигнала на контакте прерывания от HIGH к LOW. Обработчик прерывания исполняется только при изменении высокого сигнала на низкий.
Если прерывание ожидает нажатия кнопки, то это может стать проблемой из-за дребезга контактов. В 6 уроке мы уже говорили о дребезге контактов. Тогда мы использовали функцию delay(), но в прерываниях данная функция не доступна. Поэтому нам придется подавить дребезг контактов немного усложнив схему подключения кнопки к пину прерывания. Для этого понадобится резистор на 10 КОм, конденсатор на 10 микрофарад,и инвертирующий триггер шмитта. Подключается все по следующей схеме:
подключение кнопки прерывания ардуино
В Arduino Uno есть два пина, поддерживающие прерывания. Это цифровые пины 2 (int 0) и 3 (int 1). Один из них мы и будем использовать в нашей схеме.
Предлагаю сделать устройство, которое будет поочередно изменять яркость светодиодов в зависимости от показаний инфракрасного датчика расстояния, а по нажатию на кнопку прерывания будем переходить от одного светодиода к другому. Наше устройство будет выглядеть примерно вот так:
Использование прерываний Arduino
Схема кажется сложной и запутанной, но это не так. Мы подключаем кнопку прерывания к пину Arduino D2, используя аппаратное подавление дребезга контактов. К аналоговому пину A0 мы подключаем инфракрасный дальномер. И к пинам D9, D10 и D11 мы подключаем светодиоды через резисторы на 150 Ом. Мы выбрали именно эти контакты для светодиодов, потому что они могут выдавать ШИМ сигнал.Теперь рассмотрим скетч:
Обратите внимание на следующие моменты: Необходимо использовать ключевое слово «volatile» перед объявлением переменной значение которой будет изменяться в обработчике прерывания. Так же я добавил переменную «nullLed» для того что бы программа на определенном шаге не меняла цвет ни одного из подключенных светодиодов
Строка «attachInterrupt(buttonInt, swap, RISING);» назначает обработчиком прерывания функцию swap. Подробнее об этой функции вы можете почитать здесь.
Функция swap просто переключает текущий светодиод на следующий. Остальной скетч должен быть вам понятен, если вы посмотрели все предыдущие уроки. Это последний обучающий урок. В следующих статьях я расскажу о подключении к Arduino популярных модулей.
Библиотеки Arduino
Библиотеки Arduino представляют собой коллекции функций, которые позволят вам управлять устройствами. Вот некоторые из наиболее широко используемых библиотек:
- – чтение и запись в «постоянно» хранилище;
- – для подключения к интернету, используя плату Arduino Ethernet Shield;
- – для связи с приложениями на компьютере, используя стандартный последовательный протокол;
- – для подключения к сети GSM/GRPS с помощью платы GSM;
- – для управления жидкокристаллическими дисплеями (LCD);
- – для чтения и записи SD карт;
- – для управления сервоприводами;
- – для связи с устройствами, используя шину SPI;
- – для последовательной связи через любые цифровые выводы;
- – для управления шаговыми двигателями;
- – для отрисовки текста, изображений и фигур Arduino TFT экранах;
- – для подключения к интернету, используя плату Arduino WiFi shield;
- – двухпроводный интерфейс (TWI/I2C) для передачи и приема данных через сеть устройств или датчиков.
Начало работы с Ардуино
Для того, что бы начать использовать Arduino необходимо приобрести плату Arduino или стартовый набор Arduino. Я советую выбрать стартовый комплект ардуино, так как он включает в себя не только микроконтроллер ардуино, но и беспаечную макетную плату, соединительные провода, кнопки, светодиоды и дополнительные детали. С таким набором вы сможет выполнить примеры из уроков по Arduino для начинающих. Это позволит вам быстро разобраться с принципами работы с Arduino.
После прохождения уроков вы будите знать как программировать Arduino, как обмениваться сигналами с другими модулями и устройствами. Вы сможете проектировать, а так же создавать ваши собственные устройства.
Arduino IDE
Для начала работы с Ардуино вам понадобится специальное программное обеспечение. Это среда для разработки прошивок Arduino IDE. В этой программе легко и удобно писать скетчи и загружать их на ваш микроконтроллер Ардуино. В среде разработки уже предустановленно большое количество примеров и дополнительных библиотек.
Ссылки на скачивание, инструкции по установке и настройке среды разработки есть на странице Arduino IDE.
Что можно сконструировать при помощи Arduino?
Диапазон возможностей Arduino очень широк. Конструктор легко интегрируется с большинством популярных программных систем и механизмов. Что позволяет программировать с его помощью достаточно сложные конструкции, вплоть до производственного оборудования и роботов. Некоторым конструкторам удавалось с помощью вышеописанных плат создавать мобильные гаджеты, и системы умного дома, включая механизмы видеонаблюдения, сигнализации и т.п. Универсальная аппаратная система позволяет также создавать простые системы виртуальной реальности, и многие другие механизмы взаимодействия с современными устройствами вывода аудио и видео данных.
Установка Arduino IDE
Прежде чем начать работу с Arduino необходимо установить среду программирования Arduino IDE на ваш компьютер/ноутбук. Все описанные далее шаги по установке данной программной среды будут ориентированы на операционную систему Windows, для остальных операционных систем последовательность действий будет примерно такой же. Если возникнут проблемы с другими системами, то помощь можно найти по следующим ссылкам – для пользователей Mac и пользователей Linux. Перед началом установки Arduino IDE убедитесь что вы обладаете правами администратора на вашем компьютере – это облегчит установку.
Шаг 1. Загрузите Arduino IDE с официального сайта — https://www.arduino.cc/download_handler.php.
Шаг 2. Запустите скачанный exe файл.
Шаг 3. В открывшемся окне кликните на “I Agree” чтобы согласиться с условиями лицензии Arduino.
Шаг 4. В окне опций установки отметьте все галочки (см. рисунок).
Шаг 5. На этом шаге необходимо выбрать место установки Arduino IDE. По умолчанию стоит путь установки в Program files на диске C – крайне рекомендуется оставить именно этот путь.
Шаг 6. На этом шаге вы можете наблюдать как Arduino IDE устанавливается на ваш компьютер (см. рисунок). После того как установка будет завершена нажмите кнопку “completed”.
Шаг 7. После завершения установки запустите на выполнение файл Arduino.exe. Откроется окно IDE с минимумом кода внутри него – см. рисунок.
Cкачать Arduino IDE
Версия | Windows | Mac OS X | Linux |
1.6.5 | |||
1.8.2 |
Самый безопасный и надежный источник — это, конечно же, , но вы можете скачать самые популярные версии на этой странице по ссылкам выше. Самая свежая версия на момент написания статьи 1.8.2. Вы можете скачать ее, но многие рекомендуют скачивать версию 1.6.5, потому что она считается самой стабильной. Так же существует классическая версия Иде 1.0.6. Она не поддерживает работу с Arduino Yún и Arduino DUE. Так же эта линейка версий программ больше не поддерживается сообществом и обновляться не будет.
Для Windows есть возможность загрузки архива (Windows) и инсталлятора (Windows Installer). Архив можно использовать как Portable версию. А если вы устанавливаете среду разработки ардуино на свое постоянное рабочее место, то лучше выбрать Windows Installer.
Я использую последнюю версию, но у нее есть трудности при работе из другого редактора. Я долго пытался настроить функции программы в редакторе Sublime Text 3. Работать такая связка абсолютно не хотела, поэтому я просто отказался от этой идеи и оставил все как есть. Если вы хотите использовать свой любимый редактор, то лучше скачивайте версию 1.6.5.
Для загрузки выберите необходимую версию, подходящую под вашу операционную систему. Далее откроется страница с добровольными пожертвованиями. Arduino IDE является бесплатной программой. Вы можете просто скачать ее нажав на серую надпись «Just Download», или можете отблагодарить разработчиков добровольным взносом.
Охарактеризуйте язык функциональных блок-схем fbd.
Язык FBD
(Function
Block
Diagram)
– графический язык программирования
высокого уровня, обеспечивающий
управление потоками данных всех типов.
Позволяет использовать очень мощные
алгоритмы простым вызовом функций и
функциональных блоков. Удовлетворяет
непрерывным динамическим процессам.
Замечателен для небольших приложений.
Хорош для сложных вещей подобно ПИД
регуляторам, массивам и т. д. Имеет
большую библиотеку блоков. FBD
заимствует символику булевой алгебры
и, так как булевы символы имеют входы и
выходы, которые могут быть соединены
между собой, FBD
является более эффективным для
представления структурной информации,
чем язык релейно-контактных схем.
2. Что такоеEFB,DFB,UDEFB?
EFB
(Elementary
Function
Block)
– элементарные функции и элементарные
функциональные блоки; они находятся в
библиотеках. Логика обработки в EFB
(программа) написана на языке С и не
может быть изменена в редакторе FBD.
Изменять можно только параметры блоков;
DFB(Derived
Function
Block)
– функции и функциональные блоки
пользователя; они конструируются
пользователем из EFB;
UDEFB(User
Defined
Elementary
Function
Block)
– разработанные пользователем на
языке С; они оформляются как объекты
библиотек.
3.Каково назначение
входовENи выходовENOфункциональных блоков?
Все FFB
могут быть вызваны с дополнительными
(необязательными) формальными
параметрами: EN
(входом) и ENO
(выходом).
Конфигурирование (включение
или выключение) параметров EN
и ENO
осуществляется в диалоговом окне
Property
(свойства) FFB,
которое вызывается посредством команд
Object,
Property
(Объекты, Свойства), или двойным нажатием
левой клавиши (ЛК) мыши на изображении
FFB.
Если FFB
вызывается с параметрами EN/ENO
и при этом значение EN
равно нулю, то алгоритмы, определяемые
FFB,
не будут выполняться. В этом случае
значение ENO
автоматически устанавливается равным
0. Если же значение EN
равно 1, то алгоритмы, определяемые
FFB,
будут выполнены. После выполнения этих
алгоритмов без ошибок значение ENO
автоматически устанавливается равным
1. Если же возникает ошибка во время
выполнения этих алгоритмов, то значение
ENO
будет установлено равным 0.
Поведение FFB
одинаково как в случае вызова FFB
с EN
= 1, так и при вызове без параметров
EN/ENO.
4. Какую структуру имени, присваиваемого
автоматически, имеет FFB?
Для EFB,
DFB
и UDEFB
принято общее обозначение – FFB
(Functions/Function
Block).
Каждый из перечисленных объектов
представляет собой подпрограмму,
которая помещается в одну из библиотек,
используемых при разработке программы
работы ПЛК. Таким образом обеспечивается
возможность вызова и хранения FFB
в форме библиотек.
Имя экземпляра является уникальным
идентификатором для функционального
блока в проекте. Имя экземпляра создается
автоматически и имеет следующую
структуру: FBI_n
FBI = Экземпляр Функционального Блока
n = порядковый номер функционального
блока в проекте
Это автоматически генерируемое имя
может быть изменено для наглядности.
Имя экземпляра (максимум 32 символа)
должно быть уникальным в пределах всего
проекта и не является чувствительным
к регистру. Имя экземпляра должно
соответствовать общим соглашениям об
именовании.
5.Для чего служат связи?
Связи являются соединениями между FFB.
Несколько связей могут быть соединены
с FFB выходом. Пункты любого такого
соединения отмечаются жирной точкой.
Входы/выходы, которые будут соединены,
должны иметь соответствующие типы
данных. Связи могут быть отредактированы
в режиме Выбора. Перекрывание с другими
объектами разрешается. Связи не могут
использоваться для конфигурации
контуров, потому что не возможно ясно
определить порядок обработки в секции.
Контуры должны решаться с помощью
фактических параметров.
6. Какое значение
назначается по умолчанию несвязанным
входамFFB?
Несвязанным входам FFB назначается по
умолчанию значение ”0”.
Минимальные знания
Сначала стоит ознакомиться с общими понятиями, прежде чем разбирать проекты на Ардуино для начинающих. Ведь система, пусть и имеет низкий порог вхождения, но это вовсе не значит, что вы сможете, не прочитав никакого руководства, сразу ринуться в бой.
Конечно, нет необходимости покупать и штудировать научную литературу пачками, прежде чем вы начнете понимать, как реализовывать проекты на esp8266.
Однако, базовые понятия о нюансах работы МК и том, что он собой представляет, иметь необходимо, иначе вы не раз будете натыкаться на одни и те же грабли.
Для начала стоит выделить алгоритм разработки новой системы, а для этого давайте разберёмся, из чего она состоит.
Аппаратная часть
Это основа любого проекта, который вы собрались подготовить, ведь все они строятся на микрочипах и вспомогательных модулях. Соответственно, прежде чем вообще приступать к архитектуре и созданию платформы, необходимо наметить, какой функционал у неё должен быть.
Так, если вы собираетесь сделать кодовый замок, который будет реагировать на постукивания по поверхности, то необходим соответствующий датчик.
Ведь Ардуино – это всего лишь процессор вашей системы, а все остальные её комплектующие могут варьироваться в зависимости от потребностей. Это же позволяет экономить ресурсы, время и деньги инженера.
Программная часть
Если микропроцессор – сердце системы, то код – её мозг. Без должного программного обеспечения плата просто не поймет, что ей делать с поступающими данными и куда выводить обработанные, да и как их вообще обрабатывать.
Здесь раскрывается прелесть системы, ведь, в отличие от «болванок», Ардуино уно проекты для начинающих могут и вовсе не потребовать с вас ни строчки кода.
Достаточно лишь понимать, какой функционал вам необходим, и уметь гуглить. Всё находится в открытом доступе и, просмотрев пару гайдов, вы быстро разберетесь, как работать через usb с консолью и постоянной памятью системы.
Этапы создания
Следует сказать, что этапы создания системы «умного дома» с привлечением специалистов или же своими руками будут одинаковыми. Правда, в последнем случае готовый вариант в целом обойдется существенно дешевле, чем если привлекать специалистов, которых на рынке и так не хватает. По этой причине зарплаты у них будут соответствующими, а значит, если вы не хотите тратить лишние средства, то можно обойтись собственными силами. Итак, начнем с комплектующих для этой системы, если вы решили все-таки создавать ее самостоятельно.
Комплектация
Если говорить о комплектации системы, то технология будет включать в себя следующий набор компонентов:
- датчик движения;
- датчик температуры и влажности;
- датчик освещенности;
- пара температурных датчиков с маркировкой DS18B20;
- Ethernet-модуль марки ENC28J60;
- микрофон;
- переключатель язычкового типа;
- реле;
- кабель типа «витая пара»;
- кабель категории Ethernet;
- резистор, имеющий сопротивление 4,7 килоома;
- микропроцессорная плата Arduino.
Алгоритм подключения
Следует сказать, что умный дом должен быть оснащен исключительно светодиодными лампочками, так как обычные варианты просто могут не выдержать большого напряжения. Когда проект будет готов, а все нужные запчасти уже приобретены, следует начать подключение датчиков и контроллеров. Делать это необходимо исключительно по схеме, созданной ранее. Контакты необходимо полностью заизолировать.
Если говорить кратко, то поэтапно алгоритм подключения будет выглядеть таким образом:
- установка кода;
- настройка приложения для ПК или мобильного;
- портовая переадресация;
- осуществление тестирования ПО и датчиков;
- устранение неисправностей, если они были выявлены при тестировании.
Итак, начнем с установки кода.
Сначала пользователю следует написать ПО в Arduino IDE. В нем представлены:
- текстовый редактор;
- создатель проектов;
- программа для компиляции;
- препроцессор;
- инструмент для загрузки ПО в мини-процессор Arduino.
Следует сказать, что существуют версии ПО для основных компьютерных ОС – Windows, Linux, Mac OS X. Если говорить об используемом языке программирования, то речь идет о C++ с рядом упрощений. Программы, написанные пользователями для Arduino, обычно называют скетчами. Ряд функций система создает автоматически и пользователю не нужно разбираться в их написании, прописывая список обычных действий. Также нет необходимости вносить файлы заголовочного типа обычных библиотек. Но пользовательские вставлять необходимо.
Добавлять библиотеки в проектный IDE-менеджер можно различными методами. В виде исходников, прописанных на С++, идет добавление в отдельную директорию на рабочей директории IDE-оболочки. Теперь имена необходимых библиотек появляются в определенном IDE-меню. Те, что вы отметите, войдут в компиляционный список. В IDE существует малое количество настроек, а задавать тонкости компилятора вообще нет возможности. Это сделано для того, чтобы несведущий человек не натворил каких-либо ошибок.
Если вы скачали библиотеку, то ее необходимо распаковать и просто вставить в IDE. В программном тексте есть комментарии, которые поясняют принцип ее работы. Следует отметить, что все приложения на Arduino работают по одной технологии: пользователь шлет запрос на процессор, а он, в свою очередь, осуществляет загрузку нужного кода на экран устройства. Когда человек нажимает клавишу Refresh, то микроконтроллер отсылает информацию. С каждой из страниц с определенным обозначением идет программный код, что будет отображаться на экране.
Следующий комплекс действий заключается в установке клиента на персональный компьютер или смартфон. Скачать его можно в интернете, в Google Play Market или из другого источника. Для того чтобы сделать это, необходимо открыть файл на телефоне, который вы скачали, после чего щелкнуть по нему и в появившемся окне нажать на клавишу «Установить». При этом следует знать, что для этого должна быть активирована опция, позволяющая осуществлять установку программ не из сервиса Google Play. Чтобы включить эту опцию, необходимо войти в раздел настроек и выбрать там пункт «Безопасность». Именно так и необходимо активировать соответствующую опцию. Когда установка завершится, то можно будет осуществить активацию приложения и настроить его.
Изучаем Arduino. Инструменты и методы технического волшебства. Джереми Блум
Изучаем Arduino. Инструменты и методы технического волшебства
Аннотация
Одна из самых известных книг по работе на базе Ардуино от автора Джереми Блума рассказывает об основных принципах создания электронных устройств. Есть описания программной и аппаратной части микроконтроллера. Есть подробный разбор основных принципов программирования в специально разработанной среде Arduino IDE, приводится набор функций и операторов. Читатель научится правильно разбираться в описаниях компонентов, выбирать необходимые составляющие для создания своего уникального проекта, анализировать электронные схемы приборов. В книге можно найти примеры использования сенсоров, индикаторов, интерфейсов передачи информации. Все примеры снабжены списком необходимых составляющих, схемами примерами кода с пошаговым объяснением. Подходит для изучения новичкам.
Наборы и конструкторы Ларт
ЛАРТ Сармат Армага
Набор на основе контроллера Ардуино, при помощи которого можно собрать робота, движущегося по линии. Главный компонент комплекта – миниатюрная плата Ардуино Нано, которая позволяет подключать не только входящие в состав набора компоненты, а и другие элементы совместимые с Ардуино, как механического, так и электронного типа. Это дает возможность совершенствовать полученного робота.
ЛАРТ Печенег Батана
Комплект включает плату Ардуино Нано и имеет достаточное количество элементов для разработки и строительства роботов, которых при помощи состава набора можно собрать две разновидности: робот, движущийся по черной линии и робот с датчиком ультразвука. Для программирования применяется текстовая среда Arduino IDE. Для разных модификаций роботов имеется возможность использования совместимых с Ардуино компонентов, а при помощи дополнительной пластины можно установить большее количество датчиков.
Выбрать и купить наборы ЛАРТ можно на официальном сайте: lartmaster.ru/
Конструктор Смарт Робо
Готовый конструктор для создания электронного робота на основе Ардуино, в комплект входит необходимое количество элементов, и руководство к сборке. Базовый элемент набора – плата от Keyestudio (100% аналог Ардуино). Полученный робот может быть запрограммирован на движение по линии, возможность объезда препятствий и управление от дистанционного пульта. Все элементы соединяются при помощи быстроразъемных соединителей и не требуют пайки. Доработать и усовершенствовать полученную конструкцию можно добавив на плату дополнительные элементы, совместимые с контроллером Ардуино.
Конструктор Смарт
Серия наборов, которые отличаются по комплектации. Основной компонент – плата Smart Uno – аналог контроллера Ардуино Уно, не уступающий ему по качественным характеристикам. В зависимости от комплектации (Смарт 10, Смарт 20 и Смарт 30) набор содержит элементы, как для начального уровня проектирования, так и для разработки более сложных проектов. При необходимости возможно подключение других электронных компонентов, совместимых с микроконтроллером.
Смарт Genuino
Серия наборов – Смарт 10 Genuino, Смарт 20 Genuino, Смарт 30 Genuino, которые отличны по количеству деталей в комплекте. Главный базовый компонент – плата Genuino Uno, кроме которой в составе имеются электронные детали, беспаечная макетная плата, провода и руководство по проектированию. Набор будет интересен как новичкам, так и профессиональным пользователям.
Выбрать и купить конструктор SmartElements можно на официальном сайте: https://smartelements.ru/
Робоплатформа Robbo (ScratchDuino)
Конструктор предназначен для обучения детей и взрослых основам робототехники и электроники. Управление роботизированным механизмом может осуществляться из различных сред программирования (Scratch, Lazarus, Кумир) или же пульта управления. Базовый компонент – картридж Ардуино. В зависимости от типа комплектации варьируется количество составных элементов.
Выбрать и купить конструктор Robbo можно на официальном сайте: https://robboclub.ru/
Центр при МГТУ им. Баумана
Платформа Arduino имеет открытую архитектуру и простой язык программирования. Она легко программируется через USB. Подключая к платформе разные датчики, вы можете получать информацию об окружающем мире (к примеру, температуру воздуха в разных частях города), отправлять данные на компьютер, а также управлять другими подключенными элементами.
Зная механизм работы устройств на Arduino, можно конструировать робототехнику и разную электронику. Изучение платформы помогает понять, по какому принципу работает «умный» дом.
Во время занятий вы получите базовые представления о программировании микроконтроллеров, робототехнике и электронике. Вы увидите, что представляют собой простейшие программы для микроконтроллеров и соберете рабочие схемы ЖК-дисплеев, температурных датчиков, систем светодиодов и многого другого. Лабораторные работы занимают 70% занятий – у вас будет много времени на увлекательные эксперименты и открытия.
Курс будет полезен:
- всем, кто хочет преподавать робототехнику в школе или вузе;
- всем, кто интересуется робототехникой и электроникой;
- всем, кто занимается автоматизацией в работе или быту;
- всем, кому интересна идея «интернета вещей».
Самый простой проект для начинающих
Рассмотрим несколько простых и интересных проектов Ардуино uno, которые под силу сделать даже новичкам в этом деле — система сигнализации.
Мы уже делали урок по этому проекту — Датчик движения с Arduino, HC-SR04 и светодиодом (LED). Вкратце о то, что делается и как.
В этом проекте используется датчик движения для обнаружения движений и излучений высокого тона, а также визуальный дисплей, состоящий из мигающих светодиодных индикаторов. Сам проект познакомит вас с несколькими дополнениями, которые входят в комплект для начинающих Arduino, а также нюансами использования NewPing.
Он является библиотекой Arduino, которая помогает вам контролировать и тестировать ваш датчик расстояния сонара. Хотя это не совсем целая защита дома, она предлагает идеальное решение для защиты небольших помещений, таких как спальни и ванные комнаты.
Для этого проекта вам понадобятся:
- Ультразвуковой датчик «пинг» – HC-SR04.
- Пьезо-зуммер.
- Светодиодная лента.
- Автомобильное освещение посредством ленты RGB. В этом руководстве по проекту Arduino вы узнаете, как сделать внутреннее освещение автомобиля RGB, используя плату Arduino uno.
Многим автолюбителям нравится добавлять дополнительные огни или модернизировать внутренние лампочки до светодиодов, однако на платформе Arduino вы можете наслаждаться большим контролем и детализацией, управляя мощными светодиодами и световыми полосками.
Вы можете изменить цвет освещения с помощью устройства Android (телефон или планшет) с помощью приложения «Bluetooth RGB Controller» (Dev Next Prototypes), которое вы можете бесплатно загрузить с Android Play Store. Также вы можете найти схему электронной EasyEDA или заказать свою собственную схему на основе Arduino на печатной плате.
Модули и решения «умного дома» на Ардуино
Основным элементом умного дома является центральная плата микроконтроллера. Две и более соединенных между собой плат, отвечают за взаимодействие всех элементов системы.
Существует три основных микроконтроллера в системе:
Arduino UNO – средних размеров плата с собственным процессором и памятью. Основа — микроконтроллер ATmega328. В наличии 14 цифровых входов/выходов (6 из них можно использовать как ШИМ выводы), 6 аналоговых входов, кварцевый резонатор 16 МГц, USB-порт (на некоторых платах USB-B), разъем для внутрисхемного программирования, кнопка RESET. Флэш-память – 32 Кб, оперативная память (SRAM) – 2 Кб, энергонезависимая память (EEPROM) – 1 Кб.
Arduino UNO
Arduino NANO – плата минимальных габаритов с микроконтроллером ATmega328. Отличие от UNO – компактность, за счет используемого типа контактных площадок – так называемого «гребня из ножек».
Arduino Nano
Arduino MEGA – больших размеров плата с микроконтроллером ATMega 2560. Тактовая частота 16 МГц (как и в UNO), цифровых пинов 54 вместо 14, а аналоговых 16, вместо 6. Флэш-память – 256 Кб, SRAM – 8 Кб, EEPROM – 4.
Arduino Mega
Arduino UNO – самая распространённая плата, так как с ней проще работать в плане монтажных работ. Плата NANO меньше в размерах и компактнее – это позволяет разместить ее в любом уголке умного дома. MEGA используется для сложных задач.
Сейчас на рынке представлено 3 поколение плат (R3) Ардуино. Обычно, при покупке платы, в комплект входит обучающий набор для собирания StarterKit, содержащий:
- Шаговый двигатель.
- Манипулятор управления.
- Электросхематическое реле SRD-05VDC-SL-C 5 В.
- Беспаечная плата для макета MB-102.
- Модуль с картой доступа и и двумя метками.
- Звуковой датчик LM393.
- Датчик с замером уровня жидкости.
- Два простейших устройства отображения цифровой информации.
- LCD-дисплей для вывода множества символов.
- LED-матрица ТС15-11GWA.
- Трехцветный RGB-модуль.
- Температурный датчик и измеритель влажности DHT11.
- Модуль риал тайм DS1302.
- Сервопривод SG-90.
- ИК-Пульт ДУ.
- Матрица клавиатуры на 16 кнопок.
- Микросхема 74HC595N сдвиговый регистр для получения дополнительных выходов.
- Основные небольшие компоненты электроники для составления схемы.
Можно найти и более укомплектованный набор для создания своими руками умного дома на Ардуино с нуля. А для реализации иного проекта, кроме элементов обучающего комплекта, понадобятся дополнительные вещи и модули.
Сенсоры и датчики
Чтобы контролировать температуру и влажность в доме и в подвальном помещении, потребуется датчик измерения температуры и влажности. В конструкторе умного дома это плата, соединяющая в себе датчики температуры, влажности и LCD дисплей для вывода данных.
Плата дополняется совместимыми датчиками движения или иными PIR-сенсорами, которые определяют присутствие или отсутствие человека в зоне действия, и привязывается через реле к освещению.
Датчик Arduino
Газовый датчик позволит быстро отреагировать на задымленность, углекислоту или утечку газа, и позволит при подключении к схеме, автоматически включить вытяжку.
Газовый датчик Arduino
Реле
Компонент схемы «Реле» соединяет друг с другом электрические цепи с разными параметрами. Реле включает и выключает внешние устройства с помощью размыкания и замыкания электрической цепи, в которой они находятся. С помощью данного модуля, управление освещением происходит также, если бы человек стоял и самостоятельно переключал тумблер.
Реле Arduino
Светодиоды могут указывать состояние, в котором реле находится в данным момент времени. Например, красный – освещение выключено, зеленый – освещение есть. Схема подключение к лампе выглядит так.
Для более крупного проекта лучше применять шину реле, например, восьмиканальный модуль реле 5V.
Контроллер
В качестве контроллера выступает плата Arduino UNO. Для монтажа необходимо знать:
описание элементов;
распиновку платы;
принципиальную схему работы платы;
распиновку микроконтролеера ATMega 328.
Программная настройка
Программирование подключенных элементов Ардуино происходит в редакторе IDE. Скачать его можно с официального сайта. Для программирования можно использовать готовые библиотеки.
Или воспользоваться готовым скетч решением Ardublock – графический язык программирования, встраиваемый в IDE. По сути, вам нужно только скачать и установить ПО, а затем использовать блоки для создания схемы.
Язык Arduino
Если опытный программист посмотрит на код для Arduino, он скажет, что это код на C++. Это недалеко от истины: основная логика Ардуино реализована на C++, а сверху на неё надет фреймворк Wiring, который отвечает за общение с железом.
На это есть несколько причин:
- У С++ слава «слишком сложного языка». Arduino позиционируется как микроконтроллеры и робототехника для начинающих, а начинающим иногда трудно объяснить, что С++ не такой уж сложный для старта. Проще сделать фреймворк и назвать его отдельным языком.
- В чистом С++ нет удобных команд для AVR-контроллеров, поэтому нужен был инструмент, который возьмёт на себя все сложные функции, а на выходе даст программисту часто используемые команды.
- Разработчики дали программистам просто писать нужные им программы, а все служебные команды, необходимые для правильного оформления кода на С++, взяла на себя специальная среда разработки.
Среда разработки (IDE) Arduino.