バランの役目・平衡とは何なのか
いまいちイメージがしにくくて理解したとはいいきれてない部分の覚書
平衡経路は差動信号、すなわち位相が反転した信号を2線に乗せ、接地せずに伝送する。
対して不平衡経路はシングルエンド、すなわり片方を接地させて信号を伝送する。
信号伝送の形式が違うので、当然直接接続してはいけない。直接接続した場合、不平衡側は GND を基準としているので、GND の変動はすなわち信号線にもGNDが変動しただけの変動が発生するということであり。これはコモンモードのノイズということになる。
バランによって平衡・不平衡を接続することができる。
電圧バラン(トランス)の場合、差動信号の入力は出力からすると単に信号がおおきくなったようにみえる。GND は絶縁されており、コモンモードは発生しない。
Uマッチというバランの場合、片方の伝送路を1/2λ遅延させることによって位相を反転させて逆相を得て平衡信号を作りだす
電流バランの場合、GND変動によって発生するコモンモード電流を遮断する形で機能する。性質上完全に遮断しにくいが、ロスも少ない。
関連エントリー
- LTSpice で伝送線路トランス 「伝送線路トランス」という言葉が一般的な用語かどうかよくわからないのですが、トロイダル・コア活用百科ではこのような用語になっていました。一応...
- ✖ メモ: コモンモードは+と-が同位相なので、+と-を同時にコアに巻いてやることで強いインピーダンスを発生させることができる。ノーマルモードは...
- 電圧バラン・電流バラン あんまり日本語の文書だと見ない気がするけど、英語圏由来の文書だとしばしばみるような気がする Voltage Balun, Current B...
- E-paper display の覚え書き (LUT ってなんだ) Waveshare 4.2 Black/White EPD https://www.waveshare.com/w/upload/6/6a/...
- 伝送路中の定在波の最大電圧と最大電流 伝送路インピーダンス50Ω 送信機出力 50W では、完全に整合していれば、50Vrms 1A になる。ただ、SWR が悪化すると (すなわ...
✖
JSDeferred -> Angular $q 置き換え方法
AngularJS には $qっていう promise の枠組みがあるので、使っておくといいこと (ビューが自動的に更新されるだけだけど) がある。フレームワーク組込みの仕組みがあるのに別途 Deferred の仕組み、しかも thenable(笑) じゃない(笑) JSDeferred を読むのもバカにされると思うので、以下のように JSDeferred から Angular $q へ置き換える方法を記す。
基本
JSDeferred における global な next() 関数を $q.when().then() に置き換え、Deferred#next を then() に置き換えればだいたい動く
next(function () {
alert(1);
return next(function () {
alert(2);
}).
next(function () {
alert(3);
});
}).
next(function () {
alert(4);
}); こういうのを、こう
$q.when().then(function () {
alert(1);
return $q.when().then(function () {
alert(2);
}).
then(function () {
alert(3);
});
}).
then(function () {
alert(4);
}); parallel() は?
$q.all() を使え
loop() は?
頑張って書く。いろいろやりかたはあると思うけど、例えばこう
$q.when().then(function () {
var list = [1, 2, 3], sum = 0;
return $q.when().then(function loop () {
if (list.length) {
return $q.when(list.shift()).then(function(item) {
console.log('item', item);
sum += item;
}).then(loop);
} else {
return sum;
}
});
}).
then(function (result) {
console.log(result);
}); wait() は?
setiTimeout で頑張って書く
関連エントリー
- JSDeferred -> Promise 置き換え方法 もはや Promise がスタンダードに入り、モダンな実行環境ではポリフィルすら必要なく使えるケースが増えましたね。 かくいう自分も JSD...
- Angular JS でビューを伴う Service ってどう書けばいいんですか 続きをかきました。 [tech] Angular JS で View を伴う Service 的なことをしたいとき、あるいは Directi...
- Perl の Locale::Maketext::Lexicon::Gettext フォーマットのメッセージをJSでフォーマットする Perl の Locale::Maketext::Lexicon::Gettext は以下のような Gettext ライクなフォーマットを扱...
- Angular JS で View を伴う Service 的なことをしたいとき、あるいは Directive に Controller をつけたいとき。 クソコード を書いたはいいが、釈然としなかった。 "View independent business logic: Services" と...
- node.js で git の blob sha1 を求める github の API とかに出てくる "sha" は git 的な sha1 で、ファイルの内容のみからとった sha1 ではない。なん...
V-USB vs USB付きAVR
name (flash/sram) cost
USB 対応
- ATmega32u2 (32k/1k) 400円
- AT90USB162 (16k/0.5k) 300円
- 最大16MHz
- USB ホストにもなれる
- 12Mbps 対応
- 外付け部品が少し簡単
- 表面実装品しかない
V-USB
- ATmega328p (32k/2k) 250円
- ATmega168p (16k/1k) 200円
- ATTiny2313 (2k/128) 150円
- 最大20MHz (5V動作時)
- USBスレーブにしかなれない
- ファームウェアコードにいくらか制限あり (割込み頻度とか)
- ドライバが GPL
- DIPあり
感想
- V-USB はファームウェアを GPL にするか、ライセンス購入する必要があるが、個人の趣味レベルではどうでもいい
- 価格の絶対差はそれほどでもないが、同じ金額で1個買えるか、2個買えるかと考えるとだいぶ違いを感じる
- よりスマートなのは USB 対応のを使うことだと思うが、見た目的にはどっちもワンチップで完結する
- USB 対応品は、USB 周辺については 3.3V で動いておりレギュレータを内蔵している。V-USB は高いクロックで動かそうとするとVCCを5Vにせざるを得なくて、そこらへん泥臭くなってしまう
関連エントリー
- 「スマホの爆発を防止できるか? GoogleによるUSB-Cの新規格」っていう記事がひどくて爆発する スマホの爆発を防止できるか? GoogleによるUSB-Cの新規格 | ギズモード・ジャパン この記事 まずタイトルおかしいよね。。USB-...
- ErgoDox について調べた(買わないけど) ヤパチーでErgoDox を見て面白いなあと思ったので調べてみた。 ネットの記事だとErgoDoxって、「とにかく健康だ!! 筋肉だ!!!」...
- Quick Charge 2.0 の仕様 Quick Charge 2.0 とは 現行でも採用事例がある USB コネクタでの急速充電の仕様。USB は規格上 5V なので、急速充電...
- AVR シリアルでPCと接続してデバッグ USB-シリアルポートアダプタ (RS-232C) は前に買っていたけど、RS-232C は正負 -12~+12 で1/0を表現うるので、マ...
- Chrome App で USB デバイス (AVR V-USB) にアクセスする Chrome App は、chrome.usb という API を通じて低レベルなUSBデバイスドライバをJavaScriptで書くことが可...
自作 USB CW キーイングデバイスを作る
去年AVR で USB 接続の PC キーヤーを作るということをやったのだけど、結局ちゃんと形にはせず放置してしまっていた。最近なんとなく自分の中で PC キーイングの機運が高まってきたので、まじめに安定したものを作ろうと頑張って、ある程度成果がでてきた。
当然似たようなデバイスは既にあるので、改めて作る必要はないんだけど、自分で作れそうなものは、一回ぐらい自分で作りたいものですね。
ハードウェア
安定して動くように試行錯誤した結果、USB のデータラインに 100pF のパスコン (ノイズ対策)、リセットピンを外部プルアップ (USB のデータラインに電流が多く流れて、リセットされやすくなるので)、USB ラインのツェナーダイオードをちゃんと計ってから使う、18MHz の水晶 (CRCチェック用) とかになった。あとはもともとと同じだと思う。
ファームウェア
USB まわりを割と丁寧に実装しなおした。UI との整合性をとるため、機能をちょいちょい足している。usbFunctionWrite で -1 を返すと STALL の意味になるとか、V-USB のドキュメントをよく読んだほうがいい。
ソフトウェア
ドライバをカーネルレベルで書くのはデバッグが大変で嫌なので、最初から libusb 関係のものを使うことしか考えてなかった。最初は Chrome App から直接 chrome.usb で扱おうとしたのだが、いろいろあってやめて、ruby + libusb + em-websocket で WebSocket サーバを書いて中継している。
libusb の同期的インターフェイスは、実際のところ非同期インターフェイスのラッパーになっており、マルチスレッド環境で使うとレースコンディションが発生することがある。libusb のドキュメントにいろいろ書いてあるが、面倒なので ruby 側で mutex のロックをかけるようにしたら解決したので深く追ってない。
また、ホットプラグ対応もなんか刺さったりしてつらいのでやめて、デバイスが接続されていないときは定期的にポーリングするというクソっぽいけど正確に動く実装にした。
インターフェイス
そして WebSocket で通信するページをペライチで作って試してている。全部込みで動画にしてみた。
今後
まずは無闇にストールしたり、刺さったりしないという基本的な部分で安定することを目指して頑張った。「もう無理では……」と思ったこともあったけど、いつのまにか結構安定した。ただ、実際の運用まで行ってないので、インターフェアにどれぐらい耐性があるかはわかってない。試験電波を出してオシロで信号ラインを見た感じだと大丈夫そうだけど、よくわからない。
手持ちのユニバーサル基板に組んだので、作ってみたらケースを含めちょっと大きくなってしまった。内容的にはたいしたことがないので、フリスクケースに収まるような基板を作ってみたい。
あとは、ログツールとの連携をしたいと思っているけど、ログツールを作りなおしているので、まだまだ先になりそう。
関連エントリー
- Chrome App で USB デバイス (AVR V-USB) にアクセスする Chrome App は、chrome.usb という API を通じて低レベルなUSBデバイスドライバをJavaScriptで書くことが可...
- ✖ 無線のPCモールスUSBインターフェイスって結構高価なのが多いんだけど、Raspberry Pi だと GPIO 経由で普通にキーイングでき...
- JTAG/SWD 関係の用語 デバッグ機能の分類 デバッグ制御インターフェイス : CPU制御を行う。ブレークポイントやプログラムカウンタの増加(実行)など トレース機能...
- NanoVNA を WebUSB を使ってブラウザから見る NanoVNA の USB のコミュニケーション方法が USB-CDC で、プロトコル自体は簡単そうだ、というのを前に書きました。なぜそんな...
- 結論: chrome.usb は使えない 直近の Mac OS X Mavericks アップデートの直後あたりから (これが直接の原因かはわからないけど)、例え HID デバイスで...
MorseRunner
ただ聴くだけのモールス練習に若干飽きてきて、MorseRunner というのを試してみたら、おもしろかった。Mac でも homebrew の wine で普通に動いてくれる。
コンテストを想定した練習ソフトみたいな感じになっていて、F1 で CQ を出して、呼んでくる局のコールサインを聴きとって入力し、RET を押すと、自動的に相手局にコンテストナンバーが送られ、相手局が返してくるコンテストナンバーを聴きとって入力したら1局終わり。
聴きとれないときは F7 押したりするともう一度打ってくれたりする。結構実際に交信しているみたいで楽しい。
以下の画像は HST モードで1時間やってみたもの。ぶっちゃけ15分ぐらいから辛くて早く終わってほしい感じになる。普段は 10分のシングルコールかパイルアップで遊んでる。シングルコールはあんまり頭使わないので、だんだん眠くなるけど、聴きとれるというのが楽しい。パイルアップは、とにかく2文字とって訊き返すというのが大事でおもしろい。
シングルコールがただ聴くだけだから一番局数は稼げる?と思うけど、自分の場合 30wpm でやると、だいたい10分で30局超えたらいいみたいな感じだった。しかし S と H の区別がはっきりつけられないので厳しい気持ちになることがある。
関連エントリー
- 最近のモールス訓練 23wpm で文字+数字、数字だけ、文字だけ、をそれぞれ90%なんとかとったので24wpmでやりはじめてる。20wpmだと完全ランダムでだい...
- モールスでニュースを聴く News Reader by Morse というのを作った。404 Not Found というのがあって、フィードをとってきてモールスにして...
- ブラウザでモールス練習 WebAudio 使ったモールス練習機を自分で作って使っているので公開する。 Morse Trainer ほんとに全く聴きとれないときから使...
- 無線 まだ2局ほど 599BK 形式でやっている局を呼んだだけで、それ以上のことはできてない。近畿あたりの局を呼んでみたりしたけど、パイルアップに...
- はじめての SSB は CQ WW TEST SSB で KL 音声といえば 7MHz 帯はよく国内が出ていて混んでいるのだけれど、自宅のアンテナは帯域が狭く、SSB の周波数には出れないため、一度も出た...
デジタル一眼レフ (EOS) をウェブカメラ的にとして使う
スクリーンキャストとカメラの同時録画 の動画を撮ったときは Mac 内蔵のカメラを使ったので、自由にカメラを動かせず難儀した。ウェブカメラが欲しいなーと思ったけど、よく考えたら優秀なカメラが既にあるので、利用できないかと考えた。
結論からいうと、直接ウェブカメラとして使うことは簡単にはできない。なので、
- EOS Utility でライブビュー撮影モードにする (PC にカメラの画像がリアルタイムに反映される)
- それをスクリーンキャスト用のツールでカメラデバイスにする
という方法をとる必要がある。
スクリーンキャストとカメラの同時録画をしたいというだけなら、単に EOS Utility のウィンドウを直接録画したらいいので、簡単。ただ、どうしてもちょっと映像が遅れるので、それを許容できる場合にだけ使える。
関連エントリー
- Mac で外部カメラとスクリーン録画を同時にやる (カメラ+スクリーンキャスト) 前までできなかったと思うんだけど、比較的簡単にできるようになっていた。 QuickTime Player に「ファイル」→「新規画面収録」と...
- キヤノン EOS をウェブカメラとして使う。 (写っていないが手前に EOS がある。RasPi が写っているウィンドウは Quick Time Player の録画ウィンドウで、リアル...
- ゼルダやってた 最初のほう。 あんまりスクリーンショット撮ってなかった。 祠さん…… ライネルさん…… まじゲーム下手なので最初はヒノックスすら怯えてて、ラ...
- macOS の EOS Utility 「カメラとUSB接続できませんでした」 どうあがいても接続できなくて困った。 どうやらなんか Google Chrome が USB デバイスをかたっぱしからオープンする挙動をして...
- SONY αをウェブカメラとして使う ↑この画像は静止画ではなく、録画のスナップショット (α7R II 2160p モードを CamLink 4K/30FPS NV12 でとり...
ハルロック (1)
ハルロック(1) (モーニング KC) cho45
うっかりウェブに公開されているやつを読んでしまったら面白かったので買ってしまった。最近電子工作にハマってるのでタイムリーだった。
題材が電子工作で、そこらかしこに流行りワードがちらばっているけど、そういうのよりは主人公の女子大生が狂ってるのを楽しむ感じで、ゲラゲラ笑える。
なんともいえないのは、最初おじさん先生から PIC が出てくるんだけど、卒業すると登場するのが Arduino やら Raspberry Pi やら AVR になっていくので愉快な感じ。
自分も主人公ほどではないにせよ、小さいときに分解魔だったので (分解したからといって原理がわかるわけではない) そのへんも共感できた。
関連エントリー
- 趣味の電子工作 趣味の電子工作には1つ溝がある 回路を組立てる (製造工程の趣味) 回路を設計する (設計工程の趣味) で、両方混ざってることもある。設計す...
- ✖ 日記(ブログ)内のカテゴリを自動抽出して設定したい。いわゆるクラスタリングだと思うが、うまくできる方法がよくわからない。 動機としては「カテ...
- 無限にアニメみてる しばらくコンテンツ消費する気力もわかず見てない作品が多かったので一気にみた ぼっち・ざ・ろっく! 12話 きらら系だけど「この子が可愛い」み...
- オシロスコープ Rigol MSO5074 を買った RIGOL デジタル・オシロスコープ MSO5074 70MHz 周波数帯域+4チャンネル+16デジタルアナログチャンネル+8bit垂直軸分...
- YAPC::Asia Tokyo 2014 の感想 全体的に Perl 以外の話が例年にも増してたいへん多かったように感じた。といってもやっぱり Perl を知ってること前提にして他の話題、と...
Mac で外部カメラとスクリーン録画を同時にやる (カメラ+スクリーンキャスト)
前までできなかったと思うんだけど、比較的簡単にできるようになっていた。
QuickTime Player に「ファイル」→「新規画面収録」というのがあり、これを使うと音声入力を含めてスクリーンキャストを録画できる。
外部カメラも同時にとる場合は「ファイル」→「新規ムービー収録」を選択するとカメラの状態が画面にでるようになる。この状態でも「新規画面収録」を行うことができ、カメラとスクリーンを同時に録画可能になっている。
収録しおわったら「編集」→「トリム」で不要な前後も簡単に削除できるので、あせって録画する必要はない。
試しに録画したもの
一つ欠点があって、できるあがるファイルが .mov なので、どっかにアップロードするなら
ffmpeg -i input.mov output.mp4
とか適当にしたほうがいいっぽい。
関連エントリー
- デジタル一眼レフ (EOS) をウェブカメラ的にとして使う スクリーンキャストとカメラの同時録画 の動画を撮ったときは Mac 内蔵のカメラを使ったので、自由にカメラを動かせず難儀した。ウェブカメラが...
- サーマルカメラ UNI-T UTi260B サーマルカメラ買ったのが届いた。ちょっと遊んだ感じブレーカーの温度分布が面白いかな pic.twitter.com/z9WlvScbLY —...
- HTC J butterfly のスクリーンショットの撮りかた 「電源ボタン」と「ボリュームの下」ボタンを同時に「長押し」 すると音が鳴って通知バーにでる。
- キヤノン EOS をウェブカメラとして使う。 (写っていないが手前に EOS がある。RasPi が写っているウィンドウは Quick Time Player の録画ウィンドウで、リアル...
- 文字スクロール動画ジェネレーター https://cho45.stfuawsc.com/ticker-generator/ 文字スクロール動画ジェネレーターというのを作った。...






