Что такое Ардуино

Платы Arduino

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

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

Одна из плат, Arduino Uno, в руке выглядит вот так:

Плата Arduino Uno в руке
Плата Arduino Uno в руке

Для сравнения — вот такой размер другой платы Ардуино, которая называется Nano:

Плата Arduino Nano в руке
Плата Arduino Nano в руке

Ниже на фото я привел пример того как выглядит простое собранное устройство на основе платы Уно:

На фото сразу можно заметить главное достоинство платы — нам не нужно было ничего припаивать и мы использовали минимум комплектующих. Таким же образом можно собрать множество интереснейших устройств.

Технические характеристики зависят от модели используемого микроконтроллера, а с внешним видом двух самых популярных моделей вы уже познакомились — это Arduino Uno и Nano.

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

Очень большой частью платформы Ардуино является Интегрированная Среда Разработки или IDE (Integrated development environment).

Для работы платы и вашего будущего проекта необходимо написать и загрузить на Arduino скетч. IDE помогает с легкостью всё это реализовать.

Скетч — это программа, написанная для управления платой Ардуино и устройствами на ее основе, которая загружается в микроконтроллер. Имеет также другое название — эскиз.

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

Arduino IDE является бесплатной, скачивается и устанавливается на компьютер пользователя.

Программа работает на операционных системах Windows, Mac OS и Linux.

Окно загрузки и экран программы Arduino IDE
Окно загрузки и экран программы Arduino IDE

Подробнее познакомиться со средой разработки вы можете в нашей статье «Arduino IDE: программная среда для разработки под Ардуино«.

Скачать Arduino IDE можно с официального сайта производителя плат Arduino.

Главное ядро программы версии 1.8.0 было выпущено 20 декабря 2016 года, а уже в 2020 году многие используют версию 1.8.13.

Вместе с программой автоматически установятся драйвера для определения платы при подключении к USB-порту. Среда разработки оснащена стандартным менеджером добавления библиотек в виде исходного кода на языке C++.

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

Видео

Софт

Что касается программной части, предоставленной Arduino, то это Arduino IDE (Integrated Development Environment – интегрированная среда разработки), включающая в себя редактор кода, компилятор и всё остальное необходимое для загрузки прошивки в плату. Подробнее о ней поговорим в отдельном уроке

Как программировать Ардуино

Для программирования Arduino существует специальное программное обеспечение Arduino IDE. В этой простой программке с помощью несложных команд вы сможете «говорить» Ардуино, что нужно делать. Разобраться может даже человек без опыта программирования. Благо в интернете информации сейчас достаточно.

Начать можно с простых программ по миганию светоди

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

Программирование

Ардуино программируется на языке программирования C/C++ с соответствующим ему синтаксисом. Встроенный сборщик, препроцессор и компилятор (avr-gcc или Win-AVR) прощают большое количество ошибок и делает многое за пользователя автоматически, мы даже об этом не знаем и не задумываемся. Базовые функции для управления выводами и интерфейсами микроконтроллера, математика и некоторые другие функции/макросы взяты из открытого фреймворка для работы с микроконтроллерами под названием Wiring. Именно из него состоит базовый набор инструментов Ардуино. В связи с этим сами разработчики Ардуино называют язык “упрощённым c++”, и даже дали ему отдельное название – Arduino Wiring.

Тут следует отделить мух от котлет: “из коробки” в Arduino IDE нам доступна огромная куча различных функций и инструментов:

  • Все возможности языка C++, которые предоставляет компилятор: типы данных, операторы и вообще весь необъятный синтаксис. Мы программируем на том же C++, на котором можно программировать в любом другом месте.
  • “Ядро” Ардуино – библиотека Arduino.h, которая автоматически подключается в код. В ней содержатся функции для управления пинами, интерфейсами, а также имеется набор всяких полезных функций и инструментов. А ещё оно отвечает за инициализацию и настройку периферии микроконтроллера при запуске. В ядре кстати лежат стандартные библиотеки для Serial, Wire, SPI и EEPROM.
  • В папке с программой лежит набор стандартных библиотек: для LCD дисплея, шаговика, сервопривода и некоторых других железок.
  • С компилятором идёт набор низкоуровневых библиотек для AVR (сон, progmem, watchdog и многие другие).
  • Компилятор позволяет работать с микроконтроллером “напрямую” при помощи регистров и чтения даташита до утра.
  • Также мы можем писать на ассемблере, взяв под контроль каждый такт работы МК.

