7: 2011-07-12 (火) 13:18:25 yoshida | 8: 2011-07-12 (火) 18:41:39 yoshida | ||
---|---|---|---|
Line 128: | Line 128: | ||
**手を少しづつ閉じる [#mdb3661c] | **手を少しづつ閉じる [#mdb3661c] | ||
負荷の値によりゴールポジションの値を少しづつ増やしながら、AX-12+に逐次書き込むことで、手を少しづつ閉じる動作を実現します。 | 負荷の値によりゴールポジションの値を少しづつ増やしながら、AX-12+に逐次書き込むことで、手を少しづつ閉じる動作を実現します。 | ||
+ | #html{{ | ||
+ | <pre class="brush:c"> | ||
+ | #include <fd.h> | ||
+ | void main (void) { | ||
+ | int16_t LoadData; | ||
+ | uint16_t GoalPosition = 300; | ||
- | #ref(gcc_edit_3.png, 100%) | + | fd_SetBeepCondition (FD_BEEP_MMI | FD_BEEP_PACKETERR | FD_BEEP_LOWVOLTAGE | FD_BEEP_BOOTUP); |
+ | fd_SetUVThreshold (7.4); | ||
+ | DX_ChangeBaudrate (1000000); | ||
+ | fd_DXSetTorqueLimit (1, 154); | ||
+ | fd_DXSetPosition (1, 512); | ||
+ | |||
+ | while (!fd_rx_buff () && !fd_GetPB ()) { | ||
+ | fd_DXGetLoad (1, &LoadData); | ||
+ | fd_printf ("%5d\r", LoadData); | ||
+ | fd_DXSetPosition (1, ++GoalPosition); | ||
+ | fd_Wait (10); | ||
+ | } | ||
+ | } | ||
+ | </pre> | ||
+ | }} | ||
先ずゴールポジションを保存する変数を宣言します。 | 先ずゴールポジションを保存する変数を宣言します。 | ||
uint16_t GoalPositon = 300は、変数宣言時に予め300という値を入れておくという意味です。~ | uint16_t GoalPositon = 300は、変数宣言時に予め300という値を入れておくという意味です。~ | ||
Line 144: | Line 164: | ||
処理の流れに合わせて、プログラムを修正します。 | 処理の流れに合わせて、プログラムを修正します。 | ||
- | |||
- | #ref(gcc_edit_4.png,100%) | ||
- | |||
- | **動作確認 [#x3a5a029] | ||
#html{{ | #html{{ | ||
<pre class="brush: c"> | <pre class="brush: c"> | ||
Line 159: | Line 175: | ||
DX_ChangeBaudrate (1000000); | DX_ChangeBaudrate (1000000); | ||
- | fd_DXSetTorqueLimit (16, 154); | + | fd_DXSetTorqueLimit (1, 154); |
- | fd_DXSetPosition (16, 512); | + | fd_DXSetPosition (1, 512); |
while (!fd_rx_buff () && !fd_GetPB ()) { | while (!fd_rx_buff () && !fd_GetPB ()) { | ||
- | fd_DXGetLoad (16, &LoadData); | + | fd_DXGetLoad (1, &LoadData); |
fd_printf ("%5d\r", LoadData); | fd_printf ("%5d\r", LoadData); | ||
if (LoadData < -100 && LoadData < 0) { | if (LoadData < -100 && LoadData < 0) { | ||
- | GoalPosition++; | + | fd_DXSetPosition (1, ++GoalPosition); |
- | fd_DXSetPosition (16, GoalPosition); | + | |
} | } | ||
fd_Wait (10); | fd_Wait (10); | ||
Line 175: | Line 190: | ||
}} | }} | ||
+ | **動作確認 [#x3a5a029] | ||
プログラムが完成しました。プログラムを書き込んで動かしてみましょう。 | プログラムが完成しました。プログラムを書き込んで動かしてみましょう。 | ||