VBAUSBIO.DLLにUSB-An用の命令を「USBで電子制御」の本のサンプルを参考にして追加しているところです。
やっと、動かせるレベルまでできました、引続きテスト中です。
Dim ret As Long
Dim iVolts As Long
Dim sDsipAD As String
ret = openUsbIo
If ret = 0 Then
MsgBox "USB-IOが見つかりません"
Exit Sub
End If
ret = setUsbAnMode(0, 10)
ret = inputUsbAn(0, 0)
iVolts = ret * 5000 / 1023
sDsipAD = "[電圧:" + Str(iVolts) + "] "
Me.lbl1.Caption = sDsipAD
closeUsbIo
こんな感じでアナログ入力が出来ます。
もちろん今までの命令もつかえます。
開発中のベータ版のダウンロード先は下記のとおりです。
http://bake-san.com/download/vbausbio/beta/vbausbio_v050.lzh
2007-12-25
2007-12-23
VBAUSBIO.DLLをバージョンアップしました。
入力時の不具合(不定期、及び定期的に入力値が0になる)を対応しました。
新命令も追加しています。
・uio_getvid n
n…番号(0~uio_getdevsで得た値) 繋がれている指定するUSB-IOのvidが戻り値に帰ります.
・uio_getpid n
n…番号(0~uio_getdevsで得た値) 繋がれている指定するのUSB-IOのpidがstatに帰ります.
・uio_selid vid,pid
vid…ベンダーID pid…プロダクトID 複数のUSB-IOが繋がれている場合にvid,pidで指定します.
以上の3命令です。
ダウンロードは下記のアドレスです。
http://bake-san.com/download/vbausbio/v040/vbausbio_v040.lzh
引続きバージョンアップを考えています、次はKm2Net様のUSB-An用の命令を追加予定です。
これにより、USB-Anを簡単に使えるようになります。(予定)
命令は「USBで電子制御」で使われている関数に合わせる予定です。
流用がしやすくなるのではと思っています。
こちらのベータバージョンは下記のアドレスからダウンロードできます。
http://bake-san.com/download/vbausbio/beta/vbausbio_v050.lzh
残念ながらまだまともに動いていません。
また、ダウンロードがしやすいように http://bake-san.com/download/ 以下のディレクトリーは表示されるようにサーバーの設定をしました。
ダウンロード可能なファイルは閲覧できるようになりました。
今までUPしたファイルも少しずつ整理をして行く予定です。
新命令も追加しています。
・uio_getvid n
n…番号(0~uio_getdevsで得た値) 繋がれている指定するUSB-IOのvidが戻り値に帰ります.
・uio_getpid n
n…番号(0~uio_getdevsで得た値) 繋がれている指定するのUSB-IOのpidがstatに帰ります.
・uio_selid vid,pid
vid…ベンダーID pid…プロダクトID 複数のUSB-IOが繋がれている場合にvid,pidで指定します.
以上の3命令です。
ダウンロードは下記のアドレスです。
http://bake-san.com/download/vbausbio/v040/vbausbio_v040.lzh
引続きバージョンアップを考えています、次はKm2Net様のUSB-An用の命令を追加予定です。
これにより、USB-Anを簡単に使えるようになります。(予定)
命令は「USBで電子制御」で使われている関数に合わせる予定です。
流用がしやすくなるのではと思っています。
こちらのベータバージョンは下記のアドレスからダウンロードできます。
http://bake-san.com/download/vbausbio/beta/vbausbio_v050.lzh
残念ながらまだまともに動いていません。
また、ダウンロードがしやすいように http://bake-san.com/download/ 以下のディレクトリーは表示されるようにサーバーの設定をしました。
ダウンロード可能なファイルは閲覧できるようになりました。
今までUPしたファイルも少しずつ整理をして行く予定です。
2007-12-22
VBAUSBIO.DLLのベータ版3
今回のベータ版の大きな目的はDLLの不具合を対応することでしたが、
やっと目的が達成できそうです。
不具合の内容
uio_inp命令で入力するが時々値が0になることがある。
原因
USB1.1とUSB2.0の動作の違い
XPと2000の動作の違い
症状
正式バージョンの場合
USB2.0で不具合(値が時々0になる)がでる。
ベータ版2の場合
USB2.0でOSが2000の時不具合がでる。
Xpは正常動作するようになった(しかし遅い)
ベータ版3の場合
不具合なし(であるといいなぁ)
正式バージョンで症状が出ているテストプログラムでテスト中、今の所問題なし。
ベータ版3は前回と同様の場所からダウンロードできます。
http://bake-san.com/download/vbausbio/beta/vbausbio_beta.lzh
なんか入力が上手く行かないと心当たりがある人は試して見るといいかも。
近いうちに正式バージョンアップします。
ちなみに現在のバージョン(Ver 0.3)は下記の場所からダウンロードできます。
http://bake-san.com/download/vbausbio/v030/vbausbio.lzh
やっと目的が達成できそうです。
不具合の内容
uio_inp命令で入力するが時々値が0になることがある。
原因
USB1.1とUSB2.0の動作の違い
XPと2000の動作の違い
症状
正式バージョンの場合
USB2.0で不具合(値が時々0になる)がでる。
ベータ版2の場合
USB2.0でOSが2000の時不具合がでる。
Xpは正常動作するようになった(しかし遅い)
ベータ版3の場合
不具合なし(であるといいなぁ)
正式バージョンで症状が出ているテストプログラムでテスト中、今の所問題なし。
ベータ版3は前回と同様の場所からダウンロードできます。
http://bake-san.com/download/vbausbio/beta/vbausbio_beta.lzh
なんか入力が上手く行かないと心当たりがある人は試して見るといいかも。
近いうちに正式バージョンアップします。
ちなみに現在のバージョン(Ver 0.3)は下記の場所からダウンロードできます。
http://bake-san.com/download/vbausbio/v030/vbausbio.lzh
2007-12-20
VBAUSBIO.DLLのベータ版2
VBAUSBIO.DLLのベータ版を修正して見ました。
今回の症状を自分の環境で再現できていないのですが、あやしいところを修正して見ました。
同様にテストをお願いできればと思います。
最新版のダウンロードは今までと同じところから出来ます。
http://bake-san.com/download/vbausbio/beta/vbausbio_beta.lzh
今回の症状を自分の環境で再現できていないのですが、あやしいところを修正して見ました。
同様にテストをお願いできればと思います。
最新版のダウンロードは今までと同じところから出来ます。
http://bake-san.com/download/vbausbio/beta/vbausbio_beta.lzh
2007-12-19
重要:VBAUSBIO.DLLベータ版に早速BUG
早速、報告をいただきました、報告をしていただいた方に感謝します。
入力命令で256回目に必ず、値がおかしくなるようです。
256回目ということはバイト変数の値をインクリメントしながら使っているところがあやしいですね。
とりあえずは今までのDllを使って2度読みで正常に読み込みができると思います。
対応は少し時間をいただければと思います。
入力命令で256回目に必ず、値がおかしくなるようです。
256回目ということはバイト変数の値をインクリメントしながら使っているところがあやしいですね。
とりあえずは今までのDllを使って2度読みで正常に読み込みができると思います。
対応は少し時間をいただければと思います。
2007-12-18
VBAUSBIO.DLLのベータ版公開
汎用USB-IOをVBAで簡単に制御するためのDllのバージョンアップを予定しています。
現在、作成中のベータ版を公開しますのでテストをお願いできればと思っています。
変更点は大きく2点あります。
1.USB2.0に接続時に入力値が時々0になる不具合を対応(USB1.1等では症状がでません)
2.複数接続時のプロダクトID,ベンダーIDの取得及び、プロダクトID,ベンダーIDによる選択命令追加
使い方はダウンロードした圧縮ファイルの中のテキストを参照してください。
不明な点があればメールや掲示板でご連絡ください。
ダウンロードは下記のアドレスです。
http://bake-san.com/download/vbausbio/beta/vbausbio_beta.lzh
現在、作成中のベータ版を公開しますのでテストをお願いできればと思っています。
変更点は大きく2点あります。
1.USB2.0に接続時に入力値が時々0になる不具合を対応(USB1.1等では症状がでません)
2.複数接続時のプロダクトID,ベンダーIDの取得及び、プロダクトID,ベンダーIDによる選択命令追加
使い方はダウンロードした圧縮ファイルの中のテキストを参照してください。
不明な点があればメールや掲示板でご連絡ください。
ダウンロードは下記のアドレスです。
http://bake-san.com/download/vbausbio/beta/vbausbio_beta.lzh
2007-11-23
FC8をVMWareでセットアップする
最近仕事が本当に忙しくてブログも当分書き込みをしていません、すみません。
今は時間を見つけてFC8を入れてみようとがんばっているところです。
FC7では何も問題なくVMwareで動作したのですが、FC8は簡単に行きそうにないですね。
サウンドはうまく認識できなかった、現在はサウンドを殺して使用しています。
何とかインストールができたもののまだ不安定な状態です。
汎用USB-IOの動作テストまでは道のりが遠い感じがします。
汎用USB-IOとは関係ないですが、自動車の自動ミラー格納をする回路を試しているところです。
簡単な回路でできるのでうまく出来ればこちらもまた報告をいたします。
今は時間を見つけてFC8を入れてみようとがんばっているところです。
FC7では何も問題なくVMwareで動作したのですが、FC8は簡単に行きそうにないですね。
サウンドはうまく認識できなかった、現在はサウンドを殺して使用しています。
何とかインストールができたもののまだ不安定な状態です。
汎用USB-IOの動作テストまでは道のりが遠い感じがします。
汎用USB-IOとは関係ないですが、自動車の自動ミラー格納をする回路を試しているところです。
簡単な回路でできるのでうまく出来ればこちらもまた報告をいたします。
2007-09-28
↑↑ブログの内容が検索できます
左上の「ブログ検索」からバケさんの電子工作のブログの内容が検索ができます。
たとえば「USB-IO」で検索すると過去のUSB-IOに関する書き込みが一覧で表示されます。
テスト運用のようですが、活用してみてください。
2007-09-20
「USBで電子制御」の書評を書きました。
2007-09-18
FC7でRoot権限が無くても汎用USB-IOの動作OK!!
現在最新のFC7での汎用USB-IOの動作確認OKの報告と
掲示板にご報告をいただいたkosugettiさんの方法でRoot権限が無くても作成したプログラムを正常動作させる方法の動作確認OKの2点を合わせてご報告をいたします。
まず、FC7での汎用USB-IOの動作確認
開発ツールのインストールだけではlibusb(開発用)がインストールされないのでyumで追加インストールします。(suでルート権限を与えてインストールします)
# yum install libusb libusb-devel
このブログで書き込みしたテストプログラムソースをusb-testフォルダーにダウンロードし、コンパイルをします。
$ mkdir usb-test
$ cd usb-test
$ wget http://bake-san.com/bdenshi/musbiobase.h
$ wget http://bake-san.com/bdenshi/usbio_test.c
必要に応じてmusbiobase.hのベンダーID、プロダクトIDを変更してください。
先頭に#defineで設定しているUSB_VENDORとUSB_PRODUCTを持っている汎用USB-IOにあわせます。
コンパイルします。
$ cc -o usbio_test usbio_test.c -I/usr/local/include/ -L/usr/local/lib/ -lusb
-I/usr/local/include/ -L/usr/local/lib/はデフォルト値なので省略しても大丈夫ですが、
念のため設定をしています。
ここでsuでRoot権限を与えてプログラムを実行します。
# ./usbio_test
以上でプログラムで記述した通りに各ポートがON/OFFされると思います。
次は掲示板にご報告をいただいたkosugettiさんの方法で
Root権限が無くても作成したプログラムを正常動作させる方法です。
「/etc/udev/rules.d/55-myrules.rules」というファイルを新たに作ればRoot権限が無くても作成したプログラムを正常動作させることが出来ます。
55-myrules.rulesの内容は下記のとおりです。
# For TECHNO KIT
SUBSYSTEM=="usb_device",SYSFS{idVendor}=="12ed",SYSFS{idProduct}=="1003",MODE="0666"
# For Km2Net
SUBSYSTEM=="usb_device",SYSFS{idVendor}=="1352",SYSFS{idProduct}=="0100",MODE="0666"
SUBSYSTEM=="usb_device",SYSFS{idVendor}=="1352",SYSFS{idProduct}=="0101",MODE="0666"
現在購入可能な汎用USB-IOをすべて記述していますが、持っている汎用USB-IOの記述だけでも大丈夫です。
注意事項が1点あります、FC7が正常に起動してから汎用USB-IOをつなげないと今回の設定が有効になりません。
FC7を起動時に汎用USB-IOをつないでいて正常に動作しない時には一度汎用USB-IOを抜いて差し直せば今回の設定が有効になり、正常に動作できるようになります。
FC7が正常に起動してから汎用USB-IOをつなげないと今回の設定が有効にならない件については引続き調査中です。
情報をいただいたkosugettiさんに感謝いたします。
掲示板にご報告をいただいたkosugettiさんの方法でRoot権限が無くても作成したプログラムを正常動作させる方法の動作確認OKの2点を合わせてご報告をいたします。
まず、FC7での汎用USB-IOの動作確認
開発ツールのインストールだけではlibusb(開発用)がインストールされないのでyumで追加インストールします。(suでルート権限を与えてインストールします)
# yum install libusb libusb-devel
このブログで書き込みしたテストプログラムソースをusb-testフォルダーにダウンロードし、コンパイルをします。
$ mkdir usb-test
$ cd usb-test
$ wget http://bake-san.com/bdenshi/musbiobase.h
$ wget http://bake-san.com/bdenshi/usbio_test.c
必要に応じてmusbiobase.hのベンダーID、プロダクトIDを変更してください。
先頭に#defineで設定しているUSB_VENDORとUSB_PRODUCTを持っている汎用USB-IOにあわせます。
コンパイルします。
$ cc -o usbio_test usbio_test.c -I/usr/local/include/ -L/usr/local/lib/ -lusb
-I/usr/local/include/ -L/usr/local/lib/はデフォルト値なので省略しても大丈夫ですが、
念のため設定をしています。
ここでsuでRoot権限を与えてプログラムを実行します。
# ./usbio_test
以上でプログラムで記述した通りに各ポートがON/OFFされると思います。
次は掲示板にご報告をいただいたkosugettiさんの方法で
Root権限が無くても作成したプログラムを正常動作させる方法です。
「/etc/udev/rules.d/55-myrules.rules」というファイルを新たに作ればRoot権限が無くても作成したプログラムを正常動作させることが出来ます。
55-myrules.rulesの内容は下記のとおりです。
# For TECHNO KIT
SUBSYSTEM=="usb_device",SYSFS{idVendor}=="12ed",SYSFS{idProduct}=="1003",MODE="0666"
# For Km2Net
SUBSYSTEM=="usb_device",SYSFS{idVendor}=="1352",SYSFS{idProduct}=="0100",MODE="0666"
SUBSYSTEM=="usb_device",SYSFS{idVendor}=="1352",SYSFS{idProduct}=="0101",MODE="0666"
現在購入可能な汎用USB-IOをすべて記述していますが、持っている汎用USB-IOの記述だけでも大丈夫です。
注意事項が1点あります、FC7が正常に起動してから汎用USB-IOをつなげないと今回の設定が有効になりません。
FC7を起動時に汎用USB-IOをつないでいて正常に動作しない時には一度汎用USB-IOを抜いて差し直せば今回の設定が有効になり、正常に動作できるようになります。
FC7が正常に起動してから汎用USB-IOをつなげないと今回の設定が有効にならない件については引続き調査中です。
情報をいただいたkosugettiさんに感謝いたします。
2007-09-08
汎用USB-IO講座、12個までのLEDをON/OFFする
汎用USB-IOはPort0とPort1があり、Port1は比較的電流を多く流せます。
Port1をつかえば4つまでのLEDをON/OFFできます。
それ以上のLEDをON/OFFさせるためにはPort0を使う必要があります。
Port0は流せる電流が少ないのでトランジスタなどを使って多くの電流をON/OFFできるようにします。
その回路が図にあるものです。
一気に8個分書いたので複雑に見えますが同じ物が8つあり、比較的簡単な回路だと思います。
回路図通りにブレッドボードを使って回路を組んで見ました。
汎用USB-IOとブレッドボードを接続するにはピン配列変換ケーブルが便利です。組立パソコンのパーツを扱っている店にはあると思います。
自分が持っているブレッドボードではスペース上8個までですが同じ回路をもう4つ作成してPort1も使うと12個LEDをON/OFFできます。
実際にvbausbio.dllを使ってOn/Offさせるプログラムです。
[VB,AB,VBA]
uio_out(0,&hFF,0)'All Off
uio_out(0,&hFE,0)'Port0 0BitのみON
uio_out(0,&hFD,0)'Port0 1BitのみON
uio_out(0,&hFB,0)'Port0 2BitのみON
uio_out(0,&hF7,0)'Port0 3BitのみON
uio_out(0,&hEF,0)'Port0 4BitのみON
uio_out(0,&hDF,0)'Port0 5BitのみON
uio_out(0,&hBF,0)'Port0 6BitのみON
uio_out(0,&h7F,0)'Port0 7BitのみON
uio_out(0,&h0,0)'All ON
uio_out(0,&hAA,0)'1個飛ばしでON
写真は1個飛ばしで出力している時のものです。
次回はもう少し詳しく(ブレッドボードのレイアウト等)説明したいと思います。
2007-08-14
汎用USB-IO講座、4つのLEDをON/OFFする
汎用USB-IOはPort0とPort1があり、Port1は比較的電流を多く流せます。
赤色LEDなどは10mA程度で光るので何とか制御できます。
光らせたい端子に0を出力するとVccから指定の端子に流れてLEDがつきます。
実際にvbausbio.dllを使ってOn/Offさせるプログラムです。
[VB,AB,VBA]
uio_out(1,&hF,0)'All Off
uio_out(1,&hE,0)'Port1 0BitのみON
uio_out(1,&hD,0)'Port1 1BitのみON
uio_out(1,&hB,0)'Port1 2BitのみON
uio_out(1,&h7,0)'Port1 3BitのみON
「プログラム解説」
uio_outの第1パラメータはPortNoです。
今回はPort1を使用するので1をセットします。
uio_outの第2パラメータは出力データです。
2進数に置き換えてON/OFFをセットしてそれを10進数の値にしてパラメータを与えます。
また、今回の回路は希望のBitを0にするとLEDが点灯します。
全てOFFは2進数で1111 これを16進数にするとF &hをつけると16進数を10進数に変換するのでそれを与えます。
Port1 0BitのみONは2進数で1110 これを16進数にするとE &hEを与えます。
あと同様に
1101、16進でD
1011、16進でB
0111、16進で7
もし0Bitと1Bitをつけたい場合は 1100となり、16進でCになります。
第3パラメータは0で使用してください、高度な制御をする時に使います。(今回は説明を省きます)
最後に今回はPort0を使いませんでした、Port0は電流があまり流せないのでLEDでも上手くつかないのでもし使用する場合電流が流せるようにトランジスタなどで回路を考える必要があります。
次回に説明予定です。
赤色LEDなどは10mA程度で光るので何とか制御できます。
光らせたい端子に0を出力するとVccから指定の端子に流れてLEDがつきます。
実際にvbausbio.dllを使ってOn/Offさせるプログラムです。
[VB,AB,VBA]
uio_out(1,&hF,0)'All Off
uio_out(1,&hE,0)'Port1 0BitのみON
uio_out(1,&hD,0)'Port1 1BitのみON
uio_out(1,&hB,0)'Port1 2BitのみON
uio_out(1,&h7,0)'Port1 3BitのみON
「プログラム解説」
uio_outの第1パラメータはPortNoです。
今回はPort1を使用するので1をセットします。
uio_outの第2パラメータは出力データです。
2進数に置き換えてON/OFFをセットしてそれを10進数の値にしてパラメータを与えます。
また、今回の回路は希望のBitを0にするとLEDが点灯します。
全てOFFは2進数で1111 これを16進数にするとF &hをつけると16進数を10進数に変換するのでそれを与えます。
Port1 0BitのみONは2進数で1110 これを16進数にするとE &hEを与えます。
あと同様に
1101、16進でD
1011、16進でB
0111、16進で7
もし0Bitと1Bitをつけたい場合は 1100となり、16進でCになります。
第3パラメータは0で使用してください、高度な制御をする時に使います。(今回は説明を省きます)
最後に今回はPort0を使いませんでした、Port0は電流があまり流せないのでLEDでも上手くつかないのでもし使用する場合電流が流せるようにトランジスタなどで回路を考える必要があります。
次回に説明予定です。
2007-06-26
ブレッドボードとアルミ板
ICをブレッドボードで使う場合、動作不安定になることが良くあります。
コンデンサーをつけても改善されず、困っていました。
WEBを検索してみると、ブレッドボードの下にアルミ板を置くといいようです。
念のため、アースに接続して使っています。
簡単な回路では上手く動いています、今まで上手く動かなかった回路もチャレンジしてみたいと思っています。
上の写真はキャパシタとソーラーを使ってセキュリティダミーのランプを作成してテストをしているところです。
参考までに回路は以下の通り。
2007-06-12
VB6.0でヘルプが表示できません
VB2005をインストールしてその後、VB6.0をインストールすると「ヘルプが表示できません」とメッセージが出てヘルプが出なくなりました。
逆は大丈夫のようです、おそらくインストールする順番でなるのではと思っています。
これも不確かですが、VB2005とVB6.0を両方インストールしているマシンで出たり出なかったりしています。
VB2005とVB6.0を両方ともアンインストールして、インストールする順番を変えてみたり色々しましたが一度症状が出るとインストールしなおしてもだめなようです。
今回の症状は下記のリンクの内容を対処して上手く出るようになりました。
http://support.microsoft.com/default.aspx?scid=kb;ja;250334
概要は以下の通り。
原因
vshelp.dll ファイルがオペレーティング システムのレジストリに正しく登録されていません。
先頭へ戻る
解決方法
regsvr32.exe を使用して vshelp.dll をレジストリに登録しなおします。
例) regsvr32 "C:\Program Files\Common Files\Microsoft Shared\VS98\VSHELP.DLL"
結構困ったのでブログに記録しておきました。
逆は大丈夫のようです、おそらくインストールする順番でなるのではと思っています。
これも不確かですが、VB2005とVB6.0を両方インストールしているマシンで出たり出なかったりしています。
VB2005とVB6.0を両方ともアンインストールして、インストールする順番を変えてみたり色々しましたが一度症状が出るとインストールしなおしてもだめなようです。
今回の症状は下記のリンクの内容を対処して上手く出るようになりました。
http://support.microsoft.com/default.aspx?scid=kb;ja;250334
概要は以下の通り。
原因
vshelp.dll ファイルがオペレーティング システムのレジストリに正しく登録されていません。
先頭へ戻る
解決方法
regsvr32.exe を使用して vshelp.dll をレジストリに登録しなおします。
例) regsvr32 "C:\Program Files\Common Files\Microsoft Shared\VS98\VSHELP.DLL"
結構困ったのでブログに記録しておきました。
2007-06-08
ベクターからダウンロード可能(vbausbio.dll)
VBA用 USB-IOをベクターからダウンロードできるようにしました。
これでダウンロードしやすくなるのではと思います。
また今後、バージョンアップも考えていますので、バージョンアップ通知を設定しておくといいかもね。
<ライブラリ作品番号:PS431109>
VBA用 USB-IOコントロールDll 0.3
vbausbio.lzh (vbausbio.lzh)
07/06/01 5282
概要: VB、AB、Excelで簡単に汎用USB-IOをコントロール
説明ページ: http://www.vector.co.jp/soft/win95/prog/se431109.html
P.S.
このvbausbio.dllは (Kiffyさん情報ありがとうございます。)
Delphi6でも動作するようです、Delphi用の定義部を準備中です。
VB.Net(VB2005)、C#、の定義部も準備の予定です。
これでダウンロードしやすくなるのではと思います。
また今後、バージョンアップも考えていますので、バージョンアップ通知を設定しておくといいかもね。
<ライブラリ作品番号:PS431109>
VBA用 USB-IOコントロールDll 0.3
vbausbio.lzh (vbausbio.lzh)
07/06/01 5282
概要: VB、AB、Excelで簡単に汎用USB-IOをコントロール
説明ページ: http://www.vector.co.jp/soft/win95/prog/se431109.html
P.S.
このvbausbio.dllは (Kiffyさん情報ありがとうございます。)
Delphi6でも動作するようです、Delphi用の定義部を準備中です。
VB.Net(VB2005)、C#、の定義部も準備の予定です。
2007-05-22
汎用USB-IOのVBA専用Dll Ver1.0β 開発中
Vista対応が終わったら機能UPしたいと思っていました。
まず、手始めに複数の汎用USB-IOを簡単に制御できるようにベンダーID(vid)、プロダクトID(pid)を指定して選択できる機能をつけました。
現在入手先としてテクノキットさんとKm2Netさんがありますが、それぞれ違うベンダーIDとプロダクトIDが使われています。
この2つを同時につなげておいて、ベンダーIDとプロダクトIDを指定して動作させることにより同時使用が可能になります。
また、Km2Netさんでは複数使用を目的にプロダクトIDの違うものを販売されています。
お願いすればたぶんプロダクトIDの違うものを用意していただけると思います。
2台以上でも可能になりますね、そのときには連絡をいただければDllも対応いたします。
VBでのコーディング例(全角文字を使っているのでコピーする場合注意)
Private Sub Command1_Click()
Dim ret As Long
uio_find
If uio_selid(&H12ED, &H1003) = 0 Then 'ベンダーID,プロダクトIDを指定
MsgBox ("vid=" + Hex(uio_getvid)) 'ベンダーIDを取得
MsgBox ("pid=" + Hex(uio_getpid)) 'プロダクトIDを取得
ret = uio_out(0, &HAA, 0) 'Port0に出力
ret = uio_out(1, &HAA, 0) 'Port1に出力
Else
MsgBox ("指定のUSB-IO機器が見つかりません")
End If
End Sub
β版Dllはここからダウンロード
vbausbio_beta.lzh
β版VBサンプルはここからダウンロード
beta_test.lzh
まず、手始めに複数の汎用USB-IOを簡単に制御できるようにベンダーID(vid)、プロダクトID(pid)を指定して選択できる機能をつけました。
現在入手先としてテクノキットさんとKm2Netさんがありますが、それぞれ違うベンダーIDとプロダクトIDが使われています。
この2つを同時につなげておいて、ベンダーIDとプロダクトIDを指定して動作させることにより同時使用が可能になります。
また、Km2Netさんでは複数使用を目的にプロダクトIDの違うものを販売されています。
お願いすればたぶんプロダクトIDの違うものを用意していただけると思います。
2台以上でも可能になりますね、そのときには連絡をいただければDllも対応いたします。
VBでのコーディング例(全角文字を使っているのでコピーする場合注意)
Private Sub Command1_Click()
Dim ret As Long
uio_find
If uio_selid(&H12ED, &H1003) = 0 Then 'ベンダーID,プロダクトIDを指定
MsgBox ("vid=" + Hex(uio_getvid)) 'ベンダーIDを取得
MsgBox ("pid=" + Hex(uio_getpid)) 'プロダクトIDを取得
ret = uio_out(0, &HAA, 0) 'Port0に出力
ret = uio_out(1, &HAA, 0) 'Port1に出力
Else
MsgBox ("指定のUSB-IO機器が見つかりません")
End If
End Sub
β版Dllはここからダウンロード
vbausbio_beta.lzh
β版VBサンプルはここからダウンロード
beta_test.lzh
2007-05-20
汎用USB-IOのVBA専用DLLのVista対応 出来た!
やっとですが、汎用USB-IOのVBA専用DLLのVista対応が出来ました。
ダウンロードはこちらから(vbausbio.dll)
Vistaが販売される前から調べていたのですが結局今まで分からず、K-Kさんが先にHSP用USBIOプラグインをVista対応されたので参考にさせていただき出来ました。
k-kさんに感謝!!
Vistaにどうやって対応されたのかはコピペをして対応したので理解できていませんが、これからゆっくり調べて見たいと思っています。
ダウンロードはこちらから(vbausbio.dll)
Vistaが販売される前から調べていたのですが結局今まで分からず、K-Kさんが先にHSP用USBIOプラグインをVista対応されたので参考にさせていただき出来ました。
k-kさんに感謝!!
Vistaにどうやって対応されたのかはコピペをして対応したので理解できていませんが、これからゆっくり調べて見たいと思っています。
2007-05-07
汎用USB-IOのVBA専用DLLのVista対応 WDK
あまりにも、難航しているのでちょっと電子工作をして頭をほぐしてきました。
また、再開して解析や調査をしているところです。
開発環境(コンパイル用のコマンドプロンプト)ではライブラリなど、リンクするものがOSにより切り替えられていました。
この環境を調べてインクルード先やリンク先を上手く指定すれば動くかも?
同時にサンプルソースも解析して特別なことをしていないか、違う命令を使っていないか再度調査中です。
ソースのいたるところに、USERモードとかカーネルモードとか記述されています、ちょっと気になっているので合わせて調査中です。
また、再開して解析や調査をしているところです。
開発環境(コンパイル用のコマンドプロンプト)ではライブラリなど、リンクするものがOSにより切り替えられていました。
この環境を調べてインクルード先やリンク先を上手く指定すれば動くかも?
同時にサンプルソースも解析して特別なことをしていないか、違う命令を使っていないか再度調査中です。
ソースのいたるところに、USERモードとかカーネルモードとか記述されています、ちょっと気になっているので合わせて調査中です。
エレキジャックのPICライター
エレキジャックの5月号で紹介されているPICライターはPIC Writer 509 作成 で私が紹介している509ライターの機能とJDMプログラマの機能の両方を持ち、ファームウェアの書き込みも他のPICライターを使わずに書き込みができるようになっていました。
13Vも昇圧回路で発生させていました。
AVアダプターを使う設定でしたが、安定化された5VでいいのでUSBの電源から取得が可能なのではと思います(未検証←検証しました、USBの電源で上手く動きます)
PICをこれから始めたい人には安価に始められる(若干、電子工作をかじっていないと難しいかも)、とても参考になる本ではと思います。
基板もついているので部品を間違えなく取り付ければ(購入は必要)成功率が高いのではと思います。 ←検証しました、基板があるのはすごく楽ですね、部品一覧と基板のシルク印刷を見比べながら作成してミス0で出来ました。
ただ、ファームウェアを書き込むときはUSBシリアル変換ケーブルを使うと難しいのではと思います。
ファームウェアを書き込む時だけ本体内蔵タイプのシリアルポートを使うと確実なのではと推測(経験から)します。
←検証しました、USBシリアル変換ケーブルでバッチリ書きこめました、すばらしい。
1度ファームウェアを書き込み出来てしまえば、気持ちよく動作すると思います。
←気持ちよく、動いています。
未検証なので、文章が「思います」ばかりですね、すみません。
←思いますではいけないので、部品を買って作成しました。
結構、すんなり動きました。
実はファームウェアの書き込みで失敗しました。
ディップスイッチD3をOFFにして、書き込まないといけないのですが、D3以外も全部OFFにしておかないと失敗します。
D3OFFを過大解釈してD3以外をONにして失敗しました、全てOFFでリセットして書き込んで正常に出来ました、要注意です。
(自分みたいにヒネクレ者はいないと思うので大丈夫かな??)
13Vも昇圧回路で発生させていました。
AVアダプターを使う設定でしたが、安定化された5VでいいのでUSBの電源から取得が可能なのではと思います(未検証←検証しました、USBの電源で上手く動きます)
PICをこれから始めたい人には安価に始められる(若干、電子工作をかじっていないと難しいかも)、とても参考になる本ではと思います。
基板もついているので部品を間違えなく取り付ければ(購入は必要)成功率が高いのではと思います。 ←検証しました、基板があるのはすごく楽ですね、部品一覧と基板のシルク印刷を見比べながら作成してミス0で出来ました。
ただ、ファームウェアを書き込むときはUSBシリアル変換ケーブルを使うと難しいのではと思います。
ファームウェアを書き込む時だけ本体内蔵タイプのシリアルポートを使うと確実なのではと推測(経験から)します。
←検証しました、USBシリアル変換ケーブルでバッチリ書きこめました、すばらしい。
1度ファームウェアを書き込み出来てしまえば、気持ちよく動作すると思います。
←気持ちよく、動いています。
未検証なので、文章が「思います」ばかりですね、すみません。
←思いますではいけないので、部品を買って作成しました。
結構、すんなり動きました。
実はファームウェアの書き込みで失敗しました。
ディップスイッチD3をOFFにして、書き込まないといけないのですが、D3以外も全部OFFにしておかないと失敗します。
D3OFFを過大解釈してD3以外をONにして失敗しました、全てOFFでリセットして書き込んで正常に出来ました、要注意です。
(自分みたいにヒネクレ者はいないと思うので大丈夫かな??)
2007-05-02
定電流UPコンバーター (ダイソー315円改)
未検証ですが、面白い回路を思いついたのでUPしておきます。
以前にダイソーのシガーライターソケット用携帯電話充電器を改造して5Vから13Vを出力するUPコンバーターを作成しました。
その回路を少し変更して定電流化してみました。
LEDのドライブ用に使えて抵抗などよりははるかに効率がいいと思われます。
R3の抵抗で電流が決まります。
R3が82Ωの時にLEDに15mA流れます、LEDは5個ぐらいまでは増やしても可能ではと思います。
R3を16Ωと18Ωの抵抗を並列につなげると8.47Ωになり、147mAでちょっとしたハイパワーLEDも可能だと思います(未検証ですが)
改造前のDOWNコンバータのままでのテストでは上手く動作しています。
思いつきを忘れないうちに回路図にしておきました、時間が出来たら検証をしたいと思います。
注意!!、この回路でLEDを接続せずに電源を入れるとICが壊れると思います。
必ずLEDを接続してテストしてください。
2007-04-25
PIC16F648Aを試してみる! (RA4に出力できない)
今まではPICといえば、16F84Aを使っていたのですが、今これを買おうとすると結構高い!!
なのでPIC16F648Aを購入して試しています。
16F84Aに比べると機能がいっぱいあり楽しみです。
とりあえず、LEDをつけてみることにしました。
初心に戻って始めましたが、早速はまりました。
どう設定してもRA4だけ出力が出来ないのです、
データシートを確認するとRA5はInputのみなので出力できなくていいのですがRA4はOutput出来るはずなのです。
1晩なやんで今日バスの中でデータシートをながめていたら、内部回路がRA4だけおかしいなぜかRA4だけオープンドレインになっています。
さらにデータシートをよく読むとRA4だけオープンドレインになっていると記述があった。
どうりで、ということはLEDを付け直せば大丈夫ですね。流れ込みの回路で家に帰ったら試して見よう!
ロジックレベルで使用するにはプルアップ抵抗が必要になりますね。
16F84Aを使っていたころは諸先輩方の回路とプログラムを参考にしていたので問題にならなかったようです。
データシートはよく読まないといけませんね。
なのでPIC16F648Aを購入して試しています。
16F84Aに比べると機能がいっぱいあり楽しみです。
とりあえず、LEDをつけてみることにしました。
初心に戻って始めましたが、早速はまりました。
どう設定してもRA4だけ出力が出来ないのです、
データシートを確認するとRA5はInputのみなので出力できなくていいのですがRA4はOutput出来るはずなのです。
1晩なやんで今日バスの中でデータシートをながめていたら、内部回路がRA4だけおかしいなぜかRA4だけオープンドレインになっています。
さらにデータシートをよく読むとRA4だけオープンドレインになっていると記述があった。
どうりで、ということはLEDを付け直せば大丈夫ですね。流れ込みの回路で家に帰ったら試して見よう!
ロジックレベルで使用するにはプルアップ抵抗が必要になりますね。
16F84Aを使っていたころは諸先輩方の回路とプログラムを参考にしていたので問題にならなかったようです。
データシートはよく読まないといけませんね。
2007-04-24
PIC Writer 509 作成
前回のPICプログラマーのUSB電源化では、秋月のPICプログラマーを使いましたが、ちょっと大きいので前から気になっていたPIC Writer 509を作成して見ました。
サポートしているPICも結構多く(自分が使いたいPICは全てOK)、サクサク書き込みが出来ています。
写真の右側(緑色の基板)がUSシリアル変換モジュールです。
左側の基板の上半分がPIC Writer 509です。
左側の基板の下半分が5Vから13Vを作り出す、昇圧回路です。(PICプログラマーのUSB電源化で紹介したものと同じもの)
コンパクトになり持ち運びに便利になりました。
PICプログラマーのUSB電源化
秋月のUSBシリアル変換モジュールを取り付けました。
電源はこのUSBシリアル変換モジュールから5Vを取っています。
当初はRS232CレベルコンバータIC部分を取り除いて直接つなげようと思っていましたが、パターンが小さく上手く取り除けそうに無いのであきらめました。
USBは1口だけですむようになり便利になりました。
2007-04-20
PCでLED電流制限抵抗を求める
HPではなく、鍋テックの鍋電卓(PCで動作する関数電卓)でLED電流制限抵抗を求められるようにしました。
あまり、意味は無いかもしれませんが、いちいちIEを立ち上げて・・・とせずに、
鍋電卓を立ち上げてすぐ計算が出来ます。
ノートを持ち歩いて・・・電子工作・・・しない気がしてきた。
せっかく作ったのでソースを載せておきます。
以下、ソース
----------
cls
print "LED電流制限抵抗を求める"
input "電源の電圧(V) ?", be
print "電源の電圧"; be; "V"
input "LEDの電流(A) ?", la
print "LEDの電流";la; "A"
input "LEDの電圧(V) ?", le
print "LEDの電圧";le; "A"
input "LEDの直列個数 ?", n
print "LEDの直列個数";n; "個"
print "---------------------"
lr = (be - le * n)/la
rw = lr * la * la
print "抵抗=";lr; "Ω ";rw;"W"
end
----------
ソースはここまで
あまり、意味は無いかもしれませんが、いちいちIEを立ち上げて・・・とせずに、
鍋電卓を立ち上げてすぐ計算が出来ます。
ノートを持ち歩いて・・・電子工作・・・しない気がしてきた。
せっかく作ったのでソースを載せておきます。
以下、ソース
----------
cls
print "LED電流制限抵抗を求める"
input "電源の電圧(V) ?", be
print "電源の電圧"; be; "V"
input "LEDの電流(A) ?", la
print "LEDの電流";la; "A"
input "LEDの電圧(V) ?", le
print "LEDの電圧";le; "A"
input "LEDの直列個数 ?", n
print "LEDの直列個数";n; "個"
print "---------------------"
lr = (be - le * n)/la
rw = lr * la * la
print "抵抗=";lr; "Ω ";rw;"W"
end
----------
ソースはここまで
2007-04-17
携帯でLED電流制限抵抗を求める
AUの携帯限定ですが、EZアプリでプログラムが可能な電卓があります。
てくの電卓を参照してください。
要注意:ダウンロードする時のみ315円必要です(2007/04/17現在)
このてくの電卓用のLED電流制限抵抗を求めるプログラムを作成しました。
PCが無い所で(店で)使えるようになり、自分は便利になりました。
このためだけに300円は高いかも、いろいろ使えそうなので
もっとたく活用(プログラムを作成するなど)すれば安いと思います。
出来たら携帯用サイトで計算できるものを作りたいと思っています。(いつになるやら?)
以下プログラムソース
----------
P(start LED R)
HALT
P(LED I)
HALT
STM[1]
P(LED E)
HALT
STM[2]
P(LED N)
HALT
STM[3]
P(BATT E)
HALT
STM[4]
(
M[4]
-
M[2]
*
M[3]
)
/
M[1]
=
HALT
*
M[1]
*
M[1]
=
HALT
----------
プログラムはここまで
使い方
実行させる
「start LED R」が表示される。
=(中ボタン)で進める
「LED I」が表示される。
LEDに流したい電流をAで入力(20mAの場合は0.02)
「LED E」が表示される。
LEDに加える電圧をVで入力(白色LEDなどは3.6)
「LED N」が表示される。
LEDの個数(直列接続のみ対応)を入力
「BATT E」が表示される。
電源電圧をVで入力
LED電流制限抵抗が表示される。
=(中ボタン)で進める
LED電流制限抵抗のワット数が表示される。
実際に抵抗を購入するときはここで計算された
値の倍以上のワット数のものにする。
以上。
てくの電卓を参照してください。
要注意:ダウンロードする時のみ315円必要です(2007/04/17現在)
このてくの電卓用のLED電流制限抵抗を求めるプログラムを作成しました。
PCが無い所で(店で)使えるようになり、自分は便利になりました。
このためだけに300円は高いかも、いろいろ使えそうなので
もっとたく活用(プログラムを作成するなど)すれば安いと思います。
出来たら携帯用サイトで計算できるものを作りたいと思っています。(いつになるやら?)
以下プログラムソース
----------
P(start LED R)
HALT
P(LED I)
HALT
STM[1]
P(LED E)
HALT
STM[2]
P(LED N)
HALT
STM[3]
P(BATT E)
HALT
STM[4]
(
M[4]
-
M[2]
*
M[3]
)
/
M[1]
=
HALT
*
M[1]
*
M[1]
=
HALT
----------
プログラムはここまで
使い方
実行させる
「start LED R」が表示される。
=(中ボタン)で進める
「LED I」が表示される。
LEDに流したい電流をAで入力(20mAの場合は0.02)
「LED E」が表示される。
LEDに加える電圧をVで入力(白色LEDなどは3.6)
「LED N」が表示される。
LEDの個数(直列接続のみ対応)を入力
「BATT E」が表示される。
電源電圧をVで入力
LED電流制限抵抗が表示される。
=(中ボタン)で進める
LED電流制限抵抗のワット数が表示される。
実際に抵抗を購入するときはここで計算された
値の倍以上のワット数のものにする。
以上。
2007-04-07
PICプログラマーのUSB電源化
PICプログラマーをノートコンピュータを使ってどこでもつかえるように電源をUSB化して見ました。
以前はPICプログラマー自体を作成しようと考えていましたが、USBtoシリアルケーブルの問題で上手くできませんでした。
今回は市販のPICプログラマーを使い電源のみの改造になります。
フォトライブラリーに記録を残しておきました。
詳しくはRight Stuff Wrong Stuffの秋月のPICプログラマーをUSB化する を参照してください。
電源はRight Stuff Wrong Stuffの出来るだけ安価に5Vから13Vを作るの回路をそのまま使用しています。
良く調べていたら参考にしたRight Stuff で販売している5U-KIT(5V系ロジック回路をUSBポートに接続できるようにするキット)を使えば 参考にしたサイトの記事と同じようにUSBに直接接続できそうです。
近いうちにトライしたいですね。
4月11日、秋月でFT232RL USBシリアル変換モジュール を注文しました。
このモジュールのRS232CレベルコンバータICの部分を取り除き取り付けてやろうかと考えています。
以前はPICプログラマー自体を作成しようと考えていましたが、USBtoシリアルケーブルの問題で上手くできませんでした。
今回は市販のPICプログラマーを使い電源のみの改造になります。
フォトライブラリーに記録を残しておきました。
PICプログラマーU |
電源はRight Stuff Wrong Stuffの出来るだけ安価に5Vから13Vを作るの回路をそのまま使用しています。
良く調べていたら参考にしたRight Stuff で販売している5U-KIT(5V系ロジック回路をUSBポートに接続できるようにするキット)を使えば 参考にしたサイトの記事と同じようにUSBに直接接続できそうです。
近いうちにトライしたいですね。
4月11日、秋月でFT232RL USBシリアル変換モジュール を注文しました。
このモジュールのRS232CレベルコンバータICの部分を取り除き取り付けてやろうかと考えています。
2007-03-16
LEDを使った光のビーズ
最近、電子工作に時間がほとんど取れていないので他の方の製作記事を紹介します。
お気に入りでも紹介しているRLCさんのブログでLEDを使った光のビーズ、これは電子工作(特にLED関係)マニアとしてはとても興味ある内容です。
仕組みはLEDを使った光のビーズのしくみで紹介されています。
LEDを使うときに極性を意識せず、電圧も広い範囲で使える便利な回路です。
RLCさんも書かれていましたけど、LEDメーカーがこの回路を組み込んだLEDを出せばいいのにねと思います。
今後、LEDはもっと使いやすいようになっていくのではと思います。
LEDを使った光のビーズ、自分でも作ってみたいですね、それに色々応用ができそう。
お気に入りでも紹介しているRLCさんのブログでLEDを使った光のビーズ、これは電子工作(特にLED関係)マニアとしてはとても興味ある内容です。
仕組みはLEDを使った光のビーズのしくみで紹介されています。
LEDを使うときに極性を意識せず、電圧も広い範囲で使える便利な回路です。
RLCさんも書かれていましたけど、LEDメーカーがこの回路を組み込んだLEDを出せばいいのにねと思います。
今後、LEDはもっと使いやすいようになっていくのではと思います。
LEDを使った光のビーズ、自分でも作ってみたいですね、それに色々応用ができそう。
2007-02-18
汎用USB-IOのVBA専用DLLのVista対応 WDK
結局、まだ対応ができていません。
ドライバーの切り口から調べ始めると、どんどん深みにはまっている感じです。
DDKのサンプルソースのフォルダー構成が98からXpまではWDM(Windows 98/Me/2000/XPで共通して使えるデバイスドライバを開発するための枠組み。)というくくりになっていたのですが、
VistaからのWDKではWDMというくくりが無くなりいきなりHIDになっていましたね。
同じサンプル(hclient)を探すのに手間取ってしまいました。
今回の参考になりそうなサンプルを確認して見ました。
2000のOS上でDDKの環境でコンパイルテストもOK。
VistaのOS上でWDKの環境でコンパイルテストもOK。
なんかこの辺りを調べると解決策がありそうなので引き続き調査中です。
ドライバーの切り口から調べ始めると、どんどん深みにはまっている感じです。
DDKのサンプルソースのフォルダー構成が98からXpまではWDM(Windows 98/Me/2000/XPで共通して使えるデバイスドライバを開発するための枠組み。)というくくりになっていたのですが、
VistaからのWDKではWDMというくくりが無くなりいきなりHIDになっていましたね。
同じサンプル(hclient)を探すのに手間取ってしまいました。
今回の参考になりそうなサンプルを確認して見ました。
2000のOS上でDDKの環境でコンパイルテストもOK。
VistaのOS上でWDKの環境でコンパイルテストもOK。
なんかこの辺りを調べると解決策がありそうなので引き続き調査中です。
2007-02-08
汎用USB-IOのVBA専用DLLのVista対応
Vista用のドライバー開発の知識が必要なのかぁ。
VistaからはDDKではなくWDK(Windows Driver Kit )になるようなのでとりあえずダウンロードしてセットアップしてみました。
サンプルもインストールされたので見ていますが命令が違いますね。
自分の予想では今までの命令を使う前におまじないの命令を実行して権限を与えてるのではと思ったのですがだいぶ違うのでどこをどうしたら良いのか分からない状態です。
いいサンプルが無いか探している所です。
VistaからはDDKではなくWDK(Windows Driver Kit )になるようなのでとりあえずダウンロードしてセットアップしてみました。
サンプルもインストールされたので見ていますが命令が違いますね。
自分の予想では今までの命令を使う前におまじないの命令を実行して権限を与えてるのではと思ったのですがだいぶ違うのでどこをどうしたら良いのか分からない状態です。
いいサンプルが無いか探している所です。
2007-02-06
汎用USB-IOのVBA専用DLLのVista対応
VBからAPIで呼ぶ場合とVC++から呼ぶ場合で何か違うのでしょうか?
同じ命令なのにVC++で作成したDllでは上手く動きません。
Vistaの正式バージョンでもVBはしっかり動きます。
VB6をサポート対象にしているので
VB6だったらという、何か特殊なことをしているのでしょうか?
やっぱり、何かの権限なんでしょうか。
引き続き調査をします。
同じ命令なのにVC++で作成したDllでは上手く動きません。
Vistaの正式バージョンでもVBはしっかり動きます。
VB6をサポート対象にしているので
VB6だったらという、何か特殊なことをしているのでしょうか?
やっぱり、何かの権限なんでしょうか。
引き続き調査をします。
2007-02-05
汎用USB-IOのVBA専用DLLのVista対応 その後
Vistaが発売されてもまだ対応が出来ていません、すみません。
正式バージョンを購入して試しましたが、やっぱりダメですね。
VBのソースとDLLのソースを見比べながら、組みなおしを考えています。
Vistaを触っていますが、標準セットアップ以外のことをしようとすると、分からないことが多いですね。
悪戦苦闘中です。
正式バージョンを購入して試しましたが、やっぱりダメですね。
VBのソースとDLLのソースを見比べながら、組みなおしを考えています。
Vistaを触っていますが、標準セットアップ以外のことをしようとすると、分からないことが多いですね。
悪戦苦闘中です。
2007-01-02
あけましておめでとうございます。
登録:
投稿 (Atom)