SS10
サーボ・シーケンサ                                2018/08/16

 



1.はじめに
 ラジコン用サーボモータは、種類も豊富で最近は価格も安くなってきており、ラジコン以外にも模型の昆虫や鳥の羽ばたき、ロボットの手足を動かす機構部品としても利用価値は高いと思います。
しかし、サーボモータを自由自在動かすには、マイコン等の知識が必要となり、技術的なハードルは少々高くなります。
そこで、マイコン等の知識がなくてもサーボの動作パターンデータをExcelシートで作成して、複数のサーボを自在に動かすことが出来る回路を製作してみました。
勿論、ゼロ戦の引き込み脚のように、左右の脚を時間差をつけて引き込む等のラジコンへの応用も可能です。
 本回路にサーボの動作パターンを書き込むためには、別にUSB−UART変換モジュールが必要です。



2.機能
 ●サーボモータ シーケンス制御



3.仕様
 ●電源電圧 : 5V
 ●サーボ数 : 8ch
 ●信号入力 : スイッチ入力/サーボ信号のどちらか選択可能
 ●最大動作時間 : 1シーケンス当たり10sec
 ●動作モード : 1回動作/連続 どちらか選択可能
 ●動作方向 : Forward/Revers (動作途中で停止可能)
 ●外形 48*32*13(縦*横*高さ)
 ●重量 5.4g



4.回路図




5.部品表
番号  部品名  品番(仕様)   メーカー  備考 
 IC1  IC  BD4830  Rohm  
 IC2  IC  M95640-WmN6P  ST Microelectronics  
 IC3  IC  ATmega48V-10AU  MicroChip  
 D1  ダイオード  1SS349  東芝  
 C1〜C2  アルミ電界コンデンサ  47uF/10V    
 C3〜C7  セラミック・コンデンサ  0.1uF/50V    
 C7  セラミック・コンデンサ  47uF/16V    
 R1  チップ抵抗  10kΩ    
 R2  チップ抵抗  3.3kΩ    
 R3  チップ抵抗  2.2kΩ    
 R4  チップ抵抗  10kΩ    
 R5  チップ抵抗  10kΩ    
 R6〜R13  チップ抵抗  100Ω    
 R14  チップ抵抗  100Ω    
 R15  チップ抵抗  10kΩ    
 XT1  セラミック発振子  CSTCR7M37G53A-R0  ムラタ  
 CN1  コネクタ  B3B-XH-A  JST  



6.マイコン プログラムのダウンロード
本回路はマイコンを使っていますので、自作する方は、マイコンにプログラムを書き込む必要があります。
プログラムは、下記ファイルをクリック、保存してからマイコンへの書き込みを行って下さい。
(右クリックで ”対象をファイルに保存” を選択)

ss100.hex

書き込み時の設定
・FUSE BIT
 extended byte 0xFF
 high byte 0xCE
 low byte 0x77

・LOCK BIT
 0xFF



7.サーボ動作パターン作成用Exceファイル

ss10.xlsm



8.接続図




9.データの書き込み方法
9.1 制御データ、及びサーボ動作パターンの作成

 まず、サーボ動作パターン作成用exceファイル”ss10.xlsm"をダウンロードして開きます。


赤い網掛けの部分が作成(編集)するデータです。黄色の網掛け部分は最終的に書き込むための加工データですので、編集する必要はありません。
 右側のグラフは、サーボ動作パターンをグラフ化したものです。すべてのチャンネルをグラフ化できますが、全て表示するとごちゃごちゃするので、ここでは1〜3チャンネルのみ表示しています。
他のチャンネルを表示する場合は、グラフ上で左クリックしてグラフを選択した後、右クリックで”データの選択”を選び、表示させたいチャンネルにチェックをつけてください。
 制御データには、動作時間範囲、動作モード、入力信号を設定します。動作時間範囲には、1シーケンスの最終時間を入力します。設定可能な時間は最大で10秒で、0.02秒ステップで入力します。
