Найти в Дзене
Наука,Жизнь ,Техника

Arduino-что это такое.

Для чего применяют ARDUINO. Arduino — это платформа для разработки электронных устройств. Она подходит для изучения программирования, электроники, сборки прототипов реальных гаджетов и хобби-проектов. Платформа включает в себя: · аппаратную часть — плату с микроконтроллером, например Arduino Uno; · программную часть — бесплатную среду разработки Arduino IDE и встроенные библиотеки, которые упрощают работу с оборудованием. Главное в Arduino — доступность и простота. Для начала работы достаточно самой платы, USB-кабеля и компьютера. Благодаря множеству готовых библиотек и простому языку программирования даже новичок может за вечер собрать рабочее устройство — например, колесного робота. В начале 2000-х компании Telecom Italia и Olivetti открыли в итальянском городе Ивреа курсы по дизайну взаимодействия. Студентов учили проектировать устройства с удобными интерфейсами, опираясь на поведение пользователей. На курсах студенты работали с платформой BASIC Stamp. Код приходилось писать на PB
Оглавление
Arduino Uno plata Рис.1
Arduino Uno plata Рис.1

Для чего применяют ARDUINO.

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

· аппаратную часть — плату с микроконтроллером, например Arduino Uno;

· программную часть — бесплатную среду разработки Arduino IDE и встроенные библиотеки, которые упрощают работу с оборудованием.

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

В начале 2000-х компании Telecom Italia и Olivetti открыли в итальянском городе Ивреа курсы по дизайну взаимодействия. Студентов учили проектировать устройства с удобными интерфейсами, опираясь на поведение пользователей.

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

Выпускник курса Эрнандо Барраган решил изменить ситуацию: в 2004 году он разработал альтернативную платформу Wiring — плату с прошивкой и поддержку программирования на упрощённом C++. Разработка гаджетов стала проще и быстрее.

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

Платы Wiring за короткий период стали очень популярны на курсе, но оставались дорогими — около 60 долларов за плату. Тогда научный руководитель Баррагана Массимо Банци сделал форк проекта: использовал более дешёвый микроконтроллер ATmega8, но оставил программную часть Wiring. Так появился прототип Arduino, сначала называвшийся Wiring Lite.

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

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

Рассмотрим, какие пины, интерфейсы и кнопки есть на плате Arduino. Покажем всё на примере третьего поколения Uno. Более детально устройство платы можно изучить в официальной документации.

Кнопка перезагрузки (1) — кнопка для перезапуска загруженного кода, если, например, плата перестала корректно реагировать на команды.

Цифровые пины (2) — универсальные пины, которые могут генерировать и считывать сигналы. К ним можно подключать датчики, моторы, кнопки и другие элементы управления.

Коннектор USB-B (3) — порт, с помощью которого плату можно подключить к компьютеру и прошить.

Контроллер ATmega328P (4) — «мозг» Arduino Uno, который выполняет все вычисления и операции. Можно сказать, что он здесь вместо процессора и памяти, — как центральный блок у обычного компьютера, только компактнее и проще.

Коннектор питания (5) — порт для подключения платы к аккумулятору или розетки.

Пины питания (6) — пины, с помощью которых можно запитать датчики, моторы и другие элементы, подключённые к Uno.

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

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

Платы Arduino могут различаться по количеству пинов, форм-фактору и мощности.

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

Uno: идеальна для новичков

Микроконтроллер: ATmega328P

Память: 32 КБ флеш-памяти и 2 КБ SRAM

Для проектов : для роботов и любых умных устройств

Цена: 27–55 долларов

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

Сервопривод — умный двигатель, который с высокой точностью проворачивает вал по команде.

Nano: для компактных проектов

Микроконтроллер: ATmega328

Память: 32 КБ флеш-памяти и 2 КБ SRAM

Для проектов : для компактных устройств

Цена: 15–40 долларов

Arduino Nano — компактная версия Uno. У неё меньше портов и меньше памяти, зато она без проблем поместится в корпусе практически любого устройства. Ещё один плюс платы в том, что её можно разместить на макетной плате.

Mega: больше портов и памяти

Микроконтроллер: ATmega2560

Память: 256 КБ флеш-памяти и 8 КБ SRAM

Подходит для устройств с большим количеством датчиков

Цена: 50–70 долларов

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

Micro: со встроенным USB-контроллером

Микроконтроллер: ATmega32U4

Память: 32 КБ флеш-памяти и 2,5 КБ SRAM

