Написание библиотеки для Arduino. Arduino — библиотеки. Установка, подключение, удаление

Библиотеки 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.


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


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

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

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

Библиотеки в составе 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 – достаточно распространенная операция, любой разработчик рано или поздно обязательно сталкивается с нею. Внешний подключаемый код во всех языках программирования используется для экономии времени. Ардуино не исключение: многие датчики, модули, экраны и двигатели требуют достаточно сложные схемы взаимодействия, которые трудно реализовывать в своем коде. Гораздо проще и быстрее скачать нужную библиотеку, быстро подключить ее вручную или с помощью Arduino IDE, а потом использовать во всех своих скетчах. В этой статье вы найдете короткую инструкцию по подключению и использованию библиотек.

Библиотека в Ардуино – это программный код во внешних файлах, которые можно установить и подключить к вашему скетчу. В библиотеке хранятся различные методы и структуры данных, которые нужны для упрощения работы с датчиками, индикаторами, модулями и другими компонентами. Использование библиотек существенно упрощает работу над проектами, потому что можно сосредоточиться на основной логике программы, не тратя время на множество мелочей. Сегодня огромное количество библиотек выложено в интернете, где их можно легко скачать, причем совершенно бесплатно. можно найти на нашем сайте.

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

Как узнать список подключенных библиотек к Arduino IDE

Каждая установленная библиотека содержит один или несколько примеров для работы. Они используются для того, чтобы отобразить возможности подключенного к Ардуино устройства. Поэтому самым быстрым способом получить список всех установленных библиотек ардуино – воспользоваться списком примеров в Arduino IDE. Для этого в главном меню выберите Файл,а затем откройте подменю Примеры.

Другим способом является использование меню Скетч и подменю – Подключить библиотеку. Там вы тоже сможете увидеть список библиотек:

Подключение оператором #include заголовочного h файла

Чтобы начать пользоваться библиотекой, нужно в начале программы включить заголовочный h файл директивой include. Например, подключение библиотеки LiquidCrystal.h будет выглядеть так: #include

Вы можете посмотреть полный пример, воспользовавшись самой библиотекой.

Обязательные файлы в библиотеке

Каждая библиотека должна содержать как минимум 2 файла – это заголовочный файл с расширением.h и файл с исходным кодом с расширением.cpp. В заголовочном файле находятся описание класса, константы и переменные. Во втором файле содержатся коды методов. Помимо двух основных файлов может содержаться текстовый документы keywords.txt и папка examples с кодами примеров использования библиотеки. Файлы h и cpp не обязательно лежат в корне

Редактирование файлов невозможно в Arduino IDE, все изменения можно проводить в любом текстовом редакторе, либо среде разработки C++. Это связано с тем, что в Arduino IDE мы не работаем с файлами cpp, редактор кода не предназначен для “чистого” C, он работает только с языком Arduino.

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

Необходимую библиотеку можно загрузить через интернет. Большинство библиотек имеется на сайте Github. После загрузки библиотеки важно ее добавить в правильную папку, чтобы компилятор смог ее найти и загрузить скетч. Папка, в которой сохранены все коды, создается на компьютере после установки Arduino IDE. Для операционной системы Linux папка имеет название “Scetchbook” и располагается в /home/, на Windows папку «Arduino» можно найти в разделе «Мои документы».

Все библиотеки, которые установлены дополнительно, расположены в папке “Libraries”. Для ранних версий Ардуино папку нужно создать самостоятельно, а начиная с версии 1.0.2, она добавляется при установке Arduino IDE автоматически.

Как установить библиотеку. Пошаговая инструкция

Как только библиотека будет загружена на ПК, нужно начать ее установку. Установить библиотеку можно двумя способами – при помощи средств Arduino IDE и вручную.

Подключение при помощи Arduino IDE

Библиотека скачивается в виде zip-архива. Для ее включения этим способом архив не нужно распаковывать. Чтобы установить ее, нужно зайти в меню Скетч – Подключить библиотеку – Добавить.Zip библиотеку.

Когда откроется окно, нужно выбрать папку «загрузки» в разделе «Этот компьютер». Если же после загрузки библиотеки она была сохранена в другое место, нужно указать его.

Затем нужно выбрать скачанный файл и нажать «открыть».

Библиотека будет установлена, и ей можно пользоваться. Для того, чтобы начать пользоваться примерами Файл – примеры, нужно перезагрузить среду разработки Ардуино.

Установка библиотеки вручную из zip-файла

