MLA 自動同調コントローラ
SWR 計を作ったので、これと連携して、MLA のモーター動かして自動的に同調させる。
SWR 計つくったのは、そもそも本来これがやりたかったからなので、完全に yak-shaving
である。
アルゴリズム
- 適当に方向を決める (正転・逆転)
- 送信中になったら決めた方向に少し動かす
- SWR を計る
- 下がったらそのままさらに動かす
- 上がったら方向を逆にして動かす
- 繰替えす
SWR の大きさに応じて、一度に動かす量を可変する。
設計
既にアンテナ切替器などを Raspberry Pi に接続して管理しているので、これもそのようにする。つまり
- I2C 接続でステッピングモーターを制御する基板をつくる
- Raspberry Pi 上で SWR 計 と連動しながらステッピングモーターを制御する
ハードの実装
まず I2C でステッピングモーターを制御する基板をつくった。
特筆するようなことはなく、I2C 経由で方向とステップ数を書くとその通りにステッピングモーターを動かすというもの。
モーターとの接続は DIN 8PIN の一部にピンを使って行ってる。
ソフトの実装
SWR 計は USB Serial として接続し、モータードライバは Raspberry Pi の I2C バスに接続しているので、ソフトウェアは Raspberry Pi 上の Ruby で気軽に書ける。適当に書いたら動いた。
まとめ
SWR の測定誤差の関係で、連続送信していないと、どうしてもちょっと振動したり、同調点から離れすぎていると挙動不審になったりするのが改善点だが、このようなやりかたで概ねうまく動くことがわかった。
関連エントリー
- GPIO (sysfs) を使ったソフトウェア I2C 普通の GPIO 経由で I2C できたらなんとなく嬉しいかなと思って作ってみた。つまりソフトウェアでピン状態をいじって I2C 通信すると...
- ステッピングモーター (パルスモーター) ステッピングモーターの説明は JRC のドキュメントがわかりすい http://semicon.njr.co.jp/jpn/PDF/appl...
- Linux 上の LL で I2C する (Ruby) なんとなく i2c-dev.h とかで定義されているAPIを呼ばないと使えないのかなあと思っていたけど、デバイスファイルの読み書きと ioc...
- Raspberry Pi を中心にやってみようとしているところ Raspberry Pi せっかくあるので、一応作りたい目標をもっていろいろ試してみてる。現時点での思惑を書いておく。 概要 無線機の周辺を...
- おうちのメインRaspberryPiの入れ替え メインの Raspi という存在が自宅にはあるのだが、だいぶ前にセットアップしていろいろ秘伝のタレのような状態になっていたうえに、ろくに a...