読者です 読者をやめる 読者になる 読者になる

メモ帳DPA

ぐぐってあまり引っかからないような何かがあったら書いたりする

介護ベッドのハックと部屋中の機器の自動化について


おうちハック Advent Calendar 2015 18日目です。

介護ベッドの制御の取得

PC環境用に介護ベッドを使っている。最高なのでおすすめです。

照明やエアコンなどの他の機器は既に一括して制御できるようにしており、自動化まで出来ていた。せっかくだしこのベッドも制御下に組み込めるといろいろ楽しそうだしさらに快適になるのではと考えた。
しかし、付属の有線リモコン以外には外部からの操作を受け付ける手段が存在せず、そのままではどうにもなりそうになかったので、物理的にどうにかすることにした。

結果的に、リモコンを改造することで制御を取得することに成功した。それによって、ベッドを含めた部屋全体の自動化と、寝落ち時にそのまま寝かしてくれる仕組み、100%確実に起床する目覚ましを得ることができた。
また、部屋全体の制御について、いろいろ部屋にごちゃごちゃ足しまくった末に削りまくった結果、そこそこの手間で抑えつつそこそこの汎用性とそこそこの拡張性のある、実用的な方式に落ち着いてきたので、以下その辺りについて合わせて書きます。

方法

ベッドの有線リモコンを分解してみると、ボタンを押す→ボタン内の導電性の何かが基板上の接点に接触する→回路がつながって電流が流れる→ベッドが動く、という仕組みだった。
要は指定箇所に電流が流れるかの制御を握れれば、ボタンを押したのと同じ働きが得られることになる。

最終的に、USBで制御できるリレーモジュールを買って接点に接続することで期待通りの動きになった。大体の物理ボタンは同様の方式で改造出来ると思う。

制御セット完成品

上が介護ベッドコントローラの基板、右下がUSBハブ、左下がリレー。単に繋ぎさえすれば作れた。

最初は全部裸でバラバラにそのまま置いておいたんだけど、基盤剥き出しでベッドの下に置くのはホコリが心配なのと、移動させるときに線が外れたりしたのでまとめた。周辺機器をまとめるのに使うゴムバンドの集合体の板(名前が分からない)の上に固定して、ケーブル穴を開けた100均のA4ドキュメント箱に突っ込んでいる。板もA4なので収まりがよかった。

作る時ハマったポイント

・結線が厳しい
接点が1mm弱くらいしか無い上、反応しやすくするために対向の接点が互い違いに入り組んでおり、銅線の接続がかなり難易度高かった。
隣接する黒い線に触れてはいけないので、そのままでは左の青丸の部分(もしくは接点外周のどこか)に繋ぐしかなく、細かすぎて何度やっても失敗した。
いろいろ考えた末、思い切って赤丸の部分を切断した。そうすることで右図の黄緑線部分の当たり判定がなくなり、接続可能な範囲をかなり拡大することができた(右図青丸)。
f:id:de0:20151128183534p:plain


・線が固定できない
繋ぎたい箇所が平坦なので、ハンダも導電性接着剤も上手いことちゃんと固定出来ずにすぐ外れてしまった。
両面基板なため、下手に穴開けるのも壊しそうだったので難しかった、しょうがないので、結局最終的には絶縁テープでそのまま貼り付けることで雑に解決した。


・電力供給
制御のためのUSB接続とは別に電力供給が必要なんだけれど、本体以外一切何も付属していない(マニュアルさえも付いてなかった)ので、自分で用意する必要があった。
電圧の合う適当なACアダプタを用意し、コネクタ切って線繋いでみたがうまく動作しなかったので、駄目元でUSBケーブルを分解して赤黒の線だけ繋いでバスパワー給電するようにしたら動いた。何が悪かったのかは結局良く分からない。

うちの部屋の構成

介護ベッドを制御下に加えられるようになったことで、図のような構成になった。

f:id:de0:20151127233005j:plain


赤外線への集約

現状大半の家電にはリモコンが付いているので、赤外線が一般的な機器の共通規格みたいなものと強引に解釈出来なくもない。

  1. 赤外線に対応している → 学習リモコンに覚えさせておしまい
  2. 信号の届かない位置に機器が存在する → IRベンダ(要は中継器)を入れる
  3. 赤外線非対応機器がある → 機器の電源を赤外線で制御する
  4. 電源制御だけでは期待する動作とならない → リレーを物理的に組み込む

という4段構えで、世の中のほとんど全ての機器は制御を得られる。(はず)

単純だと楽

だいぶアナログ感あるけど、ほとんど既成品を連携させているだけなので、自力でどうにかするべき箇所は図中のオレンジの部分だけで済んでしまう。
機器毎に仕様を覚えたりブリッジ的なものの自作が必要となるような、面倒極まりない事は省略でき、機器が変わっても学習リモコンに信号覚えさせ直すだけで済み、ほぼ何でも追加で組み込める。
かなりシンプルで分かりやすい構成なので構築も運用も楽なことだけは少なくとも間違いない。

