RFM12B library
2011.11.11 · 968 words · 2 minute read
Jean-Philippe Lang氏のRFM12B libraryについて。
Google先生で調べる限りではリファレンスの日本語訳は見つからなかったので適当(自分用)に翻訳。
あと、本家のwikiは個人的に見づらいので、一覧にするという意味も。
RFM12Bについては前の記事にまとめました。
初期化関数
- rf12_initialize() 受信/送信用にモジュールを初期化する。
#include <rf12.h>
#include <ports.h>
byte rf12_initialize(byte nodeId, byte freqBand, byte netGroup =212);
パラメータ
- nodeId
無線モジュールのノードID。nodeIdは同じnetGroup内においてユニークにする必要がある。IDの範囲は0〜31だが通常は0〜30を使用する。nodeIdの1〜26に対応する大文字のA〜Zを利用することもできる(しかし今後は推奨しない)。数字の0はOOK(On-Off-Keying/オンオフ変調)のために予約されている。31は特別で同一netGroup内の任意のnodeIdのパケットをピックアップできる。
- freqBand
無線モジュールで利用する周波数。RF12_433MHZ、RF12_868MHZ、RF12_915MHZが用意されていて、利用するモジュールの周波数に合ったものを使用する。
- netGroup
ノードを区切る為に利用する。同じnetGroupのノードが通信できる。このパラメータはオプションであり、省略した場合はデフォルトの212 (0xD4)が利用される。これ(212)はRFM12で唯一利用できるIDであり、RFM12Bでは他の任意のIDを利用できる。
- rf12_config() rf12_initialize()とEEPROMの0x20〜0x3Fに書きこまれた設定を呼び出す。0x20〜0x3Fに含まれるチェックサムが正しくない場合、rf12_initialize()は呼び出されない。実行結果としてnodeIdを返す。(なければ0を返す)
#include <rf12.h>
#include <ports.h>
byte rf12_config();
パラメータ
なし。
- rf12_easyInit()
簡単な送信手法設定。
この関数はドライバが初期化された後、rf12 initialize() または rf12 config()を利用して呼び出す必要がある。
#include <rf12.h>
#include <ports.h>
void rf12_easyInit(byte seconds);
パラメータ
- seconds
新しいデータパケットまでの最小値(1〜255秒)を設定する。0を使用すると最短で送信される。
・433および915 MHzの周波数帯では、100ミリ秒(10パケット/秒)に固定。
・866 MHz帯では、送信されるバイト数に依存。
以下、和訳途中…
基本関数
- rf12_recvDone()
- rf12_canSend()
- rf12_sendStart()
- rf12_sendWait()
簡易送信関数
- rf12_easyPoll()
- rf12_easySend()
その他
- rf12_control()
- rf12_encrypt()
- rf12_lowbat()
- rf12_onOff()
- rf12_sleep()