Аrduino для начинающих

Что такое Arduino и для чего оно нужно?

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

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

Среда разработки Arduino IDE

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

ВерсияWindowsMac OS XLinux
1.8.2Zip

Installer

Installer32 bits

64 bits

ARM

Основы Arduino

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

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

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

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

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

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

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

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

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

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

Особенности программирования плат Arduino

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

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

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

  1. Низкий порог вхождения. Этот пункт будет и в недостатках, так как из-за простоты системы и отсутствия требований к базису по программированию в сети гуляет множество библиотек, написанных ужасным образом. На то, чтобы разобраться, как они работают, уйдёт больше времени, чем на создание своей собственной. А стандартных функций от разработчиков не хватает для серьёзных задач.
  2. Обширное комьюнити. Это главное достоинство Ардуино перед его конкурентами, ведь вы найдёте пользователей, занимающихся созданием проектов на нём, как русскоязычных, так и англоязычных. Но если вы хотите получать действительно ценные советы и погрузиться в работу комьюнити, следует всё же изучить английский язык. Так как большая часть проблем, что вам встретятся, уже давно решены в Гугле, но, зачастую, ответы на английском.
  3. Большое количество библиотек, под разные случаи. Но, как уже описано чуть выше, у этого есть и свои недостатки.

Имеется у программирования на Ардуино и ряд весомых минусов:

  1. Низкая планка для вхождения превращает большую часть библиотек, коими наполнена сеть, в полностью бесполезный мусор. Ведь какие-то из них работают просто медленно и написаны без каких-либо знаний основ алгоритмизации, а часть – вовсе не работает, и непонятно, зачем авторы их создавали. Чтобы найти подспорье под конкретный проект, необходимо перелопатить несколько англоязычных форумов или же самостоятельно создать функции с нуля.
  2. Сложности программирования на С++. На деле – это один из сложнейших языков мультипарадигмального программирования, для создания прошивок и низкоуровневых задач. Однако, если вы имели опыт работы с ним и знаете хотя бы основные алгоритмы, а также работали хоть с одним другим мультипарадигмальным ЯП, тем более используя объектно-ориентированное программирование, вам будет значительно проще освоиться.
  3. Низкая скорость отклика самих чипов и их слабые характеристики. Да, микроконтроллеры Ардуино можно подстраивать под конкретную задачу, докупать компоненты и датчики, но это играет с ними злую шутку. Так как разработчики не знают, для чего будут использовать их детище, они усредняют все показатели, чтобы значительно уменьшить стоимость конечного продукта. В результате люди, создающие простейшие поделки, переплачивают за ненужную мощность, а тем, кто занимается робототехникой или автоматизацией каких-то процессов, приходится докупать и паять множество дополнительных плат.

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

Типы плат 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 USB CH340

На рисунке показана одна из плат Ардуино – Arduino Uno. Мы изучим ее подробнее на следующих уроках.

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

Вся работа над проектом разбивается на следующие этапы:

  1. Придумываем идею и проектируем.
  2. Собираем электрическую схему. Тут нам пригодится макетная плата, упрощающая монтаж элементов. Безусловно, понадобятся навыки работы с электронными приборами и умение пользоваться мультиметром.
  3. Подключаем плату Arduino к компьютеру через USB.
  4. Пишем программу и записываем ее в плату буквально нажатием одной кнопки на экране в специальной среде программирования Arduino.
  5. Отсоединяем от компьютера.  Теперь устройство будет работать автономно – при включении питания оно будет управляться той программой, которую мы в него записали.

Программа и среда программирования выглядят вот так:

Arduino IDE мигалка

На экране показана программа (на сленге ардуинщиков текст программы называется “скетч”), которая будет мигать лампочкой, подсоединенной к 13 входу на плате Ардуино UNO. Как видим, программа вполне проста и состоит из понятных для знающих английский язык инструкций. В языке программирования Arduino используется свой диалект языка C++, но все возможности C++ поддерживаются.

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

Экран scratch for arduino

Визуальную среду рекомендуется использовать школьникам младших классов, более старшим инженерам лучше сразу изучать “настоящий” Ардуино – это довольно просто, к тому же знания C++ никому не повредят.

Как купить Arduino?

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

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

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

  • макетная плата;
  • светодиоды;
  • резисторы;
  • батареи 9В;
  • регуляторы напряжения;
  • кнопки;
  • перемычки;
  • матричная клавиатура;
  • платы расширения;
  • конденсаторы.

Модели плат

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

  1. Arduino Uno . Хорошее решение для начинающих пользователей и простых проектов. Поддерживает работу с Windows, Linux и MacOS. Встроенный микропроцессор работает на частоте 16 МГц, обладает 32 Кб встроенной памяти. Включается в комплекты для начинающих;
  2. Arduino Yun. Комплект с встроенным портом Ethernet и модулем WiFi. Оптимизирован для работы с семейством Linux. Подойдёт для работы как с любительскими, так и промышленными проектами;
  3. Arduino ADK. Устройство оптимизировано для работы с платформой Android. Хорошая совместимость и уникальный программный комплект позволяют создать проект, управляемый с мобильного телефона;
  4. Arduino Due. Улучшенная версия, работающая на мощном 32 битном ARM процессоре с тактовой частотой 84 МГц. В плату установлено 96 Кб SRAM и 512 Кб флеш-памяти.
  5. Arduino Nano . Одна из самых миниатырных, но очень полезных и популярных плат особенностью которой является разъем USB.

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

Например, плата Arduino Mega 2560 является более мощной платой для серьезных проектов.

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

Сводная таблица

Эта сводная таблица показывает сравнение характеристик всех плат Arduino и Genuino.

