Перейти к содержимому

Ардуино что такое библиотека

  • автор:

Arduino.ru

Данный документ описывает создание библиотеки для Arduino. Объяснение начнется с написания скетча передачи кода Морзе посредством светодиода. Затем будет показано как конвертировать скетч в библиотеку. Это позволит другим пользователям легко использовать созданный код, обновлять и дополнять его.

Скетч, воспроизводящий код Морзе:

int pin = 13; void setup() < pinMode(pin, OUTPUT); >void loop() < dot(); dot(); dot(); dash(); dash(); dash(); dot(); dot(); dot(); delay(3000); >void dot() < digitalWrite(pin, HIGH); delay(250); digitalWrite(pin, LOW); delay(250); >void dash()

Данный скетч посредством мигания светодиода на выводе 13 выдает сигнал SOS.

Скетч содержит ряд частей кода, которые необходимо будет перенести в библиотеку. Во-первых, это функции dot() и dash(), которые управляют миганием светодиода. Во-вторых, это переменная ledPin, определяющая какой порт ввод/вывода использовать. И наконец, вызов функции pinMode(), устанавливающий режим вывода на используемом порту ввода/вывода.

Процесс конвертации скетча в библиотеку.

Библиотека содержит два файла: заголовочный файл (с расширением .h) и файлы реализации (с расширением .cpp). Заголовочный файл содержит характеристики библиотеки, т.е. список всего что содержится в ней. Создаваемый заголовочный файл будет называться Morse.h. Для дальнейшей работы с заголовочным файлом необходимо просмотреть содержание файла реализации.

Заголовочный файл содержит класс, в котором объявляются функций и используемые переменные:

class Morse < public: Morse(int pin); void dot(); void dash(); private: int _pin; >;

Класс в данном случае это набор функций и переменных, объеденных в одном месте. Функции и переменные могут быть публичными (public), что означает общий доступ к ним всех, кто использует библиотеку, или частными (private), что означает доступ к ним только внутри класса. Каждый класс имеет специальную функцию конструктор, которая используется для создания экземпляра класса. Конструктор имеет тоже имя, что и класс, но не имеет типа возвращаемого значения.

Также заголовочный файл содержит еще несколько дополнительных строк. Во-первых, это директива #include, которая дает доступ к стандартным типам и постоянным языка программирования Arduino (директива по умолчанию добавляется к каждому скетчу, но не к библиотеке). Директива выглядит следующим образом (и находится выше объявления класса):

#include "WProgram.h"

В версиях Arduino 1.0 и выше нужно еще добавить:

#include Arduino.h

Также принято заключать содержимое заголовочного файла в следующую конструкцию:

#ifndef Morse_h #define Morse_h // директивы #include и код помещается здесь #endif

Это предотвращает повторное подключение нашей библиотеки, если кто-то по ошибке дважды подключит библиотеку директивой #include.

В начале кода библиотеки принято помещать комментарий о ее предназначении, авторе, дате и лицензии на библиотеку.

Готовый заголовочный файл содержит:

/* Morse.h - Library for flashing Morse code. Created by David A. Mellis, November 2, 2007. Released into the public domain. */ #ifndef Morse_h #define Morse_h #include "WProgram.h" class Morse < public: Morse(int pin); void dot(); void dash(); private: int _pin; >; #endif

Рассмотрим файл реализации Morse.cpp.

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

#include "WProgram.h" #include "Morse.h"

Далее по коду находится конструктор. Он используется для создания экземпляра создаваемого класса. В данном случае пользователь задает номер используемого порта ввода/вывода через параметр. Порта устанавливается в режим вывода, а номер сохраняется в частной переменной для использования в других функциях:

Morse::Morse(int pin)

Код Morse:: означает, что функция принадлежит классу Morse. Нижний пробел в начале имени переменной _ pin — принятое обозначение для частных переменных. Вообще, имя может быть любое, но согласно принятым конвенциям именования для частных переменных принято использовать префикс «_». Это также позволяет отличить от аргумента функции (в данном случае pin).

Далее код, который конвертируется в библиотеку из изначального скетча, добавилось только Morse:: и изменилось имя переменной с pin, на _pin:

void Morse::dot() < digitalWrite(_pin, HIGH); delay(250); digitalWrite(_pin, LOW); delay(250); >void Morse::dash()

Общепринято помещать некоторые поясняющие комментарии в начале кода файла реализации. Полный код библиотеки:

/* Morse.cpp — Library for flashing Morse code. Created by David A. Mellis, November 2, 2007. Released into the public domain. */ #include «WProgram.h» #include «Morse.h» Morse::Morse(int pin) < pinMode(pin, OUTPUT); _pin = pin; >void Morse::dot() < digitalWrite(_pin, HIGH); delay(250); digitalWrite(_pin, LOW); delay(250); >void Morse::dash()

Использование библиотеки.

Во-первых, необходимо создать папку Morse в подпапке libraries директории блокнота. Во-вторых, требуется скопировать файлы Morse.h и Morse.cpp в созданную папку. После запуска программы Arduino в меню Sketch > ImportLibrary будет находиться библиотека Morse. Библиотека будет компилироваться совместно со скетчами, использующими ее. Если при компиляции библиотеки возникли проблемы, то необходимо проверить, чтобы ее файлы были с расширениями .cpp и .h (не должно быть никаких дополнительных расширений .pde и .txt).

Изначальный скетч, переписанный с использованием созданной библиотеки, будет выглядеть следующим образом:

#include Morse morse(13); void setup() < >void loop()

Несколько отличий от изначального скетча:

Во-первых, добавлена директивы #include в начало скетча. Таким образом определяется доступность библиотеки Morse и ее подключение. Неиспользуемую библиотеку можно удалить, убрав директиву #include.

Во-вторых, создается экземпляр класса Morse, называемый morse:

Morse morse(13);

При выполнении данной строки (перед выполнением функции setup()) вызывается конструктор для класса Morse и принимает аргумент, данный в примере (13).

При этом функция setup() ничего не содержит, т.к. вызов функции pinMode() произошел внутри библиотеки (когда был создан экземпляр класса).

В-третьих, для вызова функций dot() и dash() необходимо прибавить префикс morse. – имя используемого экземпляра. Может быть несколько экземпляров класса Morse, каждый со своим номером порта, хранящимся в локальной переменной _pin. Вызовом функции конкретного экземпляра определяются какие переменные, используются во время вызова. При наличии следующих двух строк:

Morse morse(13); Morse morse2(12);

внутри вызова morse2.dot(), переменная _pin будет иметь значение 12.

К сожалению автоматическая подсветка кода не работает с подключаемыми библиотеками. Для того чтобы подсветка заработала необходимо создать файл с названием keywords.txt. Пример:

Morse KEYWORD1 dash KEYWORD2 dot KEYWORD2

Напротив каждой строки через табуляцию стоит зарезервированное слово, и опять через табуляцию тип слова. Классы соответствуют зарезервированному слову KEYWORD1 и окрашены в оранжевый цвет; функции – KEYWORD2 и окрашены в коричневый. Для распознавания слов необходимо перезапустить среду разработки Arduino.

Созданную библиотеку желательно всегда сопровождают примером ее применения. Для этого создается папка examples в директории Morse. Затем копируется созданный ранее скетч SOS в данную папку. (Файл скетча можно найти через меню Sketch > ShowSketchFolder). После перезапуска Arduino в меню File > Sketchbook > Examples будет находиться пункт Library-Morse, содержащий пример. Также необходимо добавить комментарии о том, как лучше использовать библиотеку.

Ардуино что такое библиотека

Библиотеки

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