Перед началом установки нужно выйти из Arduino IDE. Скачанный zip-файл с библиотекой нужно распаковать. В результате мы получим папку, в которой будут располагаться файлы библиотеки с расширением.cpp и.h и каталоги. Полученную папку нужно будет поместить в libraries.

В ОС Windows папку libraries можно найти по маршруту Мои документы – ардуино – libraries. В Linux это будет папка libraries со скетчами.

В конце нужно перезапустить Arduino IDE, загруженная библиотека будет доступна для включения через Скетч – Подключить библиотеку.

Ошибки при подключении библиотеки Arduino

Ниже перечислен перечень возможных ошибок при установке библиотеки и способы борьбы с ними:

  • ‘xxxx’ does not name a type – подобная ошибка появляется, если библиотеку еще не установили, папка или библиотека названа неверно, указан неправильный адрес расположения папки или не перезапущена среда разработки Arduino IDE.
  • Неправильное расположение папки – если высветилась эта ошибка, нужно проверить, находится ли библиотека в папке, доступной для поиска средой.
  • Неправильное наименование библиотеки – ошибка появляется, если имя после #include не соответствует названию библиотеки.
  • Неполная библиотека – может появиться, если были скачаны не все нужные файлы и папки.
  • Зависимости библиотеки – так как этот тип библиотек работает только с дополнительными, нужно изначально подключить именно их.

Одной из причин популярности 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, используя дополнительные библиотеки.

Библиотека — это некоторый набор кода, который облегчает подключения датчика, экрана, шилда и так далее. Например, встроенная библиотека LiquidCrystal облегчает взаимодействие с . В Интернете можно найти сотни различных дополнительных библиотек. Для того, чтобы воспользоваться этими библиотеками, их нужно сначала установить.

Используем Library Manager

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

В меню Эскиз выбираем Include Library → Manage Libraries...

После этого откроется менеджер библиотек и вы увидите список библиотек, которые уже установлены или готовы к установке. Уже установленные библиотеки помечены как INSTALLED .

В этом примере мы будем устанавливать библиотеку Encoder . Найдите ее в списке и выберете версию, которую вы хотели бы установить. В некоторых библиотеках вам будет доступна только одна версия, поэтому не волнуйтесь, если не увидите меню выбора версии библиотеки.

После этого появится индикатор процесса установки и после ее завершения статус библиотеки Encoder сменится на INSTALLED . Теперь эта библиотека станет доступной для добавления в наши программы, используя меню Эскиз → Include Library .

Импорт библиотеки в виде файла .zip

Часто библиотеки можно встретить в виде упакованной в zip -архив папки. Название этой папки является именем библиотеки. Внутри папки обязаельно будет файл .cpp и заголовочный .h файл. Также часто можно встретить файл keywords.txt , папку с кодом примеров использования этой библиотеки и другие требуемые для этой библиотеки файлы.

После скачивания библиотеки в виде zip -архива его не нужно распаковывать. Для установки запакованной библиотеки служит меню Эскиз → Include Library → Add .ZIP Library.

После этого нужно указать путь к zip -файлу библиотеки. Этот zip -файл будет распакован и помещен в папку libraries в директорию со скетчами Arduino .

Нужно отметить, что после установки библиотека становится доступной через меню Эскиз → Include Library , но для того, чтобы стали доступны файлы примеров этой библиотеки, используя меню Файл → Образцы, необходимо перезапустить Arduino IDE .

Ручная установка библиотеки

Для ручной установки библиотеки, прежде всего, нужно закрыть приложение Arduino IDE . Затем распакуйте, скаченный zip-файл. Например, мы хотим установить гипотетическую библиотеку RobotoshaArduino . Распаковав файл RobotoshaArduino.zip , мы должны получить папку RobotoshaArduino с файлами типа RobotoshaArduino.cpp и RobotoshaArduino.h внутри. Если после распаковки мы получаем файлы без папки, то нужно создать вручную папку RobotoshaArduino , поместив внутрь полученные библиотечные файлы.

После этого необходимо переместить эту папку в папку libraries , расположение которой зависит от используемой вами операционной системы.

Для Windows, по умолчанию, это:

Мои документы\Arduino\libraries

Для пользователей Mac OS X :

~/Документы/Arduino/libraries

В Linux это будет папка libraries с вашими скетчами.

Очень важно, чтобы библиотечные файлы .cpp и .h находились в отдельной папке (как в примере RobotoshaArduino ). Если поместить файлы .cpp и .h просто в папку libraries , то библиотека работать не будет.

После перезапуска Arduino IDE добавленная библиотека станет доступна для подключения ее к свои программам через меню Эскиз → Include Library .

Как вы оцениваете эту публикацию?




Top