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) |