Для подключения библиотеки к программе, выберите ее из меню Sketch > Import Library.

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

  • EEPROM — чтение и запись в «постоянную» память.
  • Ethernet — для подсоединения к Интернету через плату расширения Arduino Ethernet.
  • Firmata — для взаимодействия с приложениями на компьютере по стандартному последовательному протоколу.
  • GSM — для соединения с сетью GSM/GRPS через GSM-плату расширения.
  • LiquidCrystal — для работы с жидкокристаллическими дисплеями ( LCD ).
  • SD — для чтения и записи данных на SD-карту памяти.
  • Servo — для управления серводвигателями.
  • SPI — для взаимодействия с периферийными устройствами по последовательному интерфейсу SPI.
  • SoftwareSerial — для реализации последовательных интерфейсов на любых цифровых выводах. Начиная с версии Ардуино 1.0, в качестве библиотеки SoftwareSerial используется библиотека NewSoftSerial (автор Mikal Hart).
  • Stepper — для управления шаговыми двигателями.
  • TFT — для вывода текста, изображений и графических примитивов на TFT-экране Arduino.
  • WiFi — для соединения с Интернетом через плату расширения Arduino WiFi.
  • Wire — библиотека для работы с двухпроводным интерфейсом (TWI/I2C), позволяющим принимать или отправлять данные между сетью устройств или датчиков.

Библиотеки Matrix и Sprite больше не входят в состав стандартного распространяемого ПО.

Специализированные библиотеки Arduino Due

  • Audio — проигрывание аудио-файлов с SD-карты памяти.
  • Scheduler — реализация многозадачности.
  • USBHost — взаимодействие с USB-гаджетами, такими как мышь или клавиатура.

Специализированные библиотеки Esplora

  • Esplora — данная библиотека позволяет легко взаимодействовать с различными датчиками и приводами на плате Arduino Esplora.

Специализированные библиотеки Arduino Robot

  • Robot — библиотека обеспечивает доступ к функциям Arduino Robot.

Библиотеки для работы с USB (для Leonardo, Micro, Due и Esplora)

  • Keyboard — отправка сигналов нажатия клавиш подсоединенному компьютеру.
  • Mouse — управление указателем мыши на подсоединенном компьютере.

Вспомогательные библиотеки

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

Связь (сети и протоколы):

  • Messenger — для обработки текстовых сообщений, поступающих от компьютера.
  • NewSoftSerial — усовершенствованная версия библиотеки SoftwareSerial .
  • OneWire — управление устройствами (от Dallas Semiconductor), работающими по протоколу One Wire.
  • PS2Keyboard — считывание символов с PS2-клавиатуры.
  • Simple Message System — отправка сообщений между компьютером и Ардуино.
  • SSerial2Mobile — отправка текстовых сообщений и электронной почты с мобильного телефона (посредством AT-команд и библиотеки SoftwareSerial).
  • Webduino — реализация расширяемого веб-сервера (для использования с платой расширения Arduino Ethernet).
  • X10 — отправка сигналов через линии электропередач по протоколу X10.
  • XBee — для связи с беспроводными модулями XBees в режиме API.
  • SerialControl — удаленное управление другими Ардиуно по последовательному интерфейсу.

Обработка сигнала с датчиков:

  • Capacitive Sensing — использование двух или более выводов Ардуино в качестве емкостных датчиков.
  • Debounce — для считывания зашумленного сигнала с цифровых выводов (может использоваться, например, для обработки дребезга контактов при нажатии кнопки).

Дисплеи и светодиоды:

  • GFX — базовый класс со стандартными графическими процедурами (от Adafruit Industries).
  • GLCD — графические процедуры для LCD-дисплеев на основе чипсета KS0108 или эквивалентного.
  • Усовершенствованная библиотека LCD — исправлены ошибки инициализации LCD в официальной библиотеке LCD от Arduino.
  • LedControl — для управления светодиодными матрицами или семисегментными индикаторами, работающих с драйвером MAX7221 или MAX7219 .
  • LedControl — альтернатива библиотеке Matrix для управления несколькими светодиодами с помощью микросхем Maxim.
  • LedDisplay — управление светодиодной бегущей строкой HCMS-29xx.
  • Matrix — базовая библиотека для работы с матрицей светодиодов.
  • PCD8544 — библиотека для работы с LCD-контроллером экранов, подобных Nokia 55100 (от Adafruit Industries).
  • Sprite — базовая библиотека для работы со спрайтами и анимацией на светодиодных матрицах.
  • ST7735 — библиотека для работы с LCD-контроллером TFT-экранов диагонально 1.8″ и разрешением 128×160 (от Adafruit Industries).

Синусоидальные и аудио-сигналы:

  • FFT — частотный анализ аудио- и других аналоговых сигналов.
  • Tone — генерирование прямоугольного сигнала звуковой частоты на любом выводе микроконтроллера в фоновом режиме.