動作モードは、1シーケンス完了で停止するモードの場合は”0”を シーケンスをくり返すモードの場合は”1”を設定します。
入力信号は、スイッチ入力の場合は”0”をサーボ信号入力の場合は”1”を設定します。
 動作パターンには、サーボの動作角を0〜180の範囲で入力します。時間ステップは0.02秒で固定です。チャンネル1のデフォルト設定例では、サーボ動作角0度から始まって、0.02秒ごとに角度を1度づつ増加していって、180度に達したら角度を1度づつ減少させていくものです。このパターン例では、サーボはゆっくりと往復運動しますが、角度を0.1度刻み、或いはもっと細かく設定すれば、もっとゆっくり動作させることが出来ます。動作の方向は、表上で下向きが、F(forward)で、上向きがR(revers)です。

9.2 書き込み用データの作成
 編集作業が終わったら、書き込み用データを作成します。作成と言っても、Excelのマクロを実行するだけです。
開発タブをクリックして、マクロを選択、”output.txt”が現れますので、あとは実行ボタンを押すだけです。


実行ボタンを押すと下記のような画面が現れますので、OKボタンを押します。



以上で書き込みデータ出力完了です。Excelファイルのあるフォルダに"data.txt"という名のファイルが出来ているはずです。


9.3 データの書き込み
 8の接続図を参照にパソコン、USB-UART変換モジュール、SS10を接続し、SS10に5V電源を接続します。

 サーボ動作パターンデータをSS10にデータ転送(書き込み)を行うためにはUSB−UART変換モジュールが必要です。今回使用したのは秋月電子通商で販売されている「USBシリアル変換モジュール CP2102使用 JYE119」です。
(このUSU-UART変換モジュール、意外と小さかったので、これなら基板に実装しておいても良かったなぁ。)
http://akizukidenshi.com/catalog/g/gK-12974/

シリアル変換モジュールを動作させるために専用のドライバソフトが必要です。ドライバソフトのインストールは、ここらへんを参照してください。
http://www.cqpub.co.jp/interface/contents/special/CP2102install/index.htm

USB−UART変換モジュールを接続すると、下図のようにデバイスマネージャーのポートのところにCOM*が現れます。


次に、データを転送します。データ転送には、RS232C用通信ソフトを使います。ソフトは、フリー版で十分で、Tera Termが有名ですが、ここではRS232Cテストツールというフリーソフトを使いましたので、このソフトを使ったデータ転送について説明します。

ソフトをパソコンで開くと下のような画面が現れます。(私の場合、何故かソフトを2重に開かないと表示できませんでした)



ポート名、ボーレート以外はデフォルトのままでいいです。
ポート名は、コントロールパネル => デバイスマネージャー => ポート(COMとLTP)から確認できます。
ボーレートは、9600に設定します。
設定できたら、”接続”ボタンをクリックします。
”接続 COM*”と表示が出れば、接続成功です。



次に”FILE送信”ボタンをクリックします。
先ほどの9.2で出力された”data.txt”を選択して、”開く”ボタンをクリックするとデータ転送が始まります。



データ転送には、約30秒ほどかかります。”Success”の文字が返ってきたら、転送完了(書き込み完了)です。
転送が完了したら、”切断”ボタンをクリックします。



1分以上かかっても転送が終わらない場合は、データ転送をやり直してください。(たまに転送失敗することがあります。)



