平成24年10月8日 月曜日

LCRメータ買ってみた

Filed under: たわごと, 秋葉散策 — とめくぎ @ 13:39:55

苺リナックスとか秋月でココ一年前くらいから扱いだしたPEAK社製のLCRメータAtlas LCR model LCR40 を秋月で買ってみた。
チップコンデンサとか基板炙って取り外したコンデンサの値がわからないんで(そんなん部品使うなよ)。

まあ、回路を解析したりする遊びでチップコンの値がわかればなーと思った次第です。

ということで使用レポート。
何の印刷も無い箱から取り出すと、英文の説明書とダンボールの板に埋め込まれた状態のLCR40が出現。
ピカチュウっぽい黄色がかわいらしいボディですがゲートの始末が雑です。

板から外すと、蓋のネジが緩い。2mmくらい蓋が浮く。
電池の入れたり、輸送中電池を無駄食いしないように入れてある樹脂板を抜くためなのかな?と思ったら樹脂板も無いしすでに電池は入っている。
どうやら単にネジを閉め忘れてる様子。海外って大味だなぁ。8千円もすんのに。

まず、このLCR40ではオンサーキットな部品の値は読めないんですね。
同じシリーズの機種でCメータ専用機のESR70+ってのがあって、そっちはオンサーキットで測れるようですが、なんせ下限が1μFからなので、本来の目的のチップコンデンサの値を見るという最低要件を満たさないし、値段が高いのでパス。(ESR測れるのは興味深いのですがねー)

クリップに計測対象を繋いで電源を入れるだけの簡単計測なんですが、これ、表示時間が短すぎる。
20秒くらい?すぐに電源が切れる。メモ取る用意万端な状態で臨まないとだめ。
もちろん続けて複数の部品を測る事は出来ず、都度ON操作が要ります。
それと、SMD部品を測るのにはやはり別売のピンセット形のツールがあったほうがいいです。
値の表示でnF(ナノファラド)表示も出るので、pFμFだけを望む方は面を食らうかも。

あとはこの測定器が使う12Vの積層電池がどれくらい持つかですね。
秋月での電池の取り扱いがあるので、安心ですが、すぐ使いたいときに電池切れだったりすると、秋葉に買出しに行かないとならなくなる。

余談
仕事で使おうと思ってる治具作るために3mmのフォトトランジスタを店員さんに頼んだら、3mm径の照度センサーを売りつけられた。orz
型番を良く確認しなかった天罰が下ったお・・・・。1個50円もするのを4つも。当分使う宛ても無い。

Webカメラを作ろう

Filed under: プログラミング — とめくぎ @ 13:14:23

と言う事で、作成めも。

機材はすべて自宅にあるものを活用する。
OSはFreeBSD 9.0で。
CPU&マザーは死蔵しているVIA EPIA-V
キャプチャはbt848搭載のが昔から転がってるのでそれ。
HDDとかはあり合わせので40GB。出来ればSSDにしたいなぁ。
でもとりあえずPATAのHDD。あっちんちん。

■OSのインストールまでは普通に。
SSDやCFにインストールするなら、LOGとか書き込みをさせない小細工をするといいかも。

■具体的な作業の前にportsを最新に。
# portsnap fetch
# portsnap extract
# portsnap fetch update

■このままだと、キャプチャが認識しないの以下の設定をする。
vi /boot/loader.conf
bktr_load=”YES”

■再起動で以下のように認識するはず。
# dmesg | grep bktr
bktr_mem: memory holder loaded
bktr0: <brooktree 848A> mem 0xe3401000-0xe3401fff irq 11 at device 20.0 on pci0
bktr0: [GIANT-LOCKED]
bktr0: Detected a DPL34-1@-@0 at 0×84
bktr0: Intel Smart Video III/VideoLogic Captivator PCI, <no> tuner, dpl3518a dolby.

■kldstatで動的にリンクされているか確認する。
# kldstat
Id Refs Address Size Name
1 5 0xc0400000 e9ece4 kernel
2 1 0xc129f000 126e8 bktr.ko
3 2 0xc12b2000 1eec bktr_mem.ko

■portsからcamservをインストール
# cd /usr/ports/multimedia/camserv
# make install clean

■設定ファイルを雛形からコピー.
# cd /usr/local/share/camserv/
# cp camserv.cfg.dist camserv.cfg

■設定変更
変更箇所のみ列挙。
vi /usr/local/share/camserv/camserv.cfg

[video_fbsd_bttv]
port            0
channelset      6
channel         1

[time_stamp]
x               10
y               0

