汎用パワーリレーによる同軸切替器を使っているが、やはり問題点がある

  • 大変すぎて二度と作りたくない
    • 壊れても修理したくない
  • VHF 以上ではいまいち
  • 100均のタッパーに入れているので信頼性がいまいち

そこで、市販の回転スイッチ式同軸切替器をリモート化するということを考えた。この場合

  • 信頼性は高い
  • コストパフォーマンスは悪くないが良くもない (2ポートなら3000円、3ポートなら8000円ぐらい)
    • 加えて制御用のモーターなどが必要 +3000円 程度
  • 切替器そのものが壊れても簡単に替えが効く
  • 制御部が壊れても切替器単体では使える
  • VHF 以上でも安定
  • 切替えは遅い

問題は切替器のスイッチをどう動かすかという点

対象の切替器

CX-210A ダイヤモンド(第一電波工業)同軸切換器 -

5.0 / 5.0

定番の第一電波工業の CX-210A

CX310A ダイヤモンド(第一電波工業)1回路3接点 同軸切換器 -

4.0 / 5.0

3接点のものもあり、スイッチ部は同じなのでうまくいけば、応用も効きそう。

サーボモータ

切替器のスイッチを駆動するには多くとも半回転すれば十分なので、お手軽にやるならサーボモータが良さそう。

問題はトルクだが、試したところそこそこ低価格のものでも十分すぎるトルクはでることがわかった。

使ったのは GWS03T/2BBMG/JR 7.4kg・cm (4.8V) で、1000円。

ちなみに、さらに安価な SG90 (1.80 kg・cm) ではトルク不足だった。

モーターとスイッチとの固定

これが一番面倒。機械的にしっかり力が伝わるようにしないといけない。

CX-210A のスイッチ部は 6mm の固定幅なため、適当に 3mm 厚のアクリルを切ってはりあわせるだけで、ぴったりの大きさの治具を作ることができる。あとはこれにサーボホーンを固定して (M3 のタップを切った) やれば、結構綺麗にいく。

あとはサーボモータ本体と切替器を相対的に固定することが必要だが、100均の100cm四方のMDF材と100mm M3 のビス3本でなんとかした。サーボモータを固定するため、四角い穴をあけなければならないのがネックだが、MDF材は割と加工性が良く、カッターやプラスチックカッターでなんとかなる。

でもって冒頭のような感じになった

制御

CX-210A は約40度で2接点が切り替わるようだった。マイコンには設定モードをつけ、位置を補正する仕組みが必要になる。今回はとりあえず試しただけなので、そのへんの実装はしてない。

また、RCサーボモータは負荷がかかっていると完全に停止せず、ブブブブと鳴ってしまうことがあるみたいなので、これを対策する必要がある。具体的にはサーボの移動速度は決まっているので、一定時間後になったらサーボモータへの電源供給を切ってしまえばいいと思う。つまり

  • 適切なパルスを出力
  • RCサーボに電源を供給開始
  • 一定時間後に供給終了

みたいなサイクルでスイッチを行う。

まとめ

サーボモータで市販の同軸切替器を回すのは案外簡単だった。メリットは冒頭に書いた通りだが、複数台作って組合せようと思うと案外金と労力がかかる。ただしメンテナンスは比較的しやすいように思う。

あと、市販の同軸切替器の罠は、グラウンドが全て共通になってしまう点で、アンテナによっては調整が難しくなりそう。これはどうしようもなくてつらい。

KX3 は 8.8cm x 18.8cm x 4.1cm と、スマフォとして考えると大きすぎるし、タブレットとして考えると厚さが多すぎるという大きさなので、市販の殆どのマウントアームは直接使用できない。

RAM マウント

任意のガジェットを任意の位置に固定するためのもので「RAM マウント」というのがある。例えばスマフォを自転車に固定したいとか、車椅子にモニターをつけたいとか、そういう場合に使うやつ。

RAM マウントはアメリカの会社が作っていて、いくつかのパーツを組合せて使うようになっている。ちなみに個々のパーツが案外高価なので、別にお得ではない。ただ、かなり強靭な作りになっている。

