1ドルCPUボード(STM8S103F3)でサーボを動かして見ました
以前、Arduinoで動かした連続回転サーボと普通のサーボをSTM8S103Fのボードで
動作させるのを検討して見ました。検討の結果、CPUにこれの目的用のPWMの
機能が揃っており、これを利用すれば簡単に動かす事ができるのが判りました。
やはり、高度な演算を伴わない処理であれば、このCPUチップで十分賄える事が
改めて判りました。以下がその検討状況です。
<検討したサーボモータ の概要>
サーボモータの動作方法の検討に関しては、通常の回転位置制御に関するものと、
サーボ用のパルス形式で回転方向と速度を制御する次の2種類のものに関して
行いました。(DS04-NFCに関してはArduinoのボードでも動作させました。)
[SG90 回転位置制御サーボ]
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 連続回転制御サーボ]
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 回転位置制御サーボ>
1.半固定抵抗からの電圧をAD変換
2.その電圧に応じてサーボ制御用のパルス幅を変更
3.そのパルス幅に応じてサーボの回転位置が変化するのを確認
<DS04-NFC 連続回転制御サーボ>
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 回転位置制御サーボ>
<DS04-NFC 連続回転制御サーボ>
[コード類]
コードの開発にはIARのシステムを利用しました。
(STM8S103F3P6ボードののコード開発に 関してはこちらの記事を
参照して下さい。)
Code download URL : https://www.dropbox.com/s/3mifd0qh7gg6bia/Servo_test.zip?dl=0
動作させるのを検討して見ました。検討の結果、CPUにこれの目的用のPWMの
機能が揃っており、これを利用すれば簡単に動かす事ができるのが判りました。
やはり、高度な演算を伴わない処理であれば、このCPUチップで十分賄える事が
改めて判りました。以下がその検討状況です。
<検討したサーボモータ の概要>
サーボモータの動作方法の検討に関しては、通常の回転位置制御に関するものと、
サーボ用のパルス形式で回転方向と速度を制御する次の2種類のものに関して
行いました。(DS04-NFCに関してはArduinoのボードでも動作させました。)
[SG90 回転位置制御サーボ]
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 連続回転制御サーボ]
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 回転位置制御サーボ>
1.半固定抵抗からの電圧をAD変換
2.その電圧に応じてサーボ制御用のパルス幅を変更
3.そのパルス幅に応じてサーボの回転位置が変化するのを確認
<DS04-NFC 連続回転制御サーボ>
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 回転位置制御サーボ>
<DS04-NFC 連続回転制御サーボ>
[コード類]
コードの開発にはIARのシステムを利用しました。
(STM8S103F3P6ボードののコード開発に 関してはこちらの記事を
参照して下さい。)
Code download URL : https://www.dropbox.com/s/3mifd0qh7gg6bia/Servo_test.zip?dl=0