足入れヒーター、扇風機、電気毛布なども制御下に入れていたことも有ったが、大して便利にも不便にもならなかったので結局コントロールから外してしまった。機器自体が手の届くところにある、本体がコントローラを兼ねている、自動化させる利点が薄い、を満たすようなものは普通に使ったほうがよさそうな気がする。

そんな具合に、時々足しては引いてはを続けて今の構成に落ち着いているんだけれど、構成変更の際も実際大した手間はかからずかなり簡単に済んでいる。

ソフト部分

リレーモジュールも学習リモコンも、それぞれ公開されている規格に従ってプログラム作りこめば直接制御できるようになるが、いちいち面倒なので手を抜いている。どちらもWindows用のGUIが標準で付いているので、それを起動させておき、単にボタンのクリックを発生させることで済ませた。

方法

制御には AutoHotKey を使っている。
特定のコントロールに対し操作を送る機能が備わっているので、各操作は以下の一行をそれぞれ書いていくだけで定義が済んでしまう。

beddown(){
     ControlClick,TButton9,8 Relay Board Manager
}

なお、直接操作を送るのでGUIは起動さえしておけば画面に表示しておく必要もない。邪魔ならAHKで完全に非表示にさせておくことも出来る。
一度対応付けしたらあとは好きな箇所で好きなように呼ぶだけなのでかなり簡単だし、仮に装置を入れ替えたとしても最小限の変更で収まる。
数えてないが機器コントロールするための一連の記述は自動制御も含めてトータルで100行かその程度だと思う。

割当について

物理レイヤの機器の操作もキーボード操作に押し込めてしまえるので、各種リモコンを普段使いのキーボード一枚の上に集約出来る。
呼び出しについてはホットキーへの割当だけでもよいけれど、適当な使わないキー自体にそれぞれ割り当てておくとワンボタンで操作が効くようになってさらに使いやすい。ファンクションキーはスペースと数字キーの同時押しにアサインしたものを使っているので、空いている物理的なF1~F12キーを制御用に割り当てている。
(話が横道になるけど OneshotModifier_Space.ahk によるSandSの拡張みたいなスペース起点での独自キーマッピングはかなり使い勝手が良いのでおすすめ)

マクロ化

簡単に複数の操作をまとめられるという点も便利度が高いポイントだと思う。
例えば寝るとき用ボタンというものが作ってあって、ライト消してベッド倒してディスプレイ消してエアコン調整する、という一連の操作を一発で行うことができる。
それを寝る前に1回押すのと、ベッドの姿勢の調整をする以外は、基本的に制御下の機器は自動制御に任せており手動での操作は発生しない。

また、AHK上で完結しているので物理的な操作とOS上の操作を混在して書けるのも便利。
例えば起床時の処理として、ベッドを起こして照明とエアコンと画面を付けるという各種物理装置の操作に加え、iTunesの再生を開始し、RSSリーダを表示し、昨晩nasneで録画した深夜アニメのリストを表示させクリックすれば流せる状態にしておく、というような処理をスクリプト上にまとめて書けている。


うちの自動制御

各種操作の制御を得られるようになったことで、手動操作はもちろん、特定の条件下で勝手に動作させることも簡単に出来るようになる。

現状は以下のパターンで自動的に動くようにしている。

家に帰った時

条件:携帯のWifiのDHCP固定IPアドレスへのpingが疎通不可から疎通可能に遷移した時
・照明のON
・エアコンのON
・ディスプレイのON
・ベッドを起こす

家を出た時

条件:携帯のWifiDHCP固定IPアドレスへのpingが疎通可能から疎通不可に遷移した時
・照明のOFF
・エアコンのOFF
・ディスプレイのOFF

朝の起床時間に

条件:タスクスケジューラにスクリプト突っ込むだけ
・エアコンのON
・照明のON
・ディスプレイのON
・ベッドを起こす

寝落ちした時

条件:夜間帯かつ一定時間無操作であった時
・照明のOFF
・エアコンのOFF
・ディスプレイのOFF
・ベッドを倒す


4パターンだけとはいえ、これだけの単純なルールでも、普段使う機器は起動停止を特に意識することなく全く何もしなくても勝手によしなに動いてくれる。よい。
(ちなみに部屋の外の玄関照明などはモーションセンサー付き照明を特に手を加えずにそのまま使うことで済ませ、制御からは外している)

絶対に寝坊しない目覚まし

起床時間にベッドが自動的に座り姿勢に変形するようにしている。これは単純ながらものすごい効果がある。確実に起きる。

だいぶ前にちょっと話題になった、JRの起床マシーンとかなり近い効果が得られていそうに思う。
別に目覚まし用途を目的に作ったわけではなく副産物だったんだけど、物理的に引き起こして座らせることで文字通り強制的に起床させるので、もしかすると効果は本家に匹敵するかもしれない。(JRのものは使ったことないけど)



これを買うと10万弱するようだが、適当な電動ベッドとリレーさえあれば作れるので、代替として自作するのも費用面からしてもかなり有りかと。場所も取らないし。

もう最初から介護ベッド自体にタイマ標準装備でも良いのでは、と思うレベルだけど、ざっと探した感じではそんな製品は見つからなかった。メインユーザが病人とお爺ちゃんお婆ちゃんだから事故防止のために止しているんだろうか。

試したけどやめたことなど

各種制御にあたり、もっと複雑な条件(GPS、温度センサ、照度センサ、視線追跡、非接触IC、音声制御など)もいろいろ試した。しかし、複雑にすればするほど、要求される機器、端末のバッテリ消費、回避すべき誤爆ケース、調整の必要なパラメータなどなど考慮すべき項目が当然どんどん無限に膨れ上がってくる。特に、誤動作の回避と充分な精度の両立はだいたいのケースで予想以上にかなり難しい。

いろいろと装置やサービスを組み込んでみたくなるものだけれど、実際のところ、そんなにきめ細やかな制御が必要な場面はほとんどなく、実用に耐えうる精度でもなかった。
部屋に余計なものあんまり置きたくなかったということもあり、いろいろ削ったら結局は 在宅-外出 / 起床-睡眠 の条件だけになった。

携帯やWebからの操作についても、部屋に居る時は常時キーボードが目の前にある環境であることもあり、最終的にやめた。
もともと単に物理的なボタン一個押せば済んでいたような操作を、端末拾ってロックボタン押してロック解除してアプリ起動してボタン押す、みたいな流れが必要になってしまうのは無駄が多いし、面倒くさくなって使わなくなる。

また、ローカルでどうにかなることはローカルで済ませたほうが色々と利点が多いと思う。IoTのIが何だったのかはもう忘れた。
とりあえず今の環境と用途ではインターネットを必要とする操作は存在していないので、オフラインで完結している。

結局のところ、なるべく単純な構成に留めて単純な条件で動かしたほうが運用が楽だし現実的だというのが私の中の今のところの結論です。

今後について

電動デスクの制御

ちょっと前に電動デスクを買った。

どうせなのでこれも制御下に入れたかったんだけれども、コントローラの外装が接着されてるタイプであり破壊しないとうまく分解できなそうな作りだったのと、失敗した時にコントローラ単品で入手する手段がなさそうなのでまだ保留している。でもそのうちどうにかしたい。

(ちなみに介護ベッドはヤフオクで5000円位出せばコントローラ単品で買える)

寝落ち検出の改良

一定時間キーボードおよびマウスの操作がない場合に寝落ちしていると判断し、寝る時用の状態へ各機器を移行させている。
現状でも一応想定通りの動作はしており、意識を失ったらそのまま自動で寝かしつけてくれていて、気付いたら翌朝を迎えられてたことは何度かあるんだけど、方式上誤爆を防ぐためには十分な猶予時間を設ける必要があるので、発動までタイムラグがあるのが課題となっている。

精度を上げていくにあたって、ベッドが変形することで測定対象(私)のポジションが移動する都合上各種センサ類は使いづらい、人間側に何か装備させるのもあまりやりたくない、そもそもセンサ類は必要以上に増やしたくない、などと制約が結構あり、今のところ現実的な案は特にないんだけれども、何かいい方法を思いつけたら試していきたい。

おわりに

ベッドのようなでかい装置がキーボード操作で変形するのロマンがあるし、操作無しで勝手にまわりの機器が動いてくれるのも未来っぽさがある。
効率厨としても日々要求される定形操作が削れることで快感が得られるので、気分的にも実用的にもかなり具合が良い。(そして環境を試行錯誤すること自体も結構楽しい)

もっと各社のあらゆるタイプの家電が標準的な共通の制御手段を持っていて繋がるような状態を望んでいるんだけど、そういった環境が出来るには、まずはどこかが共通規格みたいなのを作って、各メーカがちゃんと乗っかってきて、一般的な家電含め機器側が共通で対応して、対応機器が普通に出回るようになって…っていうステップが要りそうに思う。
Homekitがそういった流れを作ってくれるのではと期待したが、結局各社全然やる気が見受けられない状況のままなのでとても残念な感じがある。もっとがんばれ。

当面の間はまともな環境は待っていても来そうにないし、そもそも来るのかも分からない。
仕方がないので、既存の物でいろいろと小細工しながら無理やり構築していくしかないというのが現実なんだけど、変な工夫無しでもっとこういうのが普通に組めるくらい、各社からいろいろ充実した機器が出てくる日がいつかやってくるといいなと思います。


使ってる装置

ベッド

学習リモコン

AVC300

リモコンベンダ

Hanwha 汎用 赤外線 リモコンベンダー UMA-IRB01 [赤外線 リモコン 延長]

Hanwha 汎用 赤外線 リモコンベンダー UMA-IRB01 [赤外線 リモコン 延長]

リモコンコンセント

天井照明器具専用 リモコンスイッチOCR-04 07-0154

天井照明器具専用 リモコンスイッチOCR-04 07-0154

リモコンシーリング

OHM リモコンセント OCR?05

OHM リモコンセント OCR?05

参考

リレーの用法

USB給電の方法

寝落ち検出のアイデア(※実装はscrでなくAHK使った)
Blog/2014-12-09 - cubic9.com