ブログパーツUL5

サーボモータの初の制御テスト

 今回は、サーボモーターをコントロールできるかテストプログラムを組んでみてテストしました。当初は、ワンショットパルスでいくつもりでしたが、テストしてみたところPWMモードでないとうまく動作しませんでした。このV850ボードで、はじめてサーボを動かすことができました。これで、要素技術のテストはテストボード上で出来たことになります。そこで、サーボの角度コントロールがちゃんとできるかも同時にテストを行いました。

【サーボの仕様】
 90°→2100µs
  0°→1500µs
−90°→ 900µs

【V850のPWMテストプログラムの一部】
*/************ PWM出力モード (抜粋)************
void TMP3_Init(void)
{
int msec;
TP3CE = 0; /* TP3CTL0.7:TMP3動作禁止 */
/* port register setting */
PFC9L.4 = 0; /* TOP31端子に設定(PWM出力) */
PFCE9L.4 = 1;
PMC9L.4 = 1;
/* timer register setting */
TP3CTL0 = 0x06; /* 内部カウント・クロック設定:fxx */
TP3CTL1 = 0x04; /* PWM出力モード */
TP3IOC0 = 0x04; /* TOP31出力許可 TOP31ハイ・アクティブ */
TP3CCR0 = (20000*20/256) - 1; /* 周期:20ms */
TP3CCR1 = (1500*20/256) - 1; /* 1500us(TP3CCR0設定値 > TP3CCR1設定値)*/
}
*/***************************************

*/************ Main.c (抜粋)************

TMP3_Init(); /* TMP3 initiate */
TP3CE = 1; /* PWM出力(TMP3)動作許可 */
while(1){
;
}

*/***************************************

 InterfaceにV850ボードが付属していた時に、無料の開発ソフトもありましたので、PM+とデバッグを利用して開発を行います。フラッジュへの書き込みソフトもあるので、PCのUSBから書き込みできるので、簡単である。

 次に、サーボコントロールは1つだけを考えており、首のサーボだけをコントロールするだけですから、複雑なことはしません。リモコン操作でなく、音に反応して首の向くようにしますので、マイク入力による音量で方向を決まるように演算が必要です。

【音方向の検知】
 3つマイク出力をどのように演算するかの検討をして見ました。
(左側のマイク出力=VL、右側のマイク出力=VR、後側のマイク出力=VB)

(1)前面の音と後側の音の比較(音が後の場合)
   √(VL^2+VR^2)がVBよりも小さい時
   ・VL>VRの場合、左真横
   ・VL≦VRの場合、右真横
(2)左側の音と右側の音の比較(音が前の場合)
   VL/(VL+VB)=係数K
   ・K=0.5 で真正面(頭部向きのオフセット調整)
   ・1.0≦K<0.5 で左側に、角度⇒180*(K-0.5)
   ・0.5<K≦0  で右側に、角度⇒180*(K-0.5)
   パルス幅は、1500+180*(K-0.5)*20/3 µs
このようになるか、MEMSのマイクを購入したらテストする予定。
0

    コメント
    私は書く、従って私は存在している
    コメントする








       
    この記事のトラックバックURL
    トラックバック

    カレンダ

          1
    2345678
    9101112131415
    16171819202122
    23242526272829
    << February 2020 >>