2006-11-29

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

USBデバイスを直接制御しようとしているのでどうもはねられている感じがします。
でも、VB6.0からは上手く動いているのが納得いきません。

納得いかないのですが、今度VBでDllを作成してみようかと思っています。
正式にリリースされたらVBからも動かなくなる可能性がありそうでちょっと心配。

2006-11-27

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

現在、Dllを単体のEXEで動作できるようにプログラムを修正してデバッグ中です。

どうも権限か何かでUSBの情報が正常に取得出来ていないようです。
実行ファイルのプロパティで管理者権限で動作させてみたり、色々やっているのですが上手く動いていないようです。

最近のトラブルで多いのはOS自体がセキュリティを強化して、結局今まで動いていたものが動かないという症状です。(これにはまっているのかなぁ)

Windows Live OneCareという物も試用しているので、これも影響しているかもしれません。

時間が無いので、ちょっとあせってきています。
情報が少ないものネックになっています。

2006-11-26

PICライター 作成中!!  

前から作りたいと思って部品だけはそろえていたのですが、他の事でなかなか時間が取れず手をつけていなかったのをやっと取り掛かりました。

RS232Cインタフェースで書き込みが出来るシリアルPICライターです。
シリアルPICライターは電力をシリアルの信号から取っているのでUSBシリアルなどでは書き込みに失敗することもあるそうです、今回のPICライターは外部電源をつけて確実に書き込みが出来るものです。
http://www16.ocn.ne.jp/~kenju/programmerX/progX20.html ここを参照してみてください。

本来なら15V程度のACアダプターを使うのですが、せっかくUSBがあるのでそれから供給するように考えてみました。
USBの電圧は5VなのでロジックICで発信させチャージポンプ方式で4倍の20Vまで昇圧させて使う予定です。
写真の上側がその回路で下側がPICライターの部分です。

これでUSB2口あれば電源無しで(USBシリアルのケーブルは必要、シリアルポートがついていればこれも不要になりUSB1口あれはOK)PICが書き込めます。
それにこれは特別な部品を使っておらず、部品代も2000円以内です。

上手くゆけば画期的だと思うのですが、上手くうごくかな? Posted by Picasa

2006-11-16

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

WindowsVistaをインストールしたので、早速現在公開しているVBA専用Dllを動作確認しましたが、みごとに動きません。

すべてVBで作成された(APIを呼んでいる本来のサンプル)ものでは正常に動作しています。
タイミングが悪いのではと思っています。

Dllの開発環境のVCもセットしてデバッグを考えています。
Vistaの発売に間に合うように、対応をしないといけませんね。

2006-11-10

Linux(FC6,FC5)で汎用USB-IO(ビット操作)サンプル 

汎用USB-IOの問い合わせで一番多いのがビット操作の仕方です。
今回のサンプルはコマンドのオプションパラメータを与えることにより、任意のビットをON/OFFできるようにしてみました。
状態の表示もビット単位で可能です。

環境作成やコンパイルの仕方はLinux(FC5)で汎用USB-IOを使うための環境を参照してください。
本拠地のUSB-IOをFC5(Linux)で使用するにも詳しく書いてあります。

使い方は管理者権限がある状態で(rootユーザーか、SUで権限を与えてください)
./usbio と入力すれば実行されます。
この時に表示されるUsage:を参照してください。

例)
./usbio -h -p0 -b1 でPort0のビット1をHi(1)にします。
実行すると Port01 : h のように現在の状態を表示します。


ヘッダーファイル msubiobase.h の内容です。
内容はいっしょですが、テクノキット用のプロダクトIDが違っていましたので修正しています。

musbiobase.h



次にサンプルソースです、これは簡単な出力と入力を行っています。
usbio.c

2006-10-23

オートライト作成中 

だいぶいい感じになってきたので微調整中です。

主な問題点は以下の通りでした。

・プログラムにBUGがあった。
 これでかなり混乱してしまった、
 判断文のところをきれいに消して組みなおすと
 結構いい感じで動作していました。
・組みなおしをする時にプロジェクトを名前を付けて保存すると
 色んな設定が初期の状態になり、
 CONFIGの設定が変わり、動作自体が出来なくなった。
 作り直す時にコピーしてから作業すべきでした。
・動作タイミングの問題
 前回の書き込みでは2個センサーをつけてと
 思っていましたが、45度の角度をつけて1つのセンサーに
 することにしました。
 これで、車が向いている方向の明るさで判断できるように
 なり、自分的には満足しています。

