2012年8月31日金曜日

量産.....完成

HA端子用と電動窓、シャッター用のFRISKケースをそれぞれ加工しました。
FRISKケースは白以外はちょっと硬いようでカッターで加工しているとヒビが入ったりします。
なんとかXBeeを直付けした5枚分+ソケット付きの動作確認基板の分のケースを完成させました。


1つ目を接続し、壁の中でコネクタが外れたりしないようにビニールテープで巻いておきます。電源は壁の中に用意しておいたコンセントにACアダプタを接続しこちらもトラッキング対策でビニールテープで巻いておきます。


アンテナがスイッチボックスの金属フレームや電線に近づかないように少し押し込んで壁の中に収めます。
スイッチを元に戻して完成です。

実験用にずっとハーネスを引き出していたスイッチ部分が綺麗に収まりました。
北側の窓も同様に壁の中に納めて完成です。


量産...の続き

あとはXBeeのみになったのでVirtualBoxのWindowsXPを起動してX-CTUを起動します。
5個のXBeeモジュールのFWをROUTER APIに変更します。
設定変更とかはCで作ったプログラムで出来るようにしたのでここではFW変更だけしておきます。いちいちwindowsを立ち上げるのもめんどくさいのでFW書き込みも今度プログラムを作ってみます。
Macから順番にGPIO、暗号、sleep等の各種設定をし書き込みをします。

最初に作ったソケット付きの1枚を使ってXBeeの動作確認をしていきます。
すべて設定が正しいことを確認出来たので、基板にマウントします。


加工したFRISKケース入れてみます。

蓋をすると綺麗に収まりました。



2012年8月30日木曜日

量産中

1台目がちゃんと動作したので、とりあえずあと5台まとめて作り始めました。
部品をつける順番を考えながらやらないとハンダゴテが当てにくくなってしまうので考えてから付けます。
まずはB面のチップ部品から。C,R,Tr,Dを付けていきます。

その後、A面のチップ部品とフォトカプラを付け、最後に大物のコネクタ類を付けていきます。
XBeeは直付けするのでFWの書き換えと設定をしてからにします。
HA端子接続用を2つ、電動窓、シャッター用を3つ作りました。
これでXBee以外は載っている状態です。


2012年8月29日水曜日

基板の動作確認

手マウントした1枚目の基板をいよいよ動作確認です。

電動窓の方はちゃんと動きました。
リモートで開閉動作ができています。


床暖房の方は最初ちょっと変な動作をしていました。
何回かon/offをするとERROR7と表示されて床暖房のリモコンが効かなくなってしまい分電盤で電源を一度落とさないと復帰しません。
どうしてか悩みましたがマニュアルを調べてみるとERROR7とは『HA端子に規格違反の信号が入力された』エラーだそうです。
debug用にプログラムのlogを出しすぎていたためHA端子のタイミングが遅くなってしまったようです。logをoffしたらちゃんと動きました。

動作ステータスも最初読めなくて四苦八苦してましたが、C compilerのbugのようです。
以前の手配線基板での実験はMacBookProのMountenLion LLVM3.1でISコマンドの読み取りを

    int d = 0;
    int m = (res[4] << 8) | res[5];
    int p = 7;
    if(m) d = (res[p++] << 8) | res[p++];


のような書き方で書いていたのですが、ちゃんと動作してました。
常時サーバーを立てる前準備として古いCoreSoloのMacMiniのSnowLeopard gcc-4.2では最後の行の
    d = (res[p++] << 8) | res[p++];
の部分がちゃんと解釈されず
    int d = 0;
    int m = (res[4] << 8) | res[5];
    int p = 7;
    if(m) {
      d = (res[p] << 8) | res[p+1];
      p+= 2;
    }
のようにp++を使わないで書かないと動作しませんでした。
debug用にprintfをいれてdの値がおかしいことがわかった段階で、以前仕事でgccを使っていて同じ現象を見たことを思い出して気が付きました。
これを修正したところちゃんと動作ステータスも読めるようになりました。



確認用に1個目を作ってみました


届いた基板の回路が正しいことを確認するためにまず1台目をマウントしてみました。
やはり素人が作るとダイオードの極性をシルクに入れ忘れてたり、変なところにviaがあったりしてマウントしにくいですね。viaももう少し小さくても良かったかな。
やはりプロの設計する基板とは違います。

確認用なので全部の部品を載せています。XBeeもソケットつけていますのでFRISKケースにはちょっと高さ方向がはみ出しています。
ソケットを付けずに直マウントするとちゃんと入りそうです。
B面もマウントしてコネクタのピンが長めなのでカットしました。






2012年8月28日火曜日

プリント基板が届きました

P板.comに注文していた基板が予定通り届きました。
緩衝材に厳重に包まれて大きめのダンボールに入ってました。
周りの緩衝材を外したところです。


出来上がってきた基板です。
A面です。
U1のシルクが欠けています。CADLUX Xのシルクレイヤーを見てみると文字が外枠からはみ出してました。ちょっとチェックが甘かったです。

B面です。こちらは想定通りです。

基板の品質は良好です。シルクやレジストのズレとかもなく良い精度です。
あとで時間を見つけてマウントしてみます。

2012年8月26日日曜日

またDigiKeyで部品購入

基板を作ったので、それに合わせてまたDigiKeyで部品を購入しました。
注文してすぐに届くのでありがたいです。

これが届いた翌日に、前回在庫がなかったけど注文していた部品も届きました。
80円分なのに分割配送で送料は無料でした。

ヘルメットの無線の修理

HangGliderは特定商電力の無線機で地上や同じ空域の他のフライヤーと連絡を取りながら飛びます。
私はヘルメットにマイクとスピーカーを埋め込み、無線機を後ろに貼り付けて飛んでいます。
送信ボタンは延長して、指スイッチをつけています。

ちょっと格好悪いですが、こんな感じです。




こんな感じにヘルメットの耳にSP、顎の部分にMICを埋め込んでいます。






回路は簡単で、余っていたハンディマイクをばらして調べました。
iCOM用はすごく単純で、SPはコネクタに直結、MICはPTTスイッチを介して直結になっています。


指スイッチはベルクロにつけて、手袋の人差し指に巻きつけて使います。


ただ、やはり運動しているときに使うものなのでしょっちゅう断線します。
今回はあちこち断線しかかっていて飛んでる最中に無線が切れたりしたので、配線を全面的にやり直しました。
指スイッチもスペアも含めて2組作っておきました。


2012年8月19日日曜日

FRISKケースの加工

基板の発注も済んだので、ケースを加工してみました。
基板寸法図から計りながらFRISKのケースをカットしていきます。


こんな感じです。

2012年8月18日土曜日

P板.comに注文

検図も済んだのでP板.comに注文しました。
色々枚数を入れて検討してみましたが、17200円+88円*枚数みたいな感じなのでざっくりと50枚で注文しました。
必要なのは電動窓x3,シャッターx3,エアコンx4,床暖房x2,玄関ドアx1,センサーx1の14枚なのでちょっと多めですが、値段を考えるとこのくらい作ってもいいかと思います。
再来週の火曜日に届くようです。
足りない部品を追加注文しなくては。

CADLUS X

続いてパターン設計CADのCADLUS Xです。
パターン設計CADは使ったことがありません。結構難しそうです。
P板.comの設計ガイドを見ながら順番に手順を追ってやってみました。

部品をライブラリから似た形状のものを拾っていきます。
足りない部品を作成します。
外形図レイヤーと共通レジストレイヤーを作成し、コネクタ等の位置の決まっているものを配置します。
CADLUS Circuitのnet-listを読み込んで基板の外側に仮置きします。
ラッツネットを表示させながら仮置きした部品を効率良く配線できそうな位置に配置していきます。
あとは配線をA面縦線、B面横線を基本に電源・GND線から配線していきます。
ベタパターンをGNDとしておいてviaを打ち、DRCチェックとnet-listチェックをしてエラーがなくなれば配線は完成です。
あとはシルク層を作成します。



出来上がりはこんな感じです。
なんとなくそれらしく出来上がりました。
ここまで4〜5時間くらいかかりました。

初めてで怖いので、A面パターン、B面パターンをそれぞれ印刷して、回路図と1本づつ配線確認してみました。OKそうです。
OKだと思っていても組んでみると問題が見つかるものですが、両面基板なので最後は手修正でなんとかなるでしょう。

CADLUS Circuit


P板.comのサイトから回路設計CADのCADLUS Circuitをダウンロードしてinstallします。
さらに基板設計CADのCADLUS Xもダウンロード、ユーザー登録して部品ライブラリもダウンロードしてinstallします。

一般的な回路CADと使い勝手はほとんど一緒です。
部品をライブラリから見繕って登録、回路を書いて結線して完了です。


回路が小さいのと回路CADは昔仕事で使っていたのでHelpを見ながら小一時間で完成しました。

MacBookProでWindowsXP

P板.comの無料CADのCADLUSを使えるようにするためにMacBookProにVirtualBoxを入れてWindowsXPをinstallしました。結構普通に使えます。
CADが32bit Windowsでないとうまく動かいないような記述があったのでXP SP3にしています。
WindowsUpdate等で一晩かかってしまいました。

基板化を検討中