[video]
video_section           video_fbsd_bttv

ココまで。
最後の「video_section video_fbsd_bttv」は必ず変更する事。
video_basicのままだと、寝ても暮らせど表示できません。色んな色がでるだけ。

最後にIE向けの表示ページとFireFox向けのページを作成する。
FireFox向け

<html>
<head>
</head>
<body>
<img src="http://192.168.0.145:9192/"/>
</body>
</html>

IE向け

<html>
<head>
<title>for Internet Explorer</title>
<meta http-equiv="Content-Type" content="text/html; CHARSET=x-euc-jp">
<script LANGUAGE="JavaScript">
<!-- hide
// "var speed" is the refresh rate adjustment in seconds.
var speed = 1;
var y = 1;
var x = speed + y;
var time = x - y;
var now;
campicture = new Image();
function stopClock() {
	x = "off";
	document.form0.clock.value = x;
}
function startClock() {
        if (x != "off") {
	x = x - y;
	document.form0.clock.value = x;
	if (x <= 1)
        {
          reload()
        }
	timerID = setTimeout("startClock()", 1000);
        }
}
function reload() {
	now = new Date();
	var camImg = "http://192.168.0.145:9192/singleframe/" + "?" + now.getTime();
	document.campicture.src = camImg;
    x = speed;
    document.form0.clock.value = x;
              	  }
//end hide -->

</script>

</head>

<body onload="startClock()">

<FORM action="JScam.html" name="form0">
<IMG src="http://192.168.0.145:9192/webcamstream.jpg" name="campicture" alt="Picture" border=0 reload="60" height=300 width=400>
<INPUT type="hidden" name="clock" size="3" value="">

</FORM>
</body>
</html>

■起動スクリプト
毎度ログインして起動するとかやってられないので起動スクリプトを作る。
#vi /usr/local/etc/rc.d/camserv

#!/bin/sh

# PROVIDE: hoge-script
# REQUIRE: LOGIN

. /etc/rc.subr

name="camserv"
rcvar=`set_rcvar`

# read configuration and set defaults
load_rc_config "$name"
: ${camserv_enable="NO"}

command="/usr/local/bin/${name} &"
command_args=""

run_rc_command "$1"

rc.confに追記
vi /etc/rc.conf
camserv_enable=”YES”

■電動雲台コントロール作成
雲台はAC100Vのモータで動く物をジャンクで入手した。
何らかのI/Oでリレーを制御し、モータをコントロールする。
プリンターポートをパラレルIOとして使う案と、パトライト社から出ているether接続のリレーボックスを使う案の2通りある。

まずはプリンターポート。

#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/ioctl.h>
#include <dev/ppbus/ppi.h>

int main(int argc, char* argv[])
{
    int fd;
    u_int8_t ct, dt;
    char *p;

    if (argc != 2) {
        puts("An argument is lacking. n");
        return 1;
    }
    p = argv[1];

    if( (fd = open( "/dev/ppi0", O_RDWR )) < 0 )
    {
        perror( "ppi Open ERR" );
        return 1;
    }

    ct = 0x0b;                     /* OUT configure */
    ioctl( fd, PPISCTRL, &ct );

    dt = 0x00;                     /* OUT Data */
    if(*p=='L'){
        dt = 0x01;
        printf( "Leftn" );
    }
    if(*p=='R'){
        dt = 0x02;
        printf( "Rightn" );
    }
    if(*p=='U'){
        dt = 0x04;
        printf( "Upn" );
    }
    if(*p=='D'){
        dt = 0x08;
        printf( "Downn" );
    }
    if(*p=='I'){
        dt = 0x10;
        printf( "Zoom Inn" );
    }
    if(*p=='O'){
        dt = 0x20;
        printf( "Zoom Outn" );
    }
    ioctl( fd, PPISDATA, &dt );

    close( fd );
    return 0;
}

#gcc -o iotest iotest.c
iotest L
でLeftに首振りするように結線する。
D-Sub25の25ピンがGND、2ピンから順に
2:Left、3:Right、4:Up、5:Down、6:Zoom In、7:Zoom Outです。
ソリッドステートリレーを使うか、トランジスタと逆起電力吸収用ダイオードとコイルリレーを使って回路を組んで完了です。

参考サイト (作者様に感謝!)
http://www.geocities.jp/kinput3/2007/bttv/fxtv.html
http://bakuretsu.atso-net.jp/bakuretsu/freebsd/freebsd-camserv.html
http://www.youko-house.ne.jp/~hirohito/memo/ppi/

HTML convert time: 0.157 sec. Powered by WordPress ME