NexxDigital - компьютеры и операционные системы

Для более легкой и продуктивной работы с Arduino есть возможность использовать дополнительные библиотеки. Библиотеки Arduino — это части программы для выполнения конкретных задач. С помощью библиотек можно выполнять сложные действия всего парой строк кода, потому что кто-то другой уже написал часть кода за вас.

В Arduino IDE удобный интерфейс для работы с библиотеками ардуино. Прямо из меню программы вы можете скачать, установить и подключить в свой скетч множество библиотек. Для большинства библиотек Arduino можно посмотреть примеры использования. Это поможет понять принцип работы библиотеки. Примеры можно доработать под свои нужды и использовать для реализации своих устройств.

Существуют стандартные библиотеки, которые устанавливаются вместе с Arduino IDE. Некоторые из них даже автоматически подключаются в скетч (например Serial).

Скачать стандартные библиотеки Arduino

Скачать стандартные библиотеки можно на официальном сайте Arduino .

Там вы найдете описания и примеры использования стандартных библиотек. Так же вы можете скачать все стандартные библиотеки одним архивом . В этом архиве не только стандартные библиотеки, но и множество дополнительных самых популярных библиотек для Ардуино.

Ниже приведены подробные описания и примеры использования стандартных библиотек Arduino.

  • — Библиотека для обмена данными через последовательный порт (UART).
  • — Библиотека для легкого и точного управления сервоприводами.
  • — Библиотека для работы с интерфейсами связи TWI/I2C. Упрощает обмен данными с устройствами, датчиками и сенсорами.
  • WiFi — Подключение к интернету с использованием WiFi шилда.
  • TFT — Нужна для отрисовки текста, изображений и картинок на TFT дисплее Arduino.
  • Stepper — Библиотека для управления шаговыми моторами.
  • LiquidCrystal — Для работы Arduino с жидкокристаллическими экранами (LCD)
  • Ethernet — Для подключения к интернету с использованием .
  • SD — Библиотека для записи и считывания информации с SD карт памяти.
  • GSM — Библиотека для подключения Ардуино к GSM сети. Необходима для отправки и получения SMS и звонков, а так же для выхода в интернет с помощью GPRS. Используется с .
  • EEPROM — Библиотека для чтения и записи в энергонезависимую память Arduino.

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

Подключение библиотек

Библиотеки в составе Arduino IDE

Очень много библиотек идет в составе Arduino IDE. Добавить библиотеку в свой код можно из меню Эскиз Импорт библиотек… Название библиотеки :

После выбора пункта «Servo» Arduino IDE сама вставит в код нужные строчки:

#include void setup() { // установочный код, выполняется один раз } void loop() { // основной код, выполняется циклично после установочного кода }

Конечно, если вы знаете название нужной библиотеки, можно просто написать в самом верху скетча #include - результат будет тем же самым.

Чтобы посмотреть пример работы с библиотекой, идущей в составе Arduino IDE необходимо выбрать в меню Файл Образцы Название библиотеки Название примера

Сторонние библиотеки

Библиотек для Arduino действительно очень много. И только незначительная часть из них входит в состав Arduino IDE. Многие библиотеки можно найти на сайте GitHub .

Давайте попробуем добавить в свой проект библиотеку для работы с четырёхразрядным индикатором . Ссылка на библиотеку для работы с ним есть на странице описания товара. Если зайти на страницу библиотеки, можно увидеть множество файлов библиотеки и примеры работы с ней. Но нас пока будет интересовать только кнопка Download ZIP :
После нажатия на неё начнётся загрузка.zip-архива со всеми файлами библиотеки. В данном случае это будет файл QuadDisplay-master.zip . Название библиотеки может состоять только из латинских букв и цифр, при этом название не может начинаться с цифры, поэтому давайте сразу переименуем наш архив. Теперь он будет называться QuadDisplay.zip .

