http://akizukidenshi.com/catalog/g/gM-05131/
簡単に説明するとこのモジュールを接続すればVBなどでLチカをやれるようにしてくれる
HIDとして認識されるので挿すだけでOK
VBのサンプルプログラムもあるためとっかかりやすいぞ
IOは12(J1:8本 J2:4本)本あり1ポート25mA、合計で80mA取れる。全ポート出力で使うならちょっと足りないのでトランジスタなどが入るだろう
またJ2の4ポートは内部プルアップが可能だ
処理速度はおおむね300Hzといわれているぞ
1.APIと構造体宣言をコピる
接続したらさっそくVBでプログラムを書くわけだが、提供されているコードを最初にコピペーしよう
必要なのは上部の膨大なAPIなど宣言全部
APIのあとにグローバル変数(これもこぴるぞ)
byteStInJx:ポートのIOステータスメモリ
byteOutJx:ポート出力メモリ
byteInJx:ポート入力メモリ
ただしこの変数に値をいれたからといってすぐ通信されるわけではないぞ
2.関数をコピル
デバイスオープン、クローズ、通信の3関数をコピル
・openDevice
・closeDevice
・SendRecv
の3つだ
通信も上記関数をコピっておけば非常に簡単にできる
・ポート設定送信(&HF9)
・ポート設定受信(&HF8)
・ポートIO設定(&H20)
の3つくらいで十分だ(実は他にもたくさんコマンドがあるが)
▲通信時バッファの構造
上記を参考にバッファに値を設定すればいい
例.J1でできる限り早いLチカをやるプログラム
Dim i As Long
Dim sendData(63) As Byte
Dim recvData(63) As Byte
For i = 0 To 100000
' J1.0でLチカをする
byteOutJ1 = byteOutJ1 Xor &H1 : byteOutJ2 = &H0
sendData(0) = &H20 'コマンド :デジタル入出力
sendData(1) = &H1 '出力1:J1
sendData(2) = byteOutJ1 '値
sendData(3) = &H2 '出力2:J2
sendData(4) = byteOutJ2 '値
sendData(63) = &H0 'シーケンス
SendRecv(sendData, recvData) '送受信
Label8.Text = i.ToString
Application.DoEvents()
Next i
Label8に現在のカウント値がでるがおおむね1秒で300カウントくらいである。
プログラムをいじることで1000Hzくらいまで早めることができるらしいので次回の課題にする
USB IOはパソコンで手軽にLEDが光らせられるアイテムの代表格と思っています
<参考資料>
km2net - 本家サイト
ここやサンプルには乗っていないコマンドなどが乗っているぞ