何枚も手配線するのが大変なので基板化を検討中です。
壁のSWの中に設置することを考えると、結構小さく作る必要がありそうです。
電子工作で一般的なFRISKのケースに入れるとすると67mm x 28mmくらいに収める必要があります。
この大きさで両面基板、FR-4、板厚1.0mmでP板.comで調べてみると1〜5枚で17230円、20枚でも18680円、50枚でも21400円、100枚でも26000円となっています。
P板.comでは無料CADも提供してくれているので、とりあえず設計してみます。

2012年8月14日火曜日

ZigBeeを暗号化する

そろそろ、ZigBeeの通信系を暗号化しておかないと他人からコントロールされる可能性があるので(ほぼ有りませんが)Encryption Enableに設定します。


-- cordinator --
EE 01
EO 00
KY 00 11 22 33 ….. ee ff <-- 実際はちゃんと128bitの鍵です。
NK ff ee dd cc ….. 11 00 <-- こちらも。
---> NKを設定すると暫くすると反応しなくなってしまいます。
現状は0設定で使用しています。

-- end device --
EE 01
EO 00
KY 00 11 22 33 ….. ee ff <-- cordinator KYと同じ鍵。

さらに、間欠動作で消費電力を落とすためにsleepの設定もします。

-- cordinator --
SN 01
SP 20

-- end device --
SM 04
SN 01
ST 03 ee
SP 20

どちらも設定したらWRコマンドで不揮発に書き込んでおきます。

異電源系統をフォトカプラで分離

異電源の系統のGNDを共通にすると色々繋いでいった時に危険なのでフォトカプラで分離しました。
HA端子用の回路を拡張してスイッチのコントロール用にしました。
組み直した回路です。

実際に蛇の目基板に組んでみました。
A面の様子です。幾つかチップ部品が乗っているのですが見えないですね。



B面の様子です。同じくチップ部品がちゃんと見えないですね。
グチャグチャになってきたので一度外して作り直しました。



2012年8月9日木曜日

センサーを追加

外気温や外の降雨状態を制御サーバーで見られるようにセンサーを見繕って追加しました。

まず、温度センサーです。
ADCで読んだ電圧から気温が分かります。
XBeeのADCはVrefが内部電圧の1.2Vなので0V~1.2Vの間しか読めません。
温度センサーはMCP9700で0℃で0.5V、50℃で1.0V、100℃で1.5Vとリニアに変化するタイプです。外気温を測るには1.2Vで70℃なので直接接続しても問題ないですね。


現在の気温と自分の体温・体温計で誤差を見てみると1.5℃程度ずれています。
こんなもんかな。 

水センサー
これは乾燥している状態の時は3.3Vが出てしまう回路なので供給側を分圧して3.3Vの1/3にして1.1V供給で接続しています。
水滴を垂らすと少しずつ電圧が落ちていきます。

暑くなったら窓を開けるとか、雨が降ってきたら窓を閉めるとか、色々できそうです。
あと明るさセンサーとかも欲しいですね。

2012年8月8日水曜日

HA端子で制御できるか確認

組んだ回路をいろいろな機器に接続して制御できるかを確認していきます。

まずは接続が簡単な床暖房から繋いでみます。
HA端子に接続し、パソコン側のXBeeにリモートコントロールのコマンドを送ります。
床暖房のコントローラが反応してonになりました。
モニタ信号もちゃんと動作中を示しています。




次は玄関の鍵です。
壁からスイッチ部分を取り外して、中のHA端子に接続します。
床暖房と同じようにリモートからコントロールしてみると玄関の鍵ががちゃんと音がして開け閉めできています。
ちゃんと、開いている状態と閉まっている状態もモニター信号から読み取れています。



次は電動シャッターです。

これはダメです。ステータスは読み出せますが、コントロールできません。
コントロール側をピンセットでショートしても動作しないので何かモードを設定する必要がありそうです。もしくは隣にある2pinのコネクタが怪しいです。
これは電動窓と同じ制御でもできるのでよしとします。 



最後がちょっと厄介なエアコンです。
カバーを外して中を覗いてみると奥の方にHA端子らしきコネクタが見えます。
ネジを外しながら基板を固定している爪をはずして基板を引き出します。
HA端子を接続して試してみるとちゃんと制御できました。
エアコンはiRemoconからも赤外線で制御できるのでHA端子で接続するかどうかは微妙ですが。




HA端子の回路を追加してみた。

床暖房や玄関の鍵、エアコンはHA端子での制御なのでHA端子について調べてみました。

Webで色々調べていくと、フォトカプラを通して絶縁して接続するようにと書いてあります。標準回路があるようなのでそれに準じて作ってみます。
XBeeの基板にHA端子の制御回路を追加してみました。
機器の状態が動作中or閉まっている状態のときはM1端子に電圧がかかるようです。
状態はずっとonになるstatic modeの機器とon/offを繰り返すdynamic modeの機器が存在するようなので、フォトカプラで受けた後にCRで鈍らせてdynamic modeでも適当にHighになるようにしています。




