« 2009年9月6日 - 2009年9月12日 | トップページ | 2009年9月27日 - 2009年10月3日 »

2009年9月13日 - 2009年9月19日の1件の記事

2009年9月17日 (木)

Xbeeワイヤレス電力ロガー実装に向けての準備

 電子工作を始めてから最初に作ったプリント基板は、無事Olimexで発注が受理された。どんな基板が送られてくるか、期待と不安に胸が膨らむ。しかし、届くのはあと10日近くかかるだろう。それまで何もしないで待っていられる性格ではない。もともと貧乏性である。特に工作を始めてから輪をかけて手を動かしていないと落ち着かない性分になってしまった。Xbeeを使った電力ロガーの実装に向けて、あれこれ勉強と実験を続けている。

単電源のオペアンプ整流回路(9/11/09)
 電力ロガーのAC電流センサーの出力は当然ACで、XbeeのADコンバーターに入れるには整流してやらないといけない。出力はmVレベルなので、普通のダイオードでは出来ない。オペアンプを使った整流回路が必要だと、この前の記事で書いた。

 OlimexにはXbeeのチップ変換基板も発注してあるが、このあたりを先にブレッドボードで実装してしまおうと、ウェブを先生に整流回路を組み始めた。しかし前にも書いたように単電源のオペアンプで理想ダイオードになる適当な回路例がない。とりあえずは、ここのページのオペアンプ2つを使った全波整流回路(絶対値回路)の接地点をVccの中間電位に変更した回路(ウェブのここを参考)で試してみた。

 しかし、うまく動かないのである。出力がDCにならない。半波整流のような波形でマイナス側にも波形が出る。諸元を色々いじる。全く変化なし。そのうち入力も中位電位にするべきだと気づいて、ここも抵抗2つでプルアップするが、これも駄目。ウェブに載っている整流回路を手当たり次第に試してみるが、すべて単電源では動かないか、整流できない。

 ウェブをさらに検索する。ダイオードなしのオペアンプ2つで全波整流する回路が見つかったが、これは負電位の入力でも誤動作しない特別のオペアンプ(AD823)用で使えない。こちらは、秋月で買った1ヶ¥20の汎用オペアンプLM358で作るつもりだ。DigiKeyで調べたらこのアナログディバイスのオペアンプAD823は千円近くする。とんでもない話だ。Photo

 両電源にするのも馬鹿馬鹿しい。半日あれこれ悩んで、このあいだのリズムキャプチャーで使った単電源オペアンプひとつの全波整流回路をだめもとで組んでみた。これはウェブの説明では、ダイオードの順電圧以下では整流しないとあったので諦めていたものである。確かにこのダイオードの位置では、逆方向は良くても、このダイオードの順方向のところは、整流しないはずだ。

 確認のつもりで、ブレッドボードに回路を組み、AC電流(CT)センサーに40Wの白熱スタンドをつける。150mV位の出力がでるが(オシロでP-P 300mV)、1V以下なので出力は出ないはずだ。Photo_2

 うわー、オシロから脈流がはっきり出た。少し大小があるが立派なDCだ。コンデンサーで平滑してみる。見事、200mVの直流が得られた。何だ、何だ。今使っているダイオードは1N4148の普通の検波用ダイオードだ。順方向電圧降下は0.7Vもある。誰だ、順方向電圧以下は整流できないと言ったのは。ちゃんと出ているではないか。

 もっと少ない電流はと言うので、公称13Wの半田ごてを入Photo_3 れる。センサーの出力はP-P 100mV、整流後は、50mVのDC出力が出た。立派なものだ。案ずるより生むが易しとはこのことだ。これでXbeeに入れるアナログ入力の回路の目処がたった。

 ついでにオペアンプの消費電流を測る。3.3VのVccで、0.3mAだった。FETで入り切りするのも微妙な電流だが、行き掛かり上、FETを出して、おさらいをする。ゲートをプルアップしておき、XbeeのポートをActiveLOWにしておけば、Xbeeがアクティブなときは、ON、スリープして、ポートがHiZになったときはOFFという勘定だが、これはもう少しデータシートを読み込む必要がある。