10.動作説明
10.1
 一連のシーケンス動作を開始する方法として、スイッチ入力による方法とサーボ信号による方法の2つの方法があり、どちらか1方を選択することができます。方法の選択は制御データで設定します。(ExcelシートのD12セル)

 ・スイッチ入力に設定した場合(下図参照)
 スイッチの”C”を”1”に接続(FをGNDに接続)すると、サーボはForward方向に動作し、スイッチの”C”を”2”に接続(RをGNDに接続)すると、サーボはRevers方向に動作します。スイッチの”C”を中央(F、R共にオープン)にするとサーボは動作を一時中断します。スイッチの”C”を”1”または”2”に再接続するとサーボは、一時停止した位置から再び動作を始めます。シーケンスを一時停止させたい場合、スイッチは3Pタイプが便利です。


 ・サーボ信号入力に設定した場合
 受信機のラダー信号に接続した例で説明することにします。
 ラダースティックを右いっぱいに切ると、サーボはForward方向に動作し、ラダースティックを左いっぱいに切ると、サーボはRevers方向に動作します。ラダースティックをニュートラル付近にするとサーボは動作を一時中断します。ラダースティックを右、又は左いっぱいに切ると、サーボは、一時停止した位置から再び動作を始めます。(プロポ送信機のラダーをリバース・モードにするとスティックの左右は逆になる)


10.2
 シーケンス動作モードとして、1回動作と連続動作があり、どちらか1つの動作を選ぶことができます。動作モードの選択は制御データで設定します。(ExcelシートのD11セル)
スイッチ入力による場合で説明します。(サーボ信号入力でも動作は同じです)

 ・1回動作に設定した場合
 スイッチの”C”を”1”に接続(FをGNDに接続)すると、サーボはForward方向に動作し、動作時間範囲(上の設定例では7.18秒)に達すると動作を停止します。スイッチの”C”を”2”に接続(RをGNDに接続)すると、サーボはRevers方向に動作し、時間0秒に達すると(シーケンスのスタート位置に戻ると)サーボは動作を停止します。また、シーケンス動作途中でスイッチの”C”を中央(F、R共にオープン)にするとシーケンス途中でもサーボは動作を一時中断します。

 ・繰り返し動作に設定した場合
   スイッチの”C”を”1”に接続(FをGNDに接続)すると、サーボはForward方向に動作し、動作時間範囲(上の設定例では7.18秒)に達すると時間0秒に戻って動作を継続します。スイッチの”C”を”2”に接続(RをGNDに接続)すると、サーボはRevers方向に動作し、時間0秒に達すると動作時間範囲(上の設定例では7.18秒)に戻って動作を継続します。また、シーケンス動作途中でスイッチの”C”を中央(F、R共にオープン)にするとサーボは動作を一時中断します。



11.注意
・電源は5V電源を使用しますが、サーボ信号入力を選択した場合、受信機が5V系でしたら、受信機から5Vを供給することが出来ます。
 受信機から5Vを供給したい場合は、ジャンパーをショートします。(8.接続図参照) 受信機からから電源供給した場合は、5V電源は接続しないでください。
 SS10はサーボ8個を同時に駆動できますが、受信機から電源供給を行う場合は、サーボ2〜3個程度までが無難です。

・サーボの動作パターン設定データは、便宜上角度データとしていますが、実際のサーボの角度になるとは限りません。
 具体的には、動作角を0°→180°に設定しても、サーボによって動作角が120°とか100°になる場合もあるということです。
 これは、サーボの動作角というものに規定があるわけではなく、サーボのメーカーや機種によって異なるためです。
 サーボの角度をX(°)とするとパルス幅Y(usec)は、
 Y = (13.1X + 1585) * 0.542
 で計算しています。

・サーボ動作角で、0°や180°に設定した時、サーボの動作範囲を超えるような場合(サーボが振り切れる場合)は、設定値を10°〜170°にするなど90°を中心に狭めてください。

・計算上、サーボ角度の分解能は、0.0457°です。小数点以下の細かい数値を設定しても構いませんが、分解能より細かな動作をするわけではありません。

・サーボ動作パターンで設定する動作角データは、あくまでもサーボに与える信号ですので、急に大きな角度変化を与えても構いませんが、現実のサーボは追従に時間がかかります。

・電源を切ると電源が切れる前のシーケンス位置を記憶しています。電源を再投入すると電源が切れた時点のシーケンスから動作を始めます。ただし、状況によっては電源投入後サーボが大きく動く場合もあります。



12.動画

https://youtu.be/bcguO6v443U