Двигатели и ШИМ:

  • TLC5940 — 16-канальный 12-разрядный ШИМ-контроллер.

Работа с временными интервалами:

  • DateTime — библиотека для отслеживания в программе текущей даты и времени.
  • Metro — выполнение определенных действий через равные промежутки времени.
  • MsTimer2 — использует прерывание от Таймера 2 для выполнения определенного действия каждые N миллисекунд.
  • PString — небольшой класс для осуществления вывода в буферы.
  • Streaming — метод упрощения работы с операторами вывода.

Инструкции по написанию собственных библиотек см. здесь.

Урок 3. Библиотеки в Arduino: что это такое и как использовать?

Всем привет! В этом уроке мы познакомимся с назначением библиотек в среде разработки Arduino IDE , о том какие функции они выполняют и как их устанавливать и применять. Начнем!

Сперва, покажу следующий код:

#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 можно, нажав на раздел Файл – Примеры, как на фото ниже:

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

LiquidCrystal.h — для подключения LCD дисплея

UTFT.h — для подключения TFT экрана

RTClib.h — для работы с модулем часов реального времени

Скачать их можно на сайте https://github.com/

Просто введите в поиске нужное название и скачайте.

Библиотеки при скачивании хранятся, как правило, в ZIP файлах. Их нужно распаковать (например, с помощью программы WinRAR) в папку libraries.

Вот и все. Вы самостоятельно установили библиотеку. Чтобы она фигурировала в вашем коде, подключайте ее с помощью функции #include

Пример: #include

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

Поздравляю! Теперь вы научились подключать и использовать библиотеки. Надеюсь, данный урок был для вас полезен и вы продолжите также резво изучать мир Arduino.

Данная статья — является собственностью интернет-магазина РОБОТОТЕХНИКА

Файлы и библиотеки и другое для Arduino

1 Установка/настройка Arduino IDE — Для написания программ для контроллеров семейства Arduino/Piranha необходимо установить однаименную программу Arduino IDE.

2 Включаем поддержку контроллеров Piranha в Arduino IDE.

3 Установка библиотек в Arduino IDE — Библиотека облегчает работу с определённым модулем или одним из типов модулей.

4 Как выбрать Arduino Данный вопрос возникает у всех, кто впервые решился создать проект с использованием Arduino

Библиотеки для Arduino IDE

Инструкиция по установке библиотек в среде Arduno IDE подробнее

Расширенные возможности библиотек iarduino для шины i2c подробнее

★ Обновлено: 18:35 21.05.2019

Библиотека «iarduino_HC_SR04»

★ Обновлено: 18:35 21.05.2019

Библиотека UTFT для цветных TFT дисплеев к arduino

★ Обновлено: 18:35 21.05.2019

Библиотека iarduino_MultiServo

★ Обновлено: 18:35 21.05.2019

Универсальная библиотека для DHT11 и DHT22, iarduino_DHT, полностью на русском языке

★ Обновлено: 18:35 21.05.2019

Библиотека iarduino_Pressure_BMP для датчиков давления и температуры BMP180 / BMP280

★ Обновлено: 18:35 21.05.2019

Универсальная библиотека iarduino_RTC для RTC DS1302, DS1307, DS3231 к Arduino

★ Обновлено: 18:35 21.05.2019

Библиотека iarduino_I2C_connect

★ Обновлено: 18:35 21.05.2019

Библиотека iarduino_KB для работы arduino с матричной клавиатурой

★ Обновлено: 18:35 21.05.2019

Библиотека iarduino_IR для работы с ИК-приёмопередатчиками

★ Обновлено: 18:35 21.05.2019

Библиотека iarduino_Hexapod для управления роботом Hexapod

★ Обновлено: 18:35 21.05.2019

Библиотека iarduino_SensorPulse для работы с датчиком пульса

★ Обновлено: 18:35 21.05.2019

Библиотека iarduino_AM2320 для работы с датчиком AM2320

★ Обновлено: 18:35 21.05.2019

Библиотека iarduino_Encoder_tmr для работы с энкодерами

★ Обновлено: 18:35 21.05.2019

