Лекция №1. Введение
Что может Arduino
Эта платформа дает простор для самовыражения талантливым и способным разработчикам. Arduino используется для создания интерактивных проектов в области умного дома, робототехники, автоматизации производства, медиаинсталляций, измерительных приборов, игр и многих других. Рассмотрим возможности «Ардуино» на конкретных примерах:
Умный дом. Arduino можно использовать для автоматизации освещения и системы безопасности. С ее помощью можно создать собственные устройства для управления домашними приборами и интегрировать их с платформами умного дома.
Робототехника. С помощью Arduino можно строить роботов, начиная от простых мобильных и заканчивая сложными манипуляторами. Платформа программируется для управления движением, считывания данных с датчиков и обработки информации.
Измерительные приборы. Сбор данных с датчиков температуры, влажности, освещения, давления и других.
Игры. Arduino используется для создания примитивных консолей. Подключайте кнопки, джойстики, датчики движения и другие компоненты.
Автоматизация и контроль. Уход за рассадой и даже сельское хозяйство, промышленность или автомобильная отрасль можно автоматизировать с помощью Arduino. Создавайте системы контроля и управления для различных задач: от автоматического полива растений до управления производственными процессами.
Кроме того, платформа поддерживает подключение множества дополнительных модулей и сенсоров, что расширяет ее функциональность и позволяет адаптировать для использования в самых разных проектах. Это открытая платформа: схемы и дизайны плат доступны для свободного использования и модификации.
Компоненты
Платформа состоит из физической платы с микроконтроллером и программного обеспечения (IDE), используемого для написания и загрузки программ на плату.
Микроконтроллер на плате — главный компонент. Он отвечает за управление различными внешними устройствами: светодиодами, датчиками и моторами. Платформа Arduino поддерживает простой и понятный язык программирования, основанный на C/C++.
Для начала рассмотрим, как работает «Ардуино». Создание проекта можно свести к пяти шагам:
Написание программы на языке программирования Arduino в интегрированной среде разработки. На этом этапе определяется, какие действия должны выполняться микроконтроллером.
Загрузка программы после написания. Готовый код загружается в микроконтроллер на плате по USB. Программа сохраняется во внутренней памяти микроконтроллера.
Интерпретация и выполнение программы. Микроконтроллер поочередно выполняет инструкции из загруженной программы. Он читает входные данные от подключенных датчиков или других устройств, обрабатывает эту информацию в соответствии с программой и управляет подключенными устройствами (светодиодами, моторами или дисплеями) на основе заданных инструкций.
Взаимодействие с внешними устройствами. Если через разъемы ввода-вывода установлены внешние устройства (например, сенсоры, дисплеи и другие компоненты), то на данном этапе Arduino взаимодействует с ними.
Циклическое выполнение программы. После выполнения всех инструкций программы Arduino возвращается к началу и повторяет цикл, продолжая считывать данные, обрабатывать их и управлять подключенными устройствами в соответствии с программой.
Это основные шаги, которые выполняет система Arduino. В зависимости от сложности проекта этапы могут дополняться новыми действиями.
Теперь рассмотрим основные компоненты Arduino. Начнем с того, что такое плата Arduino.
Плата
Платы Arduino — это физические электронные платы, на которых установлен микроконтроллер и другие обязательные для работы платформы компоненты. Без них создать электронный проект просто невозможно. Существует множество моделей Arduino с уникальными особенностями и функциональностью. Рассмотрим строение платы на примере самой популярной: Arduino Uno — одной из самых распространенных и широко используемых моделей. Она оснащена достаточным количеством цифровых и аналоговых входов/выходов, USB-портом, поэтому считается отличным выбором для начинающих.

