ラジコンヘリ

E-SKY のラジコンヘリのブログです

全体表示

[ リスト ]

サーボアジャスタ完成

サーボアジャスタUART版(SVAJ_UART)、完成しました。

前の記事で公開したものは暫定版です。設定変更するためにいちいちEEPROMのデータを書き換える必要が
ありました。センタートリムを少し変更するだけで、受信機・サーボをはずしてライタにつないで・・・。
とてもじゃないけど、やってられません。

今回のものが正式版。バージョン1.0です。
UARTでパソコン(その他)と接続し、機体搭載状態でプロポを操作して、サーボの動作を確認しながら
設定できます。

ファームウェアのダウンロードはこちら
(ダウンロードしたファイルの最後に「.txt」がついていたら、それを削除してください。)

New release 2010/03/30 v1.2
SVAJ_v12.hex
変更履歴
・PUコマンド追加。

2nd release 2010/03/03 v1.1
SVAJ_UART_v11.hex
変更履歴
・コマンド解析処理のわずかなバグ修正。
・PI、POコマンド追加。

First release 2010/03/02 v1.0
SVAJ_UART_v10.hex

使い方

§接続
イメージ 1

UART(5V TTLレベル)で接続する。
通信設定は、2400bps、8ビットデータ、パリティ無し、1ストップビット。

§コマンド
コマンド及び数値はASCII文字列で送信する。数値は10進数。
送信コマンドの最後には、CR(0x0D)LF(0x0A)を付加する。
数値指定はすべて相対指定。現在の設定値に対する加算または減算値を指定する。
パラメータを省略すると、現在の設定値を返す。
設定値の取り得る範囲を超える指定をした時は、設定値の上限または下限値に設定される。
ただし、TC、SV、PI、POコマンドはパラメータ無し。
解析不能な文字列を受けると"?"を返す。
コマンド送信は、前回コマンドの応答を待たねばならない。

§コマンド一覧
--表記--
(param):省略可能パラメータ
[+/-]:+または-を指定
n:数値。10進数3桁以内で指定。
A〜B:設定値の範囲

TM([+/-]n)
Trim:-128〜127 スティックセンターの時のホーン位置を設定する。

DB([+/-]n)
DeadBand:0〜255 スティックセンター付近の不感帯を設定する。

GL([+/-]n)
Gain_Left:0〜255 左側の動作倍率を指定する。

GR([+/-]n)
Gain_Right:0〜255 右側の動作倍率を指定する。

LL([+/-]n)
Limit_Left:0〜255 左側の動作限界を指定する。

LR([+/-]n)
Limit_Right:0〜255 右側の動作限界を指定する。

DL([+/-]n)
Delay_Left:0〜16 サーボ左回転の動作速度(規定角度到達の時間)を17段階で指定する。

DR([+/-]n)
Delay_Right:0〜16 サーボ右回転の動作速度(規定角度到達の時間)を17段階で指定する。

Delayの設定値とおよそのサーボ動作速度は以下のとおり。
設定値 → 動作速度
0 → max speed
1 → 0.6 (sec/60deg)
2 → 0.7 (sec/60deg)
3 → 0.85(sec/60deg)
4 → 1.0 (sec/60deg)
5 → 1.2 (sec/60deg)
6 → 1.4 (sec/60deg)
7 → 1.7 (sec/60deg)
8 → 2.0 (sec/60deg)
9 → 2.4 (sec/60deg)
10 → 3.0 (sec/60deg)
11 → 3.4 (sec/60deg)
12 → 4.0 (sec/60deg)
13 → 4.8 (sec/60deg)
14 → 6.0 (sec/60deg)
15 → 8.0 (sec/60deg)
16 → 12.0 (sec/60deg)

RV([+/-]n)
Reverse:0〜1 動作方向を反転する。

MD([+/-]n)
Mode:0〜2 動作モードを指定する。通常は0。1または2は、送信機にチャンネルコンプレッサを取り付けた時
のみ有効。対応するチャンネルを指定する。

PU([+/-]n)
PullUp:0〜1 マイコン内蔵プルアップ抵抗の 有効/無効 を切り替える。
0でプルアップ無効、1でプルアップ有効。

TC
TxCenter:現在の受信信号をセンターとして設定する。受信信号が無い場合は"?NP"を返す。
正常に設定できると、受信パルス幅をμ秒単位で返す。受信機と接続しなくても、電源さえ供給すれば他の設定は行えるが、そのとき、TCコマンドでセンター設定は変更されない。

SV
Save:各設定値を保存する。正常に保存できると"OK"を返す。
注意!
SVコマンドを送信しないと、変更された設定値は電源を切るとすべて失われ、次回電源投入時には以前に設定
された値に戻る。

PI
Pulse_width_Input:現在(直前)の入力パルス幅をμ秒単位で返す。入力パルスが無い場合は0を返す。
スティック位置とパルス幅の関係を調査する等に使える。

