趣味のマイコンいじり

安価なマイコンを利用して作成したアプリの紹介です。

1ドルCPUボード(STM8S103F3)でサーボを動かして見ました

以前、Arduinoで動かした連続回転サーボと普通のサーボをSTM8S103Fのボードで
動作させるのを検討して見ました。検討の結果、CPUにこれの目的用のPWMの
機能が揃っており、これを利用すれば簡単に動かす事ができるのが判りました。
やはり、高度な演算を伴わない処理であれば、このCPUチップで十分賄える事が
改めて判りました。以下がその検討状況です。

<検討したサーボモータ の概要>
   サーボモータの動作方法の検討に関しては、通常の回転位置制御に関するものと、
   サーボ用のパルス形式で回転方向と速度を制御する次の2種類のものに関して
   行いました。(DS04-NFCに関してはArduinoのボードでも動作させました。)

   [SG90 回転位置制御サーボ]
  イメージ 1
  1.サーボ形式のパルス制御で回転角度をコントロールするもの
  2.2.4mS : 90°, 1.45mS : Center , 0.5mS : -90°
        (1.45mS を中心に左右90度づつまで回転)
  3.仕様
         - Weight: 9g.
         - Dimensions: 22.2 x 11.8 x 31 mm.
         - Torque: 1.8kg/cm
         - Speed: 0.1sec/60 degree
         - Operating voltage: 4.8v-5v.
         - Operating temperature: 0 C -55 C.
         - Dead band width 10μS.   

   [DS04-NFC 連続回転制御サーボ] 
     イメージ 2
 
  1.サーボ形式のパルス制御で回転方向と回転速度をコントロールするもの
  2.2.0mS : CW (turn right), 1.5mS : Stop, 1.0mS : CCW (turn left)
        (1.5mS を中心に右回りと左回りが速度の変化を伴って連続で可変)
  3.仕様
         - Weight: 38g.
         - Dimensions: 40.8 x 20 x 39.5 mm.
         - Torque: 5.5kg/cm (at 4.8V).
         - Speed: 0.22sec/60 degree (at 4.8V).
         - Operating voltage: 4.8v-6v.
         - Operating temperature: 0 C -60 C.
         - Current:< 1000mA.

 [動作検証モデル]
    <SG90 回転位置制御サーボ>
       イメージ 3

      1.半固定抵抗からの電圧をAD変換
      2.その電圧に応じてサーボ制御用のパルス幅を変更
      3.そのパルス幅に応じてサーボの回転位置が変化するのを確認

    <DS04-NFC 連続回転制御サーボ>
       イメージ 4

      1.2つのCPUボードを用意して一つはジョイスティックの情報の送信、
            もう一つはそれを受信してサーボを制御
      2.CPUボードは、1ドルCPUボード(CPU:STM8S103F3P6) を利用する
      3.制御対象は、2つのジョイスティックによる左右のサーボの制御
            パルス幅の変更
      4.ジョイスティックデータ転送は7バイトのパケット転送
      5.SPIインターフェイスは4MHzでRFデータ転送は1Mbps

 [動作状況]
    

<関連資料>
   SG90に関しては、次のネットショップのものを参考にしました。
   URL : http://akizukidenshi.com/download/ds/towerpro/SG90_a.pdf

    DS04-NFCに関しては以前に作ったこちらの記事を参考にしました。

<テスト内容と結果>
    今回のサーボ制御のテストは、単独で半固定抵抗の回転に応じてサーボの
    回転角度を変化させるものと、前にnRF24L01+のモジュールのテストで
    利用したラジコンカーのDCモータを連続回転サーボに置き換えて行う事に
    しました。

       1.通常の回転角度制御のサーボでの動作の確認
       2.以前に作成したDCモータのラジコンカーを連続回転サーボに置き換えて
             動作を確認

   動作させた結果としては、次の様なものでした。

       1.CPUチップ内に今回の目的に利用できるPWM出力用のタイマー機能が
             付いており、これを利用すると簡単に動作させる事が出来ました。
             (プログラムの作成も容易でした。)
       2.以前作成したラジコンカーのDCモータをこの連続回転サーボに置き
             換えると、プログラム、配線とも簡単になり回転サーボの値段を気に
             しなければ利用しやすいのかと思いました。、
       3.また、回転サーボに置き換えると起動トルクが確保されるため、低速
             起動が容易になる反面、DCモータの様に起動後に高速回転にする事も
             できないので、速度に関しては全般的に遅い動作での利用に適している
             事も判りました。

 [テストでの機器の接続]
    <SG90 回転位置制御サーボ>
       イメージ 5

       イメージ 6

    <DS04-NFC 連続回転制御サーボ>
       イメージ 7

        イメージ 8

 [コード類]
     コードの開発にはIARのシステムを利用しました。
  (STM8S103F3P6ボードののコード開発に 関してはこちらの記事
         参照して下さい。)

     Code download URL : https://www.dropbox.com/s/3mifd0qh7gg6bia/Servo_test.zip?dl=0