丈夫なXbee子機にするために(9/13/09)
 Xbeeシステムの詳細設計は、Olimexのピッチ変換基板が来てからと考えていたが、オペアンプの電源制御のために、もう少しつめておく必要が出てきた。考えてみたらスリープのとき、I/Oピンの状態が変わることは通常考えられない。何のためのI/Oピン、スリープということになる。何とか他の方法で電源制御が出来るようにならないものか。

 マニュアルをもう少し詳しく読み込んでみる。その結果、子機の設定を親機を通してできるリモートATコマンドというのがあることがわかった。Xbee単体はプログラマブルではないが、ATコマンドを沢山使えば、かなりインテリジェントな動作をさせることができる。

 これ、これ。スリープから目覚めた子機に所定のコマンド(I/Oピンの制御)を送ってやれば、ADコンバーターのオペアンプの電源を立ち上げることができそうだ。リモートATコマンドは、Xbee間の通信を、単なるUARTになる透過(トランスペアレント)モードでなく、APIモードにすることで送ることが出来る。APIモードのデータフレームの仕様は詳しく出ているので開発に不安はない。

 しかし、当初の仕様は、スリープモードから目覚めた子機は、一方的にデータを送り出すことにしてある。なるべく親と子供の間を独立させるためだ。親の指示がないと動けない、ひ弱な子機にしたくない。しかも親は子機の状態を気にせず、ただ、データを送ってくるのを待つだけにしたい。

 スリープモードのところをさらに詳しく調べる。すると有力な方法が見つかったのである。Xbeeのスリープモードは全部で4種類あり、消費電流の一番少ない、ハイバーネートモード(SMパラメーター=1)、消費電流は多いが立ち上がりの早い、ピンスリープモード(SM=2)、それに、タイマーで周期的にスリープするサイクリックスリープモード(SM=4、5)である。

 サイクリックスリープは、よく読むとスリープから目覚めた時、必ず親機(コーディネーターと呼んでいる)にポーリングをかけ、受信すべきデータがキューされていると、それを読みこむ。データがないとすぐにサイクリックスリープ(SPで決めた周期)に入る。受信データがあるときは起きたままとなり、スリープ休止時間 ST(Time before Sleep)パラメーターの設定した時間が来るまで起きている。

これまでサイクリックスリープ時間(SP)というのと、スリープ休止時間(ST)という2つのパラメーターが良く理解できなかったが、これで良くわかった。

これだ。このポーリングのタイミングでAPIモードのデータフレームを送れば、見事にオペアンプの電源をONにできそうだ。うまいぞ。

 しかも、親と子の通信は同期させる必要はない。親は送信データをバッファーにスタックしておくだけでよい。子機はキューされていたこのデータを受け取る。親は、このバッファーを常に監視して、なくなっていたら補給しておく。うむ、これで親子は自立して動ける。

 OFFはどうする。これは最初の子機の設定(ADコンバーター出力指定など)のコマンド列の最後にI/OポートをOFFにするコマンドを入れておく。うーむ、出来た。

まさしく机上のロジックだが、何かうまく行きそうな気がする。

100VACの検電器をつくる(9/16/09)
 電力ロガーは電流しか測らないことに決めた筈なのだが、実はまだ未練がある。電力測定用の専用ICを使えば文句なしに精密な電力量を記録できる。やってみたい。このチップADE7753はDigiKeyで¥500少々で手に入るが、これひとつに送料¥2000を払うわけには行かない。DigiKeyは発注額が¥7500を超えないと送料は無料にならない。

 ところが、DigiKeyに注文できる有力な電子機器が出てきたのである。このあいだまでさんざん遊んでいたARMプロセッサーのSTM32F103を使った開発キット、STM32Primer2である。128×160ドットのタッチパネル付液晶とそのコントローラ、マイクロSDスロットがついて¥6000台。魅力的なスペックだ。この開発キットは、最近は秋月電子でも売り出したP2364s

これが何とDigiKeyでも買えるのだ。しかも日本で売られている価格より、ほんの少しだけだが安い(DigiKeyの商品番号497-8511-ND ¥6,188)。これを買えば、送料無料の¥7500を超える!

 一瞬、発注のボタンに指がかかったが、寸前に思いとどまった。これ以上、手を広げると何がなんだかわからなくなる。あまりにも色々なものに手を出しすぎだ。 収拾不能になってしまう。BeagleBoardだってそうだ。当ブログのアクセス数では今でもトップの話題だけど、あれから全く動かしていない。マイクロウェブサーバーにしようと思っているけれど他の事が忙しくで手がつかない。

 しかし、ADE7753を買える可能性は出てきた。こいつはAC電圧のアナログ部が絶縁されておらず、デジタルとグランドが共通なのでボードを分けるなどの配慮が必要だ。それにしても無闇に100VACを怖がっているのは能がない。買える時が来た時慌てないで済むよう100VACを自由に操作できる技術を身につけておこうとウェブであれこれ勉強する。

 要するに、AC100Vはテーブルタップを使ったり、工事業者が良い加減で極性を逆にしてしまったりして、ホット側がわからなくなるから危険なのだ。ホット側がいつでも検知できるのならば、そう心配する必要はない。

 ホット側から分圧抵抗で落とせば安全な電圧が得られる。テーブルタップを経由して極性がわからなくなっても、ホット側がわかる昔使った検電ドライバーのようなものがあれば、思わぬ事故の心配はなくなる。

 昔、真空管ラジオがトランスレス全盛だった頃は、この問題は日常的な問題だった。ネオン管をドライバーに入れた「検電ドライバー」というのを覚えている。ウェブで調べてみる。何だ何だ今でもあるんだ。沢山出てきた。強電関係では必須のツールのようだ。

 ただ、検電ドライバーは柄のところに金属面が出ていて、いくら絶縁されているとはいえ触るのは少し怖かったのを覚えている。もう少し進歩していないか、ウェブをさらに探す。

 すると、LEDとトランジスタを使った非接触の検電器の回路が見つかった。トランジスタを2段接続して増幅度を稼ぎ、数メガはあるだろう絶縁を通しての微小交流電流を検知して、LEDをつける装置のようだ。

 これだ。これを作ろう。早速、ストックしてあった、コンプリメンタリなトランジスタ(2SC1815 2SA1015)を取り出してブレッドボードに組んでみる。参考にする回路のVccは、9Vだが、こちらはボタン電池(CR2032)での実装を狙ってLED抵抗を下げた(2.2Kから330Ω)回路にする。

 動かしてみる。よし、ちゃんと動いた。消費電流を測る。点灯時で0.5mA、ついていないときは、1μA以下だ。ああ、これなら電源スイッチもいらない。ボタン電池が入るケースを探す。記念に貰ったいくつもあるネクタイバーのケースがちょっと大きいが、手頃な大きさのようだ。ここへ実装することにする。Photo_4

 久しぶりの基板工作である。基板の固定はネジ止めでなくホットボンドにする予定だ。手を動かしてモノを作ることが楽しい。数時間で完成する。実装版も問題なく動いた。それにしても不思議だ。検電ドライバーのように金属に全く触らなくても、ちゃんとホット側でLEDが点灯する。

 ためしにテスターでホット側のAC電圧を測ってみる。プローブをホット側に差込むと、一方のプローブを浮かしても6V近くPhoto_5 を指した。今度は浮いているプローブを恐る恐る手で触ると90Vを指した。電気が来ている感じは全くない。そうか電流が流れなくてもこんなに電圧がかかっているのだ。思わぬ実験の結果に少し感動する(くれぐれもホット側のプローブを触らないように。感電します)。

| | コメント (0) | トラックバック (0)

« 2009年9月6日 - 2009年9月12日 | トップページ | 2009年9月27日 - 2009年10月3日 »