espyの日記: 自作派向け 家庭内コントロールバス案 8
先日の鍵が開いていた件 以来、鍵を補強するグッズやら、
こんな監視カメラを買って置いたりもしているが、
やはり何というか、複数の場所にセンサ類や警報の発音体を設置して、
それらを結んでトータルにモニタしてみたいという欲求が湧き始めている。
ドアや天井に開閉センサや人体センサを置き、電灯にはSSRをつけて
自動で点灯/消灯させるとか、複数の場所にアラームの発音体を置くとか
して、それを何らかのCPUでまとめて制御したい。となると、ホストが
1個でスレーブデバイスが複数、信号線の引き回しは数~十数メートルの
バスが必要だなぁ、と考えるようになった。
ここで、LANとかBluetoothを使えば?なんて言うなかれ。そういう
高級なものはサンデープログラマには荷が重すぎる。それに、パソコンの
世話にならないと動けない仕様のものは使いたくない。スレーブ側は
どうせPICマイコンとか使うだろうし。ホスト側はOpenBlocksとか
L-CardとかT-Engineとかになるかも。(停電時も電池で動けるものがいい)
I2Cは一見良さそうだが、Highをプルアップ抵抗に頼っており、
何メートルも引き回すのには向いていない。
そうなると、シリアルポートを利用するのが簡単そうだけれど、シリアルは
1対1通信なので、これを少しいじって1対多にできないかと考える。
ホストの送信データ(TxD)は複数のスレーブで受ければよいとして、
複数のスレーブからのTxDを、"ぶつからないように" ホストで受ける
手だてを考える。
昨年6月のROBO-ONEテクニカルカンファレンスで、ANDゲートを使った、似た構成が紹介されたが、私が思いついたのは以下のようなもの。
・バスは4線。TxD, RxD, +5V, GND。
・I2C同様、二つの信号線 TxD, RxDに、スレーブのRxD, TxDがぶら下がる。
・スレーブデバイスはPICなどのマイコンで、バスの+5Vで動作。
・N-chの小信号スイッチング用FETを使う。スレーブのTxDは
抵抗分圧で約3Vに落として、FETのドレインに接続。
・4線バスのRxDには、そのFETのソースを接続する。複数の
スレーブのFETのソースが、1本の共通の線につながることになる。
・FETのゲートはマイコンのI/O出力ポートで制御する。
N-chの小信号FETは Vgs(th)が2V(max)くらいのを使う。このFETは
ゲート・ソース間の電位差が1.5V程度あればドレイン・ソース間が
導通する。マイコンの電源が+5Vで、TxDは3Vに落として使うのがミソ。
スレーブから出力するTxDは0V~3Vの範囲だから、ゲートにI/Oピンで
High(約5Vになるだろう)を与えれば、Vgsは確保され,ちゃんと導通する。
ホストはスレーブの誰か1つを指名すると、発言権を得たスレーブは
FETをオンしてホストに向かってデータを出せる状態にし、通信が終われば
FETのゲートをLowにしてHi-Z状態になる、という仕組み。
言葉で書くのはもどかしいな...週末に図を書きますので。はい。
Vgsが低い電圧でオンするFET、アキバだと手に入りにくいかも。
その場合はスレーブマイコンのI/Oを2本使い、H/Lを互い違いに出して
交流のような状態にして倍電圧回路でゲート電圧を作る案もアリ。
土日に実験してみるかな...また秋月に行かないと。(^-^;)
お約束。 (スコア:1)
帰宅してドアを開けた瞬間、警報音がなって家中の電気がつくしケータイにも緊急とかメールが届くし玄関ではなんかぶーびーとらっぷがry(以下妄想
Re:お約束。 (スコア:1)
早速自分で引っかかりますた...
また、面白そうなことを(w (スコア:1)
停電時は低消費電力のCPUを使えばUPSで対応できるかもしれませんね。
uchachaの日記 [hatena.ne.jp]
Re:また、面白そうなことを(w (スコア:1)
それと、こちらの方式は無駄に全二重だったりもして。
#そういえばRSコンポーネンツもエリスショップもDigiKeyもいまだに使ってないな...(-_-;)
そもそも (スコア:1)
夜中に玄関の鍵穴に接着剤詰められて、出社前に鍵交換せざるを
えなくなったことがあります
Re:そもそも (スコア:1)
シリンダー錠なので変えてもピッキングには効かないと思う。変えないより良いでしょうけれど。
なんだかそれは (スコア:1)
Re:なんだかそれは (スコア:1)
ですので、これを許容するのであれば、I2Cの方がPICに搭載されているので良いでしょう。
リンク先の気象台の製作、面白いですね。