6: 2011-07-11 (月) 20:41:22 yoshida | 現: 2013-04-09 (火) 23:44:33 takaboo | ||
---|---|---|---|
Line 2: | Line 2: | ||
*プログラミング [#k91f3857] | *プログラミング [#k91f3857] | ||
#ref(AutomaticDoor_1.png,100%) | #ref(AutomaticDoor_1.png,100%) | ||
- | 「AX-S1の赤外線反射センサに人が反応したら、AX-12+でバーを開く」というプログラムを作成します~ | + | 「AX-S1の赤外線反射センサに人が反応したら、AX-12Aでバーを開く」というプログラムを作成します~ |
- | Chapter2で「AX-S1の赤外線反射センサに泥棒が反応したら、AX-S1のブザーを鳴らして脅かす」というプログラムを作りました。違いはAX-S1のブザーを鳴らすか、AX-12+を動かすかだけです。 | + | Chapter2で「AX-S1の赤外線反射センサに泥棒が反応したら、AX-S1のブザーを鳴らして脅かす」というプログラムを作りました。違いはAX-S1のブザーを鳴らすか、AX-12Aを動かすかだけです。 |
**処理の流れを図にする [#e944ad29] | **処理の流れを図にする [#e944ad29] | ||
Line 29: | Line 29: | ||
fd_SetUVThreshold (7.4); | fd_SetUVThreshold (7.4); | ||
DX_ChangeBaudrate (1000000); | DX_ChangeBaudrate (1000000); | ||
+ | |||
while (true) { | while (true) { | ||
DX_ReadByteData (100, 27, &ReadData, 10, NULL); | DX_ReadByteData (100, 27, &ReadData, 10, NULL); | ||
Line 60: | Line 60: | ||
[[fd_DXSetPosition>FDIIILIB#nbe84864]]は指定されたアクチュエータの位置を変更する関数です。~ | [[fd_DXSetPosition>FDIIILIB#nbe84864]]は指定されたアクチュエータの位置を変更する関数です。~ | ||
- | ''第1引数''は、DynamixelのIDです。AX-12+のIDは1です。~ | + | ''第1引数''は、DynamixelのIDです。AX-12AのIDは1です。~ |
''第2引数''は、指令位置([[ゴールポジション>FDIIICHAPTER1.1#xa86a787]])です。 | ''第2引数''は、指令位置([[ゴールポジション>FDIIICHAPTER1.1#xa86a787]])です。 | ||
#ref(AX12_position.png,100%) | #ref(AX12_position.png,100%) | ||
- | AX-12+のホーンは図のように0°から300°まで回転します。ゴールポジションの値は0°なら0、中心の150°なら512、300°なら1023になります。~ | + | AX-12Aのホーンは図のように0°から300°まで回転します。ゴールポジションの値は0°なら0、中心の150°なら512、300°なら1023になります。~ |
|CENTER:BGCOLOR(red):||c | |CENTER:BGCOLOR(red):||c | ||
- | | :idea:|AX-12+のホーンの角度によっては、フレームとAX-12+、又はフレームと自作ケースが干渉します。干渉が起こるようなゴールポジションを指定した場合、機器の破損の原因となります。必ず設定するゴールポジションが干渉が起こらない範囲内にあることを十分確認して下さい。| | + | | :idea:|AX-12Aのホーンの角度によっては、フレームとAX-12A、又はフレームと自作ケースが干渉します。干渉が起こるようなゴールポジションを指定した場合、機器の破損の原因となります。必ず設定するゴールポジションが干渉が起こらない範囲内にあることを十分確認して下さい。| |
**バーを閉じる [#f5a1921e] | **バーを閉じる [#f5a1921e] | ||
Line 127: | Line 127: | ||
**トルクリミットの設定 [#odb4282e] | **トルクリミットの設定 [#odb4282e] | ||
- | これで図に書いた一通りの処理のプログラムを書きましたので、書き込んで実行したいところですが、プログラムを一通り書いた後、初めてAX-12+を動かす時に注意する点があります。~ | + | これで図に書いた一通りの処理のプログラムを書きましたので、書き込んで実行したいところですが、プログラムを一通り書いた後、初めてAX-12Aを動かす時に注意する点があります。~ |
- | プログラムを間違えると、自分が意図していた角度とは異なる角度にAX-12+のホーンが動いてしまうことがあります。ホーンは0~300°まで動きますが、フレームやケースを取り付けた場合、0~300°の範囲で動かそうとしてもフレームやケースにぶつかってそれより狭い範囲でしか動きません。それにも拘らず、干渉する範囲まで動かそうとするとどうなるでしょうか?~ | + | プログラムを間違えると、自分が意図していた角度とは異なる角度にAX-12Aのホーンが動いてしまうことがあります。ホーンは0~300°まで動きますが、フレームやケースを取り付けた場合、0~300°の範囲で動かそうとしてもフレームやケースにぶつかってそれより狭い範囲でしか動きません。それにも拘らず、干渉する範囲まで動かそうとするとどうなるでしょうか?~ |
- | AX-12+に負担が掛かりギアがかけてしまいます。~ | + | AX-12Aに負担が掛かりギアがかけてしまいます。~ |
- | そうならないようにテスト動作の際はAX-12+のトルクリミットを下げます。トルクリミットとはホーンを動かす力の最大値です。ホーンが回りにくい時、AX-12+は頑張ってホーンを回そうと力を入れます。その力を制限することで壊れることを防ぎます。それでもAX-12+に負担になりますので予期せぬ動きをした場合は、直ぐに電源を切るようにしましょう。 | + | そうならないようにテスト動作の際はAX-12Aのトルクリミットを下げます。トルクリミットとはホーンを動かす力の最大値です。ホーンが回りにくい時、AX-12Aは頑張ってホーンを回そうと力を入れます。その力を制限することで壊れることを防ぎます。それでもAX-12Aの負担になりますので予期せぬ動きをした場合は、直ぐに電源を切るようにしましょう。 |
#html{{ | #html{{ | ||
<pre class="brush:c"> | <pre class="brush:c"> | ||
Line 160: | Line 160: | ||
[[fd_DXSetTorqueLimit>FDIIILIB#u4255df3]]は指定されたアクチュエータのトルクを変更します。 | [[fd_DXSetTorqueLimit>FDIIILIB#u4255df3]]は指定されたアクチュエータのトルクを変更します。 | ||
- | ''第1引数''は、DynamixelのIDです。AX-12+のIDは1です。~ | + | ''第1引数''は、DynamixelのIDです。AX-12AのIDは1です。~ |
''第2引数''は、トルクリミットを指定します。トルクリミットは0~1023まで設定することができます。ここでは154を指定していますので、約15%でトルクが制限されます。100%のトルクを得るには1023を指定します。 | ''第2引数''は、トルクリミットを指定します。トルクリミットは0~1023まで設定することができます。ここでは154を指定していますので、約15%でトルクが制限されます。100%のトルクを得るには1023を指定します。 | ||