2: 2009-12-16 (水) 19:59:45 eid7gud ソース 3: 2009-12-17 (木) 19:40:53 eid7gud ソース
Line 9: Line 9:
処理の流れを図にしましょう。 処理の流れを図にしましょう。
#ref(AutomaticDoor_14.png,100%) #ref(AutomaticDoor_14.png,100%)
 +Chapter2との違いはブザーを鳴らす代わりに、センサ値が閾値以上ならバーを開け、閾値以下ならバーを閉じるという所です。人が来てバーが開いたと思ったら直ぐ閉じてしまうと困るのでその後に少し待機があります。
**準備 [#o28e1018] **準備 [#o28e1018]
Line 33: Line 34:
   }    }
 }  }
-プログラムは上記のようになっているでしょうか。+プログラムは上記のようになっているでしょうか。
 +Chapter2.5の補足で追加した箇所があります。
 #define KEY_QUIT { if(fd_rx_buff()) fd_SoftReset();}  #define KEY_QUIT { if(fd_rx_buff()) fd_SoftReset();}
Line 41: Line 43:
   fd_Init (0, BT_CONSOLE, FD_BEEP_MMI | FD_BEEP_PACKETERR | FD_BEEP_LOWVOLTAGE | FD_BEEP_BOOTUP, 7.4);    fd_Init (0, BT_CONSOLE, FD_BEEP_MMI | FD_BEEP_PACKETERR | FD_BEEP_LOWVOLTAGE | FD_BEEP_BOOTUP, 7.4);
については[[Chapter2.5のFDIII-HCのブザーを鳴らす>FDIII-HC Starter Kit Guid Chapter2.5#vb6f386d]]をご覧下さい。 については[[Chapter2.5のFDIII-HCのブザーを鳴らす>FDIII-HC Starter Kit Guid Chapter2.5#vb6f386d]]をご覧下さい。
 +----
 +ファイルを別の名前で保存しましょう。
 +
 +メニューの「ファイル」 -> 「名前を付けて保存」 -> ファイル名に「AutomaticDoor.c」と入力して適当なフォルダの中へ「保存」
 +
 +**ブザーを鳴らす部分を削除 [#ma9b92ad]
 +     fd_DXWriteByteData (100, 40, 10);
 +     fd_DXWriteByteData (100, 41, 10);
 +はブザーを鳴らす部分です。今回は必要ありませんので削除します。
 +#ref(AutomaticDoor_15.png,100%)
 +
 +**バーを開ける [#icc81839]
 +#ref(AutomaticDoor_16.png,100%)
 +センサ値と閾値を比較するif分の { の中に
 +     fd_DXWriteWordData (1, 30, 300);
 +と入力して下さい。
 +
 +これはAX-12+に2バイトのデータを書き込むための関数です。
 +#ref(AutomaticDoor_17.png,100%)
 +fd_DXWriteWordDataは関数名です。
 +
 +''第1引数''はDynamixelのIDです。AX-12+のIDは1です。
 +
 +''第2引数''はAX-12+のコントロールテーブルのアドレスです。[[AX-12+コントロールテーブル>FDIII-HC Starter Kit Guid Chapter1.1#xa86a787]]を見て下さい。AX-12+のホーンの位置の指令は、アドレス30と31のゴールポジションにデータを書くことで行います。~
 +ゴールポジションが2バイトのデータで表されているので、fd_DXWriteByteData関数(1バイドのデータを書き込む)ではなく、fd_DXWriteWordData関数を使います。
 +
 +''第3引数''はゴールポジションの値です。
 +#ref(AutomaticDoor_18.png,100%)
 +AX-12+のホーンは図のように0°から300°まで回転します。ゴールポジションの値は0°なら0、中心の150°なら512、300°なら1023になります。~
 +#ref(AutomaticDoor_19.png,100%)
 +バーが開いている状態は大凡0°と150°の真ん中として、ゴールポジションの値を300にしました。もし、AX-12+を反対に付けた場合は700位にしましょう。


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