忍者ブログ

≪ 前の記事次の記事 ≫

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

▲TOP

コマンドサーボ(シリアルサーボ)を使う

電卓ロボットは3つのサーボで動作しています。
ちょっとお高いけどコマンドサーボを使っています。
現在の角度が読めたりするので、目標角度までちゃんと移動したかとかがわかっちゃうわけですね。

サーボとのデータのやり取りはシリアル通信で行うのですが、
ちょいと面倒なことに半二重通信なんです。
サーボ側は通信線一本なんだけど、マイコン側は送信と受信がそれぞれあるので2本っていう。

というわけでこんな感じでつなぎました。

web上で検索すると3ステートバッファのICをかましてる例が多いのですがマイコンさんに直接つなぎます。

マイコンから送信するときは普通に。
ただし受信割り込みとか使ってるなら送信中は割り込みを切っておく。

受信時にはマイコンの送信ピンを入力に切り替えることでハイインピーダンスにするようにしました。
抵抗値が悪かったのか出力のままだとうまく受信できなかったので。
無駄な電流も使わないのでこの方がいいでしょう。

また、マイコンから送信している時にも受信ピンからデータが流れ込むので、受信バッファがオーバーフローします。
この辺はマイコンによると思うのですが、SH7125だとオーバーフローフラグをクリアしないと以後受信できないので、サーボからデータが返ってくる前にフラグをクリアしておく必要があります。

拍手

PR

Comment (3) | ▲TOP

Comment

  • メールアドレスは入力しても管理画面でしか表示されません。
  • コメント投稿時にパスワードを設定していた場合のみ、名前をクリックすると編集出来ます。

Vodafone絵文字 i-mode絵文字 Ezweb絵文字
utebaさん  2013.05.05 Sunday
初めまして、検索で飛んできました。
同好の士ですね。

>抵抗値が悪かったのか出力のままだとうまく受信できなかったので。

抵抗をダイオードに交換すると、簡単にトライステート化できます。
カソードがTxポート側ですが、電圧降下の影響を少なくするために、ショットキーバリアダイオードがいいかもしれません。
Txポートは無通信時はHレベル固定なので、通信線がH/Lどちらでも逆流しなくなります。
抵抗自体はポート間の貫通電流への保護のために、最大でも20mA程度になるよう250Ω程度つけておくといいです(つけないで暴走して、焼いちゃったことあります)。
サーボの信号線は、抵抗でプルアップする必要があるかもしれません(サーボ内でプルアップしていないでしょうから)。
あまり大きい抵抗値だと高速の通信信号がなまってしまうので、適当に選んでみました。

近藤科学のサーボについてはこれで動作させることができたので、1週間くらい前から双葉のコマンドサーボ調査中です。
とりあえず動くとこまで持って行けたので、どう遊ぼうか思案中です。

(解決済みでしたら、ご容赦を)
utebaさん  2013.05.05 Sunday
試した回路です↓

http://blogs.yahoo.co.jp/uteba/62583217.html
こんぺ~さん  2013.05.06 Monday
ありがとうございます。そのほうがスマートですね!
時間できたら試してみます~