2022.9.18
前へ
次へ
ホームページトップへ戻る


PIC−USBIO using BASIC

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
USBインターフェースを内蔵したPICを使ってWindowsパソコンで外部回路を制御するための各種I/O基板の製作記事です。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

[第57回]



●PICUSBIO−03(6)同じパソコンに2台のPICUSBIO−03を接続する(2)

前回の続きです。
前回は同じ1台のパソコンに2台のPICUSBIO−03を接続する方法について書きました。
コマンドライン引数を使うという方法です。
前回は長くなってしまうので全てを書くことができませんでした。
コマンドライン引数を使うように機能追加をしたPICUSBIO用BASICですが前回の説明だけですと以下の疑問が出てくると思います。
PICUSBIO−03を1台しか接続しない場合にコマンドライン引数はどうするのか。
あるいは、PICUSBIO−03以外のPICUSBIOボードを接続するときにはどうするのか。

その疑問に答える前にWindowsOSが2つのPICUSBIO−03をどのように認識しているのかについてまず説明をします。
WindowsOSが接続を検出したUSB機器はデバイスマネージャーを開くことで確認することができます。
下がその画面です。


デバイスマネージャーはWindows7の場合「スタートボタン」→「コントロールパネル」→「ハードウェアとサウンド」と進むと「デバイスとプリンタ」のところにリンクが表示されます。
PICUSBIOボードはデバイスマネージャーで表示されるツリーのうちの「ヒューマンインターフェイスデバイス」のところに表示されます。
そのなかの「HID準拠デバイス」のどれかです。
「HID準拠デバイス」をマウスで右クリックして「プロパティ」を開きます。
「HID準拠デバイスのプロパティ」の「詳細」タプをクリックします。
「プロパティ」(P)のところに「デバイスの説明」ボタンが表示されているはずです。
それをクリックします。
表示される中の「ハードウェア ID」をクリックします。
上の画面(左側部分)は「ハードウェア ID」をクリックしたところです。
そこに表示されるVIDがVenderIDでPIDがProductIDです。
ともに4桁の16進数です。
インターネットは何でも有りでひょっとすると悪用されてしまう可能性が無きにしも非ずですので念のため消してあります。
実際に製品を入手していただいて上の手順で試していただければIDを確認することができます。

それで。
その後ろのREVとあるのがRevisionで前回Release Numberと説明した識別番号です。
これも4桁の16進数です。
PICUSBIO−03には当初は0003を割り当てていました。
前回はそこのところを同じ1台のパソコンに2台のPICUSBIO−03をUSB接続してコマンドライン引数によってそれぞれを個別に識別して接続するようにBASICプログラムに機能追加しました。
PICUSBIO−03の側もその識別ができるように2台のPICUSBIO−03の一方には0030を割り当て、もう一方には0031を割り当てるように変更しました。

さてそこで、やっと今回の疑問についての説明です。
上の画面の左側のデバイスマネージャーの表示によって、PICUSBIO−03が2台接続されていることが確認できます。
その状態で前回と同じようにPICUSBIO用のBASICインタプリタを起動しました(画面右側)。
しかし今回は両方のコマンドプロンプトのどちらもBASICの起動コマンドにコマンドライン引数をつけずに従来と同じように
picio10o[Enter]と入力しています。
前回機能追加を行なったコマンドライン引数はオプションなので入力は必須ではありません。
引数を入力しない場合PICUSBIO−03を個別に識別しないので今までと同じように上側、下側のどちらの窓でも
picio−03 connected
と表示されています。
PICUSBIO−03を1台だけ接続する場合やそれ以外のPICUSBIOボードを接続する場合にも引数を付加しなければ今までと同じように接続されます。

[注記]
このときもしもPICUSBIO−03を1台だけ接続した状態で(たとえばナンバーが0030のボードを接続した状態で)コマンドライン引数をつけて
picio10o 1[Enter]
と入力するとナンバー0031のボードが検出されないため「PICUSBIOボードが接続されていません」と表示されてしまいます。

とそこまで書いてきたのですが。

上の画像のようにPICUSBIO−03を1台しか接続しない状態でPICUSBIO用BASICインタプリタを起動するときにはコマンドライン引数をつけないで
picio10o[Enter]
と入力すると
picio−03 connected
と表示されます。

当初はそれでよいと思ったのですが上の画面の状態でさらに進んでテストを行なっていく中で、テストの内容によってはやっぱり個別の識別番号まで表示させたほうがよい、ということに気が付きました。
どういうことかといいますと。
今回は上の画面の右側のようにコマンドライン引数をつけないでBASICを起動しました。
すると2つのコマンドプロンプト窓にはどちらも
picio−03 connected
と表示されます。
その表示からは0030なのか0031なのかどちらのPICUSBIO−03が接続されているか不明です。
ひょっとすると前回のように上のコマンドプロンプト窓のBASICと下のコマンドプロンプト窓のBASICにはそれぞれ別のPICUSBIO−03が接続されているかもしれません。
上の画面の表示ではそのあたりのことが確認できません。
そこで。
コマンドライン引数をつけないでBASICを起動した場合にはPICUSBIO−03についてはPICIO−03と表示するのではなくて、PICIO−30またはPICIO−31と表示するようにBASICプログラムを変更しました。
そのようにBASICプログラムを変更したあと上の画面と同じように起動してみました。

どちらもPICIO−30と表示されました。
PICUSBIO−03は2台ともUSB接続しています。
しかしやはりそのうちの1台としかつながらないようです。

さて。
この状態でプログラムを実行するとどうなるか?

今回もまた説明が長くなってしまいましたので、この続きは次回にすることにいたします。

PIC−USBIO using BASIC[第57回]
2022.9.18upload

前へ
次へ
ホームページトップへ戻る