« 僕の宇宙船 遠乗り | Main | 僕の宇宙船 惑星間宇宙船の設計 »

August 06, 2005

夏休み工作シリーズ 超低コスト 非接触型電圧プローブ

000僅か 200 円弱の部品代で、電子工作に役立ちそうな赤外線通信を使った非接触型の電圧プローブを作った。
必要な部品は、次の通り。
・PIC12F675 (150円@秋月) または PICF629 (140円@秋月)の何れか 1個
・赤外線 LED (30円@秋月) 1個
・470Ω抵抗 (5円@千石) 1個
・33KΩ抵抗 (5円@千石) 1個
合計わずか 190 円だ。(PIC12F675 使用時。PICF629 なら合計 180 円だが、AD コンバータが無いので、デジタル入力のみになる)
上記の一覧では、私が良く行く店で購入した価格を参考に載せた。

電子工作に、これを付けて置くと、最大5チャンネルの電圧データ(PIC12F675 使用時:4アナログ+1ビットデジタル。PIC12F629 使用時:5ビットのデジタルのみ)を赤外線 (IrDA) で送信する。Zaurus 等の IrDA ポートを持つ機器を近付ければ受信できる。テスターで当たるよりも、ずっと楽だ。非接触型なのでノイズの心配も無いし、動き回る相手だとケーブルを引きずらないので、動作の邪魔にならない。その上、低消費電力/小型軽量だ。
ロボット等の電子工作に役に立つと思うので、作り方やプログラムを公開する。自由に使ってくだされ。
データの取得/伝送速度や測定精度は、コスト相応なので、その点は、まあ御容赦のほど!!

回路図は、この通りだ。
001極めて単純な回路だ。
元々、今回使用した PIC12F675/629 は、発振器まで内蔵したタイプで、特に PIC12F675 は、10 ビットの AD コンバータまで内蔵して居るから、回路が簡素化できた。その上、私は極端な「シンプル・イズ・ベスト」派なので、徹底的に無駄を省いて回路をシンプルにした。

使い方は、至って簡単だ。
まず、プログラムを PIC に書き込む。(プログラムは、まとめて此の記事の末に載せた)
PIC への書き込みは、公式的には、秋月等で売って居るライタを使うと言うべきなんだろうが、意外と高価だ。私は、RCDライタの製作で、公開されて居る回路を、そのまま作って使って居る。これなら主要部品だけなら、600 円くらいで済む。私はゼロプレッシャー・ソケットを奢ったので高くなったが、それでも、二倍程度だ。書き込みソフトは、WinPic日本語版を使った。
電子工作の中の測定したい箇所に PIC を結線し(回路図中の GPx ANx とある箇所)、赤外線 LED 等を配線する。
PIC に供給する電力は僅かなので、電子工作から与えた方が早い。今回使用した PIC の電源電圧の範囲は 2V 〜 5.5V と広いので、大概の場合、何とかなるだろう。電源電圧が合わない場合、単四電池2本でも良い。ボタン電池でも足りるかもしれない。

データの受信に必要なプログラムも公開する。残念ながら、今のところ、Linux (Debian Sarge で動作確認)と Linux Zaurus (SL-C7XX で動作確認) のみで、Windows には対応して居ない。
IrDA の規格と同じような赤外線を出して居るのだから、IrDA さえ持って居れば、Windows でもデータを受信できそうなものだ。
だが、赤外線通信(IrDA)はこう使え!を読んで、初めて知ったのだが、「Windows では、『赤外線ポート』が隠蔽」されていて、自由に使えないようになって居るらしい。流石に、赤外線ポートが使えないと手も足も出ない。取り敢えず今回は、Windows へのサポートを見送った。

正確に言うと、「Windows98では『物理赤外線ポート』が隠蔽」され、「Windows2000以降では、さらに『仮想赤外線ポート』も隠蔽」されたらしい。IrDA が自由に使えないのは、どちらも同じ

Zaurus 用のプログラムは、ipk になって居るので、普通にインストールするだけだ。インストール後、アイコンをタップすると起動できる。赤外線ポートを使って居るアプリが他に動いて居ると、当たり前だが競合して不都合なので注意すること。

Linux 用のプログラムは、ちょっとややこしい。ソースコードは、Zaurus 用と共通になっているので、これをダウンロードし、コンパイルする。コンパイル方法は、README に書いてある。なお、グラフィック表示に QT を使って居るので、 QT の開発環境もインストールしておく必要がある。
Linux の場合、次の問題は、『物理赤外線ポート』を直接アクセスできるように設定することだ。流石に今回のように PIC と赤外線 LED だけの構成では 仮想赤外線ポート(IrCOMM)プロトコルのサポートはきついので、物理赤外線ポートに直接アクセスする必要がある。
私が Debian Sarge で試した限りでは irda-utils をインストールし、IrCOMM が使えるように設定する。再起動後、irattach をストップさせることで、/dev/ttyS1 を『物理赤外線ポート』として、アクセスできるようになる。

