Программирование Arduino - создание своей библиотеки
Оценка 4.8
Образовательные программы
docx
информатика
11 кл +1
22.10.2018
Как мы помним, ардуина программируется на C++, поэтому, как Вы уже догадались, библиотека – это всего-навсего дополнительный класс, который инкапсулирует в себе функции для работы с устройством :)
Т.о. для создания библиотеки нужно будет создать, как минимум, один .h файл в котором будет описываться Ваш класс/функции/ константы и один .cpp, в котором все эти функции реализуются :)
Итак, создаём в библиотечной директории Arduino IDE (\hardware\libraries\) папку RoboCraft – так по-скромному будет называться наша библиотека :)
Для Arduino IDE 0017 свои библиотеки можно хранить в директории libraries, находящейся в каталоге с пользовательскими скетчами (путь указывается через File — Preferences, строчка Sketchbook location )
7.3.1 Библиотеки Arduino Robocraft.docx
Программирование Arduino создание своей библиотеки
Cоздание своей библиотеки.
Как мы помним, ардуина программируется на C++, поэтому, как Вы уже догадались,
библиотека – это всегонавсего дополнительный класс, который инкапсулирует в себе
функции для работы с устройством :)
Т.о. для создания библиотеки нужно будет создать, как минимум, один .h файл в котором
будет описываться Ваш класс/функции/ константы и один .cpp, в котором все эти функции
реализуются :)
Итак, создаём в библиотечной директории Arduino IDE (\hardware\libraries\) папку
RoboCraft – так поскромному будет называться наша библиотека :)
Для Arduino IDE 0017 свои библиотеки можно хранить в директории libraries,
находящейся в каталоге с пользовательскими скетчами (путь указывается через File
— Preferences, строчка Sketchbook location )
А внутри нашей новой директории создаём наши файлы
robocraft.h и robocraft.cpp
Ну что – можно сказать половина дела сделана :)
Библиотеки компилируется без дополнительных преобразований, поэтому их нужно писать
на «чистом C++» и поэтому если внутри нашей библиотеки мы захотим использовать
какиенибудь функции или объекты из стандартной библиотеки Arduino, то нам нужно
подключать соответствующий заголовочный файл («Arduino.h» (в старых версиях IDE:
«WConstants.h», «WProgram.h»))
На всякий случай, напишем:
#if defined(ARDUINO) && ARDUINO >= 100
#include "Arduino.h"
#else
#include "WProgram.h"
#endif
код оформляется в виде класса и если по смыслу выполняемых задач экземпляр этого
класса может быть только один, то заодно происходит объявление этого экземпляра в .h
файле.
Помните, как в классе HardwareSerial – у нас один COMпорт и экземпляр класса там
же и объявляется:
extern HardwareSerial Serial; Пора писать код :)
Для начала, напишем чтонибудь простое, вроде обычного в таких случаях “Hello world”
а :)
— robocraft.h —
#ifndef robocraft_h
#define robocraft_h
#if defined(ARDUINO) && ARDUINO >= 100
#include "Arduino.h"
#else
#include "WProgram.h"
#endif
class RoboCraft
{
public:
RoboCraft();
void hello();
};
#endif // #ifndef robocraft_h
— robocraft.h end — , а теперь реализуем эти функции:
— robocraft.cpp —
#include "robocraft.h"
//
// конструктор вызывается всегда при создании экземпляра класса RoboCraft
//
RoboCraft::RoboCraft()
{
Serial.begin(9600);
}
//
// просто говорим "Hello" :)
//
void RoboCraft::hello()
{
Serial.println("Hello :)");
} — robocraft.cpp end — Остаётся перезапустить Arduino IDE и с удовольствием отметить
появление нового класса (меню Sketch – Import Library ) :)
При выборе нашего (да и любого другого) класса – всего лишь появляется строчка
#include
допишем необходимые setup и loop:
#include
void setup()
{
RoboCraft robot; // создаём экземпляр нашего класса }
void loop()
{
robot.hello(); // говорим "Hello" :)
}
Пробуем скомпилировать – «Done compiling». Однако, заглянув в папку к любому другому классу в глаза бросаются файл keywords.txt и
директория examples
Попробуем разобраться.
Файл keywords.txt содержит объявления ключевых слов вашей библиотеки, имена типов,
методов, функций, констант – это нужно, чтобы редактор “раскрашивал” их
соответствующими цветами. Синтаксис у файла простой — вот пример (разделитель —
TAB):
#######################################
# Syntax Coloring Map For RoboCraft
#######################################
#######################################
# Datatypes (KEYWORD1)
#######################################
RoboCraft KEYWORD1
#######################################
# Methods and Functions (KEYWORD2)
#######################################
hello KEYWORD2
#######################################
# Constants (LITERAL1)
#######################################
Сохраним этот keywords.txt в каталог с нашей библиотекой и перезапустим Arduino IDE — сравните с предыдущим скриншотом – название нашего класса и функция hello() теперь
подсвечиваются! :)
Теперь остаётся добавить к нашей библиотеке нужных и полезных примеров
использования.
Для этого создаём директорию examples, а в ней поддиректории с примерами в формате
.pde.
Например, скопируем туда наш скетч в директорию hello_robocraft и переименуем его
аналогично в hello_robocraft.pde
В очередной раз перезапускаем Arduino IDE и видим, доступность нашего примера :) Замечательно! Заготовка для нашей робототехнической библиотеки создана! :)
Программирование Arduino - создание своей библиотеки
Программирование Arduino - создание своей библиотеки
Программирование Arduino - создание своей библиотеки
Программирование Arduino - создание своей библиотеки
Программирование Arduino - создание своей библиотеки
Программирование Arduino - создание своей библиотеки
Программирование Arduino - создание своей библиотеки
Материалы на данной страницы взяты из открытых истончиков либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.