После загрузки архива нужно зайти в Arduino IDE и выполнить импорт библиотеки в вашу рабочую папку Sketchbook/libraries , в которой должны находится все сторонние библиотеки. Сделать это можно прямо из Arduino IDE, в меню Эскиз Импорт библиотек… Добавить библиотеку… :
Откроется диалоговое окно, в котором необходимо выбрать наш архив QuadDisplay.zip и нажать кнопку Open . Готово. Теперь библиотеки можно добавлять в код. Примеры работы с библиотекой доступны в меню Файл Sketchbook libraries Название библиотеки Название примера

В Arduino 1.6.7 и выше: Файл Примеры Название библиотеки Название примера

Создание библиотеки

Обычно, при создании библиотеки создаются два файла: заголовочный файл и файл с кодом библиотеки. Давайте попробуем написать библиотеку, которая бы позволяла нам посчитать площадь круга. Создадим в директории %Sketchbook%\Arduino\libraries папку с названием нашей библиотеки (название может состоять только из латинских букв и цифр, при этом не может начинаться с цифры). Давайте назовём нашу библиотеку circleArea. Перейдём в созданную нами папку %Sketchbook%\Arduino\libraries\circleArea и создим там два файла:

    circleArea.h - заголовочный файл

    circleArea.cpp - файл с кодом библиотеки.

Код circleArea.h будет таким:

circleArea.h #include #define PI 3.14 // два знака после запятой - достаточная точность. //Объявляем нашу библиотечную функцию, ради которой все и затевалось float circleArea(float radius) ;

Код circleArea.cpp будет таким:

circleArea.cpp #include // пригодится, мы будем использовать числовые типы #include // функцию pow() мы возьмём отсюда #include // в заголовочном файле находится PI и объявление функции //Реализуем нашу библиотечную функцию, ради которой все и затевалось float circleArea(float radius) { return PI* pow (radius, 2 ) ; }

Использование библиотеки в скетче будет таким:

circleArea.ino #include void setup() { // put your setup code here, to run once: Serial.begin (9600 ) ; } void loop() { // put your main code here, to run repeatedly: for (int i= 1 ; i< 5 ; ++ i ) { Serial.print ("circle area with radius " ) ; Serial.print (i) ; Serial.print (" = " ) ; Serial.println (circleArea(i) ) ; } }

Одной из причин популярности Arduino является простота использования разнообразных периферийных устройств (модулей): дисплеев, драйверов двигателей, модулей беспроводной связи (Bluetooth, wi-fi, XBee или ISM) и т. д.

Программная среда Arduino (IDE) включает в себя множество полезных функций, облегчающих создание программ для новых проектов. Но, к сожалению, она не может иметь встроенную поддержку для каждого вновь появившегося нового оборудования (модуля) или компонента программного обеспечения.

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

Основным источником библиотек для Arduino являются производители аппаратного обеспечения, создающие их для обеспечения поддержки в IDE Arduino.

Где можно найти библиотеки к Ардуино

Если вам нужна поддержка Arduino для определенного оборудования (модуля), попробуйте просмотреть сайт производителя модуля. Вы также можете посетить сайт Arduino , в котором собрано множество популярных библиотек.

В противном случае попробуйте выполнить поиск в Google, например, наберите «Arduino library» и название вашего оборудования.

Как было уже сказано выше, в среде разработки Arduino есть предустановленные библиотеки. Чтобы функции библиотеки были доступны в нашей программе сначала необходимо ее подключить. Для этого используется директива #include.

Подключение встроенной библиотеки вызывается из меню «Скетч — Подключить библиотеку — …» далее выбираем необходимую библиотеку (в нашем случае «Servo»).

При выборе библиотеки, Arduino IDE автоматически добавит в ваш код соответствующую директиву #include.

#include // подключаем библиотеку поддержки сервоприводов.

Если в IDE нет необходимой предустановленной библиотеки, то ее необходимо установить самостоятельно. Для этого есть 2 способа.

Первый способ: Добавление библиотеки из репозитория Ардуино.

Создатели Arduino разместили в интернете базу различных библиотек. Если вам не хватает какой-то библиотеки, то вы можете поискать ее в репозитории. Для этого выберите в меню «Скетч – Подключить библиотеку – Управлять библиотеками».

