伝説のSpice特別企画 いまさらIOT
CodeWarriorを使ってDevice側のプログラムを作成する
CodeWarriorを使ってDevice側のプログラムを作成する
デバイス側のプログラムの説明です。 現在はタンクに搭載して実験しています。 操作する携帯からのコマンドに従って動作する部分です。 操作のコマンドはテキストベースで簡単なコマンドです。 現在はまだ自立性はありません。 操作されるように動作します。
開発環境のワークスペースを作成
xbeeIOTフォルダ名称をワークスペースのフォルダにします。 ワークスペースは関連した複数のプログラム(プロジェクト)を入れておくフォルダです。 先に作成した serial_bypass も同じフォルダーにすでに展開されています、 ポイントはxbeeのモデルを正しく選択くすることです。 違ったタイプを選択した場合、動かなければわかるのですが、中途半端に動作します。 そのため気が付いたときには結構コードを書いた後ということになり、タイプ訂正に苦労します。 私みたいに。
リソースの設定は config.xml で行われているようです。 このファイルを訂正すると main.c が自動で編集されます。 これには注意が必要で日本語でのコメントが文字化けします。
すでにできているひな形コードを使用してプロジェクトを更新
DL_Sources.zip , DL_Project_Headers.zip ファイルを解凍して所定の位置に上書きします。 できたばかりのプロジェクトでは説明したように main.c のソースファイルしかありません。 IDE環境で見える多くのフォルダとソースは共通ライブラリを指すエイリアスです。
CodeWarriorでコンパイルしてみる
コンパイルはエラーになる時があります。 これは全体(ライブラリ)を含めた再ビルドが必要な場合に発生します。 メニューからbuildAllで全体をコンパイルするとエラーはなくなります。
ライブラリに手を加えないように注意が必要
ライブラリのファイルは共通の場所からのエイリアスです。 開くことも編集することもできます。 しかし、編集するとすべてのプロジェクトが変更されることになります。 過去のプロジェクトもです。
X-CTUを使用してトランスペアレントでデバッグをする
コンパイルが終了してオブジェクトコードができると、それをターゲットにダウンロード(書き込み)をします。 書き込みには手順が必要です。 デフォルトでxbeeに搭載されているブートローダーを起動する必要があるからです。 その後X-modemプロトコルでバイナリを送ります。 送るファイルの拡張子は .bin です。
もう一つX-CTUを起動してそちらをペア設定したxbeeに割り当てます。 こちらは通信設定もスルーモードを設定していますので、X-CTUの端末に入力した文字はそのままデバイス側のxbeeに送られます。 コマンドがシンプルなテキストですので、手入力コマンドでデバイスを動作させることができます。
コマンド一覧
#--------モータ系コマンド
ME モータ ena=1/dis=0 確認
ME,0 モータ disable 設定
ME,1 モータ enable 設定
-----------------------------
MD,[n],0 モータ#[n]方向 フォワード
MD,[n],1 モータ#[n]方向 バック
MD モータ方向確認 右左 res:x,y
MD,[n] モータ#[n]方向確認
-----------------------------
MP,[n],[pw] モータ#[n]PWMパワー[pw]%
MP,[n] モータ#[n]PWMパワー確認
MP モータ#[n]PWMパワー確認 右左 res:xx,yy
-------------------------------
MA,[n],[pw] モータ#[n]PWMパワーアジャスト±[pw]%
-------------------------------
MC = MC,0 = モータ走行距離(平均) res:mmm (右+左)/2
MC,n モータ走行距離&リセット
n = 000b
|||
||+- 右側
|+-- 左側
+---リセット
MC,1 右側カウンタ 確認 res:xxx 右
MC,2 左側カウンタ 確認 res:yyy 左
MC,3 左右カウンタ確認 res: xxx,yyy 右、左
MC,4 ER 将来 左右調整に使用する
MC,5 右側モータ走行距離リセット res:OK
MC,6 左側モータ走行距離リセット res:OK
MC,7 左右同時リセット res: OK
#--------BME280系コマンド - //問い合わせ
TP 全部問い合わせ
TP,0 気温問い合わせ
TP,1 気圧問い合わせ
TP,2 湿度問い合わせ
Webにドキュメントがあります。
Welcome
to XBee SDK Documentation 1.6.0
XBee
Firmware Library 1.6.0 Overview