で、RAM マウントのシリーズの RAM-HOL-UN4U (ユニバーサルフィンガーグリップ) というのだと、KX3 でもぎりぎり保持することができる。この製品は Elecraft 公式のモービル運用マニュアルにも紹介されており、安心感がある。

それに加え

  • RAM-B-238UP (ダイヤモンドベース)
  • RAM-B-201U-CP (ダブルソケットアームL)
  • RAP-B-121BU (プラスチッククランプベース)

を買ってセッティングした。クランプベース以外はヨドバシ、クランプベースは PDF 工房にて購入した (amazon.co.jp では殆ど売ってない。amazon.com だと売ってるけど日本へ発送しないことが多い。いろいろ見たがヨドバシが品揃えと価格面で最強だった)

所感

机を少しでも広くして、なおかつ掃除しやすくするというのが目的だったが、これは叶った。

RAM マウントはかなり強力に固定ができるが、ボタンを押すときはやはり揺れる。

他にやるとしたら、三脚穴が空いた金具を作って、あいているネジに共締めするとかがありそう。

コラージュフルフル ネクストシャンプー すっきりさらさらタイプ 400mL (医薬部外品) -

5.0 / 5.0

コラージュフルフル ネクストリンス すっきりさらさらタイプ 400mL (医薬部外品) -

5.0 / 5.0

その手の人には有名?らしいけど「フルフルネクスト」というのがあって、これはマジで効く…… 今まで薬局で最安だし痒くなりにくいと謳っている「メリット」を使ってたけど、すぐ体感できるレベルで違う。

僕はストレス耐性が低く、頭をガリガリ掻きがちなので大変頭皮環境が悪く、

  1. ストレスで頭掻く
  2. 頭皮が弱る
  3. 頭が痒くなる
  4. さらに頭掻く

という悪循環に陥りやすく、一旦入ると抜けだしにくかった (季節が変わる・ストレスの原因がなくなるなどしないと抜けれない) けど、これのおかげでハゲへを道を遠ざけられた気がする。

Cable Matters 3.5mm ステレオオーディオケーブル 2m(2本セット・ブラック) -

5.0 / 5.0

これ最近6本ぐらい買った。1セット2本で900円なので、一本あたり450円、金メッキコネクタかつシールドケーブルなんだけど、自作しようとするとコネクタだけで700円ぐらい余裕でかかるので、かなりコストパフォーマンスが高い。


フォーンプラグが好きで、汎用のコネクタとしてさえも良く使う。なので無限にフォーンプラグのケーブルがあっても困らないし、無限にフォーンプラグのコネクタがあってほしい。以下のようなメリットがある

  • ケーブルが手に入りやすい
  • コネクタが手に入りやすい
  • ケースにジャックを付けたい場合でも比較的小さな丸い穴だけですむので楽

とはいえ、3線しか配線できないので、それ以上必要になると4極フォーンプラグとか少し特殊なものになってしまう。

自作していると、ケースに取り付けるタイプのコネクタで汎用性が高いものが欲しくなる。つまり

  • ケースに簡単に取り付けられる
  • 線の数が多い
  • 入手性が良い

を見たすようなコネクタが欲しくなる。

いろいろ調べてみたが結局のところあまり選択肢はない。

フォーンプラグ系

基本はミニプラグ3極が最も入手性が高い

メリット

  • 入手性が非常に高い
  • 扱いやすい
  • パネルに取り付けやすい

デメリット

  • 端子間がショートするとまずい用途では使えない
  • 3極しかない (4極もあるけどあまり入手性が良くない)

D-sub コネクタ

9ピン〜50ピンまで手に入る。9ピンものもは RS-232C ケーブルとして有名なので入手性が非常に良い

メリット

デメリット

  • 穴の形が変則的なのであけるのがちょっと面倒
    • とはいえドリルであけまくればすぐなので丸穴より楽かもしれない
  • コネクタ自体が場所をとる
  • 前時代的な臭いがする

DIN コネクタ