В этом окне вы можете скачать из интернета новую или обновить уже существующую библиотеку.

Второй способ: Добавление библиотеки, скаченной из интернета.

Поскольку в среде Arduino почти все легко и просто, установка дополнительных библиотек тоже не вызывает больших сложностей. В качестве примера мы покажем установку библиотеки для работы с радиомодулем системы беспроводной связи NRF24L01 от компании Nordic Semiconductor.

Библиотеки для Arduino, предназначенные для самых популярных модулей доступны на странице http://arduino.cc/libraries. Программное обеспечение (библиотеки) для менее популярных модулей, как правило, находятся на сайтах производителей этих модулей.

В случае радиомодуля NRF24L01, библиотека поддержки этого модуля в среде Arduino была создана на базе библиотеки, разработанной для микроконтроллеров AVR . Документацию по этой библиотеке и саму библиотеку можно скачать с сайта https://github.com/stanleyseow/arduino-nrf24l01

После того как вы скачали архив библиотеки arduino-nrf24l01-master.zip, необходимо ее установить в IDE. Для этого перейдите в меню «Скетч – Подключить библиотеку – Добавить ZIP библиотеку»

Затем укажите местоположение скаченного файла arduino-nrf24l01-master.zip и нажмите кнопку Open.

После этого, как правило, мы имеем установленную библиотеку. Но, к сожалению, часто бывает так, что Arduino сигнализирует ошибку «Выбранная папка/zip файл не содержит корректных библиотек»

В таком случае библиотеку можно установить вручную. Для этого необходимо распаковать скачанный файл arduino-nrf24l01-master.zip и папку «Mirf» скопировать в папку «libraries». Либо можно поместить папку «Mirf» в C:\….\Documents\Arduino\libraries (тогда библиотека будет доступна из IDE разных версий).

После перезагрузки IDE Arduino мы можем подключить данную библиотеку, а также воспользоваться примерами для радиомодуля NRF24L01

Как удалить библиотеку в Aрдуино

Если вы разобрались, как можно установить новую библиотеку в IDE, то для вас не будет проблемой и с ее удаление (в случае необходимости).

Все, что требуется от вас для удаления библиотеки, это удалить папку библиотеки из каталога «libraries» в IDE или (если библиотека установлена в «Документы») из каталога C:\….\Documents\Arduino\libraries

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



В данном материале будет показано, как установить библиотеки Arduino для Windows, Mac OSX и Linux, а также будут рассмотрены общие проблемы, связанные с библиотеками Arduino. Статья будет полезна новичкам, впрочем, и заядлые пользователи Arduino могут узнать для кое-что новое.


Существует два типа библиотек: стандартные и пользовательские библиотеки.


Стандартные библиотеки Arduino


Среда разработки Arduino IDE поставляется вместе с набором стандартных библиотек основных полезных функций. Эти библиотеки поддерживают все примеры, включенные в IDE. Функционал стандартных библиотек включает в себя функции базовых видов коммуникации и поддерживает наиболее распространенные устройства вроде сервомоторов и символьных LCD-дисплеев. Стандартные библиотеки располагаются в каталоге Libraries (в папке с Arduino IDE). Если у вас установлены IDE разных версий, то каждая из них будет использовать свои библиотеки.


Пользовательские библиотеки


Сегодня существует большое количество библиотек для большей функциональности и для различных устройств. Такие библиотеки и драйверы зачастую доступны на Arduino Playground, Github и Google Code. Эти библиотеки желательно устанавливать в папку Libraries, которую нужно создать в общей папке с вашими скетчами. Тогда все версии IDE смогут использовать эти библиотеки. В Windows и Mac OS обычно папка со скетчами называется Arduino и располагается в папке Документы или Documents. Для Linux папка называется Sketchbook, и расположена она в /home/(username).



Версии IDE 1.0.2 создают папку Libraries автоматически, младшие версии это делать не умеют, поэтому данную процедуру нужно выполнить вручную.


