検索クエリを眺めると、ほんとタバコの消臭に関する流入が多くて、たくさんの人が困っていることがわかる。
✖
|
検索クエリを眺めると、ほんとタバコの消臭に関する流入が多くて、たくさんの人が困っていることがわかる。
なんかいろいろあって??ってなるので特徴を覚え書き。線は信号に関係するものだけ (普通は +VDD が必要)
| 名前 | 線 | 特徴 | 速度 | 備考 |
|---|---|---|---|---|
| 1-wire | SIGNAL, GND | 半二重 1対多 非同期 | 標準 15.4kbps, オーバードライブ125kbps | SIGNAL が VDD を兼ねるので本当に2本だけでOK センサーとかで採用例がある。MAXIM の日本語スライド |
| I2C | SDA, SCL, GND | 半二重 多対多 同期 | ロースピード 10kbps 標準 100kbps ファーストモード 400kbps 高速モード 3.4Mbps | バス中のデバイスのどれでもマスターになれる。マイコンだと400kbpsまでが多い?ここに上げた中では唯一多対多のバスを作れる |
| SPI | SCK, MISO, MOSI, SS, GND | 全二重 1対多 同期 | クロック依存最大 1Mbps〜2Mbps | マスターはスレーブの数だけ SS が必要。1対1 なら SS は必要ない。 |
| RS232 | RxD, TxD, GND | 全二重 1対1 非同期 | 9600bps などいろいろ | PC でもよく使われていたインターフェイス。今でも USB 変換ケーブルは簡単に手に入る。フロー制御とかしないなら3本で使える |
| USB1.0 | D+, D-, GND | 半二重 1対多 非同期 | 1.5Mbsp, 12Mbps | 使うの面倒。USB2.0 は高速化版、USB3.0 はさらに高速化して全二重に |
そういえばマイコンからカメラのレリーズができたらいいかもなーとなんとなく考えたのでやってみた。タイムラプス的なもの (インターバル撮影) とか、バルブとか自分で制御できたら楽しいかもしれない。
リモートレリーズ端子 (有線) にはいくつか種類があるらしく、キヤノンの場合、Kiss とかではステレオミニと同じだけど、5Dとか7Dとかだと、N3型端子とかいう謎の端子になる。N3端子ってのはそこらへんで単体で簡単に手に入らないので、既存のを買って切るしかないっぽい。機能的には同じみたいだけど、なんでこんなことになってるのか謎
手元にあるのはN3型のものなので、別にレリーズ別途買ってまで試すまでのモチベーションはわかなかったので、とりあえずリモートレリーズ端子を使うのは諦めた。(ただのスイッチなので難しいことはなさそう)
他にレリーズを切る方法としては、赤外線リモコンを使うほうほうがあって、これなら赤外線 LED チカらせるだけでよく、端子とか関係ないのでお手軽そうだった。赤外線は昔昔買ったLEDジャンク詰め合せに無駄にいっぱい入っていて腐っている。
ググるとリモコンの解析結果を公開している人がいるので、その通りやったらいけた。
あたり前だけどドライブモードをリモコンのモードにしないとシャッター切れない。解析結果をそのままコードにしただけだけど (PB0 に LED が接続されている前提)
void shutter () {
int i;
for (i = 0; i < 23; i++) {
set_bit(PORTB, PB0);
_delay_us(13);
clear_bit(PORTB, PB0);
_delay_us(13);
}
_delay_us(7200);
for (i = 0; i < 23; i++) {
set_bit(PORTB, PB0);
_delay_us(13);
clear_bit(PORTB, PB0);
_delay_us(13);
}
} ただ、赤外線の場合、設定済みの露出でしかシャッターを切れないので、バルブとかはできない。インターバル撮影とか、センサー連動のシャッターとかはこれで十分できそう。花火の撮影とか自動化できそう。
ディスクを1台新しく買ったので、Windows とディスクを共有する、という前提を諦めて (というより、ネットワーク共有するつもり)、ディスクは HDFS+ でフォーマットした。
これで Time Machine のバックアップ対象にできるぞ、と思ったんだけど、なんとなく case sensitive としてフォーマットしたら、Time Machine 用のディスクが case insensitive なせいでバックアップ対象にできないことが判明、、、せっかく8時間ぐらいかけてバックアップをコピーしたのに………
最近このようなことばかりで本当に嫌気がさす。ろくなことがおこらない。人生自体がバグってる
hfe はコレクタ電流をベース電流で割った値。バイポーラトランジスタはベースエミッタ間に流れた電流に応じでコレクタ電流が増える素子なので、つまりこれは増幅率になる。(エミッタ電流はベース電流+コレクタ電流になる)
FET の場合これに相当するのは相互コンダクタンス。FET はゲートソース間にかける電圧に応じてドレイン電流が増える素子なので、同じようにドレイン電流をゲース電圧で割る (Isd / Vgs) った値が相互コンダクタンスと呼ばれる。なぜコンダクタンスかというと I/V という形が R (=V/I) の逆数すなわちコンダクタンスだから。
回路図記号における矢印は電流が流れる方向を差しているので、NPN 型バイポーラトランジスタでは Negative -> Positive <- Negative と、ベースに向かって伸びる矢印になる。PNP 型では Positive <- Negative -> Positive と、ベースから外に向かって伸びる矢印になる。
FET の場合、ゲートソース間にかける電圧は逆方向電圧なので、正電圧がかかっているほうに矢印が向く。ゲートに正電圧をかける場合、逆方向なのでFETはN(負)型になる。
結論から言うと、直で繋ぐなら FAT32 か exFAT しかない。FAT32 はもはや時代遅れ (2TB までのディスクしか扱えないとか制限がある) ので、選択肢は exFAT しかない。
ただし、exFAT にはジャーナリングがないので、信頼性は低い。またその関係か、USBケーブルをよく抜き挿しするケースではミス (アンマウントせずにケーブルを抜く) をすると、いちいちファイルシステムチェックをかけないといけない。これは思いのほか面倒。
結局、Windows と Mac 両方から読みたいファイルがある場合、ベストはファイルサーバーを別途どこかに立てるのが一番いいような気がする。Mac を主にするなら、共有設定でファイル共有をオンにすればよさそうだけど、同一ネットワークになるように環境を作るのが面倒。
むずかしい。
今、自宅回線は LTE オンリーで生きているので (テザリング)、スマートフォンがルーターを兼ねてる。だいたいこれでいいんだけど、スマートフォンのルーター機能は接続されている端末同士の通信が遮断されているっぽい? のでファイル共有とかはうまくいかない。それにそもそもファイル共有とかのトラフィックをスマートフォン経由にしたくない……
そういうことを考えはじめると、1段別のルーターをかましたくなる。これまた面倒くさい。普通のルーターの場合、WAN 側は有線なので、有線アダプタも別途必要っぽい。
あるいは、無線LAN中継機能がついたルーターなら単体でもいけるかもしれない。
これかなー
これはちょっと高い…… 中継としても使えるらしい。でもスマートフォンとは 2.4GHz で接続して、家庭内には 5GHz (11ac) をばらまきたいんだけど、この周波数は固定らしくて替えれないっぽい…… だめだ
親機-WG1800HP(Wi-Fi高速中継機モード)間は5GHz、WG1800HP(Wi-Fi高速中継機モード)-子機間は2.4GHzでの通信となり、変更はできません。
やっぱ安いイーサネットコンバーターを別途用意したほうが自由度は高い。そうすると
2k円ぐらい。これでスマートフォンのテザリングを有線化して、普通のルーターに接続するのが一番よさそう。速度的に 11ac が必要ないなら
8k円ぐらい。これでよさそう。上位モデルは薄くなったぶん熱に弱いようなレビューを見る。コンバータとあわせても1万ぐらいなので、中継機能付きのやつを買うより安い。
あと不安要素としては、スマートフォンのテザリングは毎日切ったり入れたりするので、ちゃんと自動再接続されるか、かなあ。使ってみないとわからなそう……
しかしコストをかけてまで Windows とファイルを共有したい、というニーズがないので、やはりホームネットワークは組まなそう…… もうすこしメリットがあればやってもいいんだけどなー
試験とか用に時計が必要だったので安いのを買った。これ1000円ぐらいだけど、文字盤もみやすいし、案外かっこよくて防水だしコストパフォーマンスが非常に高い。バンドだけがやすっぽい感じだけど、替えてもいいし、ほとんど使わないならこれで十分そう。
アナログ時計って最近殆ど使っていなかったけど、おもったより直感的に読みやすくていいですね。
最初に作ったやつを少し作りなおした。ケースを加工するのが面倒だったので適当な状態で放置されていたんだけど、おさまりの良さそうな方法を思いついたので、基板から作りなおした。
殆ど前のと変わってない。ESD 保護ダイオードと、プルアップを変更しただけ
ピンの配置の関係でアサインだけ変えてある。
秋月で売ってる電池ボックス 単3×4本用(フタ付プラスチック・スイッチ付)というのを使ってる。
単3は2本分の領域をエネループ用に使って、残り半分のスペースに回路を入れてる。もとからあるでっぱりとかはニッパーとかカッターで切った。電池の金具は加工する必要はなくて、ハメこまれてる位置を変えてあげるだけでよかった。元からあるスイッチはとってしまっている。
結構狭いので、圧電ブザーを削ったり基板をやすりで削ったりしてギリギリで入れてる。今回は部品配置の検討をするのに EAGLE が大変役に立った。ISP 部分以外はほぼジャンパなしでいけてる。IC ソケットをつけなければもっと高さに余裕があったんだけど、一応つけた。
スイッチがあった部分は少し広げて、タクトスイッチを入れてる。固定する方法で困るけど、グルーガンでタクトスイッチを固めてしまった。グルーガンでも結構固めになるので、力を入れても大丈夫なくらいにはなるっぽい。
ref.
wine で PCC-450D を動かしてみる。CAT のリファレンス読んでたら PCC-450D がなんとかって書いてあったのでググった。
YAESU USの Files から PCC-450D Software V1.00 and Reference Manual ( 1.18 MB ) をダウンロード。
wine で実行するとエラる
err:module:import_dll Library MFC42.DLL (which is needed by L"Z:\\Users\\cho45\\Downloads\\PCC-450D_V100\\PCC-450D\\PCC-450D.exe") not found err:module:LdrInitializeThunk Main exe initialization for L"Z:\\Users\\cho45\\Downloads\\PCC-450D_V100\\PCC-450D\\PCC-450D.exe" failed, status c0000135
MFC が必要なので入れる
$ winetricks mfc42
COM ポートがどれも開けない。wine のこのへん、どういう仕組みなんだろう? と思ったら以下のようにするらしい。
$ ln -s /dev/tty.usbserial-FTB3L9UG ~/.wine/dosdevices/com1
で起動はするし COM ポートとのやりとりも一応できてるっぽい。
でもいまいちうまく表示が更新されない。のでメニューから AI1; を自分で送ってあげると更新されたりする。でも全部の情報を同期する方法がわからなかった…… あと別にPCからリグをコントロールできても嬉しくない (もっとたくさん情報を表示できるとか、そういう機能はなかった)
結局、何かしら追加の機能が欲しいなら自力で書くしかない
VGS(th) に結構バラつきがあるみたいで、データシートだと 0.8〜3V となっている。VGS = VDS ID = 1mA の条件が書いてあるから、たぶん温度変化について書いてあるんだと思うけど、よくわからない。
VDS= 5V, ID = 1mA ぐらいで、手元のをいくつか試すと。室温20度で、約2.28〜2.32V付近でスイッチする。指でつまんで温めると0.1Vぐらい下がったりする。おもしろい。
2.1V ぐらいまでスイッチできてほしいんだけど、なんかうまい手はないんだろうか。負荷側の電圧は決まってしまっているし、ほかの素子を探すしかないのかな。すごい困るというほどではないから、そこまではしたくない。
ワッチドッグタイマー。基本はプログラムが意図しない挙動をしたときにリセットをかけるためのタイマー。
例えば、「常に1秒後にリセットをかけるワッチドッグタイマー」をセットして、ワッチドッグタイマーによってリセットされる前にメインプログラム側からワッチドッグタイマーをリセットする。もしプログラムが暴走してタイマーが初期化されなくなると、ワッチドッグタイマーがリセットをかけてくれる。
用途上、メインのクロックとは別のクロックで動いている。
電源電圧を監視して、一定より下がったらリセットをかけてくれる。
もちろん瞬間的な電源電圧変動では反応しないようにヒステリシスな感じになってる。
1608 (1.6mmx0.8mm)のチップコンデンサを安いばっかりに現物見ずに買ってみたらだいぶ小さすぎた……
3216 か 2012 にしておいたほうがよさそう
とりあえず完成なので、今まで書いたやつのまとめで整理。
エレキーは片方のパドルを押したままだと、ずっとその符号が出続けるので、いいタイミングで手を離す必要がある。
このとき、どのタイミングで符号メモリーを効かせるかで使い勝手が大きく異なる。
後者のほうが基本的に落ちついて打てる感じだけど、パドルを早く動かしすぎると変な符号が出たりする。一長一短な感じ。
このエレキーでは、これらの中間として、前の符号が終わってから、短点の長さ * 0.3 の間は「インヒビット」として押し続けていてもメモリーされない挙動にした。これは単に好みなので、ソースコードの定数で変えれるようにした。
前回とピンの使いかたが変わっているけど、あまり変更はない。
パドル入力には静電気サージ (ESD) 用にツェナーダイオードを入れた。AVR の仕様上「All I/O pins have protection diodes to both VCC and Ground」となっていてクランプダイオードが入っているみたいだけど、クランプされたのを消費する部分がどこにもないので前段で入れたほうがよさそう。
FET のゲートについてる 150Ω は電流制限用だけど、一応なくても動く。AVR のポートの絶対定格が 40mA なので 3V/20mA=150Ω。流れるとしても瞬間だけなんだけど、絶対定格を守るなら必要そう。
FET の GS 間の抵抗は入力オープン時に GS を確実に 0V にするためで、普通入れるみたい。AVR の出力ポートってローのときは吸い込み動作するしいらないんじゃ? と思ったけど、電源 OFF->ON からのタイミングとかいろいろなタイミングで入力オープンのとき不意にONになるとそのままになってしまうらしい。一応入れたほうがよさそう。
2.2MΩ の抵抗はパドルのプルアップ抵抗で、省電力のため外部に大きなのをつけてる。ただ、人体アースの電圧降下でもキーイングとみなされる(接点を触れるとキーイングされてしまう)ようになるので、善し悪しがある。
いろいろ突き詰めると部品点数が減らせない。
ステレオミニジャックでパドルと繋ぐようにしてるけど、別に直結でもいいと思う。その場合ジャック部分はいらない。
ボリュームは半固定として書いてあるけど、普通のやつのほうがいいと思う。基板取り付けの小型ボリュームだとお手軽だけどあまり手に入らないみたい。なんでもいいけど場所をとる。
これだけしか書いてないけど、ATTiny13A だと 96.7% Full (990 bytes) なので、結構ギリギリです
CrossPack-AVR-20130212 の avr-gcc (GCC) 4.6.2 で開発
AVR ISP Mark II なら、Makefile 変更なしに make install で書きこみが走る。
ISP も回路を切断せずに一応動いて、書きこみもできるけど、キーイング出力にノイズが入るので注意が必要 (ブレークインを切っておくか、リグとは切断して書きこみする必要がある)。
あたりを想定
CR2032 (3V) は公称 3V、終止電圧 2〜2.5V 程度。約 225mAh 使い捨てだけど、よく売ってる。使い捨てなので限界まで動いて電池しぼりとって動かなくなるほうが効率的。
eneloop lite 2本だと公称は 2.4V (1.2*2)、終止電圧 2.0V (1.0 * 2) 程度で、単4で550mAh、コイン電池に比べると体積は大きい。lite 版のほうが用途的にはいいだろうと思う。エネループの場合普通のニッケル水素より自然放電が少ないのと、比較的高い電圧が長く続く。ただし過放電すると致命的なので、2.1V程度で動かなくなるのが理想。
本体の最低動作電圧は 1.8V 程度なので、スイッチング用の FET の Vth に支配される。
実測すると、最低動作電圧は室温20℃で2.3V 程度 (≒ FET Vth)
CR2032 で動かすなら、もっと低い電圧でも動いてほしいけど、もっとぎりぎりの別のFETにするほかない。
エネループの場合2本で2.3Vを切る (1本で1.15V) になるのは、だいたい70%〜90%ぐらい放電したあたりなようなので、これでも悪くはなさそう。
消費はいろいろ工夫してみたので、結構減らせてる。
電源に CR2032 (225mAh) を使った場合、1日に2時間キーイングすると仮定すると、約1152日ほど持つ。1日8時間フルタイムでキーイングしても 292日ほど持つ。1日16時間キーイングし続ける廃人でも146日ほど持つ。
eneloop lite (550mAh) の場合、容量の70%程度使うまででも、1日2時間のキーイングで1971日ほど持つ計算になる。自然容量減を考えてもそこそこ持ちそう。
具体的には以下のような対策をしてる
かなり単純なものをしっかり各所考えながら作ってみたけど、いろいろと発見があった。ソフトウェアの変更がダイレクトに消費電力減に繋がったりするのは新鮮で面白い。
また、この程度の回路だと全素子の動作を考えながら作れるので、基本的なことを理解するきっかけになった。
次はもうすこし複雑なものを作りたい。
ref.
金曜日の夜から急の鼻の奥が痛くなって、そのまま全身だるい感じで3日間ほど殆ど何もできなかった。こういうの本当にイライラする。やることいっぱいあるのになにもできない。
インピーダンスの式
共振状態ではリアクタンス部(虚数部)はゼロになる (抵抗成分だけ)。
すなわち
と はそれぞれ
共振状態のときの式に代入して f について解く (普通は角周波数 ω を使うみたいだけど、僕はなんか混乱するので全部展開しとく)
移項
両辺に をかける
両辺を で割る
両辺の平方根をとる
両辺を で割る
最悪リアクタンス部がゼロになれば共振ということがわかってれば、簡単に導ける。
L か C のリアクタンスをRで割るイメージが覚えやすい気がする (抵抗Rが小さいほど高いQになる、というのがイメージしやすい) 直列に入っている R は単に損失なので、小さいほうがいいというイメージ。
↑ をそれぞれ で割っただけ
直列の逆数と覚える。並列に入っている R は小さいほど無駄に電流を流すので、大きいほうが損失がなくていいというイメージ。
FET は電圧駆動なので電圧さえかければ電流を流す必要はない。
ただ、現実的にはFETの入力に寄生している容量を十分充電しきるまでは、電流が相応に流れ、オフにするときはすみやかにこの容量を放電することが求められる。なので容量が少なければ少ないほど早いのはイメージできる。
まではわかったけど、では実際にそれがスイッチングスピードにどう関わってくるか計算で求めるのがよくわからない。
例として 2N7000 の input capacity は最大で 50pF、150Ωの抵抗と3Vの電圧(最大電流20mA)で充電しようとすると、CRの過渡現象の例の式だけで考えると、電流は
ある時間におけるコンデンサの電圧を考える。コンデンサの電圧は電源電圧から抵抗での電圧降下を引いた値なので、
これをさらに t について解きたいけど、自分の力だと解けないので Maxima 君で解くと solve(v = E * (1 - %e^(-t/(C*R)) ), t);
で、各値を代入して計算すると
function t (C, R, E, v) {
return C * R * Math.log(-(E / (v - E)));
}
// 入力電圧の9割まで
console.log(t(50e-12, 150, 3, 3*0.9)); //=> 約17ns
// 最低 V_th まで
console.log(t(50e-12, 150, 3, 0.8)); //=> 約2.3ns になるけど、確かめようがない。それに、この速度が実際の FET の速度にどう関わってくるかわからない……
ググってでてきたpdf を見た感じだいぶ難しくて現時点の自分では理解できない。
要は知りたいのは、Gとグラウンド間に入れる放電用抵抗は最大どの程度にできるのか、ということなんだけど、よくわからない。大きすぎると放電に時間がかかりすぎて、オフにならなくなるのはわかる。まぁ実際試しみて定数決定するのが一番いいんだけど……