わがロボットの譜

千葉工業大学、総合工学研究会所属の者です。とりあえず、二足歩行ロボット作成日誌です。

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

PageTop

Hitecサーボ HSR-5990をシリアル通信で制御

出来たー。
とりあえず、今回試したのはidを指定して動かす、指定せずすべて動かすことの2つ。

通信についてまとめると、ボーレート19200bps、パリティなし、2ストップビット、7バイトで1セットでの通信でした。
とりあえず、英語の資料を読み漁って、
1バイト目 = 0x80 Header、1バイトめは常にこれ
2バイト目 = Command 、0xE6ですべてのサーボ、id指定するときはサーボのidを入れる。これでサーボを動かすモードになります。。
3バイト目 = Param1
4バイト目 = Param2
ここで3,4バイト目にはサーボの目標角度が入ります。
目標角度は具体的にまず、PWMのときのパルス幅から600~2400まで10進むごとに1度変わるように変化します。
1500で真ん中に来ます。
この数値をもとに Param1<<4+Param2 = 目標角度となります。
私はとりあえず真ん中に持って行きました。
1500を16進数で表すと5DCなので、Param1 = 5, Param2 = 0xDCとしました。
5バイト目 = Checksum 
これは、(1バイト目+2バイト目+3バイト目+4バイト目+5バイト目)を256で割ったあまりが0になる必要があるので、
5バイト目 = (256-(1バイト目+2バイト目+3バイト目+4バイト目)mod256)mod256
となります。
6バイト目 = Recieve1 = 0x00
7バイト目 = Recieve2 = 0x00
最後の2バイトは受信用なので、送信するのは常に0x00のようです。

と、結論づけました。
とりあえず、真ん中に動かすプログラムを書いて、波形をHitecサーボプログラマーで真ん中に動かす波形を出したものと比べてみました。。
デジタルオシロは思ったより便利ですね。先輩から教えてもらって、こんな風に波形が取れました。
波形比較

なんとなーく見た感じNot入れれば動くかなと思い、手持ちに74HC14があったので信号にかませてみました。。

・・
・・・
・・・・・
・・・・・・・動いた・・・・。

結局回路はこんな感じです。。
回路図

とりあえず、明日はサーボを動かす関数を作る予定です。
しかし、こうやって今記事を書いて、notあるとサーボから受信できるのか?という疑問が…。
まぁ、おいおい考えます。。




スポンサーサイト

PageTop

コメント


管理者にだけ表示を許可する
 

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。