Библиотека iarduino_4LED для работы с четырёхразрядным индикатором

★ Обновлено: 18:35 21.05.2019

Библиотека iarduino_Bluetooth_HC05 для работы с Trema Bluetooth модулем HC-05

★ Обновлено: 18:35 21.05.2019

Библиотека iarduino_RF433 для работы с радио модулями на 433 МГц

★ Обновлено: 18:35 21.05.2019

Библиотека «iarduino_HC_SR04_int»

★ Обновлено: 18:35 21.05.2019

Библиотека iarduino_NeoPixel для работы с адресными светодиодами WS2812B

★ Обновлено: 18:35 21.05.2019

Библиотека iarduino_I2C_IO для работы с I2C модулями расширения выводов

★ Обновлено: 18:35 21.05.2019

Библиотека iarduino_Position_BMX055 для работы с Trema-модулем IMU 9 DOF

★ Обновлено: 18:35 21.05.2019

Библиотека iarduino_ACS712 для работы с Trema датчиком тока

★ Обновлено: 18:35 21.05.2019

Библиотека iarduino_OLED для работы с OLED дисплеями

★ Обновлено: 18:35 21.05.2019

Библиотека iarduino_OLED_txt для работы с OLED дисплеями

★ Обновлено: 18:35 21.05.2019

Библиотека Battery_Shield для работы с источником автономного питания

★ Обновлено: 18:35 21.05.2019

Библиотека iarduino_GSM для работы с GSM/GPRS Shield A6

★ Обновлено: 18:35 21.05.2019

Библиотека iarduino_Metro для модулей Metro

★ Обновлено: 18:35 21.05.2019

Библиотека iarduino_I2C_Matrix_8x8 для работы с Trema-модулем I2C LED матрица 8×8

★ Обновлено: 18:35 21.05.2019

Библиотека iarduino_APDS9930 для датчика освещенности и приближения

★ Обновлено: 18:35 21.05.2019

ПО для лазерного радара на 360 градусов, лидар Delta2B

★ Обновлено: 18:35 21.05.2019

Библиотека iarduino_I2C_Relay для I2C Flash силовых ключей и реле

★ Обновлено: 18:35 21.05.2019

Библиотека iarduino_I2C_Encoder для Trema модуля — Энкодер, потенциометр, I2C-flash

★ Обновлено: 18:35 21.05.2019

Библиотека iarduino_I2C_DSL для Trema модуля — Датчик освещенности, люксметр, I2C-flash

★ Обновлено: 18:35 21.05.2019

Библиотека iarduino_I2C_SHT для Trema модуля — Датчик температуры и влажности, I2C-flash

★ Обновлено: 18:35 21.05.2019

Библиотека iarduino_I2C_Bumper для модуля — Бампер с 9 датчиками линий, I2C-flash

★ Обновлено: 18:35 21.05.2019

Библиотека iarduino_I2C_Expander для Trema модуля — Расширитель выводов, I2C-flash

★ Обновлено: 18:35 21.05.2019

Библиотека iarduino_I2C_Joystick для Trema модуля — Джойстик, I2C-flash

★ Обновлено: 18:35 21.05.2019

Библиотека iatduino_GPS_NMEA для получения данных из сообщений NMEA

★ Обновлено: 18:35 21.05.2019

Библиотека (модуль Python) pyiArduinoI2Cencoder для работы с модулем Энкодер I2C на Raspberry Pi

★ Обновлено: 18:35 21.05.2019

Библиотека iarduino_I2C_Motor для модулей — Драйвер моторов, I2C-flash

★ Обновлено: 18:35 21.05.2019

Библиотека iarduino_I2C_4LED для Trema модуля — Четырехразрядный LED индикатор, I2C-flash

★ Обновлено: 18:35 21.05.2019

Библиотека iarduino_GPS_ATGM336 для Trema GPS модуля ATGM336

★ Обновлено: 18:35 21.05.2019

Библиотека pyiArduinoI2Cjoystick для Trema модуля — Джойстик, I2C-flash (Raspberry)

★ Обновлено: 18:35 21.05.2019

iarduino_MechaClock

★ Обновлено: 18:35 21.05.2019

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *