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

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したファイルも少しずつ整理をして行く予定です。

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

2007-12-20

VBAUSBIO.DLLのベータ版2 

VBAUSBIO.DLLのベータ版を修正して見ました。
今回の症状を自分の環境で再現できていないのですが、あやしいところを修正して見ました。
同様にテストをお願いできればと思います。

最新版のダウンロードは今までと同じところから出来ます。
http://bake-san.com/download/vbausbio/beta/vbausbio_beta.lzh

2007-12-19

重要:VBAUSBIO.DLLベータ版に早速BUG

早速、報告をいただきました、報告をしていただいた方に感謝します。
入力命令で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

2007-11-23

FC8をVMWareでセットアップする 

最近仕事が本当に忙しくてブログも当分書き込みをしていません、すみません。


今は時間を見つけてFC8を入れてみようとがんばっているところです。
FC7では何も問題なくVMwareで動作したのですが、FC8は簡単に行きそうにないですね。
サウンドはうまく認識できなかった、現在はサウンドを殺して使用しています。
何とかインストールができたもののまだ不安定な状態です。
汎用USB-IOの動作テストまでは道のりが遠い感じがします。


汎用USB-IOとは関係ないですが、自動車の自動ミラー格納をする回路を試しているところです。
簡単な回路でできるのでうまく出来ればこちらもまた報告をいたします。

2007-09-28

↑↑ブログの内容が検索できます  


左上の「ブログ検索」からバケさんの電子工作のブログの内容が検索ができます。

たとえば「USB-IO」で検索すると過去のUSB-IOに関する書き込みが一覧で表示されます。

テスト運用のようですが、活用してみてください。

2007-09-20

「USBで電子制御」の書評を書きました。   


汎用USB-IOを販売されているKm2Netさんが「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さんに感謝いたします。

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でも上手くつかないのでもし使用する場合電流が流せるようにトランジスタなどで回路を考える必要があります。
次回に説明予定です。

 

2007-06-26

ブレッドボードとアルミ板 



ICをブレッドボードで使う場合、動作不安定になることが良くあります。
コンデンサーをつけても改善されず、困っていました。
WEBを検索してみると、ブレッドボードの下にアルミ板を置くといいようです。
念のため、アースに接続して使っています。
簡単な回路では上手く動いています、今まで上手く動かなかった回路もチャレンジしてみたいと思っています。

上の写真はキャパシタとソーラーを使ってセキュリティダミーのランプを作成してテストをしているところです。
参考までに回路は以下の通り。


Posted by Picasa

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"

結構困ったのでブログに記録しておきました。

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#、の定義部も準備の予定です。

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

2007-05-20

汎用USB-IOのVBA専用DLLのVista対応  出来た! 

やっとですが、汎用USB-IOのVBA専用DLLのVista対応が出来ました。
ダウンロードはこちらから(vbausbio.dll

Vistaが販売される前から調べていたのですが結局今まで分からず、K-Kさんが先にHSP用USBIOプラグインをVista対応されたので参考にさせていただき出来ました。
k-kさんに感謝!!

Vistaにどうやって対応されたのかはコピペをして対応したので理解できていませんが、これからゆっくり調べて見たいと思っています。

2007-05-07

汎用USB-IOのVBA専用DLLのVista対応 WDK  

あまりにも、難航しているのでちょっと電子工作をして頭をほぐしてきました。

また、再開して解析や調査をしているところです。
開発環境(コンパイル用のコマンドプロンプト)ではライブラリなど、リンクするものが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でリセットして書き込んで正常に出来ました、要注意です。
(自分みたいにヒネクレ者はいないと思うので大丈夫かな??)

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を接続してテストしてください。