Arduino用のライブラリを作成する方法は? (添付例)

Arduino用に作成した関数/クラスをライブラリに配置して、自分で操作しやすくすることを決めたとします。最も重要なことは、誰かがライブラリを使用してこれらの問題を簡単に解決し、親切な言葉であなたを覚えて、発明しないことです新しい自転車。

C / C ++プログラミングに少なくともある程度精通している読者に基づいて、最小限の機能を説明します。

ライブラリには、少なくとも1つの.hファイルと、原則として1つの.cppファイルが必要です。 .hファイルには、いつものように、すべての型/関数/クラス/定数が記述されており、.cppにはこれがすべて実装されています。

ライブラリは追加の変換なしでコンパイルされます(詳細はこちら )。したがって、標準Arduinoライブラリの関数/オブジェクト/定数が必要な場合は、対応するヘッダーファイル(「WConstants.h」、「WProgram.h」など)を接続する必要があります。

私が正しく理解している場合、「良い形式」のルールはコードをクラスとして設計することであり、実行されるタスクの意味でこのクラスのインスタンスが1つだけである場合、同時に.hファイルでこのインスタンスの宣言ができます。

 extern MyClass MyClassObject;
.cppファイルに1つのグローバルオブジェクトを作成します。

 MyClass MyClassObject;
たとえば、ハードウェアシリアルポートを操作するクラスを作成する場合、物理的にそのようなポートは1つしかないため、ライブラリ自体にクラスのインスタンスを作成することが望ましいです。 実際、Serialオブジェクトは標準ライブラリで宣言されています。

書き込まれたライブラリは、「hardware \ libraries」ディレクトリ内の適切な名前のフォルダに配置し、Arduino環境を再起動する必要があります。 起動時に、環境はライブラリをコンパイルしようとし、エラーが発生した場合は報告されます。

ライブラリで使用されるタイプ、メソッド、関数、定数の名前を記述するキーワードフォルダーをライブラリフォルダーに作成して、エディターがそれらを対応する色で「色付け」するのは悪くありません。 ファイルの構文は単純です-次に例を示します(区切り文字はTABです):

 --- keyword.txt ---
 MyType KEYWORD1
 MyFunction KEYWORD2
 MY_CONSTANT LITERAL1
 ---
さらに、「examples」というフォルダーを作成できます。このフォルダーには、ライブラリ(既に.pde形式で)を使用した例のプロジェクトを含む1つ以上のフォルダーを配置できます。

例として、シリアルポートからの数字の入力を整理する簡単なライブラリを提供します。

Arduinoを使用した実験中に、ダイアログ形式でプログラムを作成し、ターミナル(同じハイパーターミナル)を介してプログラムを操作すると便利です。 さて、数字を入力するタスクは絶えず発生します-これが図書館の仕事です。 彼らはこのようなライブラリで動作します:

 #include <SerialInput.h>

 void setup(){
   Serial.begin(9600);
 }

ボイドループ()
 {
   long int Number;

   Serial.print( "数字を入力:");
  番号= SerialInput.InputNumber();  //ここで入力して発生します

   Serial.print( "入力しました:");
   Serial.println(数値、DEC);
 }
より完全な例にはライブラリが付属しており、ここからダウンロードできます。SerialInput.zipアーカイブを「hardware \ libraries」フォルダに解凍します。




All Articles