Рисунок 1. Arduino Uno
Ее основные элементы:
Микроконтроллер (на фото вверху — 1): Arduino Uno оснащена микроконтроллером ATmega328P. Это специальная интегральная микросхема, которая выполняет программу, управляет внешними устройствами и обрабатывает данные.
USB-порт (2): необходим для подключения к компьютеру для загрузки программы на микроконтроллер.
Разъем для подачи питания (4): возможно питание платы через USB-порт компьютера или внешний источник питания через этот разъем. Плата поддерживает широкий диапазон напряжения. Имеется заземление.
Входы/выходы (14): цифровые и аналоговые входы/выходы (или I/O, от английских слов: input и output). Цифровые пины могут быть настроены на работу как в качестве входов, так и выходов, аналоговые пины могут считывать аналоговые значения, например, напряжение.
Разъемы для подачи питания на внешние компоненты (11) — сенсоры, дисплеи, моторы и т. п.
LED-индикаторы (3): несколько светодиодных индикаторов, которые отображают состояние работы платы и отладки программы; один из них — настраиваемый.
Кварцевый резонатор (12): используется для генерации точного тактового сигнала, необходимого для работы микроконтроллера.
Кнопка Reset (13), служащая для остановки программы и сброса.
Помимо Arduino Uno, существуют и другие платы, например:
Arduino Due — основана на более мощном микроконтроллере ARM Cortex-M3. Отличается высокой производительностью, большим объемом памяти и поддержкой более сложных вычислений. Подходит для проектов, требующих высокой производительности и обработки данных.
Arduino Mega — имеет большее количество входов/выходов, включая дополнительные серийные порты, аналоговые входы/выходы и расширенную память. Подходит для более сложных проектов, требующих большего количества портов.
Arduino Leonardo — имеет микроконтроллер с функцией виртуальной клавиатуры и мыши. Подходит для проектов, где требуется эмуляция ввода с клавиатуры или мыши.
Arduino Nano — компактная версия с меньшими размерами, но с достаточными возможностями для создания множества проектов. У нее маленький размер и низкое энергопотребление. Она хорошо подходит для встраиваемых систем или проектов с ограниченным пространством.
Особенность платформы в ее гибкости, доступности и открытости. Это позволяет другим производителям выпускать свои платы Arduino. Например, разработчики используют:
Adafruit Feather — серию компактных плат, включая беспроводные модули (например, Wi-Fi или Bluetooth), встроенные аккумуляторы и датчики. Платы Feather отличаются небольшими размерами и хорошо подходят для мобильных и встраиваемых проектов.
SparkFun RedBoard — альтернативная версия Arduino Uno с аналогичными характеристиками, но измененным дизайном и дополнительными возможностями. RedBoard часто используется в учебных целях и проектах электроники.
Seeeduino — эти платы имеют дополнительные интерфейсы: например, Ethernet, LoRa или GSM, что делает их подходящими для разработки проектов связи и интернета вещей.
ESP32 Dev Board — эта плата основана на микроконтроллере ESP32 и предлагает поддержку Wi-Fi и Bluetooth. Ее часто используют в проектах, связанных с интернетом вещей и беспроводными коммуникациями.
Модули
Модули Arduino — это дополнительные компоненты, которые могут быть подключены к плате для расширения ее функциональности и возможностей. Это небольшие электронные устройства, которые обычно имеют свои собственные микроконтроллеры и предназначены для выполнения специфических задач, например:
Беспроводная связь — Wi-Fi, Bluetooth, Zigbee или LoRa. Такие датчики позволяют плате Arduino взаимодействовать с другими устройствами или подключаться к интернету.
Датчики — температурные, влажностные, световые, газовые и многие другие. С их помощью плата Arduino получает данные из физического окружения.
Актуаторы (сервоприводы, моторы, реле или светодиоды) — с их помощью Arduino может контролировать физические действия и изменять окружающую среду. Например, роботизированная рука может схватить какой-то предмет.
Хранение данных — SD-карты или EEPROM-модули, которые могут быть использованы для сохранения и чтения информации на долгосрочное хранение или для обмена данными с другими устройствами.
Дисплеи — позволяют отображать информацию на экране, например текст, графику или числа. Это может быть текстовый LCD-, OLED- или даже сенсорный дисплей.
Прочие модули — например, звуковые, GPS или распознавания голоса.
Как и в случае с платами, модули Arduino производятся официальными разработчиками и сторонними. Примеры официальных модулей:
Arduino Ethernet Shield позволяет плате Arduino подключаться к Ethernet по витой паре и обмениваться данными по сети.
Arduino WiFi Shield дает возможность подключаться к Wi-Fi.
Arduino Motor Shield предназначен для управления двигателями и позволяет плате Arduino контролировать скорость и направление вращения моторов.
Arduino LCD Shield содержит LCD-дисплей и кнопки для удобного отображения информации и взаимодействия с пользователем.
Arduino Proto Shield предоставляет макетную плату для создания прототипов проектов, позволяя легко подключать и тестировать различные компоненты и датчики.
Существуют также множество модулей от сторонних производителей, например DFRobot Gravity, Adafruit FeatherWing, Grove и SparkFun.
Программные возможности
Arduino считается простым конструктором, с помощью которого можно собрать как незатейливый электронный прибор (например переключатель чего-либо), так и нечто сложное (роботизированную руку или систему автоматического полива). Одновременно платформа предлагает и широкие возможности для проявления навыков программирования. Для этого используются:
Arduino IDE — простой и понятный интерфейс для создания и загрузки программного кода. Поддерживает функции редактирования кода, компиляции, загрузки и мониторинга последовательного порта.
Язык программирования Arduino на основе упрощенного варианта языка C/C++, который содержит библиотеки и функции, специально разработанные для работы с платами Arduino.
Стандартные библиотеки, которые упрощают работу с различными компонентами и модулями — подробнее о них ниже.