3: 2009-11-19 (木) 19:30:51 sho | 現: 2011-02-02 (水) 19:29:42 eid7gud | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | TITLE:FDIII-HC Starter Kit Guide Chapter2.4 | ||
*プログラミング② [#z24decaf] | *プログラミング② [#z24decaf] | ||
- | Chapter2.3 プログラミング①で距離センサの値を表示するところまでプログラムを書きました。 | + | Chapter2.3 プログラミング①で赤外線反射センサの値を表示するところまでプログラムを書きました。 |
いよいよブザーを鳴らして完成させます。 | いよいよブザーを鳴らして完成させます。 | ||
**条件分岐 [#g83f7d2f] | **条件分岐 [#g83f7d2f] | ||
- | 処理の流れを描いた図を見て下さい。次はセンサ値とある閾値を比較するというところです。センサ値の範囲は0~255である事を確認しました。閾値はとりあえず100にします。後で必要に応じて調節して下さい。~ | + | [[処理の流れ>FDIII-HC Starter Kit Guide Chapter2.3#o0aebfe7]]を描いた図を見て下さい。次はセンサ値とある閾値を比較するというところです。センサ値の範囲は0~255である事を確認しました。閾値は例として100にします。後で必要に応じて調節して下さい。~ |
#ref(Warning_pp1.png,100%) | #ref(Warning_pp1.png,100%) | ||
- | もしセンサ値が100以下なら何もしない、100より大きければブザーを鳴らすという条件分岐です。条件分岐はif文を使います(if文の詳細は[[こちら>FDIII-HC Starter Kit Guid Chapter1.4>#c6144380]]を参照して下さい)。~ | + | もしセンサ値が100以下なら何もしない、100より大きければブザーを鳴らすという条件分岐です。条件分岐は[[if文>FDIII-HC Starter Kit Guide Chapter1.4#c6144380]]を使います。~ |
センサ値表示の後ろに | センサ値表示の後ろに | ||
if(ReadData > 100) { | if(ReadData > 100) { | ||
+ | |||
} | } | ||
と入力して下さい。~ | と入力して下さい。~ | ||
- | もしReadDataが100より大きければ { } 内を実行するという意味になります。~ | + | もしReadDataが100より大きければ{ }内を実行するという意味になります。~ |
- | { } 内にブザーを鳴らすプログラムを書きます。 | + | { }内にブザーを鳴らすプログラムを書きます。 |
**ブザーを鳴らす [#p70478d1] | **ブザーを鳴らす [#p70478d1] | ||
#ref(Warning_pp2.png,100%) | #ref(Warning_pp2.png,100%) | ||
- | AX-S1のブザーを鳴らします。ブザーはAX-S1に音階と音の長さを指定することで鳴ります。if関数の { } 内に | + | AX-S1のブザーを鳴らします。ブザーはAX-S1に音階と音の長さを指定することで鳴ります。if関数の{ }内に |
fd_DXWriteByteData (100, 40, 10); | fd_DXWriteByteData (100, 40, 10); | ||
fd_DXWriteByteData (100, 41, 10); | fd_DXWriteByteData (100, 41, 10); | ||
- | と入力して下さい。 | + | と入力して下さい。1行目は音階、2行目は音の長さを指定します。~ |
fd_DXWriteByteDataはAX-S1やAX-12+に1バイトのデータを書き込むための関数です。 | fd_DXWriteByteDataはAX-S1やAX-12+に1バイトのデータを書き込むための関数です。 | ||
#ref(Warning_pp3.png,100%) | #ref(Warning_pp3.png,100%) | ||
fd_DXWriteByteDataは関数名です~ | fd_DXWriteByteDataは関数名です~ | ||
- | ''第1引数''はDynamixelのIDです。AX-S1のIDは100です。~ | + | ''第1引数''は、DynamixelのIDです。AX-S1のIDは100です。~ |
- | ''第2引数''は、コントロールテーブルのアドレスです。[[AX-S1コントロールマップ>FDIII-HC Starter Kit Guid Chapter1.1#u70f1fa1]]を見て下さい。アドレス40は音階、アドレス41は音の長さです。~ | + | ''第2引数''は、[[AX-S1コントロールテーブル>FDIII-HC Starter Kit Guide Chapter1.1#u70f1fa1]]のアドレスです。アドレス40は音階、アドレス41は音の長さです。~ |
- | ''第3引数''書き込むデータです。ここではそれぞれ適当に10を入れました。ソの音を10秒鳴らすことになります~ | + | ''第3引数''は、書き込む値です。ここでは例としてそれぞれ10を入力しました。ソの音を1秒(10×0.1秒)鳴らすことになります。~ |
+ | |||
+ | AX-S1のアドレス40はブザーの音階です。詳細は[[AX-S1コントロールテーブルのBuzzer Data 0>http://www.besttechnology.co.jp/modules/knowledge/?AX-S1%E3%82%B3%E3%83%B3%E3%83%88%E3%83%AD%E3%83%BC%E3%83%AB%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB#h7380696]]を参照して下さい。 | ||
+ | |||
+ | AX-S1のアドレス41はブザーの音の長さです。0.1秒単位で音の長さを調節します。詳細は[[AX-S1コントロールテーブルのBuzzer Data 1>http://www.besttechnology.co.jp/modules/knowledge/?AX-S1%E3%82%B3%E3%83%B3%E3%83%88%E3%83%AD%E3%83%BC%E3%83%AB%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB#jdce8043]]を参照して下さい。 | ||
**警報器を動かす [#ybaa88fa] | **警報器を動かす [#ybaa88fa] | ||
#ref(Warning_pp2.png,100%) | #ref(Warning_pp2.png,100%) | ||
- | プログラムが完成しました。隙間を含めてもたったの16行です。如何ですか?~ | + | #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 Guid Chapter1.3]]を参照して下さい。~ | + | ここでは書き込み方法を簡単に説明します。詳細は[[Chapter1.3の動作確認>FDIII-HC Starter Kit Guide Chapter1.3]]を参照して下さい。~ |
+ | -USBケーブルをFDII-HCから取り外します。 | ||
-FDIIIの電源スイッチをOFFにし、プッシュボタンを押しながらUSBケーブルを差し込みます。 | -FDIIIの電源スイッチをOFFにし、プッシュボタンを押しながらUSBケーブルを差し込みます。 | ||
- | -メニューの「コンパイル」->「ビルド」をクリックします。 | + | -メニューの「コンパイル」→「ビルド」をクリックします。 |
-コンパイルが成功したらOKをクリックし、SIMPLE TERMが起動します。 | -コンパイルが成功したらOKをクリックし、SIMPLE TERMが起動します。 | ||
- | -SIMPLE TERMのメニューの「通信」->「ポートオープン」をクリックします。 | + | -SIMPLE TERMのメニューの「通信」→「ポートオープン」をクリックします。 |
-SIMPLE TERM上に | -SIMPLE TERM上に | ||
--< FDIII Ver1.0 by BestTechnology >-- | --< FDIII Ver1.0 by BestTechnology >-- | ||
Line 55: | Line 77: | ||
これを泥棒が入ってきそうな場所に設置しておけば、泥棒が来てもビックリして帰って行くかもしれません。~ | これを泥棒が入ってきそうな場所に設置しておけば、泥棒が来てもビックリして帰って行くかもしれません。~ | ||
- | [[次のチャプターへ>FDIII-HC Starter Kit Guid Chapter2.5]]~ | + | [[次のチャプターへ>FDIII-HC Starter Kit Guide Chapter2.5]]~ |
- | [[FDIII-HC Starter Kit Guid]]へ戻る | + | [[FDIII-HC Starter Kit Guide]]へ戻る |