2016年3月24日木曜日

HomeServerのinstall

GitHubにRaspberryPi 2 Model Bを使ったSiri対応の学習リモコンのコードを公開しました。
RaspberryPi Model A+/B+でも動くと思います。RaspberryPi 3に関しては確認できたら報告します。

■このソフトで現時点で出来ること
 ・赤外線リモコン、HA端子(JEM-A端子)、弱電スイッチなどの制御
 ・赤外線リモコン信号、HA端子、弱電スイッチ、各種センサーなどのステータス情報取得

 - telnet(socket)経由での上記制御と情報取得(human-readble IF, JSON IF)
 - HomeKit対応アプリからの上記制御と情報取得(HAP-nodeJS経由)
   AppleTV(3rd generation以降)を経由して外出先からの上記制御と情報取得
   iPhoneのsiriによる上記制御と情報取得
   ※ ただしAppleがHomeKitの認証を強化すると動かなくなる可能性あり
 - javascript(node.js)での制御
   センサー等の変化や30sec intervalのイベントでjavascriptの関数が呼び出されるので条件を設定して制御することが可能
     日没にあわせてシャッターを閉める、あかりをつける
     玄関のロックが5分間開いていたらメールする
     雨が降ってきたら窓を閉める
     室温に応じて起床前にエアコンをつける
     窓を開けたらエアコン停止
     etc

■今後追加していきたい機能(余裕があれば)
 - リモコンの学習、各種設定のWebUI化
 - javascriptでの制御部分のVisualPrograming化

■下のブレッドボード用回路の機能
 - 赤外線リモコン送信・受信

■RP-5基板の機能
 - 赤外線リモコン送信・受信
 - ZigBee(XBee)経由でのリモート子機(HA-5)制御
 - HA-5子機の故障診断とファームウェアアップデート、ペアリング

■HA-5基板の機能
 - 赤外線リモコン送信・受信
 - HA端子(JEM-A端子)での家電制御、ステータス確認
 - 弱電(24V以下)のスイッチ制御・ステータス確認(電動シャッターなどのスイッチ)
 - 各種センサー情報の取得(温度、湿度、雨、人感、etc)


ブレッドボード用回路は以下のとおりです。





リモコン学習時のブザー音とリモコン発光時の発光音が不要なら真ん中のブザー音出力ブロックは不要です。

LED101/102はリモコン用の940nmあたりの波長の赤外線LEDなら大体動くと思います。
ちゃんと赤外線LEDが発光しているかどうかはデジカメ等で見ながら発光させると確認できます。
ただし、iPhoneはカメラに赤外線フィルターが入っているようで見えませんでした。

赤外線受光モジュールは電源が逆になっているデバイスもあるので他のものを使う場合は気をつけて下さい。

FETもNchで耐圧がOKなら動くかと思います。こちらもピン配置を確認して使って下さい。

installの大まかな手順を書いておきます。
詳細手順はこちらのREADME.mdを御覧ください。(下の方です)
※scriptからダウンロードするので、gitをcloneする必要はありません。

1.最新版のRASPBIAN JESSIE LITEをダウンロードしてSDカードに書き込みます。
2.SDカードをRaspberryPiにセットしてNetworkを接続し起動後loginします。
3.setup scriptを実行する
 > curl -O https://raw.githubusercontent.com/mnakada/ha1control/master/setup.sh
 > sudo bash setup.sh
4.piのアカウントpasswordを変更する
5.reboot
6.HomeKit対応アプリをiPhoneにinstall
7.対応アプリでHA1HomeServerを登録

国内のエアコン等も大抵のものは動くかと思います。
Daikin/Panasonic/三菱重工は確認しました。

AppleTVの第3世代以降があってiCloudの設定をしてあれば外出先からもアクセス出来ます。
ただし、AppleTVの自動updateをonにしているとupdate後自動起動してくれるのですが、iCloudのloginを一度解除してからもう一度loginし直さないとアクセスできなくなってしまいます。

2016年3月19日土曜日

RP-5基板

最近XBeeの新型のS2Cが出たり、ATmega328も昨年からATmega328pbが出ていてRaspberryPi3も出るし、Kicadも最新版をbuildしたので、回路を見なおして基板を起こし直すことにしました。
これまで親機の方はアクリル板をレーザーカッターで切り抜いてケースを作っていましたが、曲げ加工とか手間がかかるのでTAKACHIのPF-15-3-10Wを使ってみることにしました。
赤外線を通す必要があるので、このケースの前後のパネル部分の代わりに乳白色の半透明アクリル板をレーザーカッターで加工して使ってみます。
赤外線LEDや受光部、RaspberryPiの各種コネクタの位置をパネルの範囲に入るように配置しながら高さ方向の適当な位置を考えていきます。
下の図の赤い線で書かれているのがRP-5基板とRaspberryPiの位置になります。


最初は基板固定用のM2.3用ボスで基板を固定することを考えたのですが、この高さで固定するとRaspberryPiのコネクタがパネルの高さ内に収まらないため3mm程度スペーサーで嵩上げする必要があります。
そこで、ケースの固定用の支柱部分に基板をいれて上側に適当なクッションを入れることでちょうどいい高さに収まらないかと考えています。