Для начала откройте File-Preferences (Файл-Настройки).



Найдите расположение папки со скетчами (Sketchbook location).



Создайте там новую папку и назовите ее Libraries.




Устанавливаем библиотеки Arduino под Windows


Для начала закройте Arduino IDE, поскольку эта среда сканирует наличие библиотек только при своем запуске. Скачайте необходимую вам библиотеку в zip-архиве, например, с Github.



Откройте zip-файл и разархивируйте библиотеку в папку Libraries.




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



Запустите IDE и зайдите в File-Examples (Файл-Примеры). Там будут располагаться примеры, использующие возможности новой библиотеки.



Откройте пример и скомпилируйте его, чтобы удостовериться, что все работает правильно.



Устанавливаем библиотеки Arduino для Mac OSX




Найдите скачанную библиотеку в папке Downloads. OSX автоматически откроет zip-файл в данное месторасположение.



Перенесите библиотеку в папку Libraries.








Устанавливаем библиотеки Arduino для Linux


Закройте Arduino IDE. Скачайте zip-файл с репозитория.



Сохраните zip-файл в удобном для вас месте.



Откройте файл и распакуйте (Extract) содержимое в папку Sketchbook/Libraries.





При необходимости дайте библиотеке понятное имя без дефисов и прочих лишних символов. Перезапустите IDE и откройте один из примеров.




Его компиляция без ошибок будет означать правильность установки библиотеки.



Распространенные проблемы, связанные с библиотеками Arduino



"xxxx" does not name a type


Это наиболее частая ошибка, и связана она с тем, что компилятор не может найти библиотеку. Это может быть по следующим причинам: библиотека не установлена, неправильное расположение папки, неправильное наименование папки, неправильное наименование библиотеки, зависимости библиотеки, не перезапущена среда Arduino IDE.


Неправильное расположение папки


IDE ищет библиотеки только в папке стандартных библиотек и папке пользовательских библиотек. Библиотеки, расположенные в других местах, просто недоступны для поиска. Также библиотеку нельзя организовывать как подкаталог внутри другого каталога.


Неправильное наименование папки


Как ранее было указано, IDE не поймет названия, содержащие в себе символ ‘-‘. Обычно его заменяют на ‘_’.


Неправильное наименование библиотеки


Наименование, идущее после #include в вашей программе, должно полностью соответствовать имени библиотеки.


Неполная библиотека


Еще одной причиной, по которой библиотека может не заработать, является неполное ее скачивание с репозитория. Нужно скачивать все предлагаемые файлы и папки.


Несколько версий


Если у вас есть несколько версий библиотеки, то IDE попытается загрузить их все. Это вызовет ошибки при компиляции. Недостаточно просто переименовать библиотеки, лишние нужно убрать за пределы папки Libraries.


Зависимости библиотеки


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

В библиотеке уже есть большая часть кода который вам не нужно будет писать, библиотека облегчает работу с определённым модулем или одним из их типов и ее всего лишь необходимо подключить в вашем скетче.

К примеру если вы хотите вывести текст на LCD дисплей без подключения библиотеки, то Вам нужно передать ему несколько байт команд и данных, что займет несколько строк кода, а главное, что Вам нужно знать тип микроконтроллера под управлением которого работает LCD дисплей, назначение команд которыми он управляется, знать архитектуру его памяти, адреса и назначение регистров, для чего потребуется найти и перечитать его datasheet.

В то время как при написании кода с использованием библиотеки (например LiquidCrystal_I2C.h) Вы сможете вывести текст на дисплей вызвав всего одну функцию библиотеки:

Lcd.print(“my text”);

Подключить любую библиотеку можно такой командой:

"#include <файл.h>"

<файл.h> – это и есть та самая библиотека, которую мы подключаем.

Так же вы можете посмотреть пример подключения библиотеки в статье .