以上ですが、まだまだ問題が出てきそうです。

納得できる物が出来たらソース、回路図を作成したいと思います。

2006-10-20

オートライトは奥が深い!! 

MOVEにオートライトをつけよう!ということで試作品を作っているところです。

実際に試作品を作ってライトの替わりにLEDで試してみたのですが、色々問題が発生です。
PIC(12F675)を使用したので調整はプログラムの定数になっていますが、意外と調整が難しい。
部屋の明かりと運転をしている時の感覚ではだいぶ違うようです。

PICで作るのでスモールライトとヘッドライトを違うタイミングで点くようにしてみました。
このタイミングが難しい!! オートライトの一番の問題は点いてほしい時に点いて、消えてほしい時に消えるというあたりまえの機能が難しいのです。

実際に試すと分かるのですが、昼間にトンネルに入ると当然、自動で点くのですが、トンネル内の照明が間隔を置いてつけてあるので反応を良くすると常にパッシングをしている状態になります。
反応を鈍くするとトンネルに入って少し時間が経たないと点かない、トンネルから出てもすぐに消えない、となってしまいます。
点く明るさと消える明るさを変えて一度点いたらちょっとの変化では消えないようにしていますが、これも差をつけすぎると点かない、消えない物になってしまいます。

曇りの時に森林を通ると木の陰に反応してしまいます。
こちらはスモールがパッシング状態!
ちょっとしたガードをくぐってもパッシング状態(これは良く見かけますよね) メーカー純正でもある程度はなるのですが、なんとかならないかと思っています。

今回はPICのメモリーがかなりあまっているので、オートライトごときなのですが複雑なロジックを組んでみようかと思っています。
センサーを複数つけるといいかも、現在はセンサーを上に向けているのですが、センサーを前方に向けた物をつけて複合的に判断させてはどうかと思っています。

2006-10-18

いまどきの車 

新型MOVEが出たので見に行って来ました。(結局、注文してしまいました)

標準装備も充実しているのですが、
オプションも時代にあわせて色々ありました。
LEDのルームランプ、フットライト、室内照明、キーレスエントリ連動ミラー格納機能、オートライトなど、
でもオプションをつけてしまうと電子工作ネタがなくなってしまうのでつけませんでした。

現在、手始めにオートライトを作成しています。
配線図はもらえるようにお願いしたので安心です。

でも、納車は12月中旬(CVTがついているXLimittedにしたため)なので、取り合えず今乗っている古いMOVEでテストになりそうです。

試作品ができたらまたUPします。

2006-10-12

PIC:電子メトロノーム第2弾 改造中 

PIC:電子メトロノーム第2弾の電源を乾電池3本ので使っていたのですが、
SLEEP機能も使って省電力になっているはずなので、太陽電池で動作させようと考えました。

そこでジャンクセンターで購入したソーラーラジオからNiCd電池と太陽電池を取り出しそのまま取り付けました。

上手く出来たと思ったのですが、1日充電してSLEEP状態で放置しておくと1日でほとんど残っていません。
おかしい!!、どうも充電が上手く出来ていないのではと思います。
電池も完全放電しているのでまずいのかも、充電器で充電して様子を見ているところです。
SLEEP状態で0.2mA、動作中で0.7mAから数mA(ピッとなって瞬間的にLEDがつくので計れていません)なのでかなり電池ももつはずなのです。

回路設計上一度OFFになりONするとONしっぱなしになります。
リセットがかからず、正常にプログラムが動かないとLEDがついたままになります。
回路の見直しも必要かもしれません。

ボタン1つで電源をON/OFFしたかったのですが、結構難しいのですね。
SLEEPもPICをはじめてから今回やっとまともに動作しています。

まだまだ勉強中です、長い目で見てください。

回路図は見直しをしているのでまだUPできていません、すみません。

2006-10-02

PIC:電子メトロノーム第2弾完成 

LCD有りバージョンを先日作成しましたがPICのメモリーが足らず、機能追加が出来なかったのでLCD無しにして作り直しました。
スピードの設定をLCDの表示を見ながらUP/DOWNのボタンで設定する方式がLCD有りバージョンだったのですが、ロータリーSW?、数字を合わせることによりBCDコードでON/OFFされるものを使い設定値を読取る方式にしました。
LCD表示の処理ルーチンで結構メモリーを食われていたようで、LCDを使わないバージョンはメモリーを半分しか使用していません。
SLEEPの機能、n拍子毎に音の高さを変える機能、3LED対応も追加しています。

回路図は作成中で出来たらまた更新します。