基板の回路はこれまでとほとんど変わってませんが、RaspberryPiと接続してIRリモコンの学習用の受光部と発光部、子機との通信用のXBeeと将来置き換えていけるようにESP8266用の回路を入れています。


RaspberryPiと接続して使う場合は下の回路だけ部品をのせることで親機としての機能になります。


Bee経由で子機として使う場合はATmega328pbでリモコン機能を中継する形になります。
回路はシンプルで電源とマイコン、XBee、赤外線受発光部だけになります。



この回路を丁度ケースに入るような形で設計したのが下の基板です。



それほど面積は要らないのですが、ケースに固定する部分の関係で10x15cmに入る位の大きさになってしまいました。
もう1つのFriskサイズの子機基板と一緒にElecrowに発注しました。
今月末くらいに届く予定です。

もう1枚の基板については次回書きます。


2016年3月5日土曜日

玄関の電気錠の修理

うちの玄関はユーシン・ショウワの電気錠なのですが、最近冬場になると鍵を掛けてもステータスが解錠状態のままになっている現象が発生するようになってきてしまいました。

この現象何が困るのかというと、うっかり解錠状態だと思って施錠ボタンを押してしまうと施錠状態なのにさらに施錠しようとしてretryを繰り返し盛大に施錠音が繰り返され、さらにダメ押しに施錠できなかったことを知らせる電子音が鳴り響きます。
子供が寝てる時にうっかりやると確実に起こしてしまうことになります。

最近発生頻度が高くなってきたので、修理見積もりをお願いしたのですが、部品代2万円、工賃1万円の合計3万円だそうです。どうもよくある故障らしいです。
最悪3万円で修理できる事が判ったので、自分で分解修理してみて出来なければ依頼することにしました。

まず、玄関ドアから電気錠のユニットを取り外します。
ユーシン・ショウワ製のN-EPPX-51という製品です。



シールの下もふくめて4本のネジを外して表の金属板を外します。
開けてみるとモーターでギアを回してユニット内のデッドボルトの出し入れをしているのと同時に、右側の白いラックを上下させてドアのダブルロックのもう一方側を制御する仕組みです。



ラックの内側にある金属のプレートが上下することで上下に付いているマイクロスイッチを押して施錠、解錠の状態を見ているようです。


マイクロスイッチの不良か、半田クラックかと見当をつけて基板を取り出して見てみました。
マイクロスイッチ自体はテスターで見てみると問題ありません。
そしてハンダ部分をよく見るとクラックが発生していました。
構造的な問題かと思います。(基板の写真撮り忘れてしまいました)
施錠、開場時にスイッチを押す金属プレートは結構な勢いでマイクロスイッチにぶつかっています。
このマイクロスイッチは力がかかるところなのに3本の脚をハンダ付けして留めてるだけでネジなどで固定されていません。施錠、解錠を繰り返すうちに半田にクラックが発生するのも当然かと思います。
本来なら下面の金属に対して上面からネジ止めするべきなのでしょうが、加工が大変なので基板側からタッピングビスでマイクロスイッチを固定しておきます。
バラす時にギアとラックの位置関係が判るようにマジック等で印を付けてから外していかないと後で苦労します。


うっかり印を付け忘れたため、最適な位置にするために何度も組みバラしすることになってしまいました。
最終的に、バラした手順で仮組みし、コネクタを接続して正常に動くことを確認後取り付けて完了です。

2016年3月1日火曜日

KiCad 4.0.2 bzr6238 for OS-X

OS-Xに関連するbugが今のところfixしているようなので、KiCad 4.0.2 bzr6238をbuildしたイメージをここにおいておきます。
(すみません。日本語fontを入れ忘れてたため更新しました。3/11)
サイズが大きいのでGoogleドライブのウィルススキャン出来ないと警告が出ますが、そのままダウンロードを選択してください。

念のためSHA1のhash値です。
> openssl sha1 kicad-4.0.2_bzr6238j.dmg
SHA1(kicad-4.0.2_bzr6238j.dmg)= 3b1fe687a90742ead03cb6ae08bdd15c14e8fa5c

標準のbuildとは下記の点が異なっています。
- TrackPad/MagicMouseの動作をMacの標準的な動作に変更しています
- Library/Application Support/kicad/internat/ja/のリソースを読むように修正しています
- fontが日本語対応になっています
変更分のpatchはこれです。
あと、なぜかオフィシャルパッケージのkicad-4.0.1.dmgからinternat以下の各国語リソースが抜けてるので、追加してあります。
Bazaarのツリーの方はbzr6225に4.0.2のTagが打たれていますが、公式パッケージは4.0.1が最新のようです。

イメージをダウンロードして開くとkicadアプリケーションとkicadディレクトリがあります。
kicad.appは/Applications
kicadは/Library/Application\ Support
にそれぞれコピーします。(finderで開いた時の矢印のとおりにDrag&Dropして下さい)

ライブラリをgitではなくlocalで持ちたい場合はKiCad extrasもここからダウンロードして展開、modulesとfp-lib-tableをREADME.txtの通りisntallしてください。

最初の1回めは開発元が未確認のため開けませんと言われてしまうので、/Applicationフォルダを開いてKiCadを右クリックし「開く」を選択して、ダイアログボックスの「開く」を選択すると起動します。

詳細とbuildの手順はRC2.0の時に書いたのでこちらを参照して下さい。