НазваниеПроцессорРабочее/входное напряжениеСкорость процессораАналоговый Вход/выходЦифровые IO/PWMEEPROM [kB]SRAM [kB]Flash [kB]USBUART

101Intel® Curie3.3 V/ 7-12V32MHz6/014/424196Regular
GemmaATtiny853.3 V / 4-16 V8 MHz1/03/20.50.58Micro
LilyPadATmega168VATmega328P2.7-5.5 V /2.7-5.5 V8MHz6/014/60.512116
LilyPad SimpleSnapATmega328P2.7-5.5 V /2.7-5.5 V8 MHz4/09/41232
LilyPad USBATmega32U43.3 V / 3.8-5 V8 MHz4/09/412.532Micro
Mega 2560ATmega25605 V / 7-12 V16 MHz16/054/1548256Regular4
MicroATmega32U45 V / 7-12 V16 MHz12/020/712.532Micro1
MKR1000SAMD21 Cortex-M0+3.3 V/ 5V48MHz7/18/432256Micro1
ProATmega168 ATmega328P3.3 V / 3.35-12 V5 V / 5-12 V8 MHz 16 MHz6/014/60.512 11 216 321
Pro MiniATmega328P3.3 V / 3.35-12 V5 V / 5-12 V8 MHz 16 MHz6/014/612321
UnoATmega328P5 V / 7-12 V16 MHz6/014/61232Regular1
ZeroATSAMD21G183.3 V / 7-12 V48 MHz6/114/10322562 Micro2
DueATSAM3X8E3.3 V / 7-12 V84 MHz12/254/12965122 Micro4
EsploraATmega32U45 V / 7-12 V16 MHz12.532Micro
EthernetATmega328P5 V / 7-12 V16 MHz6/014/41232Regular
LeonardoATmega32U45 V / 7-12 V16 MHz12/020/712.532Micro1
Mega ADKATmega25605 V / 7-12 V16 MHz16/054/1548256Regular4
MiniATmega328P5 V / 7-9 V16 MHz8/014/61232
NanoATmega168ATmega328P5 V / 7-9 V16 MHz8/014/60.5121121632Mini1
YùnATmega32U4AR9331 Linux5 V16 MHz400MHz12/020/712.516MB3264MBMicro1
Arduino RobotATmega32u45 V16 MHz6/020/61 KB (ATmega32u4)/512 Kbit (I2C)2.5 KB(ATmega32u4)32 KB (ATmega32u4) of which4 KB used by bootloader11
MKRZeroSAMD21Cortex-M0+32bit low powerARM MCU3.3 V48 MHz7 (ADC 8/10/12 bit)/1(DAC 10 bit)22/12No32 KB256 KB11

Спецификации плат, которые больше не выпускаются.

НазваниеПроцессорРабочее/входное напряжениеСкорость процессораАналоговые вход/выходЦифровые IO/PWMEEPROM [kB]SRAM [kB]Flash [kB] USB UART
BTATmega328P5 V / 2.5-12 V16 MHz6/014/612321
FioATmega328P3.3 V / 3.7-7 V8 MHz8/014/61232Mini1

25 января 2019 в 17:59 | Обновлено 7 ноября 2020 в 01:20 (редакция)
Опубликовано: Редакция
Статьи, Arduino

Что можно сделать с помощью Ардуино?

Для начала работы с Ардуино нам достаточно любой платы. Большинство начинающих Ардуинщиков и любителей сделать что-либо своими руками начинают с Arduino Uno:
Arduino Uno R3

Даже если у вас есть есть только плата, то вы уже можете начать работать с ней.

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

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

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

  • светом,
  • моторами,
  • разнообразными приводами,
  • и т.п..

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

Если вы только начинаете знакомство с микроконтроллерами, то рекомендуем вам начать с самых простых, которые есть на нашем сайте:

  1. Моргаем встроенным светодиодом Ардуино
  2. Управление устройствами со смартфона для чайников
  3. Управляйте своим Arduino с помощью пульта управления
  4. Текстовая анимация с помощью Arduino
  5. Делаем датчик дождя с оповещением по e-mail с помощью Arduino

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

Среда разработки Arduino

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

Библиотеки для программной среды

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

Самый полный каталог Библиотек Ардуино на нашем сайте в разделе – Библиотеки

Есть 3 способа подключить библиотеку к Arduino IDE:

  1. Использовать менеджер библиотек, который появился в программе с версии 1.6.2. Необходимо использовать команду:
    Эскиз → Include Library → Manage Libraries
    Появится список доступных библиотек, которые можно включать и отключать (см. скриншот ниже).
  2. Добавить скачанную библиотеку в формате *.ZIP. Для этого нужно использовать команду:
    Эскиз → Include Library → Add .ZIP library
    После этого выбрать файл, чтобы библиотека добавилась в список, и перезапустить программу.
  3. Добавить файл с библиотекой вручную. Для этого архив потребуется распаковать и проследить, чтобы все файлы оказались в одной папке. После этого её нужно будет поместить в каталог с пользовательскими библиотеками, который располагается по адресу:
    Мои документы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++ в полной мере. Экспериментируя с функциями, добавляя свои библиотеки или скачивая новые, можно достигать отличных результатов и решать даже весьма нестандартные творческие задачи.

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

Следующая
РазноеЧто такое активная мощность?
Будет интересно➡  Что такое ограничитель перенапряжения и как он работает?
Понравилась статья? Поделиться с друзьями:
Electroinfo.net  онлайн журнал
Мы используем cookie-файлы для наилучшего представления нашего сайта. Продолжая использовать этот сайт, вы соглашаетесь с использованием cookie-файлов.
Принять