ver1.0の使い方,特性などについて解説していきます.
最初のバージョンなのでガバが多少見つかりました.
このドキュメントに書いてあること以外でこのバージョンにおけるガバが見つかれば僕に連絡するかIssuesを投げていただけると助かります.
基板サイズ:65.68[mm]×51[mm]
野獣にはない機能があるので使用者は必ず確認してください. 長くなるため折りたたみます.
使い方
まずはLAP/SM切り替えスイッチについて説明していきます.
-
LAP/SM切り替えスイッチ
このスイッチは名前の通り,LAP方式とSM方式を切り替えることできるスイッチです.
基板にあるシルクの通り,スライドスイッチを"SM"の文字の方にスライドするとSM方式,"LAP"の文字の方にスライドするとLAP方式となります.
SM方式を採用する場合にはPWMピンにはPWM信号を流し,DIRピンには回転方向の信号を流してください(下の表参照)
LAP方式を採用する場合はPWMピンには何も繋げずにDIRピンにPWM信号を流してください.
LAP/SM方式の場合の各ピンの真理値表は以下のようになっています.PWM DIR 出力(SM) 1~100% 0 正回転 1~100% 1 負回転 0% $\phi$ ブレーキ DIR 出力(LAP) 0~49% 正回転 50% 無回転 51~100% 負回転 ※LAP方式についてはMD10C等一般的なモータードライバと正転・逆転が逆だと思うので注意してください.
LAP方式とSM方式の違いはこのページを参照してください.
安全性や効率の観点から基本的にはSM方式を採用してください. -
このボタンを押すことで手動でモーターを動かすことができます.
モータが駆動しないとき,このモータードライバの問題かその他の問題かを判別したり,機構がちゃんと動くかのテスト等に活用してください.
SAボタンを押すと正回転,SBボタンを押すと負回転になります.
このボタンを使用する際にはPWMピンをLOW,DIRピンをHIGHにして使ってください.それ以外の場合は正常に動作しません.Warning
LAP方式の場合はSAボタンで正回転,負回転を一応切り替えられますが,モーター及びDUBに極めて大きい負荷がかかるため非推奨 -
ファルトフラグ,RESETボタン
このLEDが光っているということはなにかこのモータードライバに不具合があるということです.
なんの不具合があるかは下の表を参考にしてください.
ちなみに,この表のFault LatchedにYesがついているエラーは,もしエラーの状態が治ったとしてもリセットボタンを押さないとエラーが出力されたまま動作しなくなるので,リセットボタンを押してください.
また,この表だけじゃ情報不足でわからないと思います.
全部英語ですがA3921のデータシートのp12~p13に乗っています.A3921のデータシートは公式サイトからダウンロードしてください.
ちなみに,このモータードライバを設計するときにA3921のデータシートを読むモチベのためにQiitaで記事を書いたので,A3921を使いたい!みたいなことがあればここから飛んでください.
リセットボタンを押すとA3921がスリープモードに入り,動作しなくなります.(離すと再び動作します.)
スリープモードに入ることで,A3921が検知していた異常が全てリセットされます. -
回転方向表示LED
このLEDの表示を見ることで,モーターがどちらの方向に回転しているかを知ることができます.
PowerUnit BseriesのOUT+の電位がOUT-よりも高くなっているときの回転方向を正とすると,SAが光っているときは正回転を,SBが光っているときは負回転をしています.
ちなみに,SM方式の場合は片方のみLEDが光りますが,LAP方式の場合は両方のLEDが光るはずです.
LAP方式の場合はLEDの光の強さで回転方向を読み取ってください.(SAの光の方が強ければ正回転,SBの光の方が強ければ負回転です.) -
電源表示LED
DUBがちゃんと電源に接続されているなら,このLEDが光っているはずです.
PowerUnit Bseriesか遠野に挿している場合で,電源に接続しているのにこのLEDが光らない場合は非常停止スイッチが接続されていない可能性があります.
PowerUnit Bseriesか遠野の「SWITCH」に非常停止スイッチがしっかりと接続されているかを確認してください. -
GitHub QRコード
このページにアクセスしているということはこのQRコードから飛んできたということは置いといて一応説明しておきます.
このQRコードを読み込むことでこのページに飛ぶことができます.
使用前には極力このページに飛んで仕様を再確認しておくと良いでしょう.
ちなみに,レポジトリ名が「DriveUnit Bseries」ではなく「MoterDriver_v1」なのはリポジトリ名を変更するとURLが変更されるためこのQRコードからこのページに飛ぶことができなくなるからです......(ver1.0以降どうするんだこれ...)基本的には以上がver1.0のDUBの機能です.
機能など,このモータドライバについて質問があれば何らかの手段で僕に連絡していただければ答えます.
このモータードライバの特性についてはここに示します.
どちらかというとモーターの特性になってるかもしれないです.
これも長くなるため折りたたみます.
ver1.0の特性
-
逆起電力の特性
使用モータ:RS-555VC-5524
使用マイコン:NUCLEO-F401RE
印加電圧:12V
PWM方式:Sign Magnitude(SM)
PWM周波数:10kHz上記のものを使用してこの特性の調査を行いました.
また,調査の流れとしてはマイコンとこのモータードライバを使って一定のペース(これをx[$ms$ ]とします)で加速→定格(12V)で運転→急減速の流れでモータを運転し,急減速の際の電源ラインの波形を読み取る,といった感じです.ちなみに野獣でも同じ条件でこの実験をすると,最大の電源ラインの電圧はほぼ変わりませんでしたが,野獣は耐圧がこのモータードライバよりも低いため逆起電力で壊れる可能性があります.(実際に実験の最中に壊れました...)
なので,急停止するような動作が必要な場合には12[$V$ ]でもこのモータードライバを使用することを推奨します. -
周波数-回転数特性
使用モータ:RS-555VC-5524
使用マイコン:NUCLEO-F401RE,NUCLED-F411RE
印加電圧:12V
PWM方式:Sign Magnitude(SM)上記のものを使用してこの特性の調査を行いました.
また,調査の流れとしては特定のPWM周波数(これをfとします.)で,0[$V$ ]から10[$s$ ]で定格(12V)になるようにduty比を一定間隔で増やしているPWM信号をこのモータードライバに送り,エンコーダから算出した回転数をマイコンからPCにprintfで出力しTera Termから値を読み取ってそれを折れ線グラフにします.
このとき,モータを駆動するマイコンと,エンコーダのパルスを読み取り回転数をprintf出力するマイコンを分けているため,printfの処理時間等は以下のグラフで見られる非線形性の要因とは無関係と言えます.-
f=20kHz(HAL不使用)
グラフを見てわかるように,20kHzになるとギザギザなグラフになっており,線形性が保たれていません.
これはPWM分解能が落ちている証拠です.なので,これ以降はHALを用いて計測していきます. -
グラフから,明らかに周波数が増えるにつれてduty比が0.9程度のところで回転数が一度落ちています.
これの原因は不明ですが,モーターの出力をオシロスコープで確認すると回転数が落ちるところで周波数が3kHz程度まで落ちることから,ブートストラップからチャージポンプに昇圧方式を変える時にコンデンサの容量が異なることでなにか問題が起きていると考えられます.
また,モータの両端にプロープをつけて波形を見てみたところ,ギブス現象の正弦波4本程度で矩形波を近似したときのような波形が得られ,電流が振動していました.
とりあえず,10kHzが一番線形性が保たれており,効率もいいので10kHzで使用するのが一番いいということがグラフから読み取れます.(あくまでこれは,RS555の場合です.)
<追記>RS-775を同じように250kHzで回してもギブス現象のような波形が得られず与えたPWM波形と同じ波形を出力していたことから,これはモータ側の問題であることが分かりました.しかし,duty比が0.9程度のところで回転数が落ちるのはこのモータードライバの問題のようです.
<追記>実験をしたところ,モータを接続したときのみ(高周波では)duty比0.9以上で電圧が12Vから10Vに落ち,またRS-775に変えるとこのような現象は起こらなかったことから,これもモータが原因だと思われます.
使用者は必ずこれを見てください!!
基板を発注する前にブレッドボードで回路が正しいかを確認するのが普通なのですが,A3921が極めて小さくて手はんだできないのもあり,実はブレッドボードで試作せずに基板を発注しています.
しかも,A3921周りの回路は参考にできる記事や回路が見つからず,殆ど自分で組んでいます.
そのため,実際に動かしてみてわかった設計のガバが少しあったのでそれを書いていきます.
また,このガバは極力バージョンアップで無くしていきます.
-
入力が浮くと全力で正回転する
マイコン側にノイズがいかないようにするためにフォトカプラで信号の入力線を絶縁しているのですが,フォトカプラはTLP2366(またはTLP2367)を使用していて,このフォトカプラは内部でNOTがかかり,内部のLEDが光っている(信号が入力されている)時にLOW,内部のLEDが光っていない(信号が入力されていない)時にHIGHになります.
従って,普通に繋ぐとPWM信号がHIGHの時にLOW,PWM信号がLOWの時にHIGHとなってしまい,仮にDuty比を20%にすると80%の出力になるため,制御性が悪くなってしまいます.
そのために,下の画像のようにマイコンのVCCとPWMピンに繋げることで,フォトカプラのNOTを打ち消すNOTを掛け,PWM信号が0の時に入力が0,PWM信号が1の時に入力が1となるようにしています.(DIRを反転していないのはA3921が「1で正転,0で逆転」になり,これは前モータードライバと逆であるので,前モータードライバと同じ入力で正転となるようにするためです.)※修正前の回路なのでフォトカプラのLEDに抵抗が付いていませんが,実際には付いています.
ここで,マイコンからの信号線を取り外し,入力が浮いている状態を考えてみましょう.
入力が浮いているので内部のLEDは当然光りません.
すると,下の画像のようにPWMへの入力が1になってしまいます.
すなわち,この状態で電圧をかけるとモータが全力で回転し始めます.これが,1つ目のガバです.
ロボットが暴走する原因になるので,以下のことを絶対に守ってください.- マイコンをリセットする際は非常停止スイッチを押してからリセットを行う.
- 入力を浮かせた状態でこのモータードライバを使用しない.
ただ,以下のように回路を組めばこのガバをなくすことができます.
ちなみに,このガバは出力がNOTではないフォトカプラを選べばいいのですが,高速なフォトカプラは自分が探した限り全て出力がNOTで,これを低速なものに変えると前モータードライバと同じくらいの周波数までしか対応できなくなることが予想されます.
-
ボタンスイッチを使用できる入力の状態が制限されている
これも上記のガバに関連しているのですが,ボタンスイッチを正常に使用できるのは入力が浮いていない状態で,PWMピンが0,DIRピンが1である状態です.
このときの内部の状態は下の画像のようになっています.
入力が,浮いている状態を含むその他の状態ではPWMやDIRに既に1が入ってしまうので,SW1を押すと正転,SW2を押すと逆転,といった正常な動作をすることができなくなります.
けど,このスイッチの需要って大体入力が浮いている時,すなわちDIRとPWMが1の時にあると思うので....
回路の組み方を変えて全力で回転する問題と一緒に治す予定です.
チップ抵抗等大量に使用する部品の場合は1個あたりの値段を算出し,値段の横に個数を括弧で示します.
又,同様の部品がある場合は部品番号をXと表記し,まとめて示します.
(例:3813-HA,3813-LAはどちらもIRLB3813PBFを使用しているため部品番号を3813-XXと示します.)
今見つかっている不具合はこんなところです.
このモータードライバを使用して何か不具合などが出てきたら教えてくださると助かります.