2: 2009-11-17 (火) 18:23:07 sho | 3: 2009-11-19 (木) 19:30:51 sho | ||
---|---|---|---|
Line 1: | Line 1: | ||
*プログラミング② [#z24decaf] | *プログラミング② [#z24decaf] | ||
- | Chapter2.3 プログラミング①で距離センサの値を表示するところまで書きました。 | + | Chapter2.3 プログラミング①で距離センサの値を表示するところまでプログラムを書きました。 |
いよいよブザーを鳴らして完成させます。 | いよいよブザーを鳴らして完成させます。 | ||
**条件分岐 [#g83f7d2f] | **条件分岐 [#g83f7d2f] | ||
- | フローチャートを見て下さい。次はセンサ値とある閾値を比較するというところです。前章でセンサ値の範囲は0~255である事を確認しました。閾値はとりあえず100にします。後で必要に応じて調節して下さい。~ | + | 処理の流れを描いた図を見て下さい。次はセンサ値とある閾値を比較するというところです。センサ値の範囲は0~255である事を確認しました。閾値はとりあえず100にします。後で必要に応じて調節して下さい。~ |
#ref(Warning_pp1.png,100%) | #ref(Warning_pp1.png,100%) | ||
- | もしセンサ値が100以下なら何もしない、100より大きければブザーを鳴らすという条件分岐です。条件分岐はif関数を使います(if関数の詳細はこちらを参照して下さい)。~ | + | もしセンサ値が100以下なら何もしない、100より大きければブザーを鳴らすという条件分岐です。条件分岐はif文を使います(if文の詳細は[[こちら>FDIII-HC Starter Kit Guid Chapter1.4>#c6144380]]を参照して下さい)。~ |
センサ値表示の後ろに | センサ値表示の後ろに | ||
if(ReadData > 100) { | if(ReadData > 100) { | ||
Line 12: | Line 12: | ||
} | } | ||
と入力して下さい。~ | と入力して下さい。~ | ||
- | もし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); | ||
Line 25: | Line 25: | ||
fd_DXWriteByteDataは関数名です~ | fd_DXWriteByteDataは関数名です~ | ||
- | ''第1引数''はDynamixelのIDです(IDについて詳しくはこちらを参照して下さい)。AX-S1のIDは100です。~ | + | ''第1引数''はDynamixelのIDです。AX-S1のIDは100です。~ |
- | ''第2引数''は、コントロールテーブルのアドレスです。AX-S1コントロールマップを見て下さい。アドレス40は音階、アドレス41は音の長さです。~ | + | ''第2引数''は、コントロールテーブルのアドレスです。[[AX-S1コントロールマップ>FDIII-HC Starter Kit Guid Chapter1.1#u70f1fa1]]を見て下さい。アドレス40は音階、アドレス41は音の長さです。~ |
- | ''第3引数''書き込むデータです。ここでは適当にそれぞれ10を入れました。ソの音を10秒鳴らすことになります~ | + | ''第3引数''書き込むデータです。ここではそれぞれ適当に10を入れました。ソの音を10秒鳴らすことになります~ |
**警報器を動かす [#ybaa88fa] | **警報器を動かす [#ybaa88fa] | ||
#ref(Warning_pp2.png,100%) | #ref(Warning_pp2.png,100%) | ||
- | プログラムが完成しました。隙間を含んでもたったの16行です。如何でしょうか?~ | + | プログラムが完成しました。隙間を含めてもたったの16行です。如何ですか?~ |
意外と簡単だと感じられたでしょうか?~ | 意外と簡単だと感じられたでしょうか?~ | ||
それではプログラムを書き込んで動かしてみましょう。~ | それではプログラムを書き込んで動かしてみましょう。~ |