4: 2011-07-01 (金) 19:41:03 yoshida | 現: 2011-07-12 (火) 12:17:34 yoshida | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | TITLE:警報装置のプログラミング1 | ||
*プログラミング1 [#qe8ca20d] | *プログラミング1 [#qe8ca20d] | ||
#ref(Warning_1.png,100%) | #ref(Warning_1.png,100%) | ||
Line 49: | Line 50: | ||
***[[fd_SetBeepCondition>FDIIILIB#ke8d1df6]] [#v29dcde7] | ***[[fd_SetBeepCondition>FDIIILIB#ke8d1df6]] [#v29dcde7] | ||
- | ビープ音が鳴るための条件を設定します。ビープ音を鳴らす必要がなければ省略しても問題ありません。 | + | 警告音として、ビープ音を鳴らすための条件を設定します。但し、ビープ音を鳴らす必要がなければ本関数は省略しても問題ありません。 |
+ | | パラメータ | ビープ音発生条件 | | ||
+ | |FD_BEEP_BOOTUP |起動直後 | | ||
+ | |FD_BEEP_LOWVOLTAGE |低電圧検出時 | | ||
+ | |FD_BEEP_PACKETERR |パケットエラーないしアラーム発生時 | | ||
+ | |FD_BEEP_MMI |ディップスイッチ/プッシュボタン操作時 | | ||
***[[fd_SetUVThreshold>FDIIILIB#ce52eef3]] [#w641dc92] | ***[[fd_SetUVThreshold>FDIIILIB#ce52eef3]] [#w641dc92] | ||
- | FDIII-HCの電源電圧低下を検出する閾値を設定します。閾値を設定していても、 | + | FDIII-HCの電源電圧低下を検出する閾値を設定します。fd_SetBeepCondition関数でFD_BEEP_LOWVOLTAGEを指定してされている場合、ビープ音が鳴ります。 |
- | fd_SetBeepCondition関数を記述していなければビープ音は鳴りません。 | + | |
***[[DX_ChangeBaudrate>FDIIILIB#n66c725c]] [#m3a51f05] | ***[[DX_ChangeBaudrate>FDIIILIB#n66c725c]] [#m3a51f05] | ||
Dynamixel製品との通信速度(ボーレート)を変更します。ライブラリ内で静的に1M(1000000)で初期化されていますが、Dynamixel製品の通信速度が変更されている場合はプログラム側で同じ通信速度に変更する必要があります。~ | Dynamixel製品との通信速度(ボーレート)を変更します。ライブラリ内で静的に1M(1000000)で初期化されていますが、Dynamixel製品の通信速度が変更されている場合はプログラム側で同じ通信速度に変更する必要があります。~ | ||
- | Dynamixel製品が125k[bps]の場合 | + | Dynamixel製品が125k[bps]の場合、プログラムで125k[bps]の設定を行う例 |
#html{{ | #html{{ | ||
<pre class="brush: c"> | <pre class="brush: c"> | ||
Line 70: | Line 75: | ||
#ref(gcc_edit_6.png,100%) | #ref(gcc_edit_6.png,100%) | ||
初期化まで終わりましたので、[[処理の流れを描いた図>#x60b5360]]の通り、赤外線反射センサの値を取得します。~ | 初期化まで終わりましたので、[[処理の流れを描いた図>#x60b5360]]の通り、赤外線反射センサの値を取得します。~ | ||
- | [[DX_ReadByteData>FDIIILIB#t86b5caf]]はDynamixel製品から様々なデータを直接取得する関数です。~ | + | ***[[DX_ReadByteData>FDIIILIB#t86b5caf]] [#h827fbde] |
+ | Dynamixel製品より1バイトのデータを直接取得する関数です。~ | ||
''第1引数''は、Dynamixelの[[ID>FDIIICHAPTER1.1#s7a3f1f6]]です。AX-S1のIDは100です。~ | ''第1引数''は、Dynamixelの[[ID>FDIIICHAPTER1.1#s7a3f1f6]]です。AX-S1のIDは100です。~ | ||
Line 86: | Line 92: | ||
#ref(gcc_edit_7.png,100%) | #ref(gcc_edit_7.png,100%) | ||
- | [[fd_printf>FDIIICHAPTER1.4#k44284d5]]はパソコンに文字列を表示するための関数です。~ | + | ***[[fd_printf>FDIIICHAPTER1.4#k44284d5]] [#q2757515] |
- | %3dの部分にReadDataの値が3桁で表示されます。 | + | パソコンに文字列を表示するための関数です。~ |
+ | ''第1引数''は、出力する書式です。%3dは3桁の数字を出力します。\nは改行を表します。~ | ||
+ | ''第2引数''は、書式で指定した型(%3d)で出力する変数を指定します。~ | ||
+ | 書式内に複数の型指定がある場合は、引数を追加します。~ | ||
+ | 例)書式内に文字列と数字を指定(第3引数まで使用) | ||
+ | #html{{ | ||
+ | <pre class="brush:c"> | ||
+ | #include <fd.h> | ||
+ | void main (void) { | ||
+ | char *msg = "OK"; | ||
+ | int i = 10; | ||
+ | fd_printf ("%s %d\n", msg, i); | ||
+ | } | ||
+ | </pre> | ||
+ | }} | ||
** 繰り返し [#l145a3e5] | ** 繰り返し [#l145a3e5] | ||
Line 95: | Line 115: | ||
whileは()内の条件が成立(true)していれば{}内を繰り返す関数です。ここでは{}内を無限に繰り返すという意味になります。 | whileは()内の条件が成立(true)していれば{}内を繰り返す関数です。ここでは{}内を無限に繰り返すという意味になります。 | ||
- | [[fd_Wait>FDIIILIB#o4813042]]は指定時間(ms)の間、処理を停止する関数です。 | + | ***[[fd_Wait>FDIIILIB#o4813042]] [#e6170b5b] |
+ | 指定時間(ms)の間、処理を停止します。~ | ||
+ | ''第1引数''は、処理の停止時間(ms)です。ms(ミリ秒)とは1000分の1秒のことで、1秒=1000ミリ秒となります。ここでは10ms停止しますので、0.01秒の停止となります。 | ||
- | ''第1引数''は、処理の停止時間(ms)です。ここでは10ms停止します。~ | ||
whileを使用する際は必ずfd_Waitを使用します。fd_Waitを使用しない場合、システム側の監視機能が働いてプログラムが強制終了する可能性があります。 | whileを使用する際は必ずfd_Waitを使用します。fd_Waitを使用しない場合、システム側の監視機能が働いてプログラムが強制終了する可能性があります。 | ||
Line 124: | Line 145: | ||
SIMPLE TERM上の最終行に数字が表示されているはずです。AX-S1の正面のセンサに手をかざし、数値が変動することを確認して下さい。 | SIMPLE TERM上の最終行に数字が表示されているはずです。AX-S1の正面のセンサに手をかざし、数値が変動することを確認して下さい。 | ||
#ref(Warning_p13.png,100%) | #ref(Warning_p13.png,100%) | ||
- | #ref(Warning_p12.png,100%) | + | #ref(simple_term_exec.png,100%) |
値はセンサの前に何もないと0、手を近づけて行くとだんだん増え、255まで増えるとそれ以上は増えなくなります。つまり値の範囲は0~255です。 | 値はセンサの前に何もないと0、手を近づけて行くとだんだん増え、255まで増えるとそれ以上は増えなくなります。つまり値の範囲は0~255です。 | ||
+ | |||
+ | [[次のチャプター>FDIIICHAPTER2.4]]へ~ | ||
+ | |||
+ | [[FDIII-HC Starter Kit Guide>LEARNINGGUIDE]]へ戻る |