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)


トップ   差分 リロード印刷に適した表示   全ページ一覧 単語検索 最新ページの一覧   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom