SSブログ

XBee 100円Wall Routerを本物にする。勿論温度も取り込むヨ。 [XBee]

※このWall Router用に作成した基板は、次回のMTM06に持ち込んで配付する予定です。ただし数に限りが有りますので、先にここで連絡頂いた方を優先とします。つまり早い者勝ちです。
Img_2226.jpg前回作成したWall Routerは、実際のところシリーズ1のIEEE802.15.14タイプでしたので、「どの辺がRouter?,
中継しないじゃん」とまあ、ただの嘘つき健康法をしただけですね。

いや、今回のは本物です、すっごい中継します。でも家の中では1HOPで届いてしまうので、ルーティングしていないかもしれません(笑)。

MTM06ではH8やR8Cの基板とかも配付します。


end_device_01.png現状、シリーズ2製品のZigBeeモデルには2種類あるみたいで、それで随分悩んでしまいました。今、DigiさんのUSサイトからダウンロードしてくるマニュアルはZB用(XB24-ZB)です。ですよね。
でも手元のシリーズ2にはその前のモデルのファーム(XB24-B)が入っていて、なんかマニュアルに書いてある事とX-CTUの画面と違うんだけれど、、、と散々悩んで、色々いじって、時間を無駄に潰していました。トホホ。


end_device_02.png何がしたかったかと言えばXBeeのアナログ取り込み機能を使って例の温度データの収集をしたかっただけです。シリーズ1と異なり、ZBではEND DEVICEに設定すると必ず何等かの省電力モードに入れる必要が有るみたいで、スリープに入れずにアナログサンプリングを定周期で行う設定がありません。

それを行うにはCyclic Sleepの設定とCyclic Sleep Period、Time Before Sleep、アナログ入力設定、IO Sampling Rateを適切に設定する必要があります。

※もしくはRouter設定とする。

※End Device側だけでなくCoodinator側もAPIモードに設定する必要があります。

※なおCyclic Sleepに設定するとリセットボタン押しまくりなので、これが無いシリアルインタフェース基板では設定が辛いでしょう。


Sleep Modeの設定項目では、
SMは4番または5番でCyclic Sleepに入れます。デフォルトでは4番みたいです。
STはSleepに入るまでの時間を設定するもので、この時間内に受信があると時間延長となります。つまりダラダラと受信し続けると何時まで経ってもSleepには入れません。
SPは周期的に起床する時間です。この値はCoodinator側と一致させる必要があります。この周期でEND DEVICEは上位にデータがあるかどうかを問い合わせ(polling)します。
SNは上記周期起床を何回するとONをアサートするかを決める設定です。
ここで出てくる数字は全て16進である事に注意してください。20と書いてあってもそれは32です。

I/O Settingの項目では、アナログ値を取り込みたいポートの設定を変更しておきます。
またサブメニューのI/O SamplingでIRの項目がADCのサンプリングレートを決めています。

ST=0x3E8なので10進で1000、単位はmsなのでsleepに入る前1秒間は上位からのデータの着信を受け入れます。ここで受信が有れば更に1000ms時間延長となります。

SP=0x20なので32ですが、単位は10msですので320ms置きに起床してポーリングを行います。

SN=0x20なので32回起床を数えます。320ms×32回で10240ms、おおよそ10秒経過するとONをアサートします。

IR=0xC8なので200、単位はmsです。”STで設定された時間が切れるまで”、200ms置きにサンプリングし、送信を行います。先の例でSTは1000msとしていますので、5回送信が行われる筈です。


coordinator_01.pngAPIフレームを見ています。全部で5回分のパケットが表示されています。
APIフレームなのでフレームヘッダーだの、データbyte数だの、データタイプだの、割り付けだの、チェックサムだの色々情報がくっ付いて来ますが、注目したいのは青の枠で囲ったところです。
例のLM61CIZの出力を取り込んでいます。

注意が必要なのはシリーズ2で使用しているマイコン、EM250のアナログ入力の最大は1.2Vである事です。
LM61CIZは0℃の時に600mV、そこから1℃上昇する毎に10mV増えていきますので、1.2Vが最大とすれば60℃が計測できる上限です。まあ、温度計としては申し分無いのですが、他のアナログ取り込みでは問題になるかもしれませんね。

取り込んだアナログ値が0x02B9ですので10進では697です。温度に換算すれば(697*1200/1024-600)/10で約21.7℃です。実際に室温も21度ですのでほぼ一致しています。

ITRONプログラミング入門―H8マイコンとHOSで始める組み込み開発

ITRONプログラミング入門―H8マイコンとHOSで始める組み込み開発

  • 作者: 濱原 和明
  • 出版社/メーカー: オーム社
  • 発売日: 2005/04/25
  • メディア: 単行本