基板A面

基板B面

買ったのがチップ部品ばかりなので蛇の目基板では大変です。
特にフォトカプラが1.27mm pitchなので基板のランドが1pinおきにしかハンダ付けできません。



2012年8月5日日曜日

接続実験

いよいよ接続実験です。
まだまだ、回路を変更して実験しそうなので壁のスイッチ部分にハーネスを追加接続して外に引き出しておきます。


組んだ回路を接続して実験です。


パソコン側のXBeeにAPIコマンドでコマンド列を書き込むとちゃんと電動窓が開閉できています。

あとは、3.3Vの電源をどうやって供給するかとサーバー側のSWを作るのが課題です。
赤外線リモコンで制御できるようにしてiRemoconから制御するか、popでmailを受けて動作するようにするか、DDNSでサーバーを外に見せてSSLで接続するか、ちょっと悩みどころです。
今週末はここまで。


回路を整理しました

大体動きそうな確認がとれてきたので、回路を整理してみました。
電動窓の制御回路です。
XBeeのDIO10,11,12でそれぞれFETを制御して「開」「止」「閉」を押したのと同じ状態を作ります。
誤動作しないように10Kでpull-downしておきます。

これを組んでみました。

A面です。ちょっとチップ部品が載っていますが見えないですね。
チップ部品で組んだので見難いですが、B面右上に部品が載っています。






電動窓の制御の確認

電動窓の方もFETで制御して問題ないかを確認してみました。
SWを押す代わりにXBeeのGPIOでFETを制御すればできるのではないかと思い、まずはFETを通してSWを制御する回路の確認です。
FETに流れる電流が十分なら反応するはずです。





チップ部品で適当に作ったので汚いですがこんな回路です。
SWのところにGPIOを繋げば制御できます。



PushSWを押したらちゃんと窓が開きました。
これでいけそうですが、回路が絶縁されていないのがちょっと気になります。
まぁ、普通の使い方なら問題ないと思いますが。



XBeeの制御をしてみた

適当に組んでみてLocal側のパソコンからターミナルでリモート側のXBeeのLEDをon/offできることを確認してみました。
リモートを制御するにはATコマンドモードではダメでAPIモードでパケットを組んであげないと制御できません。


XBeeのPacketのフォーマットで投げるのにCheckSumを付けなくてはならないので手打ちだと大変です。
あとでプログラム書かないと.....

DigiKeyで部品を見繕って購入

DigiKeyで適当に使えそうな部品を購入しました。
国内のいくつかのサイトも見積もってみましたが7500円以上購入するなら送料が無料になるので断然安いです。少量の購入で送料がかかる場合は+2000円なのでちょっと割に合わないですね。


8/2の夜に注文したら8/5の午前中に届きました。
USミネソタ州からなのに3日で届くなんてビックリです。

UPSで発送されていて成田に着くまではトラッキングできるのですが、国内はクロネコヤマトでトラッキングが途切れます。
UPSのサイトに引き継いだヤマトのトラックナンバーを表示してくれればヤマトのサイトで追いかけられるのに。
まぁ、翌日には届くので問題無いですが。

XBee moduleを購入

家のあちこちにあるスイッチと制御サーバー間を配線を引き回すのは現実的でないので何か無線で出来ないか探してみました。

XBeeというZigBeeで通信するモジュールが1つ1700円で売っていました。これで何かできそうです。

SWITCH SCIENCEでXBeeモジュールを買ってみました。
一緒にXBeeエクスプローラUSBも。

これで、うまく制御出来ないか勉強も兼ねて実験してみます。

勢いで玄関の鍵も見てみました

うちの玄関はリモコンで開閉する鍵です。
無精者の私は普通の鍵にするとダブルロックを片方しか掛けなくなると思ったので、電動にしました。電動だと常に両方の鍵が動きます。

壁に玄関の鍵のスイッチがあるのでこれも開けてみました。 



ちょっとややこしそうですが、JEM-Aと書かれているのがHA端子ですね。
他はスイッチを増設した時の接続端子のようです。


床暖房は?

床暖房は立ち上げ時の消費電力が大きく一度温度が上がるとあまり電力を消費しないものなので、気温が寒い時期は電気代が安い早朝時間にタイマーでonしています。
ただ、これも週末切り忘れていると無駄に温めてしまいます。
制御サーバーでweek dayのみ、気温が低い時のみonするとかプログラムできるようにしたいです。

床暖房は開けるのが簡単でした。
下を引っ張ったら外れました。


こちらは2系統のコントローラなのでHA端子が2つついてます。