↑↑ブログの内容が検索できます
左上の「ブログ検索」からバケさんの電子工作のブログの内容が検索ができます。
たとえば「USB-IO」で検索すると過去のUSB-IOに関する書き込みが一覧で表示されます。
テスト運用のようですが、活用してみてください。
「USBで電子制御」の書評を書きました。
汎用USB-IOを販売されているKm2Netさんが「USBで電子制御」という本を出されています。
初心者にもわかり易く、ノウハウの詰まった本になっています。
アマゾンに書評を書きましたので参考にしてみてください。
おすすめの本です。
ここから見れます。↓
現在最新の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さんに感謝いたします。
汎用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個飛ばしで出力している時のものです。
次回はもう少し詳しく(ブレッドボードのレイアウト等)説明したいと思います。