ページへ戻る

− Links

 印刷 

FDIII-HC Starter Kit Guide Chapter2.4 のバックアップソース(No.8) :: Besttechnology

knowledge:FDIII-HC Starter Kit Guide Chapter2.4 のバックアップソース(No.8)

« Prev[4]  Next »[5]
*プログラミング② [#z24decaf]
Chapter2.3 プログラミング①で赤外線距離センサの値を表示するところまでプログラムを書きました。
いよいよブザーを鳴らして完成させます。

**条件分岐 [#g83f7d2f]
処理の流れを描いた図を見て下さい。次はセンサ値とある閾値を比較するというところです。センサ値の範囲は0~255である事を確認しました。閾値はとりあえず100にします。後で必要に応じて調節して下さい。~
#ref(Warning_pp1.png,100%)
もしセンサ値が100以下なら何もしない、100より大きければブザーを鳴らすという条件分岐です。条件分岐はif文を使います(if文については[[Chapter1.4のif文>FDIII-HC Starter Kit Guide Chapter1.4#c6144380]]を参照して下さい)。~
センサ値表示の後ろに
 if(ReadData > 100) {

 }
と入力して下さい。~
もしReadDataが100より大きければ { } 内を実行するという意味になります。~
{ } 内にブザーを鳴らすプログラムを書きます。

**ブザーを鳴らす [#p70478d1]
#ref(Warning_pp2.png,100%)
AX-S1のブザーを鳴らします。ブザーはAX-S1に音階と音の長さを指定することで鳴ります。if関数の { } 内に
 fd_DXWriteByteData (100, 40, 10);
 fd_DXWriteByteData (100, 41, 10);
と入力して下さい。
fd_DXWriteByteDataはAX-S1やAX-12+に1バイトのデータを書き込むための関数です。
#ref(Warning_pp3.png,100%)
fd_DXWriteByteDataは関数名です~

''第1引数''はDynamixelのIDです。AX-S1のIDは100です。~

''第2引数''は、コントロールテーブルのアドレスです。[[Chapter1.1のAX-S1コントロールマップ>FDIII-HC Starter Kit Guide Chapter1.1#u70f1fa1]]を見て下さい。アドレス40は音階、アドレス41は音の長さです。~

''第3引数''書き込むデータです。ここではそれぞれ適当に10を入れました。ソの音を1秒(10×0.1秒)鳴らすことになります~

**警報器を動かす [#ybaa88fa]
#ref(Warning_pp2.png,100%)
 #include <fd.h>

 void main (void) {
   uint8_t ReadData;

   fd_Init (0, BT_CONSOLE, 0, 7.4);

   while (1) {
     fd_DXReadByteData (100, 27, &ReadData);
     fd_printf("%3d\r", ReadData);
     if(ReadData > 100) {
       fd_DXWriteByteData (100, 40, 10);
       fd_DXWriteByteData (100, 41, 10);
     }
   }
 }
プログラムが完成しました。隙間を含めてもたったの16行です。如何ですか?~
意外と簡単だと感じられたでしょうか?~
それではプログラムを書き込んで動かしてみましょう。~

ここでは書き込み方法を簡単に説明します。詳細は[[Chapter1.3の動作確認>FDIII-HC Starter Kit Guide Chapter1.3]]を参照して下さい。~

-FDIIIの電源スイッチをOFFにし、プッシュボタンを押しながらUSBケーブルを差し込みます。
-メニューの「コンパイル」->「ビルド」をクリックします。
-コンパイルが成功したらOKをクリックし、SIMPLE TERMが起動します。
-SIMPLE TERMのメニューの「通信」->「ポートオープン」をクリックします。
-SIMPLE TERM上に
 --< FDIII Ver1.0 by BestTechnology >--
と表示される事を確認してから、走る人マークをクリックします。
-<SUCCESS>と表示されたらキーボードで「g」を入力しプログラムを実行します。
-FDIII-HCの電源スイッチをONにします。

----
#ref(Warning_pp4.png,100%)
AX-S1の前方センサに手を近づけて行き、センサ値が100を超えるとブザーが鳴るはずです。~

これを泥棒が入ってきそうな場所に設置しておけば、泥棒が来てもビックリして帰って行くかもしれません。~

[[次のチャプターへ>FDIII-HC Starter Kit Guide Chapter2.5]]~

[[FDIII-HC Starter Kit Guide]]へ戻る

« Prev[4]  Next »[5]