この方法だと、Linux の起動の度に irattach をストップさせる必要がある。もっとスマートな方法が無いものかと調査中だが、何かあったら教えて下さい

赤外線 LED に IrDA ポートを近付けると、下の図のようにデータが表示できる。002赤外線 LED が暗いせいか、波長のせいか、はたまた指向性のせいか、赤外線 LED と IrDA ポートを 5 センチ程度まで近付ける必要がある。本来、IrDA は、1メートルくらい離れても通信可能な筈なので、工夫すれば、もっと離れた距離でも受信可能になるかもしれない。アナログ/デジタルの判別は自動だ。

工夫をすれば、アナログ/デジタル入力の組合せを変えたり、PIC 内のメモリに一度高速で蓄えてから送信することで、オシロ/シンクロスコープやロジアナ的な表示をすることも可能だろう。
だが、機能を増やし複雑にするよりも、プリミティブな機能のみにした方が応用しやすいと思い、今回は、そうして居る。

自由に使って構わないので、遊んで下さい。面白い応用ができたら、教えて下されば、有り難い。
その他、私の持って居ない Zaurus (SL-C3000 等)の動作確認や対応例などがあったら、教えて下さい。

誰か、Windows 用のデータ受信/表示プログラムを作ってくれないかなあ。
他にも、赤外線ポート付きの携帯電話でデータ受信/表示をするプログラムがあったら面白いのだけれど。

ライセンス・プログラム等

本当は、ハードウエアの回路については、著作権を放棄したい(余りにも簡単すぎるから)ところだが、日本の法律上、著作権の放棄はできんらしいので、著作権は野田篤司に帰属するが、誰でも自由に使って良いものと宣言する。

PIC 側のプログラムは、BSD ライセンスとする。

Linux と Zaurus 用のプログラムは、フリー版 QT で作ったので、自動的に GPL2 だ。

【PIC側プログラム】
picprobe.lzh
 ソースファイルとアセブリ済みの HEX ファイル、ソースは、MPLAB でアセンブルできる。
 何を書き込むかについては、含まれる readme を参照のこと。

【Zaurus 用 受信/表示プログラム】
picprobe_0.0.1_arm.ipk
 ipk になっているので、簡単にインストールできる。
 SL-C700 と SL-C760 で、動作確認。

【受信/表示プログラム・ソースコード】
picprobe.tgz
 PC LINUX と Zaurus の共通ソースコード。
 コンパイル方法などは、含まれる README を参照のこと。
 IBM ThinkPad i-Series 1124-53J (240X) + Debian Sarge (リリース版) で、コンパイル/動作確認済み。

|

« 僕の宇宙船 遠乗り | Main | 僕の宇宙船 惑星間宇宙船の設計 »

Comments

IRLED の抵抗を 50 オームくらいにしてパルス幅を 1.6uSEC にすればもっと飛びますよ。

Posted by: チャオ | December 12, 2005 at 03:25 PM

非接触型電圧プローブを製作しました。
ザウルス側のソフトを起動して「NoData」と表示されているところで、赤外線ポートにLEDを向けると「NoData」表示のままフリーズしてしまいます。
「cu -l /dev/ttyS1」コマンドで確認したところ赤外線は正常に届いているようです。
何が原因でフリーズするのでしょうか。

ちなみに、第二弾の赤外線キーボードはうまくいきました。

Posted by: sa89a | September 24, 2006 at 05:02 PM

自己解決しました。
lcfontを他のフォントに置き換えていたのが原因だったようで、元に戻したら正常に表示されました。
お騒がせ致しました。

追伸
表示ソフトの方ですが、フルスケール値を設定しておいて、電圧に換算する機能はつけられないのでしょうか?

Posted by: sa89a | September 24, 2006 at 07:16 PM

sa89aさん、非接触型電圧プローブを使ってもらって有難うございます。

フルスケール値の件、しばらく時間を下さい。
今やっている SH-2 のプログラミングの方が片付いたら、反映したいと思っています。

Posted by: 野田篤司 | October 04, 2006 at 09:32 PM

Post a comment



(Not displayed with comment.)


Comments are moderated, and will not appear on this weblog until the author has approved them.



TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/94422/5334372

Listed below are links to weblogs that reference 夏休み工作シリーズ 超低コスト 非接触型電圧プローブ:

» これは使えそう [inu's today]
マツドサイエンティスト・研究日誌: 夏休み工作シリーズ 超低コスト 非接触型電圧プローブの中に書いてあったRCDライターの作製PICをやってみたかったけどライターが結構高価で二の足を踏んでいたが、これなら簡単で安そうだ。 次回秋葉へ言った際に部品買い出しておこう・・・... [Read More]

Tracked on August 06, 2005 at 06:50 PM

« 僕の宇宙船 遠乗り | Main | 僕の宇宙船 惑星間宇宙船の設計 »