Что такое библиотека в ардуино
Библиотеки
Очень часто одни и те же части кода кочуют из программы в программу. Например, код для работы с датчиком. Чтобы не писать этот код каждый раз заново, его выносят в отдельные файлы — библиотеки. Огромное количество готового кода уже написано другими людьми, и с помощью библиотек его можно легко использовать в своих программах.
Подключение библиотек
Библиотеки в составе Arduino IDE
Очень много библиотек идет в составе Arduino IDE. Добавить библиотеку в свой код можно из меню Эскиз Импорт библиотек… Название библиотеки :
После выбора пункта «Servo» Arduino IDE сама вставит в код нужные строчки:
Конечно, если вы знаете название нужной библиотеки, можно просто написать в самом верху скетча #include — результат будет тем же самым.
Чтобы посмотреть пример работы с библиотекой, идущей в составе Arduino IDE необходимо выбрать в меню Файл Образцы Название библиотеки Название примера
Сторонние библиотеки
Библиотек для Arduino действительно очень много. И только незначительная часть из них входит в состав Arduino IDE. Многие библиотеки можно найти на сайте GitHub.
В Arduino 1.6.7 и выше: Файл Примеры Название библиотеки Название примера
Создание библиотеки
Обычно, при создании библиотеки создаются два файла: заголовочный файл и файл с кодом библиотеки. Давайте попробуем написать библиотеку, которая бы позволяла нам посчитать площадь круга. Создадим в директории %Sketchbook%\Arduino\libraries папку с названием нашей библиотеки (название может состоять только из латинских букв и цифр, при этом не может начинаться с цифры). Давайте назовём нашу библиотеку circleArea. Перейдём в созданную нами папку %Sketchbook%\Arduino\libraries\circleArea и создим там два файла:
Код circleArea.h будет таким:
Код circleArea.cpp будет таким:
Использование библиотеки в скетче будет таким:
Что такое библиотека в ардуино
Как только вы освоитесь с программным обеспечением Ардуино и в совершенстве овладеете стандартными функциями, вам наверняка захочется расширить возможности вашего Ардуино с помощью дополнительных библиотек.
Что такое библиотека?
Как установить библиотеку
Чаще всего библиотеки выкладываются в виде ZIP-архива или просто папки. Название этой папки является названием библиотеки. Внутри папки будет файл с расширением .cpp, файл с расширением .h, а также текстовый файл keywords.txt, папка с примерами examples и другие файлы, требуемые библиотекой.
Автоматическая установка
Начиная с версии 1.0.5, устанавливать сторонние библиотеки можно прямо в среде разработки.
В среде разработки Ардуино выберите меню Sketch > Import Library. В самом верху выпадающего списка выберите пункт Add Library (Добавить библиотеку).
Появится диалоговое окно, предлагающее вам выбрать библиотеку, которую вы хотели бы добавить. Перейдите к скачанному zip-файлу и откройте его.
Снова откройте меню Sketch > Import Library. Вы должны увидеть новую библиотеку в самом низу выпадающего списка. Теперь библиотеку можно использовать в программах.
zip-файл будет уже распакован в директории libraries внутри вашей рабочей папки Ардуино.
Примечание: после выполнения указанных действий библиотеку можно будет полноценно использовать в своих программах, однако примеры из установленной библиотеки появятся в меню File > Examples только после перезапуска среды Ардуино.
Установка вручную
Перед установкой библиотеки закройте среду разработки Ардуино.
После перемещения ваша директория с библиотеками должна выглядеть примерно так (под Windows):
и аналогично на Linux.
(Если файлы .cpp и .h расположены в корне папки «libraries» или вложены внутрь еще одной папки, то скачанная библиотека работать не будет. Например:
Перезапустите среду Ардуино. Убедитесь, что новая библиотека появилась в меню Sketch->Import Library.
Вот и все! Вы установили библиотеку!
В основе этого урока лежит текст автора Limor Fried.
Текст данного руководства опубликован под лицензией Creative Commons Attribution-ShareAlike 3.0. Примеры кода, встречающиеся в руководстве, являются свободным контентом.
Урок 3. Библиотеки в Arduino: что это такое и как использовать?
Сперва, покажу следующий код:
#include
Servo myservo;
void setup()
<
myservo.attach(9);
myservo.write(90);
>
void loop() <>
В данном скетче мы управляем сервоприводом и поворачиваем вал на ней на 90 градусов. В начале кода с помощью директивы #include (нужна для подключения и внесения в работу кода различных файлов) мы подключаем специальную библиотеку под названием Servo.h
Кстати, если кому интересно, скачать ее вы можете вот здесь:
Дак вот, если убрать строчку кода с подключением этой библиотеки, то программа не заработает. Более того, компилятор выдаст вам ошибку, что не знает таких функций, как myservo.attach и Servo.h
Все эти функции мы можем использовать только с помощью библиотеки Servo.h (в таких случаях говорят, что это ее собственный синтаксис).
В библиотеке содержится определенный код, поддерживающий функции для управления сервоприводом и занимающий немало места, и поэтому для упрощения скетча мы просто подключим библиотеку и используем необходимые функции.
Если этого не сделаем, то размер кода, время на его написание и занимаемое им место в памяти намного увеличатся.
Мы выяснили, что библиотеки экономят наше время и упрощают скетч, делая его более практичным, удобным, а самое главное – более понятным!
А все потому, что в ней уже содержится большая часть кода, которую вам не нужно будет писать.
Библиотек для одной только Arduino существует несколько тысяч. Они делятся на встроенные в среду разработки Arduino IDE и не встроенные, то есть, которые необходимо самому скачивать и устанавливать.
Узнать, какие библиотеки уже встроены или подключены в Arduino IDE можно, нажав на раздел Файл – Примеры, как на фото ниже:
Далее перейдем к тем, что нужно самим искать и устанавливать. Чаще всего таковыми являются библиотеки для подключения различных датчиков или модулей. Например:
Просто введите в поиске нужное название и скачайте.
Библиотеки при скачивании хранятся, как правило, в ZIP файлах. Их нужно распаковать (например, с помощью программы WinRAR) в папку libraries.
Вот и все. Вы самостоятельно установили библиотеку. Чтобы она фигурировала в вашем коде, подключайте ее с помощью функции #include
Также для каждой библиотеки вы можете прочитать своеобразную инструкцию, если погуглить. Там будут описаны команды и функции, которая она содержит и в каких случаях их применять.
Поздравляю! Теперь вы научились подключать и использовать библиотеки. Надеюсь, данный урок был для вас полезен и вы продолжите также резво изучать мир Arduino.
Используем библиотеки
Библиотеки являются очень мощным инструментом при работе с Ардуино, особенно для новичка. Библиотека является файлом (набором файлов), содержащим точно такой же С++ код, на котором мы пишем скетч (иногда встречаются и ассемблерные вставки). Мы можем подключить библиотеку в свой код и использовать возможности, которые она даёт, а вариантов там весьма много: готовые “инструменты” для работы с внешними датчиками и модулями, для работы с внутренней периферией микроконтроллера (таймеры, АЦП, память), библиотеки различных математических инструментов и многое многое другое. Мой личный список интересных библиотек, составленный за годы работы с платформой, можно посмотреть здесь. Прелесть работы с библиотекой заключается в том, что нам необязательно знать, каким образом работает код внутри неё, мы пользуемся готовыми инструментами, которые предоставил разработчик библиотеки. Очень часто к библиотекам есть описание/документация и примеры использования.
Как установить библиотеку
Как я уже говорил, библиотека это набор текстовых файлов с кодом. Библиотеку можно установить двумя способами: из официального репозитория или вручную. У ардуино есть несколько библиотек, которые можно получить прямо из программы Arduino IDE при помощи встроенного менеджера библиотек, который позволяет устанавливать, удалять и обновлять библиотеки. Это удобно, но в этом списке есть далеко не все существующие библиотеки, да и нормального описания менеджер не предоставляет. Для установки библиотеки из официального репозитория Arduino перейдите в Скетч/Подключить библиотеку/Управлять библиотеками… Откроется менеджер библиотек, в котором можно найти и в один клик установить библиотеку из списка.
Ручная установка библиотеки подразумевает перемещение папки с библиотекой в папку, в которой Arduino IDE будет эту библиотеку искать. Таких папок две: одна находится в папке с программой:
Где брать библиотеки?
Очень часто можно встретить опубликованный кем-то проект, в котором используются библиотеки. Автор может приложить непосредственно файлы библиотек, которые он использовал, может дать ссылку на библиотеку, или просто указать её название. Также интересные библиотеки попадаются на форумах, где люди просто написали для себя и поделились с другими. На официальном сайте бибилиотеки или на её странице на GitHub можно встретить подробное описание библиотеки (документацию, вики), советы по использованию, схемы и другую полезную информацию. Большинство библиотек публикуется на сайте GitHub, у неподготовленного человека могу возникнуть проблемы со скачиванием файлов с этого ресурса. Допустим, вы наткнулись на какую-то интересную библиотеку и захотели её скачать. Например, IRLremote – библиотека для работы с ИК приёмниками. Неважно, в какую папку репозитория вы попали – всегда можно нажать на название библиотеки (Имя автора/Название репозитория) и попасть на главную страницу репозитория. С главной страницы можно скачать весь репозиторий как архив, нажав Clone or download, затем Download ZIP. Данный способ универсален для всех библиотек.
Таким образом вы скачаете исходный код библиотеки, в котором могут быть не относящиеся к самой библиотеке файлы. Большинство авторов выпускают релизные версии библиотек, которые находятся во вкладке Releases:
Со вкладки Releases можно загрузить архив с библиотекой нужной версии
Также GitHub позволяет открыть для чтения или скачать единичный файл из репозитория. Для этого нужно открыть файл и нажать кнопку Raw
Решение конфликтов
Иногда случается конфликт библиотек, который заключается в том, что IDE находит на компьютере несколько одинаковых библиотек. Об этом сообщается в логе компиляции предупреждением: “несколько библиотек найдено… используется то, не используется сё“. Если вы ставили некоторые библиотеки через менеджер (Скетч/Подключить библиотеки/Управлять библиотеками…), они будут воевать с библиотеками, установленными вручную в папку с программой. Где вообще лежат библиотеки?
Конфликтовать могут и ядра, поэтому решением всех проблем может стать чистая установка Arduino IDE с удалением остатков от предыдущей версии. Удаляем программу как программу, и вручную сносим папки:
“Внутри” библиотеки
Библиотека, в зависимости от объема кода и настроения программиста, может быть оформлена как очень компактно, так и подробно, с кучей файлов и дополнительных папок. Рассмотрим классический состав библиотеки. Для удобства работы рекомендую включить видимость расширений файлов. Все перечисленные ниже типовые файлы являются обычными текстовыми файлами, открыть их можно обычным блокнотом. Также рекомендую использовать “блокнот программиста” – Notepad++ (ссылка на официальный сайт), который подсвечивает синтаксис и в целом является очень удобным инструментом разработчика. .h – заголовочный файл, самый главный файл библиотеки. Он настолько главный, что библиотека может состоять только из него одного. Находится обычно в корне библиотеки, либо в папке src (source, исходник). В этом файле обычно перечислены все классы/методы/функции/типы данных, находится информация о библиотеке, часто встречается расширенное описание для каждого метода или функции. Очень часто главный заголовочный файл является мини-документацией на библиотеку. Библиотека может иметь многофайловую структуру с большим количеством заголовочных файлов, но главный заголовочный файл всегда один, он имеет такое же название, как папка с библиотекой. Файл с расширением .cpp – файл реализаци, в котором находится основной исполнительный код программы. Обычно идёт парой к своему заголовочному .h файлу, т.е. .cpp. keywords.txt – файл, в котором перечислены подсвечиваемые в Arduino IDE (выделенные другим цветом) в коде названия функций, методов и прочих рабочих имён библиотеки. Файл library.properties – файл, содержащий информацию о библиотеке для агрегаторов и менеджеров библиотек (название, версия, автор, категория и проч.) Папка src – в этой папке могут находиться основные файлы библиотеки (.h, .cpp, .c). Папка examples – папка с примерами использования библиотеки. Помимо перечисленных файлов и папок в папке с библиотекой могут находиться и другие служебные файлы и папки, иногда можно встретить даже полную документацию в виде текстовых файлов или html страниц.
Как работать с библиотекой?
Допустим, вы купили какой то модуль или датчик, загуглили по нему информацию, нашли статью с примером. Примеры обычно простенькие, показать как подключается и работает. Скачали библиотеку из статьи, попробовали, всё работает. Что дальше? Дальше следует открыть папку с библиотекой и посмотреть официальные примеры, разобраться как они работают и что умеют. Примеры находятся в папке examples в папке с библиотекой. Примеры обычно не раскрывают всех возможностей библиотеки, поэтому открываем и читаем заголовочный файл, который название_библиотеки.h. В нем можно найти буквально список инструментов библиотеки, очень часто с описанием для каждого. Вооружившись этой информацией, можно выжать из модуля все возможности, которые ему прописал разработчик библиотеки. Давайте рассмотрим банальную библиотеку servo, я думаю большинство с ней работали. Даже у меня есть небольшой видеоурок по работе с Servo! Посмотрим примеры, которые лежат в папке с библиотекой:
*Длина импульса – сервопривод управляется ШИМ сигналом с определённой длиной импульса, длина эта на максимальный и минимальный угол поворота серво отличается у разных производителей (минимум – 450-600, максимум – 2000-2400), поэтому библиотека серво является очень универсальным инструментом! Перед кодом также находится весьма подробное описание библиотеки и расписаны некоторые тонкости. Что я хочу этим сказать: очень часто именно заголовочный файл несёт основную массу полезной информации по возможностям библиотеки, и в “статьях” о модулях и датчиках вы эту информацию скорее всего не найдёте. Всегда изучайте заголовочный файл, если нужно серьёзно поработать с каким-то модулем или вообще библиотекой в целом.
Как установить библиотеку Ардуино
Рассказываем о том, как установить библиотеку Ардуино, где ее взять, способах установки для использования в проектах или в устройстве.
Зачем нужны библиотеки
В Arduino IDE многие скетчи работают с библиотеками, в которых уже есть большая часть кода который не нужно писать.
Кроме того, для различных модулей и датчиков существуют их собственные библиотеки, которые облегчают работу с ними, а саму библиотеку всего лишь необходимо подключить в Ардуино в вашем скетче.
Допустим, у нас есть задача вывести текст на ЖК-дисплей без подключения библиотеки. Для этого нам нужно:
Легче всего будет установить библиотеку Ардуино LiquidCrystal, добавить в скетч и одной строкой вывести текст на ЖК-дисплей:
Где взять библиотеки
Библиотеки для Ардуино можно найти и скачать в трех основных местах:
После того как Вы скачали (загрузили) библиотеку на свой компьютер, её нужно установить в Ардуино.
Установка библиотеки
Установку библиотек в Ардуино можно двумя основными способами:
Установка библиотеки через Arduino IDE
Конечно же, у вас должна быть установлена среда разработки на вашем компьютере.
В появившемся окне нажмите на иконку «Этот компьютер» и выберите папку «Загрузки».
Стандартные библиотеки Arduino находятся в:
Дополнительные библиотеки в:
Библиотеки, установленные через менеджер лежат в:
Стандартное ядро Ардуино:
Если при скачивании ZIP архива с сайта, Вы указывали путь для сохранения файла, то вместо папки «Загрузки» укажите путь к файлу.
Выберите ZIP-файл библиотеки, который Вы скачали. Название файла может не соответствовать названию библиотеки.
Установка библиотеки вручную
Распакуйте скаченный Вами ZIP-архив и поместите папку (имя папки обычно совпадает с названием библиотеки) из данного архива в папку:
Если во время копирования Arduino IDE была запущена (открыта), то нужно закрыть все окна этой программы.
После чего можно запустить (открыть) заново среду разработки и приступать к подключению библиотеки в скетч.
Дело в том, что программа Arduino IDE постоянно развивается и количество её версий постоянно растёт. Если Вы захотите установить новую версию Arduino IDE, то библиотеки находящиеся в папке:
будут доступны и в старой, и в новой (установленной) версии Arduino IDE, а библиотеки находящиеся в папке libraries программы Arduino IDE старой версии (которая была установлена ранее) будут доступны только в ней (пока Вы их не скопируете в новую).
Установка с GitHub
Этот проект контроля версий имеет огромную популярность и огромную базу библиотек, примеров кода, скетчей и т.п. и по различным языкам программирования и направлениям.
Или вот пример репозитория библиотеки IRLremote на нашем сайте или на Github.
На GitHub любой репозиторий можно клонировать или скачать себе на компьютер в виде ZIP-архива.
Для этого нажимаем на Code и затем Download ZIP:
Стоит сказать, что раньше была кнопка Clone or download.
Нажав Download ZIP вы скачаете последнюю версию репозитория со всеми файлами, даже теми, которые вам могут не пригодиться.
Кроме того, вы можете скачать отдельные релизы (версии) библиотеки через вкладку Releases:
На вкладке Releases вы найдете исходный код (Source Code) для скачивания:
В случае, если вам нужно скачать только один файл, то мы находим этот файл в репозитории, нажимаем на него и видим в верхнем меню блока с кодом файла кнопку Raw, жмем на неё:
Какие библиотеки уже установлены?
Интегрированная среда разработки Arduino IDE уже идет с некоторым набором встроенных библиотек.
Есть два способа посмотреть установленные библиотеки.
Способ 1
Чтобы посмотреть какой набор уже установлен нужно перейти во вкладку:
Далее прокрутите вниз и вы увидите установленный набор библиотек (на рисунке ниже выделен красным):
Способ 2
Заходим в «Скетч» и выбираем «Подключить библиотеку«:
Подключение библиотеки
Подключить любую библиотеку можно одной командой:
– это и есть имя той библиотеки, которую вы хотите подключить.
Например, в статье Wi-Fi WebServer на WeMos D1 R2 мы подключаем библиотеку ESP8266WiFi.h следующим образом:
Дополнительные примеры подключения библиотек:
Кроме того, есть вариант размещения библиотеки в одной папке проекта со скетчем, т.е. файл библиотеки располагается рядом с файлом .ino.
Тогда для подключения библиотеки мы используем кавычки:
В таком варианте подключения компилятор сперва проверит наличие библиотеки в паке со скетчем. Такой вид подключения нужен только в том случае, если в код библиотеки вносятся изменения, необходимые только для этого проекта.
Файлы библиотек (из чего состоит)
Итак, перед тем как начать пользоваться методами и функциями библиотеки, её нужно:
Каждая библиотека должна содержать 2 файла с расширениями .h и .cpp.
Файлы первого типа (.h) содержат:
Второй тип (.cpp) содержит коды методов.
Дополнительно нужно понимать, что файлы .h и .cpp могут не лежать в корне скачанного архива.
examples (папка) – здесь находятся примеры использования библиотеки.
Библиотеки с примерами
Многие библиотеки могут идти с примерами работы. Такие примеры демонстрируют работу библиотеки после установки библиотеки в Ардуино и показывают её функциональные возможности.
В Arduino IDE переходим в меню:
В этом меню вы сможете увидеть какие библиотеки идут с примерами, если наведете курсор на имя библиотеки:
Можно также попробовать запустить файлы скетчей из папки библиотеки:
Поиск библиотек
Искать библиотеки можно вручную или через среду разработки Ардуино IDE (Integrated development environment).
Переходим в меню среды:
Скетч -> Подключить библиотеку -> Управлять библиотеками
Мы откроем «Менеджер библиотек», о котором мы говорили выше.
Здесь мы увидим поле поиска и два выпадающих меню с названиями Тип и Тема. Введя в поисковое поле нужное название библиотеки нам Менеджер покажет подходящие варианты библиотек.
Выбираем библиотеку и видим появления кнопок Версия и Установка:
Далее жмем Установка и потом уже подключаем библиотеку в скетч нашего проекта:
Возможные ошибки и конфликты
Иногда при установке библиотек или в процессе их использования могут возникать некоторые ошибки. Ниже разберем основные.
Очень часто помогает установка Arduino IDE с чистого листа и удаление всех файлов предыдущей версии.