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); +
-と入力します。負荷の値がどのような数値なのかまだ分かりませんので、桁数を多めにとります。+
---- ----


トップ   差分 リロード印刷に適した表示   全ページ一覧 単語検索 最新ページの一覧   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom