1: 2011-07-05 (火) 18:25:09 yoshida | 2: 2011-07-05 (火) 19:17:42 yoshida | ||
---|---|---|---|
Line 23: | Line 23: | ||
メニューの「ファイル」→「名前を付けて保存」→ファイル名に「RobotHand.c」と入力して「保存」します。 | メニューの「ファイル」→「名前を付けて保存」→ファイル名に「RobotHand.c」と入力して「保存」します。 | ||
- | **メインループ内を手を開くに変更 [#la580a9f] | + | **メインループ内を削除し、手を開くを追加 [#la580a9f] |
- | + | ||
- | #ref(gcc_edit_1.png, 100%) | + | |
AX-S1の操作は不要になりましたので、関連する関数を削除します。 | AX-S1の操作は不要になりましたので、関連する関数を削除します。 | ||
- | 合わせて、不要になる変数も削除します。 | + | 合わせて、不要になる変数も削除します。~ |
- | + | #ref(gcc_edit_1.png,100%) | |
- | AX-12+のホーンを回転させれば手は開きますので、fd_DXSetPositionを使用します。 | + | AX-12+のホーンを回転させれば手は開きますので、fd_DXSetPositionを使用します。~ |
#ref(AX12Hone.png,100%) | #ref(AX12Hone.png,100%) | ||
Line 38: | Line 35: | ||
手が開いた状態は、AX-12+のポジションが300の時とします。もし手を反対に付けてしまった場合は、700の時となります(以下300として説明します)。 | 手が開いた状態は、AX-12+のポジションが300の時とします。もし手を反対に付けてしまった場合は、700の時となります(以下300として説明します)。 | ||
- | |||
- | #ref(gcc_edit_2.png, 100%) | ||
**負荷を読み込む [#n3c87f70] | **負荷を読み込む [#n3c87f70] | ||
Line 46: | Line 41: | ||
#ref(RobotHand_p6.png, 100%) | #ref(RobotHand_p6.png, 100%) | ||
- | メイン関数の初めに | + | 変数名のLoadDataは、負荷データという意味です。変数名は何でも構いませんが、後で見直した時に、何のための変数なのかが直ぐ分るような名前にしましょう。 |
- | uint16_t PresentLoad; | + | AX-12+から負荷の値を読込むには、[[fd_DXGetLoad>FDIIILIB#e1ca8211]]関数を使用します。 |
- | と入力します。 | + | |
- | uint16_t は、16ビット=2バイトデータの変数の型です。この型はC言語で通常使う型ではありません。通常のC言語で書くとunsigned shortです。 | + | ''第1引数''は、DynamixelのIDです。AX-12+のIDは1です。~ |
- | + | ''第2引数''は、現在の負荷の値をいれるための変数のアドレスです。 | |
- | 変数名のPresentLoadは、現在の負荷という意味です。変数名は何でも構いませんが、後で見直した時に、何のための変数なのかが直ぐ分るような名前にしましょう。 | + | |
---- | ---- | ||
- | AX-12+から負荷の値を読み込みます。 | + | fd_DXGetLoad関数の後に読み込んだ負荷の値を表示します。 |
- | 2バイトのデータを読み込むには、fd_DXReadWordData関数を使います。 | + | 負荷の値は[[コントロールテーブル>DXTABLE1#k921f4f9]]で10ビットまで使用することになっていますので、4桁表示としています。(10ビットで表現できる最大数は2047) |
- | + | ||
- | #ref(RobotHand_p7.png, 100%) | + | |
- | + | ||
- | while文の中に | + | |
- | fd_DXReadWordData (1, 40, &PresentLoad); | + | |
- | と入力します。DynamixeのID=1、アドレス=40、読み込んだデータを入れる変数のアドレス=&PresentLoadです。変数のアドレスなのでPresentLoadの前に&を付けます。 | + | |
- | + | ||
- | ---- | + | |
- | + | ||
- | #ref(RobotHand_p8.png, 100%) | + | |
- | + | ||
- | 読み込んだ負荷の値を表示します。 | + | |
- | fd_DXReadWordDataの後に | + | |
- | fd_printf("%6d\r",PresentLoad); | + | |
- | と入力します。負荷の値がどのような数値なのかまだ分かりませんので、桁数を多めにとります。 | + | |
---- | ---- |