ソースはかなり汚いですが以下の通りです。
--------------------


--------------------
Posted by Picasa

2006-09-28

PIC:メトロノームを作成しました 

久しぶりに電子工作らしいことをしました。



電子メトロノームをPICで作成です。
PICは16F84Aを使用して、PICの開発にはMikroBASICを使いました。
UP/DOWNのSWでスピードを変更できてスピードはLCDに表示させるようにしました。
スピードに合わせてLEDの点滅と圧電素子で音を鳴らしてみました。
LCDのルーチンが結構メモリを食ってしまうらしく、もうほとんどあまりがありません。
本当はまだ色々機能をつけたかったのですが 無理のようです。

LCDを使わないように工夫をして機能UPを考えています。
電子メトロノーム第2弾考案中!!


とりあえず今回の回路図は MTRO.gif 。

ソース は以下の通りです。
-----------------------------------------

-----------------------------------------

2006-09-16

汎用USB-IOをブレッドボードで試す! 

汎用USB-IOのテストが手軽に出来るようにブレッドボードに接続できるように考えてみました。
上の写真はテクノキットの汎用USB-IO用です。
テクノキットのHPのUSB-IO関連基盤で紹介されているコネクタBを直接取り付けています。
足が短いので、足を押し付けて確実に差し込めるようにしています。


下の写真はKm2Netの汎用USB-IO用です。
こちらは2列のコネクターがついているので1列になるようにしています。
そのままの順番ではピンの順番が123456・・・とならず、
214365・・・ となり使いにくいので正し順番になるように2本ごとにクロスさせています。
写真をクリックすると少し大きくなるので確認してみてください。

このブレッドボードを使って説明をして行きたいと思っています。 Posted by Picasa

2006-09-12

本:手作りUSB機器 

本拠地で公開している 汎用USB-IOをVB、AB、Excelなどで簡単にコントロールできるようにするDll(vbausbio.dll)を使った記事が載っている本です。

アマゾンの書評をみると結構きびしいことがかかれてありました。
-- アマゾンの書評から抜粋 --
本の中で何回もvbausbio.dllというネットにある個人が作ったファイルから関数を引き出して使います。その度に筆者はその関数を説明してくれるのですが、他にどういった関数があるのだとか教えてくれない。つまりこの本だけだと応用しようにもできないのです。
-----------------------------
自分のHPでも解説を入れないといけませんね。
サンプルも何本かあるのですが、記事を付け足しで更新しているので読みづらくなっていると思います。
ちょっと、見直しをして更新をしたいと思います。

また
-- アマゾンの書評から抜粋 --
無理にオリジナルを作らずに、たとえばUSB-IO販売会社のひとつであるテクノキットの出しているボードについて解説、応用などにしてもらったほうが親切だったと思う。
-----------------------------
こんな書評もありました。
テクノキットさんから汎用USB-IO関係の新製品も出る予定なので、取り寄せて試用レポートを書けるといいですね、こちらもこれからのHP更新ねたにしたいと思っています。

2006-08-11

安物買いの銭失い! 

トラックのウインカーを流す」で実車で試したらすぐ壊れてしまいました。

その原因がほぼわかりました。
回路設計は大丈夫でしたが、部品の選択が悪かったようです。
リレーをいつも安いものを購入していたのですが、やっぱり安いものはそれなりですぐだめになるようです。
車は思っているより悪条件なので性能に余裕が必要な気がします。

HPには載せていないのですが、自分が乗っているMOVEは集中ドアロックのアンサーバックがハザードではなくルームランプになっていて使いにくいのでハザードがつくように改造をしました。
その時も同じリレーを使ったのですが、1年程度で壊れてしまいました。
今は、リレーを使わすパワーMOS-FETを使っています。

FETを使うと回路設計は大変ですけど、耐久性はよくなりますね。

トラックのウインカーを流すもFETで見直しが必要ですね。ですが、
先日運ちゃんの友達に聞くとウインカーはもういいのでLEDをいっぱいつけたいといっていました。

そろそろ新しい話題で作りたいと思っていたので、よく聞いてチャレンジの予定です。

2006-06-29

Linuxで汎用USB-IO 

HPを更新してUSB-IOをFC5(Linux)で使用するを公開しているのですが、Linuxを使ってUSB-IOを使おうとされている方が増えているのを実感しました。

自分のHP内のアクセスランキングでは第3位までUPし、メールや掲示板での問い合わせが増えてきました。

今回、公開しているサンプルソースはFC5だけではなく他のディストリビューションでも動作するようです。

