Что такое Arduino: первые шаги в электронике
Что можно сделать на Ардуино и зачем это нужно? Разбираемся с популярной и дружелюбной платформой, которая позволяет быстро создавать умные электронные устройства своими руками.
Самодостаточная начинка

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

Программы для Ардуино пишутся на обычном C++, дополненным простыми и понятными функциями для управления вводом-выводом на контактах. Если вы уже знаете C++, Arduino станет дверью в новый мир, где программы не ограничены рамками компьютера, а взаимодействуют с окружающим миром и влияют на него. Если же вы новичок в программировании — не проблема, вы с лёгкостью научитесь, это просто.
Для удобной работы с платами Ардуино существует бесплатная официальная среда программирования Arduino IDE, работающая под Windows, Mac OS и Linux. С помощью неё загрузка новой программы в контроллер становится делом одного клика, только лишь подключите плату к компьютеру через USB. Хотя для более пытливых умов возможна работа и через Visual Studio, Eclipse, другие IDE или командную строку, а новичкам подойдёт визуальная среда программирования XOD IDE.
Вам не понадобится паяльник. Полноценные устройства можно собирать, используя специальную макетную доску, перемычки и провода абсолютно без пайки. Прототипирование ещё не было таким быстрым и простым, поэтому ардуинки быстро прижились в школах и кружках робототехники.
Принцип бутерброда

Ещё одной отличительной особенностью Arduino является наличие плат расширения под названием Shield. Эти «шилды» ставятся поверх ардуинки подобно слоям бутерброда и дают ей новые дополнительные возможности. Например, существуют платы расширения для подключения к локальной сети и интернету (Ethernet Shield), для управления мощными моторами (Motor Shield), для получения координат и времени со спутников GPS (приёмник GPS/ГЛОНАСС) и многие другие.
В итоге
Arduino — это сердце конструктора, в котором нет конечного, строго определённого набора деталей, и нет ограничений в разнообразии того, что вы можете из него собрать. Всё ограничено лишь вашей фантазией. Это новый мир, убойное хобби и отличный подарок. Свыше 10 миллионов людей в мире уже поняли это.
Взгляните лишь на несколько примеров того, что можно сделать на Ардуино. Ведь это грандиозно!
Картонный бот-очаровашка
Робот-паук
Генератор мыльных пузырей
Светодиодный куб
Графический эквалайзер
Система полива дачного участка
С чего начать
Вам понадобится сама плата. Например, Arduino Uno — самая популярная модель в настоящий момент. Для начала экспериментов её хватит с головой. Хотя если брать «на вырост», можно рассмотреть более мощную Arduino Mega 2560.
Также вам понадобится USB-кабель, макетная доска, перемычки, резисторы, транзисторы… и ещё десяток подручных вещей. Чтобы не утомлять себя поисками необходимого, возьмите всё, что потребуется, в виде одного из готовых наборов. Например, в наборах «Матрёшка Y» или «Матрёшка Z» мы собрали всё, что нужно для комфортного старта.
Arduino — как это программировать: основы для новичков


Даниил Шатухин Редактор в «Хабре», тестировщик и любитель веба
Arduino — программирование, которое можно потрогать. Плата позволяет не только поработать с кодом, но и реализовать его в физическом мире. Например, запрограммировать плату помигать светодиодами или сделать из нее музыкальный инструмент. Разбираемся, как начать программировать на Arduino с нуля, какие IDE подходят для работы с платой и приводим примеры кода.

Освойте профессию
«Python-разработчик»
Что такое Arduino

Arduino — аппаратная платформа на базе микроконтроллера, предназначенная для разработки умных устройств и автоматизированных систем. С помощью Arduino можно запрограммировать собственный дверной замок с магнитным ключом, построить робота с распознаванием голосовых команд или собрать автоматическую кормушку для питомца. К основной плате можно подключать дополнительные модули от сторонних производителей. Так систему можно оснастить дисплеем, датчиками, аккумуляторами и беспроводной связью. Arduino придумали в Италии в начале 2000-х годов. Разрабатывали систему для быстрого и легкого обучения программированию и схемотехнике, поэтому платформу изначально делали гибкой, чтобы ее можно было использовать в любых школах и кружках.
Профессия / 9 месяцев
Frontend-разработчик
Создавайте интерфейсы сервисов, которыми пользуются все
2 374 ₽/мес 4 317 ₽/мес

