vbausbio.dllのv100を暫定公開していましたが。
bugがあり正常に動作していませんでした。
開発に最新のVisualStudioを使って原因の切り分けが難しくなっていましたので、
この度、VC++6.0の環境を復活させて見直ししました。
いい感じになったので再度暫定公開をします。
開発環境が元に戻ったのでバージョンを戻しましたv070になります。
ダウンロードは以下の場所からできます。
http://bake-san.com/download/vbausbio/v070/vbausbio_v070.zip
動作確認をした環境は
○WindowsXP + Excel2003
○Windows7 32bit + Excel2013 32bit
○Windows8 32bit + Excel2013 32bit
×Windows8 64bit + Excel2013 64bit
※2013/01/15追記
vbausbio.dllは32bitのdllのため、64bitのアプリケーションからは使えないようです。
OSが64bitでもアプリもdllも32bitであればWOW64の機能で動作するみたいです。
64bitと32bitの混在は不可とのこと。
Windows8 64bitでも Excelが32bitであれば動作しそうです。
いままで上手く動作しなかった方は一度試してみていただければと思います。
開発環境は32ビットですが64bitでも上手く動作するかもしれません。
誰か人柱になっていただいてテストをお願いできればと思います。
問い合わせをいただいていた、
VisualStudioをインストールしないと動かない
uio2_outなどの命令が定義されていないなどのエラーがでる。
などの不具合に対応しています。
また、命令の表記が統一されていないものがありv100で統一していました。
そのため逆に今までのプログラムが動かなくなっていました。
今回のv070では今までの表記も残しています。
該当の命令は以下のとおりです。
uio_getdevs
uio_getDevs
uio_seldev
uio_selDev
uio_getvid
uio_getVid
uio_getpid
uio_getPid
uio_selid
uio_selId
定義がされていなかったのは以下の命令です。
途中でソースがデグレートしていたようです。
uio_cmd
uio2_out
uio2_inp
uio2_inOut
uio2_outIn
uio2_setSys
uio2_getSys
2013-01-13
2011-10-16
VBAUSBIO.DLL V1.00 公開間近!!
久々の書き込みになります。
Km2Net様からUSB-IO2.0と書籍「かんたん!USBで動かす電子工作」が販売開始されたので
自分が公開しているvbausbio.dllを対応させようと作業していました。
新命令を追加することでUSB-IO2.0に対応させました。
今までの汎用USB-IOにも対応できるように今までの命令は残してあります。
また今回の対応でUSB-FSIOの動作確認、
Windows7 32bit/64bitでの動作確認も合わせて出来ています。
今回はVB2010EXPRESSとExcel VBAで動作確認しましたので、
両方の定義ファイルも用意しています。
まだ、ドキュメントが整備できていないので暫定での公開になりますが
以下の場所からダウンロードできます。
http://bake-san.com/download/vbausbio/v100/vbausbio_v100.lzh
これも暫定ですが、VB2010EXPRESSのサンプルも
以下の場所からダウンロードできます。
http://bake-san.com/download/sample/VB2010/VBAUSBIOTEST.LZH
Km2Net様のUSB-IO2.0は秋月から購入できるようになりました。(1000円です)
http://akizukidenshi.com/catalog/g/gM-05131/
書籍はアマゾンから購入できます。
参考資料:
Km2Net様からUSB-IO2.0と書籍「かんたん!USBで動かす電子工作」が販売開始されたので
自分が公開しているvbausbio.dllを対応させようと作業していました。
新命令を追加することでUSB-IO2.0に対応させました。
今までの汎用USB-IOにも対応できるように今までの命令は残してあります。
また今回の対応でUSB-FSIOの動作確認、
Windows7 32bit/64bitでの動作確認も合わせて出来ています。
今回はVB2010EXPRESSとExcel VBAで動作確認しましたので、
両方の定義ファイルも用意しています。
まだ、ドキュメントが整備できていないので暫定での公開になりますが
以下の場所からダウンロードできます。
http://bake-san.com/download/vbausbio/v100/vbausbio_v100.lzh
これも暫定ですが、VB2010EXPRESSのサンプルも
以下の場所からダウンロードできます。
http://bake-san.com/download/sample/VB2010/VBAUSBIOTEST.LZH
Km2Net様のUSB-IO2.0は秋月から購入できるようになりました。(1000円です)
http://akizukidenshi.com/catalog/g/gM-05131/
書籍はアマゾンから購入できます。
参考資料:
2010-05-26
USB-FSIO(汎用USB-IOの後継)がキャンペーン価格で購入できます。
Km2Netさんから2010/05/28から出荷予定のUSB-FSIOです。
今までの汎用USB-IOと同サイズにもかかわらず、かなり機能アップしています。
今はキャンペーン中で今までの汎用USB-IOの1500円に+500円の2000円で購入出来るようです。
Km2Netさんの意気込みが感じられますね、購入を検討されている方は耳よりな情報だと思います。
自分が公開しているvbausbio.dllは現在対応作業中です。
おそらく、USB-FSIOのコマンド追加という形で今までのUSB-IOも使えるものになるのではと思います。
VB.NET(VB2008)のサンプルはKm2NetさんのHPで入手出来ます。
Linuxのサンプルは私が公開しているソースを手直ししていただいているのでそれが使えると思います。vbausbio.dllの対応を優先しているのでそのソースのテストが出来ていません、時間をみてテスト予定です。
未テスト了解のもとであれば以下のリンクから入手出来ます。
http://bake-san.com/download/usbfsio/linux/
また、前回のブログにもあるようにRubyにも対応を考えています。
とりあえずは従来の汎用USB-IOに対応させて、USB-FSIOにも対応を考えています。
USB-FSIOの概要は以下の通り。
・USBインターフェイスを使った入出力基盤で、デジタル入出力、アナログ入力、PWM制御が行える入出力基板です。
・USB 2.0(FullSpeed)で入出力制御を行います。
・デジタル入出力最大19ピン、アナログ入力最大5Ch、PWM制御最大5Chが利用可能です。
※モーター、RCサーボ、LED調光が簡単に行えます。
・1回の命令で複数の出力が出来るようになり、効率的に信号送信が可能です。
・62Byteのユーザー用フラッシュロムを利用すれば、シリアル番号の登録やセキュリティーデバイスも作成可能です。
使ってみての感想
PICと同様に電流が扱えるのでLEDも直接点灯出来ます(Max200mA、LEDで10~20個、電流制限抵抗は必要です)
どのピンをデジタル、アナログ、PWMの割り当てもPIC同様にコマンド出来るのもいいですね。
ブレッドボードで使えるようにピン配列が変更されているので便利になりました。
USB-FSIOから電源を取る場合は右側のフリースペースにVCC、GNDが用意されているのでリード線を付ければ取れますが、USBの規格上500mAまでなので200mAを超える場合は外部電源を用意したほうがいいと思います。
今までの汎用USB-IOと同サイズにもかかわらず、かなり機能アップしています。
今はキャンペーン中で今までの汎用USB-IOの1500円に+500円の2000円で購入出来るようです。
Km2Netさんの意気込みが感じられますね、購入を検討されている方は耳よりな情報だと思います。
自分が公開しているvbausbio.dllは現在対応作業中です。
おそらく、USB-FSIOのコマンド追加という形で今までのUSB-IOも使えるものになるのではと思います。
VB.NET(VB2008)のサンプルはKm2NetさんのHPで入手出来ます。
Linuxのサンプルは私が公開しているソースを手直ししていただいているのでそれが使えると思います。vbausbio.dllの対応を優先しているのでそのソースのテストが出来ていません、時間をみてテスト予定です。
未テスト了解のもとであれば以下のリンクから入手出来ます。
http://bake-san.com/download/usbfsio/linux/
また、前回のブログにもあるようにRubyにも対応を考えています。
とりあえずは従来の汎用USB-IOに対応させて、USB-FSIOにも対応を考えています。
USB-FSIOの概要は以下の通り。
・USBインターフェイスを使った入出力基盤で、デジタル入出力、アナログ入力、PWM制御が行える入出力基板です。
・USB 2.0(FullSpeed)で入出力制御を行います。
・デジタル入出力最大19ピン、アナログ入力最大5Ch、PWM制御最大5Chが利用可能です。
※モーター、RCサーボ、LED調光が簡単に行えます。
・1回の命令で複数の出力が出来るようになり、効率的に信号送信が可能です。
・62Byteのユーザー用フラッシュロムを利用すれば、シリアル番号の登録やセキュリティーデバイスも作成可能です。
使ってみての感想
PICと同様に電流が扱えるのでLEDも直接点灯出来ます(Max200mA、LEDで10~20個、電流制限抵抗は必要です)
どのピンをデジタル、アナログ、PWMの割り当てもPIC同様にコマンド出来るのもいいですね。
ブレッドボードで使えるようにピン配列が変更されているので便利になりました。
USB-FSIOから電源を取る場合は右側のフリースペースにVCC、GNDが用意されているのでリード線を付ければ取れますが、USBの規格上500mAまでなので200mAを超える場合は外部電源を用意したほうがいいと思います。
2010-05-06
Rubyで汎用USB-IOを使う Windows、VBA用Dllを使用
最近、Rubyを良く聞くようになってきたので、すこしずつ触ってみているところです。
目的が無いとすぐ飽きてしまいそうなので、汎用USB-IOを使えるようにしてみたいと思っています。
まず、簡単なところから、Windows限定になりますが、自分が公開しているVBA用Dll(vbausbio.dll)で使えるようにしてみました。
RubyはWindows版 で下記 1.8.7 のインストールをしています。
Ruby MSI Packages 安定版配布サイト
http://arton.hp.infoseek.co.jp/indexj.html
ActiveScriptRuby 1.8.7(p249) with-winsock2 tcl-stub
http://arton.hp.infoseek.co.jp/ActiveRuby.msi
最新版のVBA用Dllをダウンロードしソースを格納するフォルダーにコピーしてください。
RubyでVBA用Dllが使えるように定義をしたソースをダウンロードして同じくソースを格納するフォルダーにコピーしてください。
usbio.rb というファイル名の定義ファイル(プログラム)です。
あとは以下のようにプログラムを記述すれば汎用USB-IOを制御できるようになります。
require 'usbio'
p USBIO.find()
p USBIO.out(0,0,0)
p USBIO.out(1,0,0)
16.times do |j|
USBIO.out(1,j,0)
256.times do |i|
USBIO.out(0,i,0)
end
end
p USBIO.free()
サンプルソース等は以下の場所にUPしています。
まだ、テストが出来ていないので不具合がでるかもしれません。
不具合等あれば、連絡を頂けたらと思います、よろしくお願いいたします。
http://bake-san.com/download/sample/ruby/
目的が無いとすぐ飽きてしまいそうなので、汎用USB-IOを使えるようにしてみたいと思っています。
まず、簡単なところから、Windows限定になりますが、自分が公開しているVBA用Dll(vbausbio.dll)で使えるようにしてみました。
RubyはWindows版 で下記 1.8.7 のインストールをしています。
Ruby MSI Packages 安定版配布サイト
http://arton.hp.infoseek.co.jp/indexj.html
ActiveScriptRuby 1.8.7(p249) with-winsock2 tcl-stub
http://arton.hp.infoseek.co.jp/ActiveRuby.msi
最新版のVBA用Dllをダウンロードしソースを格納するフォルダーにコピーしてください。
RubyでVBA用Dllが使えるように定義をしたソースをダウンロードして同じくソースを格納するフォルダーにコピーしてください。
usbio.rb というファイル名の定義ファイル(プログラム)です。
あとは以下のようにプログラムを記述すれば汎用USB-IOを制御できるようになります。
require 'usbio'
p USBIO.find()
p USBIO.out(0,0,0)
p USBIO.out(1,0,0)
16.times do |j|
USBIO.out(1,j,0)
256.times do |i|
USBIO.out(0,i,0)
end
end
p USBIO.free()
サンプルソース等は以下の場所にUPしています。
まだ、テストが出来ていないので不具合がでるかもしれません。
不具合等あれば、連絡を頂けたらと思います、よろしくお願いいたします。
http://bake-san.com/download/sample/ruby/
2009-02-12
汎用USB-IOのVBA用専用Dll(vbausbio.dll)UP!! @バケさん
久々にvbausbio.dll(汎用USB-IOを簡単にVBA等で使えるようにするもの)をバージョンアップしました。
Km2Netさんの汎用USB-IOがちょっと便利な命令が増えました。
その追加命令に対応させてみました。
Port0とPort1を同時に出力、入力できる命令が増えています。
詳しくはKm2NetさんのHPのUSB-IOの追加コマンドを参照してください。
テストで6x6LEDをダイナミック点灯をさせているもの、
7セグLEDx4をダイナミック点灯させているものなどを追加命令で動くようにしてみました。
このようなパターンでは2,3倍早くなりました。
2回の命令が1回で済むのと、Port0とPort1のタイミングのずれを考えなくて良くなり、効果大ですね。
本来ならHPを更新したいのですが時間が取れず、ブログにて報告になります。
バージョンアップしたvbausbio.dllのダウンロードはここからできます。
urlは http://bake-san.com/download/vbausbio/v041/vbausbio_v041.lzh です。
※vbausbio.dllだけバージョンアップしても追加コマンドは使えません。
追加コマンドに対応した新しいKm2Netさんの汎用USB-IOも必要ですよ。
Km2Netさんの汎用USB-IOがちょっと便利な命令が増えました。
その追加命令に対応させてみました。
Port0とPort1を同時に出力、入力できる命令が増えています。
詳しくはKm2NetさんのHPのUSB-IOの追加コマンドを参照してください。
テストで6x6LEDをダイナミック点灯をさせているもの、
7セグLEDx4をダイナミック点灯させているものなどを追加命令で動くようにしてみました。
このようなパターンでは2,3倍早くなりました。
2回の命令が1回で済むのと、Port0とPort1のタイミングのずれを考えなくて良くなり、効果大ですね。
本来ならHPを更新したいのですが時間が取れず、ブログにて報告になります。
バージョンアップしたvbausbio.dllのダウンロードはここからできます。
urlは http://bake-san.com/download/vbausbio/v041/vbausbio_v041.lzh です。
※vbausbio.dllだけバージョンアップしても追加コマンドは使えません。
追加コマンドに対応した新しいKm2Netさんの汎用USB-IOも必要ですよ。
2009-01-21
Windows 7 で汎用USB-IO @バケさん
Windows 7 のベータ版がダウンロードできるので自分のノートにインストールしてみました。
第一印象はVistaとどこが違うんだろうか?でした。
(相変わらず、エアロが動かないのは同じでちょっと悲しかった)
第二印象はCPU使用率が安定している、最初は固まっているのかと思った。
Vistaはかなり頻繁に上下していた。
で、本題の汎用USB-IO(vbausbio.dll)はまったく問題無く動きました。
サービスに登録して実行させるプログラムも管理者として実行させると正常に動きました。
マイクロソフトも今回はVistaから移行が楽になるように考えて開発をしているようですね。
Windows 7 対応はしなくてよさそうです。一安心!!
第一印象はVistaとどこが違うんだろうか?でした。
(相変わらず、エアロが動かないのは同じでちょっと悲しかった)
第二印象はCPU使用率が安定している、最初は固まっているのかと思った。
Vistaはかなり頻繁に上下していた。
で、本題の汎用USB-IO(vbausbio.dll)はまったく問題無く動きました。
サービスに登録して実行させるプログラムも管理者として実行させると正常に動きました。
マイクロソフトも今回はVistaから移行が楽になるように考えて開発をしているようですね。
Windows 7 対応はしなくてよさそうです。一安心!!
2008-06-14
LinuxでLCDを表示(汎用USB-IO) 続き
バケさんの電子工作 : LinuxでLCDを表示(汎用USB-IO)
前回、汎用USB-IOでLCDをLinuxから簡単に制御できるように関数ライブラリー(usblcd.h)を公開しましたが。
半角カナも表示できるように手直しをしてみました。
usblcd.h
また、テストプログラムも少し実用的なものを作成してみました。
コマンド画面から表示させたい文字列を引数に与えて実行すると表示できるようにしてみました。
使い方;
usblcd "USB-IO de LCD!!"
これで1行目に表示されます。
usblcd "usb-io de LCD" "(^_^)/ by BAKE"
これで1行目に"usb-io de LCD"、2行目に"(^_^)/ by BAKE"が表示されます。 さらに、
usblcd " start " " usb-io de lcd" "2 page 1 line" "2 page 3 line" " E N D "
これで最初に" start " " usb-io de lcd"を表示して、
1秒後、"2 page 1 line" "2 page 3 line" を表示し
1秒後、" E N D "を表示して終了します。
usblcd.c
前回、汎用USB-IOでLCDをLinuxから簡単に制御できるように関数ライブラリー(usblcd.h)を公開しましたが。
半角カナも表示できるように手直しをしてみました。
usblcd.h
また、テストプログラムも少し実用的なものを作成してみました。
コマンド画面から表示させたい文字列を引数に与えて実行すると表示できるようにしてみました。
使い方;
usblcd "USB-IO de LCD!!"
これで1行目に表示されます。
usblcd "usb-io de LCD" "(^_^)/ by BAKE"
これで1行目に"usb-io de LCD"、2行目に"(^_^)/ by BAKE"が表示されます。 さらに、
usblcd " start " " usb-io de lcd" "2 page 1 line" "2 page 3 line" " E N D "
これで最初に" start " " usb-io de lcd"を表示して、
1秒後、"2 page 1 line" "2 page 3 line" を表示し
1秒後、" E N D "を表示して終了します。
usblcd.c
2008-06-12
LinuxでLCDを表示(汎用USB-IO)
Linuxで汎用USB-IOがLinux(FC5)で汎用USB-IOを使う で使えるようになりましたが、今度はLCDを簡単に制御できるように usblcd.h というヘッダーファイルを作成してみました。
LCDを初期化して使える状態にし
lcd_init(udev);
表示位置を指定して文字を出力
lcd_locate(udev,0,0);
lcd_text(udev,"Linux de USBLCD");
これで表示できます。
まず、ヘッダーファイル msubiobase.h の内容です。
これは変更ありませんが、使用されるUSB-IOにあわせて修正してください
musbiobase.h
次に今回LCDのためのヘッダーファイル usblcd.h の内容です。
usblcd.h
サンプルソースも作成してみました。
usblcd_test.c の内容です。
usblcd_test.c
usblcd.h
usblcd.txt
LCDを初期化して使える状態にし
lcd_init(udev);
表示位置を指定して文字を出力
lcd_locate(udev,0,0);
lcd_text(udev,"Linux de USBLCD");
これで表示できます。
まず、ヘッダーファイル msubiobase.h の内容です。
これは変更ありませんが、使用されるUSB-IOにあわせて修正してください
musbiobase.h
次に今回LCDのためのヘッダーファイル usblcd.h の内容です。
usblcd.h
サンプルソースも作成してみました。
usblcd_test.c の内容です。
usblcd_test.c
usblcd.h
usblcd.txt
2008-01-17
VBAUSBIO.DLLのベータ版(Ver0.51) USB-An命令修正
VBAUSBIO.DLLにUSB-An命令を追加したベータ版を作成中です。
アナログ入力で255までの値しか取り込めないBUGがあり対応させました。
ダウンロードは以下のアドレスです。
http://bake-san.com/download/vbausbio/beta/vbausbio_v051.lzh
参考までに追加されたUSB-An命令の簡単な説明です
【新機能】
USBで電子制御(Km2Net様著者)のサンプルソースで使われている
USB-An用の関数と互換命令を追加しました。
・openUsbIo
関数 :USB-IOオープン
概要 :接続中のUSB-IOを全てオープン
戻り値:発見したUSB-IO数 存在しない場合は 0
・closeUsbIo
関数 :USB-IOクローズ
概要 :オープン中のハンドルクローズ
戻り値:なし
・outputUsbIo
関数 :USB-IO 出力
引数 :int iUsbioNo オープンしたUsbIo 0~
:int iPort 出力ポート 0 or 1
:int iData 出力データ
概要 :USB-IO の指定ポートを出力
戻り値:0 出力成功 その他エラー
・inputUsbIo
関数 :USB-IO リード
引数 :int iUsbioNo オープンしたUsbIo 0~
:int iPort 入力ポート 0 or 1
概要 :USB-IOの指定ポートを読取
戻り値:0 以上 入力値 0 未満 エラー
・setUsbAnChannel
関数 :USB-An チャンネルセット
引数 :int iUsbioNo オープンしたUsbIo 0~
:int iCh チャンネル
: 8: 8Bit変換 4Ch 2DIO
: 10:10Bit変換 4Ch DIOなし
概要 :USB-Anの読み取りチャンネル設定
戻り値:0 設定成功 その他エラー
・setUsbAnMode
関数 :USB-An モードセット
引数 :int iUsbioNo オープンしたUsbIo 0~
:int iAnModeParam
: 8: 8Bit変換 4Ch 2DIO
: 10:10Bit変換 4Ch DIOなし
概要 :USB-Anの読み取りモードを設定
戻り値:0 設定成功 その他エラー
・inputUsbAn
関数 :USB-An 入力
引数 :int iUsbioNo オープンしたUsbIo 0~
:int iCh 読み込みチャンネル
概要 :指定チャンネルのアナログ値読み取り
戻り値:0 以上 入力値 0 未満 エラー
・outputUsbAnD
関数 :USB-An デジタル出力
引数 :int iUsbioNo オープンしたUsbIo 0~
:int iData 出力データ
概要 :USB-An 出力
戻り値:0 以上 入力値 0 未満 エラー
・inputUsbAnD
関数 :USB-An デジタル入力
引数 :int iUsbioNo オープンしたUsbIo 0~
概要 :USB-An デジタル入力
戻り値:0 以上 入力値 0 未満 エラー
アナログ入力で255までの値しか取り込めないBUGがあり対応させました。
ダウンロードは以下のアドレスです。
http://bake-san.com/download/vbausbio/beta/vbausbio_v051.lzh
参考までに追加されたUSB-An命令の簡単な説明です
【新機能】
USBで電子制御(Km2Net様著者)のサンプルソースで使われている
USB-An用の関数と互換命令を追加しました。
・openUsbIo
関数 :USB-IOオープン
概要 :接続中のUSB-IOを全てオープン
戻り値:発見したUSB-IO数 存在しない場合は 0
・closeUsbIo
関数 :USB-IOクローズ
概要 :オープン中のハンドルクローズ
戻り値:なし
・outputUsbIo
関数 :USB-IO 出力
引数 :int iUsbioNo オープンしたUsbIo 0~
:int iPort 出力ポート 0 or 1
:int iData 出力データ
概要 :USB-IO の指定ポートを出力
戻り値:0 出力成功 その他エラー
・inputUsbIo
関数 :USB-IO リード
引数 :int iUsbioNo オープンしたUsbIo 0~
:int iPort 入力ポート 0 or 1
概要 :USB-IOの指定ポートを読取
戻り値:0 以上 入力値 0 未満 エラー
・setUsbAnChannel
関数 :USB-An チャンネルセット
引数 :int iUsbioNo オープンしたUsbIo 0~
:int iCh チャンネル
: 8: 8Bit変換 4Ch 2DIO
: 10:10Bit変換 4Ch DIOなし
概要 :USB-Anの読み取りチャンネル設定
戻り値:0 設定成功 その他エラー
・setUsbAnMode
関数 :USB-An モードセット
引数 :int iUsbioNo オープンしたUsbIo 0~
:int iAnModeParam
: 8: 8Bit変換 4Ch 2DIO
: 10:10Bit変換 4Ch DIOなし
概要 :USB-Anの読み取りモードを設定
戻り値:0 設定成功 その他エラー
・inputUsbAn
関数 :USB-An 入力
引数 :int iUsbioNo オープンしたUsbIo 0~
:int iCh 読み込みチャンネル
概要 :指定チャンネルのアナログ値読み取り
戻り値:0 以上 入力値 0 未満 エラー
・outputUsbAnD
関数 :USB-An デジタル出力
引数 :int iUsbioNo オープンしたUsbIo 0~
:int iData 出力データ
概要 :USB-An 出力
戻り値:0 以上 入力値 0 未満 エラー
・inputUsbAnD
関数 :USB-An デジタル入力
引数 :int iUsbioNo オープンしたUsbIo 0~
概要 :USB-An デジタル入力
戻り値:0 以上 入力値 0 未満 エラー
2007-12-25
VBAUSBIO.DLLのベータ版(Ver0.5) USB-An命令追加
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
やっと、動かせるレベルまでできました、引続きテスト中です。
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-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-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する
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する
赤色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-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にどうやって対応されたのかはコピペをして対応したので理解できていませんが、これからゆっくり調べて見たいと思っています。
登録:
投稿 (Atom)