Если вы научитесь свободно прогать на Ардуино и вдруг перейдете к разработке программ на том же C++ в более взрослых средах разработки, вы будете неприятно удивлены большим количеством дополнительного кода, который придется писать руками. И наоборот, если умеющий в плюсы (си-плюс-плюсы) человек посмотрит на типичный ардуино-код, он скажет “да как это вообще работает то?”. Компилятор в Arduino IDE настроен на максимальную всеядность и прощение ошибок, потому что это обучающая платформа.

Сейчас вернёмся к такому понятию, как библиотека. Жизнь рядового ардуинщика неразрывно связана с библиотеками, потому что огромное комьюнити за годы своего существования сделало огромное количество этих самых библиотек на все случаи жизни и для всех продающихся датчиков и модулей. Библиотека это набор файлов, в которых содержится дополнительный код, которым мы можем пользоваться просто ознакомившись с документацией или посмотрев примеры. Такой подход называется “черным ящиком”, мы можем даже не догадываться, какой ужас и кошмар (в плане сложности кода) содержится в библиотеке, но с лёгкостью пользоваться возможностями, который этот код даёт. Купили модуль – нашли библиотеку – открыли пример – всё, результат достигнут…

ШИМ Arduino

Широтно-импульсная модуляция (ШИМ) — это процесс управления напряжением за счет скважности сигнала. То есть используя ШИМ мы можем плавно управлять нагрузкой. Например можно плавно изменять яркость светодиода, но это изменение яркости получается не за счет уменьшения напряжения, а за счет увеличения интервалов низкого сигнала. Принцип действия ШИМ показан на этой схеме:

ШИМ ардуино
ШИМ ардуино

Когда мы подаем ШИМ на светодиод, то он начинает быстро зажигаться и гаснуть. Человеческий глаз не способен увидеть это, так как частота слишком высока. Но при съемке на видео вы скорее всего увидите моменты когда светодиод не горит. Это случится при условии что частота кадров камеры не будет кратна частоте ШИМ.

В Arduino есть встроенный широтно-импульсный модулятор. Использовать ШИМ можно только на тех пинах, которые поддерживаются микроконтроллером. Например Arduino Uno и Nano имеют по 6 ШИМ выводов: это пины D3, D5, D6, D9, D10 и D11. В других платах пины могут отличаться. Вы можете найти описание интересующей вас платы в этом разделе.

Для использования ШИМ в Arduino есть функция analogWrite(). Она принимает в качестве аргументов номер пина и значение ШИМ от 0 до 255. 0 — это 0% заполнения высоким сигналом, а 255 это 100%. Давайте для примера напишем простой скетч. Сделаем так, что бы светодиод плавно загорался, ждал одну секунду и так же плавно угасал и так до бесконечности. Вот пример использования этой функции:

С чего начать

Вам понадобится сама плата. Например, Arduino Uno — самая популярная модель в настоящий момент. Для начала экспериментов её хватит с головой. Хотя если брать «на вырост», можно рассмотреть более мощную Arduino Mega 2560.

Также вам понадобится USB-кабель, макетная доска, перемычки, резисторы, транзисторы… и ещё десяток подручных вещей. Чтобы не утомлять себя поисками необходимого, возьмите всё, что потребуется в виде одного из готовых наборов. Например, «Матрёшка Y» или «Матрёшка Z» — мы собрали в них всё, что нужно для комфортного старта.

Теги

Adblock
detector