6: 2011-07-12 (火) 18:45:40 yoshida | 現: 2013-04-09 (火) 23:46:46 takaboo | ||
---|---|---|---|
Line 2: | Line 2: | ||
*プログラミング [#c7bb54c8] | *プログラミング [#c7bb54c8] | ||
#ref(SoundMeter_1.png) | #ref(SoundMeter_1.png) | ||
- | 「AX-S1で最大音量を測定し、それに対応した角度へAX-12+のホーンを動かす」というプログラムを作成します。 | + | 「AX-S1で最大音量を測定し、それに対応した角度へAX-12Aのホーンを動かす」というプログラムを作成します。 |
**処理の流れを図にする。 [#fac5abab] | **処理の流れを図にする。 [#fac5abab] | ||
先ず処理の流れを図にします。 | 先ず処理の流れを図にします。 | ||
#ref(flow.png) | #ref(flow.png) | ||
- | AX-S1の最大音量を取得し、それに対応した角度へAX-12+のホーンを動かすを繰り返すだけとなります。 | + | AX-S1の最大音量を取得し、それに対応した角度へAX-12Aのホーンを動かすを繰り返すだけとなります。 |
**準備 [#m074851f] | **準備 [#m074851f] | ||
Line 71: | Line 71: | ||
音量最大保持値はアドレス35の音量測定値の最大値を保持し続けます。 | 音量最大保持値はアドレス35の音量測定値の最大値を保持し続けます。 | ||
- | **AX-12+のホーンを動かす [#r33f5d9f] | + | **AX-12Aのホーンを動かす [#r33f5d9f] |
#html{{ | #html{{ | ||
<pre class="brush:c"> | <pre class="brush:c"> | ||
Line 93: | Line 93: | ||
</pre> | </pre> | ||
}} | }} | ||
- | AX-12+のホーンの角度をメーターに見立て、音量最大保持値に対応した角度にホーンを動かします。 | + | AX-12Aのホーンの角度をメーターに見立て、音量最大保持値に対応した角度にホーンを動かします。 |
- | AX-12+のホーンを動かすには、fd_DXSetPosition関数を使います。詳しくは[[Chapter3.3のブザーを鳴らすからバーを開けるに変更>FDIIICHAPTER3.3#o54aa8b3]]を参照して下さい。 | + | AX-12Aのホーンを動かすには、fd_DXSetPosition関数を使います。詳しくは[[Chapter3.3のブザーを鳴らすからバーを開けるに変更>FDIIICHAPTER3.3#o54aa8b3]]を参照して下さい。 |
- | 音量最大保持値に対応した角度にAX-12+のホーンを動かしますので、ゴールポジション=音量最大保持値です。~ | + | 音量最大保持値に対応した角度にAX-12Aのホーンを動かしますので、ゴールポジション=音量最大保持値です。~ |
音量最大保持値は変数ReadDataに代入されますので、そのままゴールポジションにReadDataを指定します。 | 音量最大保持値は変数ReadDataに代入されますので、そのままゴールポジションにReadDataを指定します。 | ||
Line 109: | Line 109: | ||
void main (void) { | void main (void) { | ||
uint8_t ReadData; | uint8_t ReadData; | ||
+ | |||
fd_SetBeepCondition (FD_BEEP_MMI | FD_BEEP_PACKETERR | FD_BEEP_LOWVOLTAGE | FD_BEEP_BOOTUP); | fd_SetBeepCondition (FD_BEEP_MMI | FD_BEEP_PACKETERR | FD_BEEP_LOWVOLTAGE | FD_BEEP_BOOTUP); | ||
fd_SetUVThreshold (7.4); | fd_SetUVThreshold (7.4); | ||
DX_ChangeBaudrate (1000000); | DX_ChangeBaudrate (1000000); | ||
+ | |||
fd_DXSetTorqueLimit (1, 154); | fd_DXSetTorqueLimit (1, 154); | ||
+ | |||
while (!fd_rx_buff () && !fd_GetPB ()) { | while (!fd_rx_buff () && !fd_GetPB ()) { | ||
DX_ReadByteData (100, 36, &ReadData, 10, NULL); | DX_ReadByteData (100, 36, &ReadData, 10, NULL); | ||
Line 141: | Line 141: | ||
void main (void) { | void main (void) { | ||
uint8_t ReadData; | uint8_t ReadData; | ||
+ | |||
fd_SetBeepCondition (FD_BEEP_MMI | FD_BEEP_PACKETERR | FD_BEEP_LOWVOLTAGE | FD_BEEP_BOOTUP); | fd_SetBeepCondition (FD_BEEP_MMI | FD_BEEP_PACKETERR | FD_BEEP_LOWVOLTAGE | FD_BEEP_BOOTUP); | ||
fd_SetUVThreshold (7.4); | fd_SetUVThreshold (7.4); | ||
DX_ChangeBaudrate (1000000); | DX_ChangeBaudrate (1000000); | ||
+ | |||
fd_DXSetTorqueLimit (1, 154); | fd_DXSetTorqueLimit (1, 154); | ||
+ | |||
while (!fd_rx_buff ()) { | while (!fd_rx_buff ()) { | ||
DX_ReadByteData (100, 36, &ReadData, 10, NULL); | DX_ReadByteData (100, 36, &ReadData, 10, NULL); | ||
Line 167: | Line 167: | ||
プログラムが完成しました。プログラムを書き込んで動かしてみましょう。 | プログラムが完成しました。プログラムを書き込んで動かしてみましょう。 | ||
- | FDIII-HCのプッシュボタンを押しリセットしてから、音を出すとAX-12+が音量に応じて動くことを確認しましょう。 | + | FDIII-HCのプッシュボタンを押しリセットしてから、音を出すとAX-12Aが音量に応じて動くことを確認しましょう。 |
#ref(SoundMeter_p9.png) | #ref(SoundMeter_p9.png) |