2015年2月27日金曜日

RaspberryPi2

RaspberryPi2が発売されたので置き換えを検討し始めました。
取り敢えずRS onlineに注文、3/9に届くそうです。
RP-1基板はRaspberryPi2ではコネクタなど色々配置が変わっているので繋がりません。
今回は色々回路を変えたところもあるので新しい基板を設計することにしました。
前回はP-ban.comで基板作成しましたが、最低でも数万円くらいはかかるので今回は中国の格安基板サービスelecrowを使ってみることにしました。
10cm x 10cmを10枚なら送料込で$34.71なので4千円台です。
CADはCadlusXではガーバーデータを出せないのでEAGLEを使ってみました。
EAGLEならMacでも使えるようなので、少し慣れてみようかと思います。
KiCadもちょっと興味が有るのですが、まずはelecrowでDesignRuleやCAMツールが用意されているEAGLEで作ってみます。

2014年12月19日金曜日

エコキュートの制御 その2

変換コネクタを作ったので繋いでみました。
これは裏側から見た写真です。

こちらは表側

この状態で制御してみると、ちゃんと動作しました。
HA端子のon/offで「ふろ自動」ボタンが制御されます。
HA端子のステータスも「ふろ自動」ボタンのLEDに連動して読み出せます。


とりつけました。


最後にカバーを付けて完成です。
これで風呂の給湯制御が出来るようになりました。
でも、風呂の栓と蓋を自動で出来ないのでいまいちだなぁ。
せめて栓と蓋がされていることを確認出来るようにできないか考えています。
ちょっと難しそうですが。



2014年12月7日日曜日

LEDガーデンライト その4

作ってみました。
結局センサー部は上の隙間から引き出すことで、LEDライトの透明部分にXBeeを収めることにしました。
こんな感じです。

収めたところです。


これで一日太陽にあてて動作すればOKです。




2014年11月30日日曜日

LEDガーデンライト その3


ちょっと作り始めました。
ガーデンライトの回路のうち充電のパスだけ残して外します。
充電電池側に昇圧回路を繋いで出力を引き出します。



これで3.3Vが出来ました。
と、ここまで作ったところでXBeeをどこに配置するか悩んでいます。

1.電池と昇圧回路が入っている黒いケース側にいれる
2.LEDライトの透明な部分に入れる

のどちらかなのですが、1は外周が金属なのでZigBeeの電波が通らなそう。スペースに余裕が有るのに変なところに基板支持用の柱がでていてXBeeモジュールがうまく収まらない。柱を切ってしまえば収まりそうですが、スイッチが使えなくなってしまう。
2もサイズ的にXBeeのモジュールだけでギリギリ、センサーの回路のための基板が入らない。センサーの配線を通すために下に穴を開ける必要があり、構造的に湿気が上がってきて回路が錆びそう。
どちらも一度やってしまうと戻れないので最終的な収まりを考えてからやろうと思います。


とりあえず蓋してみました。


2014年11月14日金曜日

LEDガーデンライト その2


少し時間が空いてしまいました。

結局、CL0116はソーラーセル部分が発電中は充電電池に充電していて、昇圧回路の方は止まってしまうようです。うまく騙して昇圧回路を使えないか考えたのですが難しそうです。

ここはCL0116はソーラーセルから充電電池に充電するためのダイオードだと割りきって、昇圧回路は別途用意することにしました。




こんな回路です。
下の電極間の抵抗が小さくなるとAD1の電位が上がっていくので電圧がある程度以下なら乾燥状態と判断できます。
忙しくてまだ作ってませんが......

2014年10月26日日曜日

LEDガーデンライト

LEDガーデンライトを買ってきました。300円くらいでした。開けてみます。
さらに開けます。

回路を見てみると、なんか4端子のトランジスタのようなICで0116と書かれているものがあり、検索してみるとCL0116 LEDドライバICだそうで秋月で売ってました。回路も参考回路図の通りのようです。ネットで検索すると100均でも同じものが売っているようですね。昇圧回路を含んでいて直接電源も取れそうですが、夜にならないとLEDに給電されないようなので微妙です。やりたいことはソーラーセルから充電電池に昼間に充電しながら、3.3Vを24時間継続的に取り出し観葉植物の土の水分センサーの電源に使うことです。単純にドロップの小さいダイオードでソーラーセルから繋いで充電電池からDC-DCコンバータで昇圧したほうがいいかもしれません。100均で買ってくればソーラーセルと充電電池とケースが108円で買えることになりますね。











2014年10月17日金曜日

エコキュートの制御


観葉植物のセンサーをつくろうと思って部品までは集めましたが、まだLEDランプを買ってきていないので手を付けていません。

風呂の給湯を制御したいとの要望を何人かから聞いたのでちょっと調べてみました。

うちはオール電化でNational時代最後くらいのエコキュートです。



浴室内のコントローラはシールされているので、キッチン側のコントローラを開けてみました。


下側の引掛けを外すとこんな感じで、左端にコネクタが見えます。
取り付け用のマニュアルを見るとこれがHA端子のようです。
でも、通常のHA端子と形が違います。


外してみて、見てみるとpin pitchが2mmです。でも4pinなので多分HA端子の信号そのものかと思います。
とりあえず、左側2pinをピンセットでショートしてみると給湯開始しました。

コネクタ形状はJSTのPHシリーズのように見えます。

HA端子として動作していそうなので、変換コネクタを作って再チャレンジします。



2014年10月10日金曜日

色々とセンサー系を購入






やりたいことは色々あるのですが時間が取れずに進んでいません。
前からつくろうと思っていた観葉植物の水不足センサーを検討しようと思いスイッチサイエンスで部品を買ってみました。
センサー部分です。





こんなもの適当な金属棒2本でいいと思ったのですが、距離が変わると抵抗値が変化してしまうのと、金メッキされてないと電蝕が起こるので買ってみました。トランジスタ付いてるけど要るかなぁ?やってみて調整します。





1.2Vから3.3Vをつくる昇圧コンバータ


よくホームセンターで売っている屋外用のLEDランプを改造して、LEDを光らせる代わりにXBeeを動かすための電源です。多分安いランプだと充電電池が1本だと思うので昇圧が必要です。LEDランプは週末にでも買いに行ってこようと思います。

今のところの構想では太陽電池+充電電池の部分を活かしてXBeeの電源としADCにセンサーを付けて定期的に送信させるものをLEDランプのケースの中で作り込めないかと考えています。
センサーの制御自体は雨センサーと同じでよくてセンサー部の抵抗値を調整すればうまくいくのではないかな。

2014年10月3日金曜日

RaspberryPiのha1control daemonの更新

使わない機能を削除したり、新しい機能を追加したりしているうちにコードがかなり汚くなってきてしまいました。少しづつ掃除も兼ねて見なおしているのですが、なかなか進みません。
今年になってからの主な機能的な変更点は以下のとおりです。

・HA2module/RP-1 RIR基板のAVRマイコンFW updateに対応
 AVRマイコンのコードをbootとアプリケーションFWに分離して、アプリの方はXBee経由でupdate出来るようにしました。bootの方はAVR用の書き込み治具で直接書き換える必要がありますが、こちらはupdate時に使用されるだけなので書き換える必要は特にないと思います。ha1control daemonの起動時にconfig fileで指定したファイルのバージョンとHA2module/RP-1 RIR基板のAVRのFWバージョンを比較して新しいものがあればupdateされます。

・HA2module/RP-1 RIR基板の赤外線リモコン受信に対応
  AVRマイコンのFWに赤外線リモコン受信機能を追加して、受信したらコード化してha1control daemonに通知するようにしました。

・HA2moduleのAVR側のADCサポート
 これまでXBeeのADCを使ってきたのですが、電圧範囲が0~1.2Vで分圧しないと使えなかったりするものが多く0~3.3Vの方がいいなと思っていました。AVRマイコンの方のADCはリファレンス電圧を色々選べてHA2moduleでは3.3VにしているのでこちらのADCも使えるようにしてHoneywellのHIH-5030という湿度センサーをつなげるようにしました。

・LEDTape用のコマンド追加(ledコマンド)
 以前書いたLEDTapeを制御できるようにコマンドを追加しています。リモコンやスイッチのセンサーなどのイベントでLEDTapeを点灯させたり出来るようにしています。

・HA2module/RP-1 RIR基板の情報表示コマンド追加(devinfo)
 FW update対応したことで各デバイスのFWのバージョン情報や動作ステータス、機能情報などを見られるコマンドを追加しました。

・リモコン受信イベント対応
 AVRマイコンで赤外線リモコンを受信したらha1control daemonで何かコマンドを実行する機能を追加しました。適当なリモコンコードをに名前をつけて学習させてconfig fileでそのコード名で実行するコマンドを記述することで赤外線リモコン対応でない電動シャッターや玄関の電気錠などを赤外線リモコンで制御することが可能になります。RaspberryPi本体の赤外線受信機能では残念ながらこの機能は動きません。これは現状の赤外線受信機能のPCM受信部の実装がデバイスドライバではなくユーザー空間で実装したことで常に受信状態にしておくと負荷が大きいためです。デバイスドライバでDMACを使った実装に変更すれば出来そうですがHA2moduleがあるので後回しにしています。

・リモコンコードを学習リモコンに登録するために回数指定でリピートする機能追加
 リモコン受信イベントに追加する時に手持ちの赤外線リモコンだと他の機器が動いてしまうので都合が悪い場合、ha1control daemonで管理しているリモコンコードを適当にコピーして編集することで、他の機器が動かない独自のコードを作成できます。このコードを学習リモコンに登録することで色々使えるようになるのですが、学習リモコンは学習するリモコンコードを連続して受けることを想定しているようなので1回だけコードを送ると登録してくれません。そこでリモコンコードを回数指定して送ることが出来る機能を追加しました。

これらに付随してコマンドの構造を変更したりQueue管理のbugを修正したりという地味な部分に時間がかかってしまってます。
まだまだやりたいことが色々あるのですが現状リモコン受信その3と同じものですがここに置いてあります。

2014年9月26日金曜日

リモコン送信 RaspberryPi編

RaspberryPiの送信側はAVRと共通化出来そうな部分があまりないので、以前からあるFormatAEHA,FormatNEC,FormatSONYはそのままで変更せずにFormatOtherのみ最新のフォーマットに合わせて変更しました。CodeExpandOther()の部分になります。
最初にコードをheader部、PatternTable部、Code部に分けて処理しています。
Code部をビットパターンとそれ以外の処理に分けて、ビットパターンの場合1ビットずつ取り出して0/1High区間、Low区間の長さ、それ以外の場合はPatternTableからHigh区間、Low区間の長さを取り出しHigh区間の間は1CLK毎にHigh/Lowを繰り返し、Low区間の間はLowを繰り返します。
High区間のところをHigh/Lowを繰り返しているのは赤外線LED38KHzのサブキャリアに載せた形で出力されるようにするためです。(76KHzPCM audio I/Fから出力しているためHigh/Lowを繰り返すと38KHzの波形になる)
これらの処理をCode部が終わるまで繰り返しPCMBufferに書き出します。
他のフォーマットは以前のままなので変更なしです。
それぞれのフォーマットのコードをPCMのデータに変換したあと、PCMWrite()をリピート回数分繰り返しPCM audio I/Fからの出力で赤外線LEDをドライブします。


これらのコードはここにあります。