1: 2010-01-21 (木) 18:26:31 eid7gud | 2: 2010-01-21 (木) 18:57:58 eid7gud | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ''只今編集中です。'' | ||
+ | |||
*プログラミング [#m6ec823e] | *プログラミング [#m6ec823e] | ||
#ref(SoundMeter_p1.png) | #ref(SoundMeter_p1.png) | ||
Line 5: | Line 7: | ||
先ず処理の流れを図にします。 | 先ず処理の流れを図にします。 | ||
#ref(SoundMeter_p2.png) | #ref(SoundMeter_p2.png) | ||
- | 処理の流れとしては、AX-S1の最大音量を取得し、それに対応した角度へAX-12+のホーン動かすを繰り返すだけとなります。 | + | AX-S1の最大音量を取得し、それに対応した角度へAX-12+のホーン動かすを繰り返すだけとなります。 |
**準備 [#r9783670] | **準備 [#r9783670] | ||
Line 14: | Line 16: | ||
ファイルを別の名前で保存します。 | ファイルを別の名前で保存します。 | ||
- | メニューの「ファイル」→「名前を付けて保存」→ファイル名に「SoundMeter.c」と入力し、[[Chapter1.3>FDIII-HC Starter Kit Guide Chapter1.3]]で作成したSampleフォルダに「保存」します。 | + | メニューの「ファイル」→「名前を付けて保存」→ファイル名に「SoundMeter.c」と入力し、[[Chapter1.3のサンプルプログラムのダウンロード>FDIII-HC Starter Kit Guide Chapter1.3#r86cf508]]で作成したSampleフォルダに「保存」します。 |
**不要部位を削除 [#y36d4588] | **不要部位を削除 [#y36d4588] | ||
Line 26: | Line 28: | ||
} | } | ||
**音量最大値取得 [#q67b1dd0] | **音量最大値取得 [#q67b1dd0] | ||
- | Chapter3ではAX-S1の正面赤外線反射センサの値を取得しました。今回は最大音量を取得します。[[AX-S1コントロールテーブル>FDIII-HC Starter Kit Guide Chapter1.1#u70f1fa1]]を見て下さい。音量最大保持値はアドレス36です。 | + | Chapter3ではAX-S1の正面赤外線反射センサの値を取得しました。今回は最大音量を取得します。 |
+ | |||
+ | [[AX-S1コントロールテーブル>FDIII-HC Starter Kit Guide Chapter1.1#u70f1fa1]]を見て下さい。音量最大保持値はアドレス36です。 | ||
音量最大保持値はアドレス35の音量測定値の最大値を保持し続けます。 | 音量最大保持値はアドレス35の音量測定値の最大値を保持し続けます。 | ||
- | fd_DXReadByteData (100, 27, &ReadData); | + | fd_DXReadByteData (100, 27, &ReadData); |
の第2引数を36に書き換えます。 | の第2引数を36に書き換えます。 | ||
- | fd_DXReadByteData (100, 36, &ReadData); | + | fd_DXReadByteData (100, 36, &ReadData); |
**AX-12+のホーンを動かす [#a86b83f6] | **AX-12+のホーンを動かす [#a86b83f6] | ||
AX-12+のホーンの角度をメーターに見立て、音量最大保持値に対応した角度にホーンを動かします。 | AX-12+のホーンの角度をメーターに見立て、音量最大保持値に対応した角度にホーンを動かします。 | ||
+ | |||
AX-12+のホーンを動かすには、AX-12+のコントロールテーブルのアドレス30,31にゴールポジションを書き込みます。2バイトのデータを書き込むにはfd_DXWriteWordData関数を使います。詳しくは[[Chapter3.3のバーを開ける>FDIII-HC Starter Kit Guide Chapter3.3#icc81839]]を参照して下さい。 | AX-12+のホーンを動かすには、AX-12+のコントロールテーブルのアドレス30,31にゴールポジションを書き込みます。2バイトのデータを書き込むにはfd_DXWriteWordData関数を使います。詳しくは[[Chapter3.3のバーを開ける>FDIII-HC Starter Kit Guide Chapter3.3#icc81839]]を参照して下さい。 | ||
- | fd_DXWriteWordData (1, 30, ゴールポジション); | + | fd_DXWriteWordData (1, 30, ゴールポジション); |
- | ゴールポジションに書き込む値には何を入れるべきでしょうか? | + | ゴールポジションの部分には何を入れるべきでしょうか? |
音量最大保持値に対応した角度にAX-12+のホーンを動かしますので、ゴールポジション=音量最大保持値です。~ | 音量最大保持値に対応した角度にAX-12+のホーンを動かしますので、ゴールポジション=音量最大保持値です。~ | ||
音量最大保持値は | 音量最大保持値は | ||
- | fd_DXReadByteData (100, 27, &ReadData); | + | fd_DXReadByteData (100, 27, &ReadData); |
で変数ReadDataに代入されます。従ってゴールポジションにはReadDataと書きます。 | で変数ReadDataに代入されます。従ってゴールポジションにはReadDataと書きます。 | ||
- | fd_DXWriteWordData (1, 30, ReadData); | + | fd_DXWriteWordData (1, 30, ReadData); |
+ | ReadDataの前に&は付けません。変数の前に&を付けるとその変数のアドレスになります(アドレスについては[[Chapter1.4のアドレス>FDIII-HC Starter Kit Guide Chapter1.4#b45fcfd3]]を参照して下さい)。 | ||
+ | ゴールポジションに書き込むのは、ReadDataのアドレスではなく、ReadDataに入っている値です。 | ||
+ | |||
+ | **ゴールポジションと音量最大保持値のデータ範囲 [#p2dbd58e] | ||
+ | ゴールポジションのデータの範囲は0~1023でした。 |