Перед тем как начать пользоваться методами и функциями библиотеки, её нужно:

  • скачать (загрузить на Ваш компьютер),
  • установить (разместить в нужной папке),
  • подключить (вставить текст “#include <файл.h>” в скетч).

Каждая библиотека должна содержать 2 файла с расширениями .h и .cpp .

Файлы первого типа содержат:

  • описание класса,
  • константы,
  • переменные.

Второй тип содержит коды методов.

Дополнительно нужно понимать, что файлы .h и .cpp могут не лежать в корне скачанного архива. Также могут с основными файлами идти "keywords.txt" и папка с примерами (examples).

Как установить библиотеку?

После того как Вы скачали (загрузили) библиотеку на свой компьютер, её нужно установить. Установить библиотеку можно вручную или сделать это средствами Arduino IDE:

Установка библиотеки посредством Arduino IDE

Это мы сделаем через меню. Зайдите в меню:

Скетч – Подключить библиотеку – Добавить.ZIP библиотеку

В появившемся окне нажмите на иконку «Этот компьютер» и выберите папку «Загрузки». Если при скачивании ZIP архива с сайта, Вы указывали путь для сохранения файла, то вместо папки «Загрузки» укажите путь к файлу.

Выберите ZIP файл библиотеки, который Вы скачали. Название файла может не соответствовать названию библиотеки. После чего нажмите на кнопку «Открыть » (Open ).

На этом установка библиотеки завершена, можно приступить к её подключению в скетч.

Важно! После установки Arduino IDE на компьютере создается отдельная папка для хранения всех библиотек. Для ОС Linux "Scetchbook", располагается в /home/. Для ОС Windows папка "Arduino", располагается в /Мои документы/.

Установка библиотеки вручную

Распакуйте скаченный Вами ZIP архив и поместите папку (имя папки обычно совпадает с названием библиотеки) из данного архива в папку:

Этот компьютер Документы Arduino libraries

Если во время копирования Arduino IDE была запущена (открыта), то нужно закрыть все окна этой программы, после чего запустить (открыть) Arduino IDE и можно приступать к подключению библиотеки в скетч.

Дело в том, что программа постоянно развивается и количество её версий постоянно растёт. Если Вы захотите установить новую версию Arduino IDE, то библиотеки находящиеся в папке (Этот компьютер → Документы → Arduino → libraries) будут доступны и в старой, и в новой (установленной) версии Arduino IDE, а библиотеки находящиеся в папке libraries программы Arduino IDE старой версии (которая была установлена ранее) будут доступны только в ней (пока Вы их не скопируете в новую).

Где найти нужную библиотеку?

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

Также ряд стандартных наборов можно найти на официальном сайта Ардуино: arduino.cc .

Какие библиотеки уже установлены?

Как мы уже обсуждали - сама интегрированная среда разработки уже идет с некоторым .

Есть два способа посмотреть установленные библиотеки.

Способ 1

Чтобы посмотреть какой набор уже установлен нужно перейти во вкладку:

Способ 2

Второй способ - воспользоваться меню "Скетч" и подменю "Подключить библиотеку". Таким образом можно также увидеть список библиотек.

Заходим в Скетч и выбираем Подключить библиотеку:

Скетч → Подключить библиотеку

Возможные ошибки

Иногда при установке библиотек или в процессе их использования могут возникать некоторые ошибки. Ниже разберем основные.

‘xxxx’ does not name a type

Ошибка появляется тогда, когда библиотека еще не установлена.

Также ошибка возникает если папка или библиотека имеет неправильное название.

Может быть указан неправильный адрес расположения папки или не перезапущена среда разработки Arduino IDE!

Неправильное расположение папки

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

Неправильное наименование библиотеки

Ошибка появляется тогда, когда имя после тега #include не соответствует названию библиотеки.

Неполная библиотека

Не хватает всех нужных файлов и папок.

Зависимости библиотеки

Необходимо подключить дополнительные зависимые библиотеки без которых правильная/корректная работа невозможна.



Если заметили ошибку, выделите фрагмент текста и нажмите Ctrl+Enter
ПОДЕЛИТЬСЯ:
NexxDigital - компьютеры и операционные системы