Используем библиотеки
Библиотеки являются очень мощным инструментом при работе с Ардуино, особенно для новичка. Библиотека является файлом (набором файлов), содержащим точно такой же С++ код, на котором мы пишем скетч. Мы можем подключить библиотеку в свой код и использовать возможности, которые она даёт, а вариантов там весьма много: готовые “инструменты” для работы с внешними датчиками и модулями, для работы с внутренней периферией микроконтроллера (таймеры, АЦП, память), библиотеки различных математических инструментов и многое многое другое. Мой личный список интересных библиотек, составленный за годы работы с платформой, можно посмотреть здесь.
Прелесть работы с библиотекой заключается в том, что нам необязательно знать, каким образом работает код внутри неё, мы просто пользуемся готовыми инструментами, которые предоставил разработчик. Очень часто к библиотекам есть описание/документация и примеры использования.
Хотите написать свою библиотеку? Читайте урок.
Как установить библиотеку
Как я уже говорил, библиотека это набор текстовых файлов с кодом. Библиотеку можно установить двумя способами: из официального репозитория или вручную. У Ардуино есть своя база библиотек (около 4000), которые можно устанавливать и обновлять прямо из Arduino IDE при помощи встроенного менеджера библиотек. Это удобно, но в этом списке есть не все существующие библиотеки. Переходим в Скетч/Подключить библиотеку/Управлять библиотеками… Откроется менеджер библиотек, в котором можно найти и в один клик установить библиотеку из списка.
Ручная установка библиотеки подразумевает перемещение папки с библиотекой в папку, в которой Arduino IDE будет эту библиотеку искать. Таких папок две: одна находится в папке с программой:
- 64-битная версия Windows – C:\Program Files (x86)\Arduino\libraries\
- 32-битная версия Windows – C:\Program Files\Arduino\libraries\
Вторая находится по пути, указанному в настройках. По умолчанию это Документы/Arduino. Я рекомендую устанавливать библиотеки в папку с программой, так как этот путь не содержит кириллицы и проблем с ним никогда не возникнет. Перемещать библиотеку в папку библиотек нужно так, чтобы в папке с названием библиотеки были файлы библиотеки (файлы с расширениями .h , . cpp , файл keywords , папка examples …).
Библиотеку можно разместить в папке со скетчем, например если в код библиотеки вносятся изменения, необходимые только для этого проекта. В этом случае рядом с файлом скетча .ino должны лежать файлы библиотеки, а в скетче подключать библиотеку необходимо через двойные кавычки, чтобы компилятор начал искать библиотеку с папки со скетчем:
В то же время библиотеки, содержащие несколько файлов в разных папках, таким образом работать отказываются. Возможно это проблема самой IDE:
Где брать библиотеки?
Очень часто можно встретить опубликованный кем-то проект, в котором используются библиотеки. Автор может приложить непосредственно файлы библиотек, которые он использовал, может дать ссылку на библиотеку, или просто указать её название. Также интересные библиотеки попадаются на форумах, где люди просто написали для себя и поделились с другими. На официальном сайте библиотеки или на её странице на GitHub можно встретить подробное описание, советы по использованию, схемы и другую полезную информацию.
Большинство библиотек публикуется на GitHub, у неподготовленного человека могу возникнуть проблемы со скачиванием файлов с этого ресурса. Допустим, вы наткнулись на какую-то интересную библиотеку и захотели её скачать. Например, IRLremote – библиотека для работы с ИК приёмниками. Неважно, в какую папку репозитория вы попали – всегда можно нажать на название библиотеки (Имя автора/Название репозитория) и попасть на главную страницу: С главной страницы можно скачать весь репозиторий как архив, нажав Clone or download, затем Download ZIP. Данный способ универсален для всех библиотек.
Таким образом вы скачаете исходный код библиотеки, в котором могут быть не относящиеся к самой библиотеке файлы. Большинство авторов выпускают релизы, которые находятся во вкладке Releases: Со вкладки Releases можно загрузить архив с библиотекой нужной версии
Также GitHub позволяет открыть для чтения или скачать единичный файл из репозитория. Для этого нужно открыть файл и нажать кнопку Raw
Решение конфликтов
Если Arduino IDE найдёт на компьютере несколько одинаковых библиотек, будет конфликт. Об этом сообщается в логе компиляции предупреждением: “несколько библиотек найдено… используется то, не используется сё“. Если вы ставили некоторые библиотеки через менеджер, они будут воевать с библиотеками, установленными вручную в папку с программой. Где вообще лежат библиотеки?
- Стандартные общие библиотеки – в папке с программой/libraries
- 64-битная версия Windows – C:\Program Files (x86)\Arduino\libraries\
- 32-битная версия Windows – C:\Program Files\Arduino\libraries\
- Стандартное ядро Arduino – C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries
- Другие ядра – C:\Users\username\AppData\Local\Arduino15\packages\ядро\hardware\платформа\версия\libraries
Конфликтовать могут и ядра, поэтому решением всех проблем может стать чистая установка Arduino IDE с удалением остатков от предыдущей версии. Удаляем программу через “Установку и удаление программ” и вручную сносим папки:
- Папка с программой
- 64-битная версия Windows – C:\Program Files (x86)\Arduino\libraries\
- 32-битная версия Windows – C:\Program Files\Arduino\libraries\
“Внутри” библиотеки
Библиотека, в зависимости от объема кода и настроения программиста, может быть оформлена как очень компактно, так и подробно, с кучей файлов и дополнительных папок. Рассмотрим классический состав библиотеки. Для удобства работы рекомендую включить видимость расширений файлов (Windows).
Все перечисленные ниже файлы являются обычными текстовыми файлами, открыть их можно обычным блокнотом. Рекомендую использовать “блокнот программиста” – Notepad++ (ссылка на официальный сайт), который подсвечивает синтаксис и в целом является очень удобным инструментом разработчика.
- название_библиотеки.h – заголовочный файл, самый главный файл библиотеки. Он настолько главный, что библиотека может состоять только из него одного. Находится обычно в корне библиотеки, либо в папке src(source, исходник). В этом файле обычно перечислены все классы/методы/функции/типы данных, находится информация о библиотеке, часто встречается расширенное описание для каждого метода или функции. Часто заголовочный файл является мини-документацией на библиотеку.
- Файл с расширением .cpp – файл реализаци, в котором находится основной исполнительный код программы. Обычно идёт парой к своему заголовочному .h файлу, т.е. название_библиотеки.cpp .
- keywords.txt – файл, в котором перечислены подсвечиваемые в коде названия функций, методов и прочих рабочих имён библиотеки.
- Файл library.properties содержит информацию о библиотеке для менеджера библиотек (название, версия, автор, категория и проч.)
- Папка src – в этой папке могут находиться основные файлы библиотеки ( .h , .cpp , .c ).
- Папка examples – папка с примерами использования библиотеки. Помимо перечисленных файлов и папок в папке с библиотекой могут находиться и другие служебные файлы и папки, иногда можно встретить даже полную документацию в виде текстовых файлов или html страниц.
Как работать с библиотекой?
Допустим, вы купили какой то модуль или датчик, загуглили по нему информацию, нашли статью с примером. Примеры обычно простенькие, показать как подключается и работает. Скачали библиотеку из статьи, попробовали, всё работает. Что дальше? Дальше следует открыть папку с библиотекой и посмотреть официальные примеры, разобраться как они работают и что умеют. Примеры находятся в папке examples в папке с библиотекой. Примеры обычно не раскрывают всех возможностей библиотеки, поэтому открываем и читаем заголовочный файл, который название_библиотеки.h. В нем можно найти буквально список инструментов библиотеки, очень часто с описанием для каждого. Вооружившись этой информацией, можно выжать из инструмента все возможности, которые ему прописал разработчик библиотеки.
Давайте рассмотрим стандартную библиотеку Servo, я думаю большинство с ней уже работали (смотри мой видеоурок по работе с Servo). Посмотрим примеры, которые лежат в папке с библиотекой:
Из этих примеров мы узнали, что есть класс Servo, и нужно создать объект этого класса. В блоке setup() мы можем указать, к какому пину подключена серво (метод attach()), и можем повернуть серво на нужный угол (в градусах) при помощи метода write(). Это в принципе всё, что мы узнали из официального примера.
Теперь откроем заголовочный файл Servo.h, который находится в папке src:
Что мы можем узнать из этого кода? Достаточно много всего интересного!
- Минимальный импульс – 544 мкс
- Максимальный импульс – 2400 мкс
- Стандартный импульс после attach() – 1500 мкс – значит серво повернётся на соответствующий угол после подключения!
- Максимальное количество серво можно узнать, выведя дефайн MAX_SERVOS в порт ( Serial.print(MAX_SERVOS); ) – для Arduino NANO это будет 12 штук
- В классе Servo мы можем увидеть методы, которые не были раскрыты в примерах:
- Версия attach() с возможностью указать мин. и макс. длину импульса вручную
- detach() – отключить серво от управления
- writeMicroseconds() – подать управляющий сигнал в мкс, а не в градусах
- read() – считать текущее положение серво (последнее отправленное через write() )
- И некоторые другие
Перед кодом также находится весьма подробное описание библиотеки и расписаны некоторые тонкости. Что я хочу этим сказать: очень часто именно заголовочный файл несёт основную массу полезной информации по возможностям библиотеки, и в “статьях” о модулях и датчиках вы эту информацию скорее всего не найдёте. Всегда изучайте заголовочный файл, если нужно серьёзно поработать с каким-то модулем или вообще библиотекой в целом!
Установка библиотек в Arduino IDE
Многие скетчи (программы) работают с библиотеками. Библиотека облегчает работу с определённым модулем или одним из типов модулей. Например, если Вы хотите вывести текст на LCD дисплей без подключения библиотеки, то Вам нужно передать ему несколько байт команд и данных, что займет несколько строк кода, а главное, что Вам нужно знать тип микроконтроллера под управлением которого работает LCD дисплей, назначение команд которыми он управляется, знать архитектуру его памяти, адреса и назначение регистров, для чего потребуется найти и перечитать его datasheet. В то время как при написании кода с использованием библиотеки (например LiquidCrystal_I2C.h) Вы сможете вывести текст на дисплей вызвав всего одну функцию библиотеки: lcd.print(«my text»);
Перед тем как начать пользоваться методами и функциями библиотеки, её нужно скачать (загрузить на Ваш компьютер), установить (разместить в нужной папке) и подключить (вставить текст «#include <файл.h> » в скетч).
Скачивание библиотеки:
Если в наших уроках, описаниях или примерах используется библиотека, то мы указываем ссылку на скачивание этой библиотеки. Все наши библиотеки находятся в zip архиве, но не спешите доставать файлы из архива, это может не понадобиться, т.к. Arduino IDE сама может распаковывать архивы и размещать библиотеки в нужных папках (см. дальше).
Если Вы скачали архив библиотеки с сайта не указывая путь для сохранения файла, то скаченный (загруженный) Вами файл скорее всего находится в папке: Этот компьютер > Загрузки.
Установка библиотеки:
После того как Вы скачали (загрузили) библиотеку на свой компьютер, её нужно установить. Установить библиотеку можно вручную или сделать это средствами Arduino IDE:
Установка библиотеки средствами Arduino IDE:
Войдите в меню: Скетч > Подключить библиотеку > Добавить .ZIP библиотеку. .
В появившемся окне нажмите на иконку «Этот компьютер» и выберите папку «Загрузки». Если при скачивании ZIP архива с сайта, Вы указывали путь для сохранения файла, то вместо папки «Загрузки» укажите путь к файлу.
Выберите ZIP файл библиотеки, который Вы скачали. Название файла может не соответствовать названию библиотеки. После чего нажмите на кнопку «Открыть» (Open).
На этом установка библиотеки завершена, можно приступить к её подключению в скетч.
Установка библиотеки вручную:
Распакуйте скаченный Вами ZIP архив и поместите папку (имя папки обычно совпадает с названием библиотеки) из данного архива в папку: Этот компьютер > Документы > Arduino > libraries.
Если во время копирования Arduino IDE была запущена (открыта), то нужно закрыть все окна этой программы, после чего запустить (открыть) Arduino IDE и можно приступать к подключению библиотеки в скетч.
Примечание: папка libraries есть не только по указанному выше пути, но и в папке программы Arduino IDE (где находится файл arduino .exe). Скопировав библиотеку в эту папку, она тоже установится, но Мы не рекомендуем это делать. Дело в том, что программа Arduino IDE постоянно развивается и количество её версий постоянно растёт. Если Вы захотите установить новую версию Arduino IDE, то библиотеки находящиеся в папке Этот компьютер > Документы > Arduino > libraries, будут доступны и в старой, и в новой (установленной) версии Arduino IDE, а библиотеки находящиеся в папке libraries программы Arduino IDE старой версии (которая была установлена ранее) будут доступны только в ней (пока Вы их не скопируете в новую).
Подключение библиотеки:
Для того чтобы подключить библиотеку, нужно написать всего одну строку в начале скетча: «#include <файл.h>», например:
Некоторые библиотеки работают используя методы и функции других библиотек, тогда нужно подключать две библиотеки, сначала подключается та, методы и функции которой использует вторая, например:
Для работы с большинством библиотек, нужно создать объект (экземпляр класса библиотеки), через который будут доступны их функции и методы, например:
Вместо lcd можно написать любое слово или сочетание букв и цифр, это название объекта через который можно обращаться к методам и функциям библиотеки. Если Вместо lcd Вы написали myLCD, то и ко всем методам и функциям библиотеки LiquidCrystal_I2C, нужно обращаться через указанное Вами имя объекта, например: myLCD.print(«my text»);
Примеры из библиотек:
Большинство библиотек содержат примеры. Это небольшие скетчи (программы) которые раскрывают функционал библиотеки. Наиболее удобный способ просмотра примеров, с помощью средств Arduino IDE. Выберите пункт меню: Файл > Примеры, откроется список с названиями библиотек у которых есть примеры. Наведите курсор на название библиотеки и Вы увидите список примеров содержащихся в ней, клик на примере приведёт к появлению нового окна Arduino IDE со скетчем примера.
Альтернативный способ просмотра примеров заключается в запуске файлов скетчей из папки:
путь > libraries > название библиотеки > examples > название примера.Поиск библиотек:
Библиотеки можно искать самостоятельно, а можно воспользоваться функционалом Arduino IDE.
Выберите пункт меню: Скетч > Подключить библиотеку > Управлять библиотеками. .
Откроется «Менеджер библиотек», в котором можно найти интересующую Вас библиотеку введя её название в строку поиска, дополнительно можно установить пункты «Тип» и «Тема».
Нажатие на описании библиотеки приведёт к появлению вкладки «Версия» и кнопки «Установка». После нажатия на кнопку «Установка» можно приступать к подключению библиотеки в скетч «#include <файл.h>».
Библиотеки Arduino: подключение, установка, импорт.
Что такое библиотеки?
Библиотека — это программный код, который помогает взаимодействовать с периферийными устройствами, такими как датчики, модули, экраны и т. д. Вы можете использовать встроенные функции библиотек, чтобы сделать процесс кодирования намного проще. Библиотеки уменьшают трудозатраты на написании скетча, предоставляя простые функции кода. Например, если вы хотите подключить ЖК-дисплей к Arduino Uno , вы можете просто использовать библиотеку, в которой определены простые функции для взаимодействия с дисплеем. В дальнейшем эти функции просто вставляются в скетч, заменяя собой сложные и массивные коды.
Плата Ардуино, подключение библиотек.
Вопрос «как подключить библиотеку в Ардуино IDE» беспокоит многих начинающих пользователей плат Arduino. Процесс подключения незамысловатый, и выполняется буквально в пару кликов. Рассмотрим на примере подключение библиотеки Arduino для серво машин.
- Кликаем в меню программы на пункт «Скетч».
- Далее находим в выпадающем меню пункт «Подключить библиотеку» и наводим на него курсор.
- В следующем выпадающем меню мы видим перечень установленных библиотек. Выбираем ту библиотеку, которая необходима нам, в нашем случае «Servo».
Если у вас возникают проблемы с навигацией по IDE, или ваш IDE не русифицирован, рекомендую ознакомиться с описанием Arduino IDE.
Ардуино установка библиотек
Вот и все, в окне редактора кода мы видим необходимую нам библиотеку и можем продолжить писать код.
Подключение библиотеки Ардуино
Как добавить библиотеку в Ардуино IDE?
Часто возникают случаи когда мы не находим в списке предустановленных библиотек необходимую нам библиотеку. Возникает задача, как установить библиотеку Ардуино. Для решения этой задачи существую три метода:
- Установка библиотеки из менеджера библиотек в IDE.
- Импорт библиотеки из zip-файла.
- Добавления файла библиотеки вручную.
Установка библиотеки из менеджера библиотек в IDE.
- Открываем программное обеспечение Arduino IDE.
- Переходим в меню «Скетч» и жмем «Подключить библиотеку».
- Кликаем на «Управлять библиотеками…».
- Видим официальный список библиотек. Используя, поиск по наименованию и или фильтр по типу и по теме находим необходимую библиотеку.
- Жмем на необходимую библиотеку, появляется номер версии и кнопка установить. При необходимости можем выбрать предыдущую версию библиотеки.
- Кликаем установить.
Поздравляю, библиотека установлена. Переходим в меню Скетч\Подключить библиотеку, в выпадающем списке видим нашу установленную библиотеку.
Импорт библиотеки из zip-файла.
Часто возникает необходимость установить библиотеку, отсутствующую в списке менеджера библиотек, как же тогда загрузить библиотеку в ардуино IDE. Да очень просто. С помощью поисковиков, таких как Яндекс или Google находим в интернете нужную нам библиотеку и скачиваем на ПК в zip-файле. Не забудьте, куда скачали файл. Далее:
- Открываем программное обеспечение Arduino IDE.
- Переходим в меню «Скетч» и жмем «Подключить библиотеку».
- Кликаем «Добавить .zip библиотеку».
- Далее указываем на наш загруженный файл.
- Жмем «Open».
Теперь вы можете найти эту библиотеку в опции «Включить библиотеку» и использовать по назначению.
Добавления файла библиотеки вручную.
Ручная загрузка библиотеки в ардуино IDE подразумевает сохранение папки с файлами библиотеки в папку Ардуино IDE «libraries». Таких папок две. Первая находится по адресу:
- 64-битная версия Windows – C:\Program Files (x86)\Arduino\libraries
- 32-битная версия Windows – C:\Program Files\Arduino\libraries
Вторая папка там, где вы указали в настройках Ардуино IDE. Если вы не указывали, куда сохранять библиотеки, то по умолчанию эта папка находится по адресу Документы/Arduino.
Сохранять библиотеки рекомендую в первой паке, так как ее адрес не содержит кириллицы, соответственно это исключает возникновение каких либо проблем. Сохранять библиотеку в папку «libraries» надо так чтобы сохраняемая папка с названием библиотеки на латинице содержала файлы с расширениями .h, .cpp, файл keywords, папка examples и др.
Если все сделано правильно в меню Скетч\Подключить библиотеку вы сможете найти установленную вами библиотеку.Installing Libraries
Once you are comfortable with the Arduino software and using the built-in functions, you may want to extend the ability of your Arduino with additional libraries.
What are Libraries?
Libraries are a collection of code that makes it easy for you to connect to a sensor, display, module, etc. For example, the LiquidCrystal library makes it easy to talk to character LCD displays.
There are thousands of libraries available for download directly through the Arduino IDE, and you can find all of them listed at the Arduino Library Reference.
Using the Library Manager
To install a new library into your Arduino IDE you can use the Library Manager (available from IDE version 1.6.2). Open the IDE and click to the "Sketch" menu and then Include Library > Manage Libraries.
Then the Library Manager will open and you will find a list of libraries that are already installed or ready for installation. In this example we will install the Bridge library. Scroll the list to find it, click on it, then select the version of the library you want to install. Sometimes only one version of the library is available. If the version selection menu does not appear, don't worry: it is normal.
Finally click on install and wait for the IDE to install the new library. Downloading may take time depending on your connection speed. Once it has finished, an Installed tag should appear next to the Bridge library. You can close the library manager.
You can now find the new library available in the Sketch > Include Library menu. If you want to add your own library to Library Manager, follow these instructions.
Importing a .zip Library
Libraries are often distributed as a ZIP file or folder. The name of the folder is the name of the library. Inside the folder will be a .cpp file, a .h file and often a keywords.txt file, examples folder, and other files required by the library. Starting with version 1.0.5, you can install 3rd party libraries in the IDE. Do not unzip the downloaded library, leave it as is.
In the Arduino IDE, navigate to Sketch > Include Library > Add .ZIP Library. At the top of the drop down list, select the option to "Add .ZIP Library''.
You will be prompted to select the library you would like to add. Navigate to the .zip file's location and open it.
Return to the Sketch > Include Library menu. menu. You should now see the library at the bottom of the drop-down menu. It is ready to be used in your sketch. The zip file will have been expanded in the libraries folder in your Arduino sketches directory.
NB: the Library will be available to use in sketches, but with older IDE versions examples for the library will not be exposed in the File > Examples until after the IDE has restarted.
Manual Installation
When you want to add a library manually, you need to download it as a ZIP file, expand it and put in the proper directory. The ZIP file contains all you need, including usage examples if the author has provided them. The library manager is designed to install this ZIP file automatically as explained in the former chapter, but there are cases where you may want to perform the installation process manually and put the library in the libraries folder of your sketchbook by yourself.
You can find or change the location of your sketchbook folder at File > Preferences > Sketchbook location.
Go to the directory where you have downloaded the ZIP file of the library
Extract the ZIP file with all its folder structure in a temporary folder, then select the main folder, that should have the library name
Copy it in the "libraries" folder inside your sketchbook.
Start the Arduino Software (IDE), go to Sketch > Include Library. Verify that the library you just added is available in the list.
Please note: Arduino libraries are managed in three different places: inside the IDE installation folder, inside the core folder and in the libraries folder inside your sketchbook. The way libraries are chosen during compilation is designed to allow the update of libraries present in the distribution. This means that placing a library in the "libraries" folder in your sketchbook overrides the other libraries versions.
The same happens for the libraries present in additional cores installations. It is also important to note that the version of the library you put in your sketchbook may be lower than the one in the distribution or core folders, nevertheless it will be the one used during compilation. When you select a specific core for your board, the libraries present in the core's folder are used instead of the same libraries present in the IDE distribution folder.
Last, but not least important is the way the Arduino Software (IDE) upgrades itself: all the files in Programs/Arduino (or the folder where you installed the IDE) are deleted and a new folder is created with fresh content. This is why we recommend that you only install libraries to the sketchbook folder so they are not deleted during the Arduino IDE update process.