Vine Linux 3.2でも動作ができたと報告や、
NAS製品のDebian GNU/Linuxでも動作させようと頑張られている話も聞きました。
NAS製品は気になっており、自分でもいつかはトライしたいと思っています。

サンプルソースももう少し充実させねばと思っています。

今は時間が取れていないのですが、時間を作ってやりたいと思っています。

2006-05-20

Linux、始めてのXプログラミング 


USB-IOを使うことができたのですが、コマンドライン端末でprintfの出力ではプログラムを作った気分にならなかったのでGUIな画面に挑戦してみました。
Gladeで簡単Xプログラミングを参考にさせていただきました。

数分でGUIなプログラムができてしまいました。
こんなに簡単にできてしまうとは思っていなかったので感動しました。
と言ってもウインドウが表示されただけですけどね。

本来の中身を記述するにはGTKと言うものを勉強しないといけないようです。
Windows上のC++と雰囲気がにていて、画面を作っていく過程はJAVAのようでもあるしなんだかいけそう。
Linuxは難しいと思い込んでいたので、先が明るくなった気分です。

クライアントプログラムができたら、今度はサーバープログラムに挑戦しないといけませんね。
Linuxはどちらかと言うと、サーバーの方が得意な気がしますので。

2006-05-17

Linux(FC5)で汎用USB-IOを使うための環境 

汎用USB-IOをFC5で使うためには開発環境を作成し公開しているソースを自分なりに修正してコンパイルする必要があります。

コンパイルするためには開発ツールとlibusb用の開発ファイルが必要です。
そのため、インストール時に開発ツールを選択しておきます。
インストールができたらlibusbを使うための設定をします。
GNOMEを使っている場合はアプリケーションの「Add/Remove Softwear」を選択しパッケージマネージャを起動します。
Listを選択するなどして一覧を表示させます。
その中でlibusb-devel - 0.1.11-2.i386 - Libusb用の開発ファイルにチェックをつけて適用させます。
環境やUPDATEの状態でバージョンは変わるかも知れません。
これで開発環境は出来ました。

自分の場合はインストール時にLibusb用の開発ファイルも指定しましたが、後でも先でも大丈夫だと思います。
しかし、バージョンが違うとコンパイルが出来ても動かせないので良く確認しましょう。
パッケージマネージャのListで確認するとlibusbとlibusb-develがあると思います。
libusbのバージョンとlibusb-develのバージョンが同じになるようにします。

次はコンパイルの手順です。
コマンドライン端末を起動し、ソースのあるフォルダーに移動します。
ソースをコンパイルします。
cc -o usbio_test usbio_test.c -lusb
と入力すればコンパイルできるはずです。
(ソースファイル名、オブジェクトファイル名は読み替えてください)
インクルードファイルやライブラリの場所が違う場合は
usb.hなどを検索しフォルダーを確認します。
フォルダーを指定してコンパイルしてみてください。
cc -o usbio_test usbio_test.c -I/usr/include/ -L/usr/lib/ -lusb

次は実行です。
./usbio_test
最初の./はカレントフォルダーを示します、これが無いと実行ファイルがあるフォルダーで起動をかけても動きません、この辺はWindowと違うところですね。
もし、root権限がないユーザーで上手く動かない場合はsuでルート権限にして実行してください。

ルート権限が無いと動かせないのは現在調査中です、すみません。

カーネルの再構築とかは必要ないので比較的簡単に出来るのではと思います。
特殊なことはしていないのでおそらくバージョンが変わってもコンパイルしなおせば動くのではと思います。

色々教えていただいたくまさんのおかげでFC5で汎用USB-IO、USB-Anが使えるようになりました。
いまだに詳しいことはほとんど分かっていません、くまさんのHP「熊の巣」でFC4,FC5でUSB-Anを使っている記事があります、いろんな事が詳しく説明されてありますので参考になると思います。

最後に、ここで公開しているソース等は自由に使っていただいて結構ですが、自己責任でお願いします。

Linux(FC5)でUSB-Anを使う 

FC5で今度はUSB-Anを使うサンプルです。
開発環境は別で載せます(libusbの開発モジュールが必要)

ヘッダーファイルは先の書き込みの musbiobase.hを使います。

10bitAD変換で4ポート取得する例を作成しました。
usban.c

Linux(FC5)で汎用USB-IOを使う 

開発環境の作成に苦労しましたが、最新のFC5で汎用USB-IO及びUSB-Anを動作させることができたのでお知らせします。