ノーマルのDINコネクタ、2ピンから9ピンまでの規格があるが、入手性的には6〜8ピンぐらいが使いやすい。価格が同じならピンが多くて困ることはなく、8ピン一択でたくさん買うと良い。

メリット

デメリット

  • 結構おおきい
  • 丸穴あけるにしても結構大きくあける必要があり面倒

mini DIN コネクタ

6ピンのものはPS/2 キーボード・マウスで使われているのでケーブルの入手性は高い

メリット

デメリット

  • ちょっと高価
  • ピンが細いので破損しやすい

その他

RJ45 (8P8C)

LAN ケーブルとかのやつ

メリット

  • 非常に入手性が高い

デメリット

  • パネルに取り付けるのが一般的ではなく、面倒

RJ-11

いわゆる電話線のモジューラジャック。最大6ピンなんだけど、実際は6ピンのものはあまり流通しておらず、LAN ケーブルよりも高価だったりする。

メリット

  • 特にない

デメリット

  • パネルに取り付けるのが一般的ではなく、面倒

所感

3極以下ならフォーンプラグ一択。極数が多い場合安くて入手性の良い D-sub 9ピンを検討するのが良さそう。ただ、D-sub はちょっとかっこわるいので、次点で DIN コネクタは良い。

マイクロサーボ SG90 (10個入) -

4.0 / 5.0

いくつかサーボモータを購入していたのだけど、ようやく試した。持っているのは上記 SG90 と GWS03T/2BBMG/JR。どちらも動かしてみた。

これらはどちらも JR というタイプ (ピンアサインの種類)。種類はこのページの線のタイプついてを見た。

典型的なプロトコルとしては 20ms ごとに 1000μs〜2000μs (1500μs が中立) のパルスを送るというものらしい (可動角度60度)。

とりあえず試そうと、16bit PWM タイマーを使ってやってみた。

#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>

#define clear_bit(v, bit) v &= ~(1 << bit)
#define set_bit(v, bit)   v |=  (1 << bit)

#define INPUT_NOR PB0
#define INPUT_REV PB1

static inline void setup_io () {
	/**
	 * Data Direction Register: 0=input, 1=output
	 * 必要なポートだけインプットポートにする。
	 */
	DDRB  = 0b11111100;
	DDRC  = 0b11111111;
	DDRD  = 0b11111111;

	PORTB = 0b00000011;
	PORTC = 0b00000000;
	PORTD = 0b00000000;

	uint16_t TIMER1_MODE = 14;
	TCCR1A = (0<<COM1A1) | (0<<COM1A0) | (1<<COM1B1) | (0<<COM1B0) | (((TIMER1_MODE>>1)&1)<<WGM11) | ((TIMER1_MODE&1)<<WGM10);
	TCCR1B = (((TIMER1_MODE>>3)&1)<<WGM13) | (((TIMER1_MODE>>2)&1)<<WGM12) | (0<<CS12) | (1<<CS11) | (0<<CS10);
	ICR1   = 20000; // Top
	OCR1B  = 1500;
	TIMSK1 = (0<<OCIE1B) | (0<<OCIE1A) | (0<<TOIE1);

	sei();
}

static inline void set_position(uint16_t angle) {
	int base = 600;
	int max  = 2400;
	uint16_t n = ((uint32_t)angle * max) / 180 + base;
	if (n < base) {
		n = base;
	} else
	if (n > max) {
		n = max;
	}
	OCR1B = n;
}

int main(void) {
	setup_io();
	set_position(0);

	for (;;) {
		if (bit_is_clear(PINB, INPUT_NOR)) {
			set_position(0);
		}

		if (bit_is_clear(PINB, INPUT_REV)) {

			set_position(180);
		}

		_delay_ms(10);
	}
}

ハマったポイント

可動角度

ググると 1000μs〜2000μs のパルスというサイトばかりヒットするが、これは可動角度60度の場合で、実際は 600us〜2400μs までのパルスを受け付け、180度可動可能なものが多いみたい? よくわからないけど、手元の2種類についてはだいたいこの範囲のパルスを受けつけた。範囲外のパルスを入力すると「ジジジジ」とか「ブブブブ」とかいって止まり、消費電力が多くなる。

