• - это CraftDuino - наш вариант полностью Arduino-совместимой платы.
  • CraftDuino - настоящий конструктор, для очень быстрого прототипирования и реализации идей.
  • Любая возможность автоматизировать что-то с лёгкостью реализуется с CraftDuino!
Просто добавьте CraftDuino!
подписаться на RSS-ленту

Программирование Arduino - создание своей библиотеки.

12. Cоздание своей библиотеки.

На примере библиотеки для работы с PS/2-устройствами можно оценить как здорово работать через библиотеку :)
Раз подключил и готово :)
Разумеется, нужно ещё разобраться что к чему, но главное – библиотека – это очень удобно :) Поэтому, давайте научимся создавать собственную библиотеку для ардуино :)
Как мы помним, ардуина программируется на C++, поэтому, как Вы уже догадались, библиотека – это всего-навсего дополнительный класс, который инкапсулирует в себе функции для работы с устройством :)

Т.о. для создания библиотеки нужно будет создать, как минимум, один .h файл в котором будет описываться Ваш класс/функции/ константы и один .cpp, в котором все эти функции реализуются :)

Итак, создаём в библиотечной директории Arduino IDE (\hardware\libraries\) папку RoboCraft – так по-скромному будет называться наша библиотека :)

Для Arduino IDE 0017 свои библиотеки можно хранить в директории libraries, находящейся в каталоге с пользовательскими скетчами (путь указывается через File — Preferences, строчка Sketchbook location )


А внутри нашей новой директории создаём наши файлы
robocraft.h и robocraft.cpp
Ну что – можно сказать половина дела сделана :)

Библиотеки компилируется без дополнительных преобразований, поэтому их нужно писать на «чистом C++» и поэтому если внутри нашей библиотеки мы захотим использовать какие-нибудь функции или объекты из стандартной библиотеки Arduino, то нам нужно подключать соответствующие заголовочные файлы ( «WConstants.h», «WProgram.h»)

На всякий случай, напишем:
#include "WProgram.h"

код оформляется в виде класса и если по смыслу выполняемых задач экземпляр этого класса может быть только один, то заодно происходит объявление этого экземпляра в .h файле.
Помните, как в классе HardwareSerial – у нас один COM-порт и экземпляр класса там же и объявляется:
extern HardwareSerial Serial;


Пора писать код :)

Для начала, напишем что-нибудь простое, вроде обычного в таких случаях “Hello world”-а :)

— robocraft.h —
#ifndef robocraft_h
#define robocraft_h

#include "WProgram.h"

class RoboCraft
{
	public:
		RoboCraft();
		void hello();
};

#endif // #ifndef robocraft_h

— robocraft.h end — , а теперь реализуем эти функции:

— robocraft.cpp —
#ifndef robocraft_cpp
#define robocraft_cpp

#include "robocraft.h"

//
// конструктор - вызывается всегда при создании экземпляра класса RoboCraft
//
RoboCraft::RoboCraft()
{
	Serial.begin(9600);
}

//
// просто говорим "Hello" :)
//
void RoboCraft::hello()
{
	Serial.println("Hello :)");
}


#endif // #ifndef robocraft_cpp
— robocraft.cpp end — Остаётся перезапустить Arduino IDE и с удовольствием отметить появление нового класса (меню Sketch – Import Library ) :)


При выборе нашего (да и любого другого) класса – всего лишь появляется строчка
#include <robocraft.h>


допишем необходимые setup и loop:
#include <robocraft.h>

RoboCraft robot;     // создаём экземпляр нашего класса

void setup()
{
}

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?
  • +2
  • 26 октября 2009, 12:45
  • admin

Комментарии (1)

RSS свернуть / развернуть

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.