Km2Net 様で USB-I/Oキット を発売しています。
という情報を ゆういち@砂GGB から頂きまして・・。
調べてみたところ、値段は1500円!安い!
しかも、制御ソフトやDLL等もけっこうあるらしいので、買ってみました。今、御覧頂いているHPは、
とにかくLEDを動かしてみたいんじゃ!
という人向け。
動作確認だけなら Km2Net 内で配布されている I/O ControlManager で十分です。ちなみに、写真の基板にはピンヘッダがついていますが、これは自分で付けた物。
キットには含まれていません。

動かすまでにちょっと悩みました。Km2Net
からのリンクで色々勉強しました。
USB-I/Oの端子は下図のように全部で12pinあります。
どれも入出力が可能。 ピンクで示したピンは Port0 と呼ばれ、青色で示した部分は
Port1 と呼ばれるようです。
それぞれ別々に駆動させることが出来ます。
GND |
GND |
|
| 1 |
0 |
|
| 3 |
2 |
|
| 5 |
4 |
|
| 7 |
6 |
|
| 1 |
0 |
|
| 3 |
2 |
|
VCC |
VCC |
今回は、回路図のように VCC と Port1 の
No.0pin をつなぎました。
ちょっと変な回路に見えますが、これは
No.0 の出力がないとき、すなわち、出力が0Vの時、LEDが点灯する
No.0 の出力が有るときは、LEDは消灯する
という事になります。
VCC は USB からの電源 +5V が出ています。
で、No.0pin が 0V ですから、 VCC - No.0pin 間の電圧差は 5V 。
これが LED と抵抗ににかかるので、LED が点灯するのです。
こういう回路は制御ピンが電流を吸い込んでいるように見えるので 「 吸い込み型接続 」 と呼ばれたりします。
吸い込み型接続の利点は、電流を多く流せる所です。
欠点は、感覚的にわかりづらい。
なんで吸い込み型を使うの?
・・・・理由は後述、いや、他のページかな・・。
USB-I/O の制御ドライバは?
という疑問が頭に浮かんだのですが 色々HP回って調べたところ、USBポートに刺すだけで認識するようです。
なんでだろ・・・・まあ、動けば良いんです。動けば(笑)
HSP USB-IO用プラグイン Ver 0.1e K-K 氏作
というDLLをVisualBasicで呼び出し、USB-I/O を制御しました。
DLLの宣言をしている標準モジュールは
バケさんの趣味の部屋
http://bake-san.com/
に掲載されている物をそのまま流用させていただきました。
DLLを使わない方法もあるのですが面倒くさそうなので。やっぱシンプルが一番ですから☆
作ってみた制御ソフトはこちらです。ソース付き。
バケさんの趣味の部屋のソースコード読みまくり。ほとんどコピペです(^^;Port1 Out 0 と Port1 Out 0 を交互に押せばLEDチカチカします。
Port1 Out 0 を押すと Port1 に 10進数「0」 =2進数「0000」が書き込まれます。
2進数「0000」は1桁目が0なので、出力はLow。
つまり、0Vとなります。
動作原理で説明の通り、0V の時はLED点灯になります。Port1 Out 1を押すと Port1 に 10進数「1」 =2進数「0001」が書き込まれます。
2進数「0001」は1桁目が1なので、出力はHigh。
つまり、+5Vとなります。
動作原理で説明の通り、+5V の時は電圧差が発生しないのでLED消灯になります。
上記「制御ソフトその1」の派生です。
コマンドライン引数に書いた数値の2進数がそのままPort0に出るようにしたモノです。
usbio_command.zip (11kB) ソースファイル入り
基本原理は「その1」と同じなので省略!
実際にいじってみればわかります。(無責任でゴメンナサイ・・)コマンドラインやバッチファイルなどで数字の引数を指定して下さい。
zipファイル中にバッチファイルが入っているので参考にどうぞ。
数字以外だと 0 が出力される、はずです。【具体例】
usbio_command.exe 0 ←2進数 00000000 が出力。全て0Vになります
usbio_command.exe 1 ←2進数 00000001 が出力。Port0 No0pinのみ5Vに
usbio_command.exe 6 ←2進数 00000110 が出力。Port0 No1&No2のみ5Vに戻り値は、成功の場合は 0。うまくいかなかったときは-1が戻ってくる・・はずです。
正直、エラー処理とか全く作り込んでません(^^;制御に使うDLLには、バケさんの趣味の部屋の VBA用DLL(vbausbio.dll) を使わせていただきました。
バケさんありがとうございますっ!(^^)
今回HSP用の物は使っていません。
テストですので・・・。ミノムシクリップで接続しただけです。
USB-I/O はUSBポートに刺すだけで認識しました。
いやはや、便利。
win98 では認識しましたが、win98CDROMからのファイル読み込みが必要になりました。
動作結果ですが、
Port1 の No.0pin の出力ON => 消灯
Port1 の No.0pin の出力OFF => 点灯
となります。
Km2Net 内で配布されている
I/O ControlManager
を使ってみるのも手です。
テスト版ですが、これは操作が簡単で良い!
念願の USB で制御です。
これで COM ポート等が無いノートパソコン等からも簡単に家電制御できるようになりました。
我が家には自作加湿器があるのですがタイマーが無いので、代わりにPCタイマープログラムを組み
制御してます。
AC100V スイッチには秋月電子で購入した
ソリッドステート・リレー(SSR)
\350 を使用しました。
ソリッドステートリレー(SSR)は、半導体制御のリレーと思ってください。
消費電流はLED消費電流と同じくらいなので、このUSB-IOからでも制御できます。

このUSB-I/Oですが、出力電流が小さいのでLEDなどは吸い込み接続にしました。
Km2Net 様のHPでも吸い込み型接続で説明されてます。
個人的には、吸い込み接続だとプログラムで書き込む数値と、実際の動作が反転しているので嫌いです。
あとでなんとか普通接続しようかと。
それはまた次の機会に・・。
FLASHでUSB-IOを動かすソフトを作った方がいらっしゃいます。(HP:みはま系)
GUI構築が楽になりますねー。作戦指令:停電後のLinkstationに自動で電源を入れよ!でUSB-IOを利用されたそうです。動画付きでイメージ湧きやすいかも!(HP:水田さん)
こういう、既存のIT機器制御にも便利です。
2008/2/24
制御ソフト その2 「コマンド引数で制御」
を追加。
追加に伴い、制御ソフト関連のレイアウトを変更。
各種リンク切れを修正。
リンクの項目を作成。