ブログパーツUL5

RS306MDの動作方向をMR-C3024で変更

 RS306MDの動作方向の変更をroboBASICのDIR命令で行なうと、サーボの動作パルス幅の違いでモーションの動作が少し左右非対称になることがわかりました。そこで、miconoさんからRS306MDの設定変更の情報とヒントを頂き、予備のMR-C3024のマイコンボードを利用して、RS306MDにソフトで送信するだけでRS306MDの設定が出来ることがわかりました。なお、RS306MDの設定変更する詳細なコマンドは取扱説明書を参照ください。

さらに、miconoさんのブログもご覧になるととても参考になります。 

 但し、RS306MDのコマンド方式とPWM方式を混在させることはできませんので、あくまでもRS306MDの初期設定だけの専用プログラムをroboBASICで実行させることになります。RS306MDのコマンドの中には返信でデータも入手できるコマンドもありますが、半二重の回路が必要になるので簡単にはできません。そのため、今回は送信のみのプログラムです。

 RS306MDの動作方向を切り替えるMR-C3024を使って、roboBASICでプログラムした例です。外部表示はMR-C3024のLCD端子に、設定変更したRS306MDはMR-C3024のRX端子に接続するだけです。なお、ここではサーボは何も動きません。そのため、液晶表示かLEDの点灯でステップを確認するしかありません。間違っても、FlashROMに書き込んでいる最中に電源を落とさないように注意してください。

【2011/4/23修正】
 取扱説明書 ver.1.11の修正で、ver.1.12ではフラッシュROM書込みとサーボ再起動をまとめて指示ができなくなっています。そのため、フラッシュROM書込みの送信データを変更しました。


'============ RS306MD Setting program 2011/04/23 ===========
DIM RR AS BYTE
DIM i AS BYTE

main:

OUT 52,0

PRINT 12 'CLS
PRINT "RS306MD Servo"
PRINT 13 'CR
PRINT 10 'LF
PRINT "Direct Revers"

DELAY 1500

'Foward/Revers Select
GOTO flag1

flag0:

PRINT 12 'CLS
PRINT "RS306MD Foward"
PRINT 13 'CR
PRINT 10 'LF
PRINT "Setting Start.."
OUT 52,1
DELAY 500

'Servo Foward command
ETX 115200, &HFA 'Hdr
ETX 115200, &HAF
ETX 115200, &H01 'ID
ETX 115200, &H00 'Flg
ETX 115200, &H05 'Adr
ETX 115200, &H01 'Len
ETX 115200, &H01 'Cnt
ETX 115200, &H00 'Dat
ETX 115200, &H04 'Sum

GOTO main_exit

flag1:

PRINT 12 'CLS
PRINT "RS306MD Reverse"
PRINT 13 'CR
PRINT 10 'LF
PRINT "Setting Start!"
OUT 52,1
DELAY 500

'Servo Reverse command
ETX 115200, &HFA 'Hdr
ETX 115200, &HAF
ETX 115200, &H01 'ID
ETX 115200, &H00 'Flg
ETX 115200, &H05 'Adr
ETX 115200, &H01 'Len
ETX 115200, &H01 'Cnt
ETX 115200, &H01 'Dat
ETX 115200, &H05 'Sum

main_exit:

OUT 52,0
DELAY 1000

PRINT 12 'CLS
PRINT "RS306MD FlashROM"
PRINT 13 'CR
PRINT 10 'LF
PRINT "Writting Start!"

FOR i=0 TO 1
OUT 52,0
DELAY 500
OUT 52,1
DELAY 500
NEXT i

'FlashROM WRITE by ver.1.12
ETX 115200, &HFA 'Hdr
ETX 115200, &HAF
ETX 115200, &H01 'ID
ETX 115200, &H40 'Flg 60 -> 40
ETX 115200, &HFF 'Adr
ETX 115200, &H00 'Len
ETX 115200, &H00 'Cnt
ETX 115200, &HBE 'Sum 9E -> BE
PRINT 12 'CLS
PRINT "RS306MD FlashROM"
PRINT 13 'CR
PRINT 10 'LF
PRINT "Writting Complet"

FOR i=0 TO 2
OUT 52,1
DELAY 500
OUT 52,0
DELAY 500
NEXT i

DELAY 1000

END
'=================================================

 見事、動作方向のリバースに成功!

 この実行した結果、RZ-1の右半身のRS306MDをリバースにしましたので、モーションプログラムの初期設定でDIRはどちらも0に設定します。ゼロポイントの変更は必要ですが、モーションは90%ぐらい変更しないで問題はおきませんが、重心がかわったので微妙な重心でバランスしていたのは多少修正が必要となりますが、とても修正がやりやすくなります。

DIR G6A,1,0,0,1,0,0
DIR G6B,1,1,0,0,0,0
DIR G6C,0,0,0,0,0,0
DIR G6D,0,1,1,0,1,0


【注意】
 本プログラムによる事故や故障の責任は当方では負いかねます。あくまで自己責任で行なってください。
0

    コメント
    miconoです。
    コメントありがとうございます。
    自分のブログの方にも書きましたが、同時に行うことも可能です。実際に自分も動作することを確認していますし、双葉さんも、メーカー保証無しの動作として、動作することを認めています。
    • micono
    • 2011/04/23 8:56 PM
    ただ、ふと思ったんですけど、この場合、サーボを再起動させる必要性はないんですよね。。。
    • micono
    • 2011/04/23 9:04 PM
    miconoさん、情報有難うございます。

     メーカーに確認されていたのですね。ver.1.12のマニュアルでは該当部分が削除されていたので、使用すると支障があると思いましたが、確認されたなら問題ないですね。
     LSIではラッシュROMに書込むということは内部でチャージポンプ回路で高い電圧をつくり書き換えるので、電圧や温度などでバラツキも含めるとワーストでタイミングが厳しくなる場合があるのでしょう。そのため、書込みが終わらないうちに再起動の信号が入力されると動作に問題になるので、動作保障していないのではと推測します。

     私は動作方向の設定変更のみの単独プログラムなので再起動は不要です。

     なお、PC-USB-TTL-RS306MDの直結の回路も製作して、簡易的な半二重インターフェイスと送受信のLEDをつけて送受信できるようにしました。今度、サーボを購入した時に、リターンパケットが受け取れるかテストしてみます。

     受信もMR-C3024でできそうですが、マイコンボードが壊れる可能性があるので、送信のみだけにしておきます。
    • takuo
    • 2011/04/24 11:06 AM
    コメントする








       
    この記事のトラックバックURL
    トラックバック

    カレンダ

       1234
    567891011
    12131415161718
    19202122232425
    2627282930  
    << November 2017 >>