プリンストンUSBビデオキャプチャユニットPCA-DAV2をLinuxで使う
プリンストンのUSBビデオキャプチャユニット「デジ蔵 映像版」(PCA-DAV2) を Linux で使うときのメモ。
OS: Ubuntu 10.04 LTS
刺すと em28xx として認識されるが、このデバイスとその周辺デバイスには変種が多いらしく、かつこのデバイスはまだこの em28xx では認識はされるが型番が不明という状態になる。なので強制的に似た構成のデバイスを指定してやらないとならない。
dmesgを見るといろいろ候補が並んでいるが、かたっぱしから試したところ card=13 Terratec Prodigy XS がどうやら似ている模様。
/etc/modprobe.d/em28xx.conf を作って
options em28xx card=13
と書き込む。
mplayerで見るには
$ mplayer tv:// -tv driver=v4l2:device=/dev/video0:input=1:norm=NTSC
でみられる。input=1 がコンポジットで input=2 が S端子っぽい。
オーディオは試していない。
ヘッドホンで電波時計を合わせる
とりあえず写真。
電波時計にヘッドホンをかぶせてJJYタイムコードをシミュレートしたものを「聴かせている」。
電波時計が受信している信号は40kHzなり60kHzなりといった、電波としてはかなり低い周波数で、最近のサンプリングレートが96kHzや192kHzといったサウンドデバイスでは余裕で生成できてしまう。
広く普及している44.1kHzのサウンドデバイスではナイキスト定理による22.05kHz以上の信号は出ないはず…とはなるのだが、高調波が出ることを期待すれば、たとえば13.333kHzを出力してその3倍高調波の40kHzを電波時計に拾わせるという手がある。
電波時計側のアンテナはフェライトバーアンテナで磁界検出型のアンテナ。対して、ヘッドホンに使われているダイナミックスピーカーは電磁石で永久磁石を駆動するものだから、外部に磁界が漏れてくる。それを磁気結合でフェライトバーアンテナに伝えるということになる。
一応ヘッドホンからでてるのは音とともに電波、ということになるが、微弱なので特に他の電波時計に影響を与えることはない。
フェライトバーアンテナは通常、そこに並列に接続されたコンデンサとで共振回路となっていて、要はこの共振回路をビンビンにすればいいわけ。だからぴったりの周波数である必要はなくて、整数分の一の周波数でも何とかなったりする。
ソフトウェアを置いておく (Windows用、無保証)。
http://kikyou.info/misc/jjysim.zip
使い方は、とりあえずヘッドホンを電波時計に引っ掛けて、jjysim.exe を実行すれば電波時計をPCに合わせることができる。スピーカーの近くに電波時計をおいてもよい。
いくつかオプションがあって、
-fは再生するPCMの周波数をHz単位で指定する。サウンドデバイスの再生可能周波数の上限を越えて指定しても意味が無いことに注意。デフォルトは44100。
-tは再生するトーンの周波数を指定する。デフォルトは13333で、13.333kHzになっている。これは三倍すると40kHzになる値で、40kHz用の電波時計を合わせるのに適している。12000や20000だと60kHzに適した周波数になるはず(試していない)。-t 2000 のようにすると聴きやすい周波数になるが電波時計は音を聴いているわけではないのでこれを電波時計にかけても意味がないだろう。
-dは時間オフセットで秒で指定する。ここで指定した時間だけ電波時計をずらすことができる。正の値を指定すると電波時計を未来に合わせることができる。
--sineをつけると正弦波。これがデフォルト。
--squareをつけると矩形波。矩形波の方が奇数倍の高調波が出やすいのだが、再生周波数やエイリアスの関係であまり意味がなかったりする。
現在福島局(40kHz)が停波しているので、40kHzしか受信できない環境では若干役に立ってくれると期待している。
ニッケル水素充電式5Vポータブル電源完成
長い時間がかかってしまった。
とりあえず完成にするかねというところで。
主な機能は
- USB A端子による5V出力(電源線がつながってるだけ)
- ただし電圧精度±10%
- 電池放電中は電池電圧がそのまま出てくる(5.5V〜4.5Vぐらい)
- ACアダプタ内蔵、入力100V〜250V AC(無駄にワールドワイド)
- ACは普通のメガネコネクタ
- AC接続で充電開始
- AC接続中は安定可された5V出力を利用可能
- リフレッシュ充電モード付き(完全放電してから充電しなおす)
- 電池容量5400mAh
- ただし本体重量430g
- 完全放電から満充電までの充電時間5.5時間
- 5段階による残量表示機能付き
- 過放電防止機能
NiMHの充電方法とかぜんぜん知らない状態から試行錯誤で充電回路をつくって火傷してみたり煙もくもくしてみたり。
なんというかケースがほんとギリギリのサイズだったので、ケース内にどうやって収めるかのほうが苦労したかもしれない。
右側は電池でうまってて、左にACアダプタのなかみやら制御基板やらコネクタやら放電用抵抗やらが押し込められている。下にふにゅ、と出ているのはデバッグ用のシリアル出力。
最初 秋月電子で買った GPのタブ付き4500mAh電池 http://akizukidenshi.com/catalog/g/gB-01142/ でやってたんだけどなんかいくらがんばっても容量が2000mAhとちょっとしかないんだよね。在庫中に腐ったのかしら。
しょうがないのでサンヨーの2700mAhのNiMHを2本ずつ並列にして、それを4つ直列にした電池構成で。
NiMHの充電回路はいろんな意味で熱いね。今回実装した回路は急速充電だけど、満充電検出はいくつかの方式を組み合わせている。いまのところ一番最初にひっかかるようなのは、放電電圧が既定の電圧に達したというもの。もし万が一それで引っかからなかった場合は-ΔVを検出するようにしている。
−ΔVは急速充電における満充電検出方法として一般的だけれども、これは電池が発熱することによって内部抵抗が変化し、それによっての充電電圧の変化を検出する物。要するに電池を発熱させちゃってるため、電池に少なからずダメージを与える。
今回実装している放電電圧の検出は、発熱する手前で充電を止められるため、おそらく電池にとってはダメージが少ないと思われる。
充電電流は1A。もっと早く充電したければ電流を増やせばよいが、やっぱり電池が発熱してあまりよい影響はないし、5時間半ほどで充電できるのであれば1Aでもいいかということでこの電流に。
マイコンはATmega328p。オーバースペックだが気にしない。これオンチップ温度計もってるのね。便利に使ってる。
回路図はこちら
(オリジナルサイズを表示、で大きくしてみてね)
戦慄のファームウェアのソースプログラムなど : http://kikyou.info/misc/charger-20110116.zip
さーて、できたのはいいんだがこれ、重いんだよなorz
充電式5Vポータブル電源つくってるよ
つくってるよ。
NiMH充電機能付き5Vポータブル電源制作中。これで外出先の突然の電池切れにも勝つる……!!
はず。
難点は重さ。