まだroot権限が無いと動かないのは調査中ですが、動いているサンプルソースを載せておきます。

開発環境とUSB-Anのサンプルは別で載せます。

汎用USB-IOを動作させるための基本的な関数が入っているヘッダーファイルとそれを使ったサンプルソースになります。

まず、ヘッダーファイル msubiobase.h の内容です。
musbiobase.h


次にサンプルソースです、これは簡単な出力と入力を行っています。
usbio_test.c

2006-05-08

Linuxで汎用USB-IOその2 

良く探して見たら、Linux標準のHIDを使用してUSB-IOをコントロールしている例がありました。
こちらの内容はWindowsでVBによりコントロールしているパターンと良く似ています。
まだ、試していないのでなんともいえないのですが、標準のHIDを使用しているので
最新のFC5にも対応可能なのではと思っています。

以下のブログを参照してください。
USB-IO その3
USB-IOその4

時間を作って試して見たいと思っています。

2006-05-01

Linuxで汎用USB-IO 

Linux(FC4)用のドライバーは今まで伊藤さんのサイトでダウンロードできていたのですが、現在はリンク切れになっているようです。

困ったなと思っていたら、
ブログ(g26a345の日記)のUSB-IO その2にFC4の汎用USB-IOのドライバーの事が書かれてありました。
どうも、カーネルの再構築(パッチをあてる)はしなくてもコンパイルしたmorphy-usbio.koってのを、パッチとは別に作成し、それをinsmodすればそのままで動くようです。
ただし、rio500に取られているらしい。
echo 010101010101 >/dev/usb/rio500
とかやったら動いた。
とあります。
面倒なことをしなくても、rio500で動くようです。

これから試される方はこの方法でも可能なのではと思っています。
ただし、UPDATEはしないほうがいいのではと思います。

2006-04-27

本:光で遊ぼう!LED電飾&蛍光灯 

先日本屋で買ってきて、現在は読んで見ているところです。

自分が電子工作でやっている事とかなり内容がいっしょだったので「トランジスタ技術」の本を買いに行った時に思わず買ってしまった本です。
これから電子工作をはじめよう!、まずLEDを使って何かをしたい。というような人にはとても参考になるのではと思います。
図や写真を上手に使い分かりやすい内容になっています。
LED、抵抗、CRDなどの事も詳しく書かれています。
CRDは不明な点が多かったのですが、これで安心して使うことが出来ます。

電子工作のためのR8C/Tinyスタートアップ 

『電子工作のためのR8C/Tinyスタートアップ 』という本を先ほど注文してきました。
PICマイコンもマスターできていないのにまた新しいマイコンに手をつけようとしています。

R8C/Tinyはどんなマイコンなのでしょう、試用レポートを書いて行きたいと思っています。



2006-02-21

フリーのPIC用BASIC 

mikroElektronikaでダウンロードできるPIC用のBASIC、mikroBasicを使ってみています。
各PIC毎に色んなサンプルもいっしょにインストールされます。
HELPは英文(日本語版が無いので英語版を使用しています)のため、ちょっと大変ですが、しっかり書かれていてサンプルが無い命令なども大丈夫そうです。
全ての命令が使えるのですが、作成できるプログラムのサイズに制限があって、2Kを超えるHEX出力が出来ないようです。(自分にはこれで十分かなと思います)

試しに昔の定番のPIC16F84Aで作成してみました。
LEDのON/OFF、LCDへの表示、SW入力、ここまでは簡単に出来ました。

PICと他の機器(XPort、PC、他のPIC)をつなげる練習のために UART (シリアル通信)から文字を受け取ってその文字をLCDに表示させてみました。
本来PIC16F84AはUARTをサポートしていないのですが、mikroBasicの命令にSoftware UART があり全く苦労をせずに実現できました。
ただし、基本的な事ではまって3日もかかってしまいました。
通信以外の処理をしている時は受信出来ないという当たり前の事に気づかず苦労しました。
最初は、スピードの誤差とかノイズとか疑っていましたが、原因がわかって直すときれいに受信できています。(すばらしい)

1つ難点を見つけました。
色んな関数を使えば使うほどメモリーを使用してしまい、シリアルからLCDを表示させるプログラムでメモリー(RAM)がぎりぎりの状態です。(使い方が悪いのかな?)

PCとPICの接続テストは出来たので次は本来の目的のXPortや他のPICとつなげてみたいと思います。(アナログ入力も合わせてテストの予定です)

今回使用したテストプログラムや回路は時間をみてHPにUPする予定です。