Что такое Arduino и для чего оно нужно?
Arduino — это электронный конструктор, который позволяет любому человеку создавать разнообразные электро-механические устройства. Ардуино состоит из программной и аппаратной части. Программная часть включает в себя среду разработки (программа для написания и отладки прошивок), множество готовых и удобных библиотек, упрощенный язык программирования. Аппаратная часть включает в себя большую линейку микроконтроллеров и готовых модулей для них. Благодаря этому, работать с Arduino очень просто!
С помощью ардуино можно обучаться программированию, электротехнике и механике. Но это не просто обучающий конструктор. На его основе вы сможете сделать действительно полезные устройства.
Начиная с простых мигалок, метеостанций, систем автоматизации и заканчивая системой умного дома, ЧПУ станками и беспилотными летательными аппаратами. Возможности не ограничиваются даже вашей фантазией, потому что есть огромное количество инструкций и идей для реализации.
проекты на Arduino
Среда разработки Arduino IDE
Для написания, отладки и загрузки прошивок необходимо скачать и установить Arduino IDE. Это очень простая и удобная программа. На моем сайте я уже описывал процесс загрузки, установки и настройки среды разработки. Поэтому здесь я просто оставлю ссылки на последнюю версию программы и на статью с подробной инструкцией.
Версия | Windows | Mac OS X | Linux |
1.8.2 | Zip Installer | Installer | 32 bits 64 bits ARM |
Основы Arduino
Ардуино – платформа, позволяющая множеству инженеров со всего мира создавать свои проекты с минимальными вложениями.
В первую очередь – это специальный микроконтроллер с одноимённой системой управления и библиотеками, построенными на языке С++. Соответственно, если вы планируете создавать что-то уникальное, вам следует изучить все нюансы, которые имеет программирование Arduino.
Давайте же составим краткое описание программирования Arduino и уточним моменты, на которые стоит обратить внимание, если вы впервые занимаетесь подобным.
Прежде чем приступать к решению конкретной задачи на Ардуино, лучше всего иметь базис в сфере программирования. Поэтому давайте рассмотрим, что вообще обозначает этот термин. Абсолютно любой проект построен на поэтапной блок-модели, в которой описывается, что необходимо сделать вашему микроконтроллеру и как это сделать.
Для упрощения работы пользователей в Ардуино созданы готовые библиотеки функций, вам достаточно лишь вводить команды из них, чтобы добиться какой-то цели. Естественно, таким образом вы многого не добьётесь, но для создания собственных библиотек потребуется знание С++языка на котором и построена прошивка чипа.
Ключевая особенность системы в том, что характеристики Arduino могут быть улучшены с помощью докупаемых компонентов, и вы всегда можете их подстроить под конкретный проект. Соответственно, единственным вашим ограничением является знание языка и его возможностей, а также собственная фантазия.
Все функции строятся из простейших операнд, которые характерны для С++. Этими операндами являются переменные различных типов и способы их применения. Поэтому любая функция, используемая в микроконтроллере для получения сведений или отправки сигнала, – это набор простейших операций, который записан в главной библиотеке. И вы будете ограничены до тех пор, пока не получите достаточно опыта и практики, чтобы понимать, какую библиотеку и для какой цели вам стоит написать.
Главный же недостаток конструирования с Arduino сложных проектов в том, что вам придётся с нуля писать код и подбирать компоненты для системы, поэтому лучше сначала попрактиковаться на простейших задачах.
Также, учитывайте, что язык написания библиотек системы – низкоуровневый, а соответственно, состоит из простейших команд, в отличие от высокоуровневых python или pascal, удобных для пользователей. С другой стороны, он также является мультипарадигмальным, поэтому подходит для решения любой задачи с помощью удобной вам парадигмы программирования.
Чаще всего применяется ООП. Сам С++ имеет ядро из многочисленных библиотек и дополнительных функций или методов, поэтому, если вы собираетесь разобраться во всём кардинально, стоит начинать с освоения языка с нуля.
Особенности программирования плат Arduino
Именно язык, на котором базируется система, и является главной особенностью Ардуино программирования.
Ведь при том, что сама плата и работа с ней достаточно просты, с низким порогом вхождения, чтобы освоить низкоуровневый язык программирования и в совершенстве владеть им, потребуется несколько лет.
У программирования на Ардуино имеются как свои достоинства, так и недостатки, и вам стоит изучить обе стороны вопроса, чтобы понимать, с чем вы имеете дело и чего ожидать от микроконтроллера в принципе, во время работы с ним. Среди достоинств Ардуино, пользователи отмечают:
- Низкий порог вхождения. Этот пункт будет и в недостатках, так как из-за простоты системы и отсутствия требований к базису по программированию в сети гуляет множество библиотек, написанных ужасным образом. На то, чтобы разобраться, как они работают, уйдёт больше времени, чем на создание своей собственной. А стандартных функций от разработчиков не хватает для серьёзных задач.
- Обширное комьюнити. Это главное достоинство Ардуино перед его конкурентами, ведь вы найдёте пользователей, занимающихся созданием проектов на нём, как русскоязычных, так и англоязычных. Но если вы хотите получать действительно ценные советы и погрузиться в работу комьюнити, следует всё же изучить английский язык. Так как большая часть проблем, что вам встретятся, уже давно решены в Гугле, но, зачастую, ответы на английском.
- Большое количество библиотек, под разные случаи. Но, как уже описано чуть выше, у этого есть и свои недостатки.
Имеется у программирования на Ардуино и ряд весомых минусов:
- Низкая планка для вхождения превращает большую часть библиотек, коими наполнена сеть, в полностью бесполезный мусор. Ведь какие-то из них работают просто медленно и написаны без каких-либо знаний основ алгоритмизации, а часть – вовсе не работает, и непонятно, зачем авторы их создавали. Чтобы найти подспорье под конкретный проект, необходимо перелопатить несколько англоязычных форумов или же самостоятельно создать функции с нуля.
- Сложности программирования на С++. На деле – это один из сложнейших языков мультипарадигмального программирования, для создания прошивок и низкоуровневых задач. Однако, если вы имели опыт работы с ним и знаете хотя бы основные алгоритмы, а также работали хоть с одним другим мультипарадигмальным ЯП, тем более используя объектно-ориентированное программирование, вам будет значительно проще освоиться.
- Низкая скорость отклика самих чипов и их слабые характеристики. Да, микроконтроллеры Ардуино можно подстраивать под конкретную задачу, докупать компоненты и датчики, но это играет с ними злую шутку. Так как разработчики не знают, для чего будут использовать их детище, они усредняют все показатели, чтобы значительно уменьшить стоимость конечного продукта. В результате люди, создающие простейшие поделки, переплачивают за ненужную мощность, а тем, кто занимается робототехникой или автоматизацией каких-то процессов, приходится докупать и паять множество дополнительных плат.
Как вы можете заметить, Ардуино имеет множество нюансов, и не столь дружелюбна для новичков, как выглядит на первый взгляд. С другой стороны, если вы имеете малейший опыт работы с языками программирования, вам будет куда проще освоиться.
Типы плат Arduino
Существует множество различных типов плат Arduino, как показано в списке ниже, каждая из которых обладает собственным набором функций. Они отличаются по скорости обработки, памяти, портам ввода/вывода и подключению, но основная составляющая их функционала остается неизменной.
- Arduino Uno
- Arduino Leonardo
- Arduino Due
- Arduino Yún
- Arduino Tre
- Arduino Micro
- Arduino Robot
- Arduino Esplora
- Arduino Mega
- Arduino Mini
- LilyPad Arduino
- Arduino Nano
- Arduino Fio
- Arduino Pro
- Arduino Ethernet
Функции программ
Ниже приведен список наиболее часто используемых функции при программировании Arduino:
- pinMode – устанавливает вывод в режим входа или выхода;
- analogRead – считывает аналоговое напряжение на аналоговом входном выводе;
- analogWrite – записывает аналоговое напряжение в аналоговый выходной вывод;
- digitalRead – считывает значение цифрового входного вывода;
- digitalWrite – задает значение цифрового выходного вывода в высокий или низкий уровень;
- Serial.print – пишет данные в последовательный порт в виде удобочитаемого текста ASCII.
Начало работы с Ардуино
Говоря бытовым языком, Ардуино – это электронная плата, в которую можно воткнуть множество разных устройств и заставить их работать вместе с помощью программы, написанной на языке Ардуино в специальной среде программирования.
Чаще всего плата выглядит вот так:
На рисунке показана одна из плат Ардуино – Arduino Uno. Мы изучим ее подробнее на следующих уроках.
В плату можно втыкать провода и подключать множество разных элементов. Чаще всего, для соединения используется макетная плата для монтажа без пайки. Можно добавлять светодиоды, датчики, кнопки, двигатели, модули связи, реле и создавать сотни вариантов интересных проектов умных устройств. Плата Ардуино – это умная розетка, которая будет включать и выключать все присоединенное в зависимости от того, как ее запрограммировали.
Вся работа над проектом разбивается на следующие этапы:
- Придумываем идею и проектируем.
- Собираем электрическую схему. Тут нам пригодится макетная плата, упрощающая монтаж элементов. Безусловно, понадобятся навыки работы с электронными приборами и умение пользоваться мультиметром.
- Подключаем плату Arduino к компьютеру через USB.
- Пишем программу и записываем ее в плату буквально нажатием одной кнопки на экране в специальной среде программирования Arduino.
- Отсоединяем от компьютера. Теперь устройство будет работать автономно – при включении питания оно будет управляться той программой, которую мы в него записали.
Программа и среда программирования выглядят вот так:
На экране показана программа (на сленге ардуинщиков текст программы называется “скетч”), которая будет мигать лампочкой, подсоединенной к 13 входу на плате Ардуино UNO. Как видим, программа вполне проста и состоит из понятных для знающих английский язык инструкций. В языке программирования Arduino используется свой диалект языка C++, но все возможности C++ поддерживаются.
Есть и другой вариант написания кода – визуальный редактор. Тут не нужно ничего писать – можно просто перемещать блоки и складывать из них нужный алгоритм. Программа загрузится в подключенную плату одним нажатием кнопки мыши!
Визуальную среду рекомендуется использовать школьникам младших классов, более старшим инженерам лучше сразу изучать “настоящий” Ардуино – это довольно просто, к тому же знания C++ никому не повредят.
Как купить Arduino?
Плата и многие детали Ардуино производится в Италии, поэтому оригинальные составляющие отличаются достаточно высокой стоимостью. Но существуют отдельные компоненты конструктора или наборы, так называемые кит-наборы, которые выпускается по итальянской аналогии, однако по более доступным ценам.
Купить аналог можно на отечественном рынке или, к примеру, заказать из Китая. Многие знают про сайт АлиЭкспресс, например. Но начинающим свое знакомство с Ардуино лучше свою первую плату заказать в российском интернет-магазине. Со временем можно перейти на покупку плат и деталей в Китае. Срок доставки из этой страны составит от двух недель до месяца, а, например, стоимость большого кит-набора будет не более 60-70 долларов.
Стандартные наборы включают в себя как правило следующие детали:
- макетная плата;
- светодиоды;
- резисторы;
- батареи 9В;
- регуляторы напряжения;
- кнопки;
- перемычки;
- матричная клавиатура;
- платы расширения;
- конденсаторы.
Модели плат
Существует несколько моделей Ардуино, которые различаются по частоте процессора, объеме памяти и т.п., среди которых можно выделить:
- Arduino Uno . Хорошее решение для начинающих пользователей и простых проектов. Поддерживает работу с Windows, Linux и MacOS. Встроенный микропроцессор работает на частоте 16 МГц, обладает 32 Кб встроенной памяти. Включается в комплекты для начинающих;
- Arduino Yun. Комплект с встроенным портом Ethernet и модулем WiFi. Оптимизирован для работы с семейством Linux. Подойдёт для работы как с любительскими, так и промышленными проектами;
- Arduino ADK. Устройство оптимизировано для работы с платформой Android. Хорошая совместимость и уникальный программный комплект позволяют создать проект, управляемый с мобильного телефона;
- Arduino Due. Улучшенная версия, работающая на мощном 32 битном ARM процессоре с тактовой частотой 84 МГц. В плату установлено 96 Кб SRAM и 512 Кб флеш-памяти.
- Arduino Nano . Одна из самых миниатырных, но очень полезных и популярных плат особенностью которой является разъем USB.
Это далеко не вся линейка плат. Существуют и другие модификации, созданные для решения разных задач.
Например, плата Arduino Mega 2560 является более мощной платой для серьезных проектов.
Перед приобретением платы нужно заранее продумать будущий проект и выявить требующиеся технические характеристики.
Сводная таблица
Эта сводная таблица показывает сравнение характеристик всех плат Arduino и Genuino.
НазваниеПроцессорРабочее/входное напряжениеСкорость процессораАналоговый Вход/выходЦифровые IO/PWMEEPROM [kB]SRAM [kB]Flash [kB]USBUART
101 | Intel® Curie | 3.3 V/ 7-12V | 32MHz | 6/0 | 14/4 | – | 24 | 196 | Regular | – |
Gemma | ATtiny85 | 3.3 V / 4-16 V | 8 MHz | 1/0 | 3/2 | 0.5 | 0.5 | 8 | Micro | |
LilyPad | ATmega168VATmega328P | 2.7-5.5 V /2.7-5.5 V | 8MHz | 6/0 | 14/6 | 0.512 | 1 | 16 | – | – |
LilyPad SimpleSnap | ATmega328P | 2.7-5.5 V /2.7-5.5 V | 8 MHz | 4/0 | 9/4 | 1 | 2 | 32 | – | – |
LilyPad USB | ATmega32U4 | 3.3 V / 3.8-5 V | 8 MHz | 4/0 | 9/4 | 1 | 2.5 | 32 | Micro | – |
Mega 2560 | ATmega2560 | 5 V / 7-12 V | 16 MHz | 16/0 | 54/15 | 4 | 8 | 256 | Regular | 4 |
Micro | ATmega32U4 | 5 V / 7-12 V | 16 MHz | 12/0 | 20/7 | 1 | 2.5 | 32 | Micro | 1 |
MKR1000 | SAMD21 Cortex-M0+ | 3.3 V/ 5V | 48MHz | 7/1 | 8/4 | – | 32 | 256 | Micro | 1 |
Pro | ATmega168 ATmega328P | 3.3 V / 3.35-12 V5 V / 5-12 V | 8 MHz 16 MHz | 6/0 | 14/6 | 0.512 1 | 1 2 | 16 32 | – | 1 |
Pro Mini | ATmega328P | 3.3 V / 3.35-12 V5 V / 5-12 V | 8 MHz 16 MHz | 6/0 | 14/6 | 1 | 2 | 32 | – | 1 |
Uno | ATmega328P | 5 V / 7-12 V | 16 MHz | 6/0 | 14/6 | 1 | 2 | 32 | Regular | 1 |
Zero | ATSAMD21G18 | 3.3 V / 7-12 V | 48 MHz | 6/1 | 14/10 | – | 32 | 256 | 2 Micro | 2 |
Due | ATSAM3X8E | 3.3 V / 7-12 V | 84 MHz | 12/2 | 54/12 | – | 96 | 512 | 2 Micro | 4 |
Esplora | ATmega32U4 | 5 V / 7-12 V | 16 MHz | – | – | 1 | 2.5 | 32 | Micro | – |
Ethernet | ATmega328P | 5 V / 7-12 V | 16 MHz | 6/0 | 14/4 | 1 | 2 | 32 | Regular | – |
Leonardo | ATmega32U4 | 5 V / 7-12 V | 16 MHz | 12/0 | 20/7 | 1 | 2.5 | 32 | Micro | 1 |
Mega ADK | ATmega2560 | 5 V / 7-12 V | 16 MHz | 16/0 | 54/15 | 4 | 8 | 256 | Regular | 4 |
Mini | ATmega328P | 5 V / 7-9 V | 16 MHz | 8/0 | 14/6 | 1 | 2 | 32 | – | – |
Nano | ATmega168ATmega328P | 5 V / 7-9 V | 16 MHz | 8/0 | 14/6 | 0.5121 | 12 | 1632 | Mini | 1 |
Yùn | ATmega32U4AR9331 Linux | 5 V | 16 MHz400MHz | 12/0 | 20/7 | 1 | 2.516MB | 3264MB | Micro | 1 |
Arduino Robot | ATmega32u4 | 5 V | 16 MHz | 6/0 | 20/6 | 1 KB (ATmega32u4)/512 Kbit (I2C) | 2.5 KB(ATmega32u4) | 32 KB (ATmega32u4) of which4 KB used by bootloader | 1 | 1 |
MKRZero | SAMD21Cortex-M0+32bit low powerARM MCU | 3.3 V | 48 MHz | 7 (ADC 8/10/12 bit)/1(DAC 10 bit) | 22/12 | No | 32 KB | 256 KB | 1 | 1 |
Спецификации плат, которые больше не выпускаются.
Название | Процессор | Рабочее/входное напряжение | Скорость процессора | Аналоговые вход/выход | Цифровые IO/PWM | EEPROM [kB] | SRAM [kB] | Flash [kB] | USB | UART |
BT | ATmega328P | 5 V / 2.5-12 V | 16 MHz | 6/0 | 14/6 | 1 | 2 | 32 | – | 1 |
Fio | ATmega328P | 3.3 V / 3.7-7 V | 8 MHz | 8/0 | 14/6 | 1 | 2 | 32 | Mini | 1 |
25 января 2019 в 17:59 | Обновлено 7 ноября 2020 в 01:20 (редакция)
Опубликовано: Редакция
Статьи, Arduino
Что можно сделать с помощью Ардуино?
Для начала работы с Ардуино нам достаточно любой платы. Большинство начинающих Ардуинщиков и любителей сделать что-либо своими руками начинают с Arduino Uno:
Arduino Uno R3
Даже если у вас есть есть только плата, то вы уже можете начать работать с ней.
Как я уже написал выше – один из первых и самых популярных уроков для начинающих – моргание встроенным на плату светодиодом.
Если первой платой, которую вы приобрели, стала Arduino Nano, то сразу же переходите к нашему большому руководству – Ардуино Нано для начинающих.
На базе Arduino создание устройств ограничивается только человеческой фантазией. Вы можете запрограммировать систему быстро среагировать на определённое изменение и сможете управлять:
- светом,
- моторами,
- разнообразными приводами,
- и т.п..
Самое интересное, что Ардуино применяется не только для домашнего использования, но и для промышленного.
Если вы только начинаете знакомство с микроконтроллерами, то рекомендуем вам начать с самых простых, которые есть на нашем сайте:
- Моргаем встроенным светодиодом Ардуино
- Управление устройствами со смартфона для чайников
- Управляйте своим Arduino с помощью пульта управления
- Текстовая анимация с помощью Arduino
- Делаем датчик дождя с оповещением по e-mail с помощью Arduino
Разработка любых устройств зависит только от вашей фантазии, а Ардуино и множество дополнительных компонентов помогают в создании этих устройств своими руками.
Среда разработки Arduino
Среда разработки Arduino состоит из встроенного текстового редактора программного кода, области сообщений, окна вывода текста(консоли), панели инструментов с кнопками часто используемых команд и нескольких меню. Для загрузки программ и связи среда разработки подключается к аппаратной части Arduino.
Библиотеки для программной среды
Чтобы расширить базовые функции программы и получить новые возможности, программисты подключают к Arduino IDE библиотеки. Поскольку исходный код открыт, любой желающий может написать собственную библиотеку и подключить её, а также поделиться ей с другими.
Самый полный каталог Библиотек Ардуино на нашем сайте в разделе – Библиотеки
Есть 3 способа подключить библиотеку к Arduino IDE:
- Использовать менеджер библиотек, который появился в программе с версии 1.6.2. Необходимо использовать команду:
Эскиз → Include Library → Manage Libraries
Появится список доступных библиотек, которые можно включать и отключать (см. скриншот ниже). - Добавить скачанную библиотеку в формате *.ZIP. Для этого нужно использовать команду:
Эскиз → Include Library → Add .ZIP library
После этого выбрать файл, чтобы библиотека добавилась в список, и перезапустить программу. - Добавить файл с библиотекой вручную. Для этого архив потребуется распаковать и проследить, чтобы все файлы оказались в одной папке. После этого её нужно будет поместить в каталог с пользовательскими библиотеками, который располагается по адресу:
Мои документыArduinolibraries (Windows)
или
~/Документы/Arduino/libraries (Linux)
Такой способ достаточно сложен, его рекомендуют в первую очередь опытным программистам.
На сегодняшний день представлены версии для операционных систем Windows, Linux, MacOS. На начало сентября 2017 года самая hf,jxfz версия Arduino IDE была версии 1.8.5.
Скачать её можно выше – выберите нужный вариант из таблицы, либо на странице https://www.arduino.cc/en/main/software. Для Linux есть 32-разрядная, 64-разрядная и ARM-версии. Для Windows, помимо устанавливаемой и портативной, есть версия в виде Windows-приложения.
Таким образом, работа с Arduino IDE не создаёт каких-либо сложностей даже программистам, которые пока не освоили язык C++ в полной мере. Экспериментируя с функциями, добавляя свои библиотеки или скачивая новые, можно достигать отличных результатов и решать даже весьма нестандартные творческие задачи.
Всё это объясняет её растущую популярность и прирост количества программистов, которые экспериментируют с программной средой и добавляют в неё новые функции.
Следующая