PO
Pulse_width_Output:現在(直前)の出力パルス幅をμ秒単位で返す。出力パルスが無い(すなわち入力パルスが無い)場合は0を返す。パルス幅とホーン位置の関係、サーボの動作範囲や特性を調査する等に使える。

※Limit設定による動作限界のホーン位置は、TrimやReverseを変更しても変化しない。
※Trim、Limit、DeadBandにより決まるホーン位置は、GainやReverseを変更しても変化しない。

§設定例
送信 → 受信

TM+10 → 14
トリムを左へ10%移動。その結果、トリム位置は左14%になった。

LR → 225
LR-25 → 200
現在の右リミットを確認。225%だった。
右リミットを、25%減らす。その結果、右リミットは200%になった。

DL → 0
現在の左ディレイを確認。最高速である。
DL+100 → 16
左ディレイを100加算。上限が16なので、16に設定された。

§安全機能
規定範囲外の信号を受けた時は、直前のホーン位置を保持する。
さらに、約1秒間連続して規定範囲外の信号を受けると、ホーンをセンターにする。
当然、規定範囲内の信号が入力されたら、ただちに通常の動作にもどる。

なんらかの理由でコントローラが暴走し異常動作になった場合、およそ2秒後に自動リセットがかかり、
初期動作に復帰する。


パソコンとの接続には、RS232C→5Vレベルコンバータ、USB→UARTコンバータ等が使えます。
通信ソフトは、ハイパーターミナル等一般的な通信ソフトが使えます。

PICkit2のUARTツールを使うと便利です。接続はファームウェア書き込み時と同じ。
UARTツールは、送信コマンドを4個登録して、それぞれクリックするだけで送信できます。例えば、
TM+2 と TM-2 を登録し、それぞれの送信ボタンを何度かクリックすることで簡単にトリム設定ができます。