Все разработки Arduino открыты для использования, поэтому, кроме оригинальных плат, можно найти китайские копии. Компания всегда публикует чертежи своих разработок, схемотехнику и программную часть. В результате копии практически ничем не уступают платам из Италии.
На чем программируют Arduino
Код для всех плат семейства Arduino пишется на языке Arduino, созданном на базе C++ и фреймворка Wring. Создатели платформы выбрали C++ из-за скорости работы и высокой эффективности при разработке для устройств с ограниченным количеством памяти. Фреймворк Wring отвечает за управление аппаратной частью Arduino. Код компилируется с помощью avr-gcc. Некоторые платы поддерживают программирование на языке MicroPython. Для этого нужно самостоятельно установить все необходимое окружение и подготовить аппаратную часть контроллера к обработке такого кода. Программировать удобнее всего в интегрированных средах разработки. У плат семейства Arduino есть Arduino IDE. Приложение доступно для Windows, Linux и macOS. В нем собрали все инструменты, которые могут пригодиться во время разработки собственных проектов. В Arduino IDE можно писать код, оптимизировать работу платы, получать данные об эффективности кода, устанавливать сторонние библиотеки и разрабатывать свои. Arduino IDE можно скачать с официального сайта компании, код проекта открыт и опубликован на GitHub.
Если нет возможности установить Arduino IDE, то программировать плату можно в браузере, в облачной среде разработки. В ней поддерживается работа с кодом, отправка написанного кода на плату, взаимодействие с библиотеками и мониторинг. Возможности облачной IDE ограничены, и для полного доступа необходимо приобрести подписку Arduino Cloud.
Разрабатывать код для Arduino можно и в редакторе кода Visual Studio Code от Microsoft. Это возможно благодаря стороннему плагину PlatformIO, который упрощает взаимодействие с железом. Плагин бесплатный и предоставляет функции для разработки, отладки и прошивки плат.
Визуальное программирование Arduino

Новичкам может быть сложно сразу начать писать код на Arduino C из-за того, что в основе языка лежит достаточно сложный C++. Далеко не все платы поддерживают MicroPython, поэтому решением может стать визуальное программирование, построенное на перетягивании нужных фрагментов кода друг за другом. Такой способ будет полезен не только начинающим, но и детям на кружках по программированию. Проект Массачусетского технологического института S4A представляет собой модификацию языка визуального программирования для Arduino. С его помощью можно собирать блоки кода в готовую прошивку для фирменных плат. Проект давно не обновлялся, но все равно стабильно работает. Есть русский язык и подробная документация по установке. Проект ArduBlock от российских разработчиков активно поддерживается и предлагает актуальные функции для большинства плат Arduino и ESP. Программирование с помощью блоков, а также уроки и инструкции на русском языке доступны в браузере. Вместе с ArduBlock авторы проекта выпускают стартовые наборы для начинающих.
Основы программирования Arduino
Файл с кодом проекта для Arduino в сообществе принято называть скетчем. Скетчи пишут по специальным правилам, обеспечивающим корректную работу с железом и выполнение команд. Базовая структура выглядит следующим образом:
#include «name» void setup() < >void loop()
В самом начале скетча в главный файл подключают сторонние библиотеки с помощью директивы #include и названия библиотеки. Название можно указать с помощью кавычек («») или галочек (<>). В первом случае поиск к файлу библиотеки производится сначала в папке со скетчем, а потом в папке с установленными библиотеками. Если использовать галочки, то система будет искать указанный файл только в папке с установленными библиотеками. Далее следует функция setup() , которая выполняется при каждом запуске скетча на Arduino. В этот момент система задает вводам и выводам на плате режим работы, получает значения переменных и подготавливает плату для работы с остальной частью кода. Функция loop() выполняется по кругу и управляет Arduino. В этой части разработчики пишут основной код скетча, который реализует логику всего проекта. Выполнение loop() запускается сразу за setup() . Эти две функции обязательно должны быть в скетче каждого проекта, даже в тех случаях, когда в функциях нет никаких инструкций. Без них невозможно выполнение кода на Arduino.