電圧

電圧が足りないと、指定した角度付近まで移動したあと「ジジジジ」と止まってしまうことがあった。

制御方法

16bit PWM だと1つの AVR で2つまでしか駆動できないので、割込みを使った別の方法を検討してもよさそう。

Arduino だと特に何も考えなくてもたくさんサーボを制御できるみたい。

http://akizukidenshi.com/catalog/g/gM-08461/

最近「超小型USBシリアル変換モジュール」というのが秋月から出たみたいで、買ったのはいいけど、そのままだとちょっと使いにくいわけです。 ケースに組込むにしても MicroUSB だし取り付け用の穴もあいてないので難儀する。ブレッドボードで使うのがメインの用途なんでしょうけど…

なんかいいのないかと思いましたが、タカチ SW-20 (15x15x20) を買ってみたら完全にピッタリだったのでオススメです。ケースの蓋についている溝にピッタリハマってくれるサイズなので、ケースを少し削るだけで MicroUSB にアクセスでき、適当にエポキシで固めてしまえば便利。一応電源LED用の穴もあけたけど、なくてもよさそう。

KX3 と PC だけで SWR グラフにできたら便利なのになー と思っていたけど、少し前に調べたところ SWR を直接読む方法がなく、諦めていた。

しかし、KX3 Utility で Power Calibration を実行すると、SWR を読んでいるっぽい挙動が確認でき、読める方法があるということがわかった。KX3 Utility は親切にも全部のコマンドを出力してくれてるので、それを読んだだけでうまいこといけた。

やりかたとしては

  • TUNE ボタンを押す (SWH16; スイッチホールド)
  • ディスプレイに現在の SWR が表示される
  • DS; で「ディスプレイに表示されている内容」を取得する
  • SWR とれる

という感じだった。いろいろとコードを追加して、現在周波数の±を指定してSWRを取得するコードを書いてみた。結構いい感じ

BUFFALO 無線LAN子機 コンパクトモデル 11n技術・11g/b対応 WLI-UC-GNM -

2.0 / 5.0

WLI-UC-GNM を使ってたんだけど、24時間つけっぱなしのサーバみたいな用途だと、過熱しすぎて止まってしまうことが多々あり、ぶっちゃけ使いもんにならんよ! という感じだった。つけっぱにしないなら使えるんだけど……

ので、GW-USNANO2A を買ってみた。

【Amazon.co.jp限定】PLANEX 無線LAN子機 (USBアダプター型) 11n/g/b 150Mbps GW-USNANO2A (FFP) -

3.0 / 5.0

が、めちゃくちゃ接続が切れまくる。

ping を打ち続ければ大丈夫なので、またパワーマネジメント系の問題か…と思ったが、iwconfig の結果は Power Management:off となっており、よくわからなかった。

調べてみると、このドライバに関してはカーネルモジュールに対するオプションによってパワーマネジメントを決めるらしい……

現在の状態は sysfs を通し

$ cat /sys/module/8192cu/parameters/rtw_power_mgnt 
1

で確認できる。1 だとパワーマネジメントが効いている。

$ sudo su
# echo 'options 8192cu rtw_power_mgnt=0' > /etc/modprobe.d/8192cu.conf
# reboot

すると、パワーマネジメントを切って起動させることができる。

$ cat /sys/module/8192cu/parameters/rtw_power_mgnt 
0

これで切れることがなくなった。

【ノーブランド品】USB 簡易電圧・電流チェッカー ストレート型 (3.4V~8.0V,0A~3A) -

5.0 / 5.0

これ安いし1個あるととても便利。USB 充電がちゃんと急速充電になっているか? とか実測でわかる。

充電専用というわけではなくて、普通の USB 機器に挟んでも使えるので、どのUSBデバイスがどれぐらい電力食っているかを実測できる。

似たようなのを自分で作ろうかと思っていたけど、買ったほうが遥かにやすい例