実は、PICkit2のUARTツールでの通信テストは行っていません(^^;
(誰かお願いします)
テストに使用したのは、数年前に購入した西日本常盤商行の UM01-RS。
現在はコレ↓に変わったらしい。
UM02-RS/D
http://www.tokiwa-west.co.jp/USB_Module/USB.htm

今ならコレの方が安いです。たぶん使えるでしょう。
http://akizukidenshi.com/catalog/g/gK-01977/

今回のバージョンから安全機能がついたので、以前のバージョンを使っている方は、なるべく早く
最新バージョンに変更することをお勧めします。 >Y.Mitaさん

質問受付中。

閉じる コメント(15)

顔アイコン

すげぇ〜、ついに完成しましたね!
PICKit2でのテストは引き受けました。
実はここ1週間はDakarの逆アッセンブルで時間使ってました。でも、未だに7%程度...。まだまだ先は長い。でも、解析が済めば気にくわない表示や半固定無くせるので、模索中。
バージョンアップもラジャー!
何か、忙しくなってきた!!!

2010/3/2(火) 午前 0:53 [ Y.Mita ]

顔アイコン

バージョンアップも、PICkit2のUARTもバッチリでしたよ!
最初はサーボなしでPICkit2のUART接続を試して、「応答が無い」って悩んだけど、PICkit2からVCC供給を忘れていたせいでした...。
PICkit2で"VDD PICkit2"を"5.0"で"ON"してからToolsメニューからUART tool選択してボーレートを2400に設定して、Connectしたらバッチリ動作しました。
当然、サーボを接続したときは"VDD PICkit2"はしたら壊れますね!
明日にでもサーボを接続して遊んでみます。

2010/3/2(火) 午前 1:05 [ Y.Mita ]

お久しぶりです!
何やらややこしそう(イヤ、楽しそうw)
Komさんらしい記事でこれはじっくり読まないとですね!

よし!家に帰ってからもう一度見に来ます〜
どっちにしろチンプンカンプンで頭バーンですけど、見るだけでもワクワクw

2010/3/2(火) 午後 3:55 ぱるっち♪

顔アイコン

Y.Mitaさん
アップしてから1時間かからずに簡易テスト完了とは・・・。
さすが早い!
ドキュメント書くのが面倒だったんで、簡単な説明にしちゃいました。
たぶん使ってるのはMitaさんだけだし、Mitaさんならまぁわかるだろうって(^^;

>引き受けました。
空気よんでくれてありがとうございます(^^;

>Dakarの逆アッセンブル・・・7%程度
マジですか?(@o@)
ディスアセンブルよりも、全部自分で作った方が楽そうなんだけど。
DakarはフォントデータもROMにあるはずだし、画面表示もソフトでやってるので、ディスアセンブルのリストはそうとう読みにくいでしょう。

>UARTもバッチリ
良かったです。おかしいところがあったら、指摘してくださいね。

>・・・はしたら壊れますね!
PICkit2の回路図見たら、壊れないかもしれないけど、まぁ、やらない方が無難でしょうね。

さっき、おまけ機能を思いついたんで、今作ってます。
現在の、入力パルス幅と出力パルス幅をμ秒単位で表示する機能です。
何かの役に立つでしょう。

2010/3/2(火) 午後 7:22 [ kom ]

顔アイコン

お〜!
ぱるっちさん、お久しぶりです。

何がやりたいかは、前の記事の動画を見てもらえるとわかります。
高級なサーボには同様な機能を持ってるのもあるけど。

コレなら材料費は250円くらいで、安もんサーボも高級サーボに変身!
いや、サーボ自体の精度は変わらないけど・・・(^^;

こういうのって、ありそうなんだけど売ってないんですよね。
(私が知らないだけ?)

ないものはつくる!
ぱるっちさんならわかりますよね(^^)

2010/3/2(火) 午後 7:32 [ kom ]

なるほど!って作ってしまうのが凄すぎて凄すぎてw

>スティックセンター付近の不感帯を設定する。
↑私はこれが気になったで〜す。カー用はこの機能でずいぶんフィーリングが変わりますけど、空物も変わるのでしょうね〜^^

2010/3/3(水) 午前 1:01 ぱるっち♪

顔アイコン

683何個か持ってるので私も作ってみまーす
コマンド設定ってハイパーターミナルでも可ですか?

2010/3/3(水) 午後 5:37 [ あんきも ]

顔アイコン

ぱるっちさん

>空物も変わるのでしょうね〜
パイロンレーサーのような高速機では有効かもしれないですね。

じつはこれは、ある方からプロポのエキスポマイナスみたいな機能を提案いただいたんですが、このマイコンでは難しいので、その代替機能として作りました。

2010/3/3(水) 午後 8:57 [ kom ]

顔アイコン

あんきもさん
>作ってみまーす
ありがとうございます。どうせなら、一気に2個作っておくことをお勧めします。
2個あると、エルロン2サーボの機体で、受信機のエルロンチャンネルを分岐して2つのサーボにつなぎ、エルロンディファレンシャルにしたり、安価なジャイロをエルロンに入れたり出来ます。
それに、近い将来?チャンネルコンプレッサのシステムには最低2個必要です。

>ハイパーターミナルでも可ですか?
もちろんできます。テストでは使ってみました。
でも、コマンドを送信すると、同じコマンドですらもう一度全部キーを打たなきゃならないので、ものすごく面倒です。
Y.Mitaさんがテストしていただいたように、PICkit2のUARTツールを使うのが楽ですよ。
それか、送信文字列をいくつか登録できるRS232C通信用フリーソフトなんかが便利そうです。

2010/3/3(水) 午後 9:00 [ kom ]

顔アイコン

早速作りました〜
なんとなくしか理解していないんですがデフォルトで最大幅なんですね。

これ普通に使ってもNGのとかよりサーボのビビり出ません。
いやぁ〜こんなの設計できるなんてすごいっすわ。

2010/3/4(木) 午前 5:03 [ たま ]

顔アイコン

何だかよう解りませんが、
凄いのは分かりました(笑

MitaさんのDakar逆アッセンブルも楽しみですね〜。

2010/3/4(木) 午前 8:28 hide

顔アイコン

たまさん
お試しいただきありがとうございます。
>デフォルトで最大幅なんですね。
アップしたhexファイルは左右とも、Gainが200%、Limitが255%になっています。
普通のスティック操作ではホーンの動く範囲が、およそ±80度くらいになると思います。これは、サーボストレッチャとして使う人が多いと予想して決めました。
Gainは255%が最大設定値なので、もう少し振れ幅を増やせます。
ただ、その振れ幅にサーボが対応していないかもしれません。

>サーボのビビり出ません。
TrimやLimitでの1%は、サーボの動きのおよそ0.4度に相当します。
が、内部演算や入出力パルスの測定は、0.05度単位でやっています。
(PCM2048相当?)
そこらへんが効いているんでしょうかね。

2010/3/4(木) 午後 3:02 [ kom ]

顔アイコン

hideさん
そんなに凄いわけじゃないけど、あると便利だと思って作りました。
>Dakar逆アッセンブル・・・
Mitaさんの根性こそ凄いです。
解析が済めば、カメラとの相性問題も解決するかもしれませんね。

2010/3/4(木) 午後 3:15 [ kom ]

顔アイコン

http://api.ning.com/files/mFZ6rcZanUvgmFJESYZSzTFpo*11I*hFhRewo-9GHutmJR11SBkhRxydk9NSjgtbDBCJLRrOSLrN7eJlM64zAsfCVpdm-k4J/l_AUTO_PILOT.jpg

こんなのも出来るんでっしょうね〜。

2010/3/5(金) 午後 0:05 hide

顔アイコン

hideさん
>こんなのも・・・
SVAJにはこの機能はありません。
ここらへんは受信機にやってもらおうって事で、SVAJでは採用しませんでした。

2010/3/5(金) 午後 5:06 [ kom ]


.


プライバシー -  利用規約 -  メディアステートメント -  ガイドライン -  順守事項 -  ご意見・ご要望 -  ヘルプ・お問い合わせ

Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.

みんなの更新記事