図解 μITRONによる組込みシステム入門 - H8マイコンで学ぶリアルタイムOS

図解 μITRONによる組込みシステム入門 - H8マイコンで学ぶリアルタイムOS

  • 作者: 武井 正彦
  • 出版社/メーカー: 森北出版
  • 発売日: 2008/01/29
  • メディア: 単行本(ソフトカバー)



nice!(0)  コメント(12)  トラックバック(0) 

nice! 0

コメント 12

hamayan

気温が下がってきたなぁ。さっきは21度だったが、今は19.5度だ。

by hamayan (2010-10-24 00:21) 

hamayan

Ethernet付きのH8かSH2の基板にXBeeを接続して、webで見れるようにするかねぇ。

by hamayan (2010-10-24 00:23) 

asupiyoPaPa

いやー、どんどん進んでますね。
そう、XBeeのモジュールがシリーズ1と2の話があって、これは注意しないといけないと思っていたのですが、今回のWall RouterにはPROが使えないので、普通の出力2mWのを注文し直しました。
http://www.switch-science.com/products/detail.php?product_id=224
まだ、マニュアルもダウンロードしただけでよく眺めていないのですが、
http://ftp1.digi.com/support/documentation/90000976_a.pdf
こちらが、最初のバージョンで、
http://ftp1.digi.com/support/documentation/90000976_C.pdf
こっちが、ファームを2x7xに上げたマニュアルのようですので、画面のバージョン表示からすると、こちらでいいように見えますが、もっと新しいマニュアルがあるのでしょうか。 いや、全然試してみてないので、こちらのブログを参考にしてと言うか、真似していじってみます。今日はMTM06向けのシステムの構想(出し物のネタ)を立てようと思います。
End Device は、太陽電池で動かしたいのですが、PRPだときついので、Wall Routerの出番となります。スペックを見ると、標準版の電圧範囲は、2.1-3.6Vですが、PRO(S2B)は2.7-3.6になっているので、こっちも標準版が有利なようです。



by asupiyoPaPa (2010-10-24 10:05) 

hamayan

XBeeを屋外持ち出すの良いですね。
超音波モジュールを防滴タイプにして屋外で侵入者を監視みたいな事もやってみたいと思っとります。
ただ防滴タイプは秋月でもちょっとお高いですね。

by hamayan (2010-10-24 10:28) 

asupiyoPaPa

超音波センサだと、マイコンを積んで平均消費電流はどれぐらいになります?
1~2mAぐらいに収まれば、こんなのでもいけそうですが、
http://asupiyo.blogspot.com/2010/10/arduino-japanino-9-1.html
もっと、本格的にやりますか。


by asupiyoPaPa (2010-10-24 17:38) 

hamayan

マイコン込みだと判らなくなっちゃうので、単体で電流を測ってみますね。

ただ、C-MOSとは言え4回路入りオペアンプを使用しますので、1~2mAと言う事は無いと思います。
DIPで4回路でμA単位のオペアンプってあるかなぁ?。

絶対屋外ニーズは有るでしょうから、開発したいですね。
まあ多少太陽電池パネルが大きくなっても構わないと思います。

by hamayan (2010-10-25 08:59) 

hamayan

今日は0x2D6だから部屋の中は25℃か。typだな。

by hamayan (2010-10-25 21:13) 

槫林

超音波距離計ですが、消費電流下げるとパワーもなくなって
距離が短くなりませんか?

秋月のキットレベル(7セグLED抜きで)で50mAぐらい食ってい
たような気がします。

by 槫林 (2010-10-26 07:47) 

hamayan

すいません、昨晩は新しい基板の設計でいっぱい、いっぱいで電流測っていません。

ただ構成部品上、電気を食う所はあまり無い様な気がします。
3.3Vで動作させた時、多分それでも送信側は12Vpp位出ると思われるので、距離に関しては大丈夫かなと思っています。

by hamayan (2010-10-26 09:03) 

hamayan

電流は5V弱の電源で6.8mAでした。これにはLEDの分も含まれます。
電源電圧を下げれば必然的に電流も小さくなると思われます。

ただしLMC660の動作は5Vからなので、3V位から動くアンプを使った方が良いですね。

by hamayan (2010-10-26 22:17) 

hamayan

3V位から動くアンプですが、秋月ならNJU7044かLMC6484が良さそうですね。
特にNJU7044は電源電流が小さいみたいですし。

by hamayan (2010-10-26 22:50) 

hamayan

本日はDigi InternationalさんのプログラマブルXBeeのハンズオンセミナーに行って来ました。
有意義なセミナーでした。

by hamayan (2010-10-27 21:23) 

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。