まとめ anchor.png

FREEDOMライブラリを読み込むために最初に必ず

#include <fd.h>

を書きます。

実際の処理はmain関数の{}の中に書きます。

main関数内で必ず最初に

fd_Init (0, BT_CONSOLE, 0, 7.4);

で初期化します。下の補足も確認しましょう。

ここまではどのプログラムでも殆んど同じですので、新しいプログラムを作るときにはコピー&ペーストします。

Dynamixelから1バイトのデータを取り出すには

fd_DXReadByteData (ID, アドレス, &変数名);

を使います。値を入れる変数名の前に&を付けるのを忘れないよう注意しましょう。変数名の前に&を付けると変数のアドレスを表します。

Dynamixelに1バイトのデータを書き込むには

fd_DXWriteByteData (ID, アドレス, 書き込む値);

を使います。

取り込んだ値を表示したりするにはfd_printfを使います。

Page Top

課題 anchor.png

Warning_k1.png

Chapter2.3, 2.4を参考に「音センサに反応があったらブザーを鳴らす」という方法でプログラムを書いてみましょう。
また、Chapter2.1で紹介した本キットの機能を使って、自分で考えた装置の制作にもチャレンジしてみましょう。

ヒント

Page Top

補足 anchor.png

Page Top

ソフトウェアリセット anchor.png

プログラムを書き込むには一度ブートローダのコマンドモードに入らなければなりません。ブートローダのコマンドモードに入る方法として、これまでプッシュボタンを押しながらUSBケーブルを接続するという方法をとっていましたが、毎回USBケーブルを抜き差しするのは面倒です。
そこでUSBケーブルを抜き差ししないでブートローダのコマンドモードに入る方法を紹介します。

Warning_k3.png

#include <fd.h>の後に

#define KEY_QUIT { if(fd_rx_buff()) fd_SoftReset();}

と入力して下さい。
KEY_QUIT と書くことで if(fd_rx_buff()) fd_SoftReset(); と書いたことと同じ意味ですと宣言しています。 if(fd_rx_buff()) fd_SoftReset(); は、パソコンから入力があったらブートローダのコマンドモードへ入るという意味です。

最初からif(fd_rx_buff()) fd_SoftReset();と書けば良いのではと思うかもしれませんが、長いので、短くて覚えやすいKEY_QUITにしました。勿論そのまま if(fd_rx_buff()) fd_SoftReset(); と書いても構いません。

更にwhile文の{}内の最後に

KEY_QUIT;

と入力して下さい。 whileで繰り返し処理をしている間にSIMPLE TERM上でキーボードからどのキーでも良いので入力すると、ブートローダのコマンドモードに入ってプログラムが書き込めるようになります。

これによりプログラムを書き込むたびにFDIII-HCの電源をON,OFFしたり、USBケーブルを抜き差しする手間が省けます。
書き込んで試してみて下さい。

Page Top

FDIII-HCのブザーを鳴らす anchor.png

Warning_k4.png

Chapter2.3のFREEDOMライブラリ初期化で少し説明しましたが、fd_Init関数の第3引数はFDIII-HCのブザーの設定です。
FDIIIのブザーは供給電圧が下がったり、Dynamixelエラーが発生したときに鳴る重要なブザーです。今後fd_Init関数で初期化する際は、少し長いですが以下のように書いて下さい。

fd_Init (0, BT_CONSOLE, FD_BEEP_MMI | FD_BEEP_PACKETERR | FD_BEEP_LOWVOLTAGE | FD_BEEP_BOOTUP, 7.4);

※改行はしないで一行で書きます。

FDIII-HC Starter Kit Guideへ戻る


トップ   差分 リロード印刷に適した表示   全ページ一覧 単語検索 最新ページの一覧   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom
最終更新: 2011-02-02 (水) 19:29:57 (JST) (4824d)