Подходит: для клавиатур, мышек и контроллеров

Цена: 22 доллара

Arduino Micro — компактная плата с поддержкой режима работы HID (human interface device — устройство человеческого интерфейса). На базе Micro можно собрать собственную клавиатуру, мышку, руль для симулятора гонок или контроллер для игровой консоли.

Платы для профессионалов

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

В линейку Arduino Pro входят следующие семейства:

Portenta — набор высокопроизводительных плат и модулей для промышленных проектов. Они могут одновременно выполнять низкоуровневый код и скрипты на MicroPython или JavaScript.

Nicla — компактные платы для ИИ-проектов с низким энергопотреблением. Например, на базе платы Nicla Vision можно собрать систему для автоматической сортировки заказов на складе.

Opta — серия программируемых логических контроллеров в форм-факторе microPLC. У них есть Ethernet, Wi-Fi, Bluetooth и крепление для DIN-рейки, позволяющее устанавливать устройство в электротехнические шкафы.

Аналоги

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

Все платы компании и прошивки выпускаются под открытой лицензией Creative Commons Attribution ShareAlike. Это значит, что любой желающий может создавать собственные платы Arduino — в помощь разработчикам компания публикует на официальном сайте схемы, чертежи и документацию. В компании не против того, чтобы крупные производители запускали серийное производство аналогов. Главное условие: не использовать название Arduino, его производные и логотип. Все эти атрибуты защищены авторским правом.

Например, российская компания «Амперка» выпускает платы Iskra — это аналоги Arduino с небольшими доработками, которые изготовлены по официальным чертежам. Arduino не против таких решений на рынке.

Вот список проверенных аналогов Arduino помимо платформы Iskra от «Амперки»:

Piranha;

RobotDyn;

Keyestudio;

Adafruit.

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

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

Модули, датчики и сенсоры

К платам Arduino можно подключать сторонние модули, датчики и сенсоры.Если хотите собрать метеостанцию, то надо будет докупить термометр, барометр и анемометр. А для робота нужна будет камера, дальномер и моторы.

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

Макетная плата

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

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

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

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

Модули и сенсоры надо соединять между собой на макетной плате и подключать к Arduino. Для этого используют кабели типа Dupont трёх видов: «папа — папа», «мама — мама» и «мама — папа».

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

Шилд (от англ. shield — щит) — плата расширения, которая подключается к Arduino и даёт новые возможности. Например, с помощью шилда можно добавить поддержку Wi-Fi или GPS, если изначально их не было.

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

Инструменты

Для монтажа электронных компонентов и сборки финального устройства могут понадобиться дополнительные инструменты:

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

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

Набор пинцетов. Электронные компоненты могут быть очень мелкими, и брать их руками не всегда удобно. Лучше использовать пинцеты, чтобы случайно ничего не сломать.

IDE для Arduino

Arduino IDE — официальная среда разработки от команды Arduino. В ней есть все необходимые инструменты для удобной работы с одноимёнными платами. Можно писать код, отлаживать его, оптимизировать, загружать на платы и запускать.

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

Arduino Cloud — облачная платформа для удалённого управления подключёнными платами. В основном её используют для развёртывания самодельных IoT‑устройств, но на платформе есть и встроенный редактор кода. С его помощью можно также писать скетчи, отлаживать . Программировать Arduino можно в любом редакторе кода, но удобнее делать это в специальных средах. В них есть и загружать на платы прямо в браузере. Одно из преимуществ Arduino Cloud в том, что редактор можно открыть даже на смартфоне.

Platform IO — плагин, который превращает редактор кода, например VS Code, в IDE для работы с Arduino. Благодаря Platform IO в редакторе появляется дебагер, анализатор кода, функции для тестирования и возможность прошивать плату.

Плагин бесплатный и доступен для всех популярных IDE и редакторов кода. Есть даже версия для Vim, которая запускается в терминале.

Как программировать Arduino.

Код для Arduino пишут на языке программирования Arduino C — это сочетание C++ и фреймворка Wiring. Файлы с кодом разработчики называют скетчами (от англ. sketch — набросок).

Рассмотрим только основы программирования Arduino. Если стать гуру разработки, то добавьте в закладки гайд по C++ в пяти частях:

С++ для новичков — что это за язык программирования, как писать программы: 1-я часть гайда

Переменные, константы в С++ и операции с ними: 2-я часть гайда по языку программирования

If-else в С++, ветвление и логические операции: 3-я часть гайда по языку программирования

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

Функции, процедуры, рекурсия в С++: 5-я часть гайда по языку программирования

Структура скетча

Программы для Arduino пишут по шаблону, который выглядит так:

#include <Example.h> — директива для подключения сторонних библиотек или связывания нескольких файлов одного проекта.

void setup() — функция, в которой инициализируют пины платы и указывают режимы их работы.

void loop() — цикл с основным кодом программы. В нём разработчики описывают логику прошивки и используют пины, которые инициализировали в функции setup().

Функции setup и loop — обязательная часть каждого скетча. Без них компилятор не сможет собрать проект.

Переменные

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

· int — целые числа в диапазоне от −32768 до 32767.

· long — целые числа в диапазоне от −2147483648 до 2147483647.

· float — числа с плавающей точкой, в которых можно хранить значения с точностью до семи знаков после запятой.

· byte — отдельные символы из ASCII-таблицы.

· String() — строки из нескольких символов.

· bool — логические значения true или false.

Математические операторы

В языке Arduino C есть все привычные математические операторы. С их помощью можно вычислять значения и присваивать результаты переменным:

Оператор

Описание

Пример

=

Присваивание значения переменной

a = 256

+

Сложение

100 + 83

-

Вычитание

45 - 2

*

Умножение

5 * 12

/

Целочисленное деление

100 / 10

%

Остаток от деления

43% 4

Для сравнения значений используют операторы сравнения. Они возвращают true (истина) или false (ложь):

Оператор

Описание

Пример

==

Равно

a == b

!=

Не равно

a != b

<

Меньше

a < b

>

Больше

a > b

<=

Меньше или равно

a <= b

>=

Больше или равно

a >= b

Условные операторы и циклы

Для управления потоками программы в Arduino C предусмотрены условные операторы и циклы:

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

  • for — цикл для повторного выполнения одного и того же действия. Например, с его помощью можно пройтись по массиву светодиодов и поморгать каждым.
  • while — цикл, который выполняется до тех пор, пока его условие истинно.
  • do-while — цикл, который сначала выполняет действие, а потом проверяет условие завершения.

Функции

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

Как загрузить прошивку на плату

Перед тем как начать писать код, разберёмся как этот код загрузить на плату:

· Шаг 1. Подключите плату к компьютеру с помощью USB-кабеля.

· Шаг 2. В Arduino IDE откройте выпадающий список Select board и выберите в нём вашу плату.

  • Шаг 3. Нажмите на кнопку со стрелкой, которая расположена слева от выпадающего списка.
  • Шаг 4. Если всё прошло успешно, то в терминале появится сообщение «Done uploading» и сведения о том, сколько памяти занял скетч.

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

Многие разработчики в качестве своей первой программы пишут код, который выводит на экран фразу «Hello, world!». У микроконтроллеров нет экранов, поэтому выводить приветствие некуда. При этом в сообществе разработчиков есть аналог «Hello, world!» — программа Blink, которая мигает одним из светодиодов на плате.

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

· плата точно работает, а электронные компоненты не повреждены;

· компилятор правильно настроен и собирает код под нужную платформу;

· компьютер без ошибок загружает прошивку на плату.

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

Собираем устройство

Для сборки понадобится:

· любая плата Arduino (у нас Uno R3);

· светодиод;

· резистор номиналом 220 Ом;

· провода типа «папа — папа»;

· макетная плата.

В коде мы используем три функции, не считая setup() и loop(), без которых компилятор не сможет собрать скетч:

· pinMode(pin, mode) — функция для настройки режима работы цифрового пина. На вход она принимает два аргумента: pin и mode. В первом надо указать номер пина, во втором — режим работы. Мы выбрали пин под номером 13 и сделали его выходным (OUTPUT).

· digitalWrite(pin, value) — функция для подачи напряжения на пин, указанный в аргументе pin. Во втором аргументе надо выбрать значение, которое подаётся на пин: HIGH или LOW.

· delay() — с помощью этой функции можно на время приостановить выполнение кода. Для этого в скобках надо указать длительность паузы в миллисекундах. Максимальное значение — 4 294 967 295 мс, что составляет 49 дней, но на практике никто не ставит паузу больше нескольких секунд .

Запускаем код

Если всё сделали правильно, то при подключении питания к плате должен мигать светодиод:

Усложняем проект: добавляем управление.

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

-2

Элементы платы Arduino Uno Рис.2