Станьте Java-разработчиком
и создавайте сложные сервисы
на востребованном языке
Комментарии и разделители
Arduino программируют на языке, спроектированном на базе C++, поэтому он наследует многие его особенности. Так, однострочные комментарии задаются с помощью двойного слэша (//). Весь текст внутри комментария компилятор будет игнорировать, обычно текст в слэшах используют для пояснения работы кода. Комментарии в первую очередь нужны людям, которые пишут код и работают с ним, а не компьютеру. Для комментирования сразу нескольких строк используется конструкция из слэша и звездочки (/* комментарий */). Такую конструкцию обязательно надо закрывать, иначе компилятор не сможет найти конец комментария.
// Однострочный комментарий // Второй однострочный комментарий /* А это уже Многострочный комментарий */
Все инструкции нужно отделять точкой с запятой (;). Эта особенность тоже пришла в синтаксис Arduino из C++. Если этого не делать, код не соберется и скетч нельзя будет загрузить на плату.
Переменные Arduino
Переменные в Arduino нужны, как и во всех языках программирования, для хранения данных. В программировании Arduino мы должны указывать тип переменной перед ее именем. Существуют следующие типы данных:
Уроки Ардуино (Arduino) для начинающих
База уроков по Arduino На сайте появился отдельный большой раздел текстовых уроков – максимально подробные уроки по программированию Arduino!
ПОЛЕЗНЫЕ СТАТЬИ





УРОКИ ARDUINO
Об этой странице Здесь представлены видео уроки с канала Заметки Ардуинщика (цикл «Базовые уроки»), совмещённые с текстовым материалом. Также на сайте есть более подробные текстовые уроки × Закрыть это предупреждение.
15.01.2019 конспект был обновлён: поправлено оформление и добавлена информация!
Добро пожаловать в цикл “Уроки Ардуино с нуля, для чайников, школьников и домохозяек”, это официальная страница проекта “Заметки Ардуинщика“. Цикл охватывает все стандартные операторы и функции Ардуино и построен таким образом, что от выпуска к выпуску у зрителя идёт плавное формирование “базы”, каждый последующий урок (видео урок) содержит в себе информацию из предыдущих, то есть уроки усложняются и становятся комплексными.
Программирование Ардуино
Язык программирования устройств Ардуино основан на C/C++ и скомпонован с библиотекой AVR Libc и позволяет использовать любые ее функции. Вместе с тем он прост в освоении, и на данный момент Arduino — это, пожалуй, самый удобный способ программирования устройств на микроконтроллерах.
Справочник языка Ардуино
Язык Arduino можно разделить на четыре раздела операторы, данные (переменные и константы), функции и библиотеки.
Операторы
Управляющие операторы
Синтаксис
- ; (точка с запятой)
- <> (фигурные скобки)
- // (одностроковый коментарий)
- /* */ (многостроковый коментарий)
- #define
- #include
Арифметические операторы
- = (оператор присваивания)
- + (сложение)
- — (вычитание)
- * (умножение)
- / (деление)
- % (остаток от деления)
Операторы сравнения
- == (равно)
- != (не равно)
- <(меньше чем)
- > (больше чем)
- <=(меньше или равно)
- >= (больше или равно)
Логические операторы
Указатели доступа
Битовые операторы
- & (побитовое И)
- | (побитовое ИЛИ)
- ^ (побитовое XOR или исключающее ИЛИ)
- ~ (побитовое НЕ)
- <<(побитовый сдвиг влево)
- >> (побитовый сдвиг вправо)
Составные операторы
- ++ (инкремент)
- — (декремент)
- += (составное сложение)
- -= (составное вычитание)
- *= (составное умножение)
- /= (составное деление)
- &= (составное побитовое И)
- |= (составное побитовое ИЛИ)
Данные
Константы
- HIGH | LOW
- INPUT | OUTPUT| INPUT_PULLUP
- true | false
- целочисленные константы
- константы с плавающей точкой