6: 2011-07-12 (火) 18:45:40 yoshida   | 
現: 2013-04-09 (火) 23:46:46 takaboo   | 
|   | *プログラミング [#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] | 
|   | 音量最大保持値はアドレス35の音量測定値の最大値を保持し続けます。 |   | 音量最大保持値はアドレス35の音量測定値の最大値を保持し続けます。 | 
|   |  |   |  | 
| - | **AX-12+のホーンを動かす [#r33f5d9f] | + | **AX-12Aのホーンを動かす [#r33f5d9f] | 
|   | #html{{ |   | #html{{ | 
|   | <pre class="brush:c"> |   | <pre class="brush:c"> | 
|   | </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を指定します。 | 
|   |  |   |  | 
|   | 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); | 
|   | 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); | 
|   | プログラムが完成しました。プログラムを書き込んで動かしてみましょう。 |   | プログラムが完成しました。プログラムを書き込んで動かしてみましょう。 | 
|   |  |   |  | 
| - | FDIII-HCのプッシュボタンを押しリセットしてから、音を出すとAX-12+が音量に応じて動くことを確認しましょう。 | + | FDIII-HCのプッシュボタンを押しリセットしてから、音を出すとAX-12Aが音量に応じて動くことを確認しましょう。 | 
|   |  |   |  | 
|   | #ref(SoundMeter_p9.png) |   | #ref(SoundMeter_p9.png) |