🍣
E220-900T22S-JPのArduinoライブラリを作成した
背景
ハイブリットロケットサークルの電装班で,LoRaモジュールを使ってデータのダウンリンクをしたかった.以前はES920LR3を使っていたが,少しお高い.そこで,秋月で最近取り扱い始めたE220をつかってみようと思った
githubのリンク
作成方針
- 簡潔さ
- 汎用性の高さ
- ドキュメントの充実
に重点をおいて作成した
使用方法
E220本体設定
E220はM0,M1ピンをHIGH(3.3V)にすることでconfigモードに入る.マイコンでHighにするでも,ジャンプワイヤとかHighとかにするでもお好きに.
- examplesにあるconfig.inoをマイコンに書き込む.ピンアサインは各々設定しなおしてほしい
今回はM0,M1ピンをマイコンでH-L切り替えるつもりで説明する.
#define M0 0
#define M1 1
この部分でM0をマイコンの0番ピン,M1マイコンの1番ピンに設定している.
- マイコンをシリアルモニタで9600bpsで接続する
- 各々設定したいコマンドを打つ.それぞれコマンドうつごとにE220本体に設定が保存される.コマンドはconfig/config.pdfを参考にすること.
E220を実際に使う(Exampleについての説明)
E220の設定ができたら,実際につかってみる.ArduinoMegaのようにハードウェアシリアルをたくさんもっているマイコンもあれば,UNO rev3のようにハードウェアシリアルが乏しいマイコンがある.そこで,ハードウェアシリアルを使う場合のexampleとソフトウェアシリアルを使う場合のexampleを用意した.各々ピンアサインを調整の上,テスト用に使ってくれ.
使い方
注意:M0,M1ピンはLOWにすること.
- ライブラリのインポート(ヘッダファイルインカ―ト)
#include <E220.h>
- コンストラクタ呼び出し(インスタンス作成)
例:
E220 e220(Serial1, 0xFF, 0xFF, 0x0A);
- 第一引数:Serialをわたす.softwareserialで作成したものでも可
- 第二,三引数:ターゲットアドレス.例えば,0xABCDだったら,第二引数が0xAB,第三引数が0xCD
- 第四引数:チャンネル
- void setupで渡したシリアルのbeginをする.E220本体で設定したボーレートにすること
例:
void setup(){
Serial1.begin(9600);
}
-
ペイロード(実際に流すデータ部分)を作成する.byte型で199byte以内で作成すること
※テスト用のデータを生成する関数を用意しています.詳細はE220.cppでもみて. -
送信をする
送る内容のデータのbyte数を送る時
例:
byte tx_payload[199]={0x41};
e220.TransmissionDataVariebleLength(tx_payload,55);
- 第一引数:受信用byte型の配列
- 第二引数:送信する内容のbyte数
注意:日本では,電波法で送信時間,送信間隔などに法律的な制約ある.よく確認してね
- 受信をする
受信する内容を受け取るためのbyte型配列を用意し,ReceiveDataVariebleLengthで受信
例:
Rxlength=e220.ReceiveDataVariebleLength(rx_payload,55,&rssi);
- 第一引数:受信用byte型の配列
- 第二引数:送信側で指定した配列数(int)
- 第三引数:rssi値を入れる変数(int)
- 戻り値:受信した配列数
※送信側の長さ関係なく199Byte読み取る関数もあります.詳細は.cppでも覗いてみてね
改善点
- たまにrssiがバグる
- configのpowerの設定があやしい
他問題点等見つけましたら,githubのissueで投稿していただけると幸いです
Discussion