Tag Archives: ESC

芝刈りロボットへの道 ~DCモーター用ESC~

前回まででRTK環境ホストPC⇔フライトコントローラー間の通信ができたので、次は適当な車体を作って庭を走らせてみたいです。
と言うか、ツギハギだらけな車体ですが、もう試しています。


駆動方式は、左右の駆動輪をそれぞれギヤードモーターで回転させ前進/後退を行い、左右の回転差で旋回する「スキッド式」と呼ばれる方式です。

ギヤードモーターはだいぶ前にAliexpressで買って放置していたものが2個あり、12V駆動のDCモーターで回転数は60rpm(1秒に1回転)です。

そして意外にちょうど良いのが見つからないのがESCでした。
DCモーター用のESCでラジコン用に売られているものは電圧が7.2V程度を前提に作られており、12Vで使えるものが見当たりません。
という事でESCを作ってみました。

2CH DCモーター用ESCの回路

Arduino NANOと秋月電子のモータードライバ基板AE-TB6612FNGを使うシンプルな回路です。
AE-TB6612FNGは東芝製TB6612FNGを扱いやすい様にDIPピッチの基板に載せたもので、TB6612FNGは最大13.5V/1.2A(ピーク3.2A)のDCモータードライバーを2CH分搭載したICです。
最大1.2Aですが、今回のモーターは定格350mAなので大丈夫でしょう。

回路図は下図の通り。
A-SIGIN,B-SIGINからサーボ信号を取りこんで、MOT-A,Bに接続した2個のモーターを駆動できます。
サーボ信号は昔ながらの方式で、パルス幅1.5mSを中心として±0.5mS変化するヤツです。

キャリブレーション

サーボ信号のパルス幅を読んでモータードライバに駆動方向およびPWMを送るのはArduinoの関数を使えば簡単でしたが、面倒なのはキャリブレーションです。
Dshotと違って昔ながらのサーボ信号だと最大値/最小値が割と適当なのでキャリブレーションが必要です。
市販のESCに良くある、電源投入時に入力信号が最大値になっていたらキャリブレーションモードに入る方式としました。

キャリブレーションは次の様に動作します。

  • 電源投入100mS後の入力信号が1.9mS以上になっていたらキャリブレーションモードに入る。
  • キャリブレーションモードへは各CH個別に入る(CH1のみ、CH2のみ、CH1,2両方等)。
  • キャリブレーションモード中の最大パルス幅を最大値として記録する。
  • キャリブレーションモード中の最小パルス幅を最小値として記録する。
  • 入力信号が1.4mS~1.6mSの間をニュートラルと判断し、この状態が3秒続いた時の値をニュートラル値として記録する。
  • キャリブレーションモードに入っている全てのCHがニュートラルを3秒以上保っていたらキャリブレーションを終了する。
  • キャリブレーションの結果はEEPROMに記録し、次回以降起動時にキャリブレーションモードではなかった場合、この値を読み出して使用する。

ブザー

ArduinoのD3端子に接続した圧電ブザーは次の様に鳴ります。

  • CH1がCALMODEに入った/抜けた時・・・440Hzを1秒
  • CH2がCALMODEに入った/抜けた時・・・880Hzを1秒
  • 各CH最大値/最小値を検出した時・・・・1319Hzを0.2秒
  • 実動作モードに入ったとき・・・・・・・1760Hzを細かく10回繰り返し

プログラム

今回使ったArduinoのスケッチはこれです。

DCESC.zip

製作

手っ取り早く動かしたかったのでユニバーサル基板に載せました。

という事で、走りました。

ESC DR-20Aのファーム書換え

以前購入した激安ESC DR-20Aのファームを書き換えてみました。

まず最初に現状がどうなっているかを見ます。
FCのモーター端子2~3に接続してBLHeliSuiteで・・・
ん?現状のファームウェアはErased or unknownとなっていますね。一応パッケージにはBLHeliと書いてあるんですけど・・・
これだとどのファームを書けば良いのかわかりません。

ならばESCの基板を眺めまわします。
ラベルを剥がすと・・・

表側
裏側

この写真を基にBLHeliがサポートするボード一覧のページ(どこだったか忘れた)と比べるとソックリのボードが載っていました。そこにはDYS SN20Aというファームを使えと書いてあります。

追記:本家ページのこの資料を見てました。33ページのところ。
 ↓  ↓
https://github.com/bitdump/BLHeli/blob/master/Atmel/BLHeli%20supported%20Atmel%20ESCs.pdf

ではDYS SN20Aを書き込んでみます・・・が、DYS SN20Aにも3つありますね。
とりあえず DYS_SN20A _MAINを選んだらメモリー不足っぽいエラーがでました。そこで DYS_SN20A _ MULTIを試すと書き込み成功。

追記:MAINはヘリコプターのメインローター用、TAILはテールローター用、MULTIはマルチコプター用との事です。
 ↓  ↓
https://github.com/bitdump/BLHeli/blob/master/Atmel/BLHeli%20manual%20Atmel%20Rev14.x.pdf


書込みが成功するとこんな画面となります。


モーターを繋いで回してみると動作も正常だったので3個とも書き込みました。

これで謎バージョンだったファームを最新に上げる事が出来ました。

ところで、なぜバージョンを上げたかったのかというと、回転方向をBIDIRECTIONに設定したかったから(謎バージョンにはこの選択がないのです)。こうするとスティックの中点をモーター停止、上を正転、下を逆転にできるのです。息子はこれで水中ドローンを作ろうとしています。

スイッチングBECの製作

最近ラジコン/ドローンの投稿が多くなっていますがまたまたラジコン/ドローンネタです。

息子が通販で激安のESCを見つけてきました。スチレンペーパーの飛行機を作ったりするので多めに買ってストックしておくと便利です。

※ラジコン用語で ESCとはElectricSpeedControllerの略で要するにブラシレスモーターのドライバーです。ラジコン受信機やドローンのフライトコントローラーからの信号に合わせてモーターの出力を制御します。

見ると税別880円で20AのESCが4個入っています。但しBECが内蔵されていません。

※ ラジコン用語でBECとはBatteryEliminateCircuitの略で要はレギュレータです。独特な用語に思えますがプロペラを回すためのバッテリー電圧(7.4Vや11.1V)から受信機やサーボを動かす為の5V電圧を作り出す事で5Vのバッテリーを載せなくて済むという意味からバッテリー除外(eliminate)という事らしいです。

1個あたり220円。消費税と送料を入れても安いじゃないですか。BECだけ別に準備すれば安くESCが手に入るので早速購入しました。

4個入りを私が2セット、息子が3セットで、合計20個のESCを購入!
さすがにこんなに使うか?

そしてBECをどうするかですが、Aliexpressで見ると降圧DCDCコンバーターが80円くらいで売られているのでこれを買うのが簡単です。しかし最近はコロナウィルスの影響かAliexpressで買っても中々発送されないんですよね。という事で作ってみようかと思った次第です。

どんなのを作るか考えるに、負荷の電流が少なければ単純に3端子レギュレータ(シリーズレギュレータ)でも良いですが、飛行機に載せるとサーボを動かすのでそれなりに電流を流したいです。また発熱が多くて放熱板を取付けたりすると重くなってしまいます。となるとスイッチングレギュレータですよね。

部品箱には300円で大量に入っていたスイッチングレギュレータIC、LM2576があります。当初これを使おうかと考えたのですが結構古いのでスイッチング周波数が52KHzと低いんですよね。するとインダクターが100μHくらいのを付ける必要があり、コンデンサもそれなりに大きいのを使う必要があります。

そこで先日フライトコントローラーを修理した時に買ったMP2359のデーターシートを見ると、こちらはスイッチング1.5MHzで動作するとの事。これだとインダクターは4.7μH程度、またコンデンサーも小さくて済みます。

10個入り140円。2個使ったのであと8個残っている。

という事でMP2359を使ってみる事にしました。
いつもの様にKicadで回路図を書きます・・・

ほぼデーターシート記載のリファレンス回路図通りですがインダクタは部品箱にあった10μH(電流2.3A)の品に、その他もあり合わせの部品に合わせています。 MP2359はFB端子が0.81Vを保つ様に制御されるので6.8Kと1.2Kの抵抗分割だと計算上5.4Vの出力で若干高め狙いです。実際には抵抗の精度が5%なので動作後に実測する事にします。

Kicadでパターンを書き、久々にCNCで基板を削りました。

上がMP2359
下が切削後の基板

MP2359を搭載する部分は細かいのでショートさせてしまいそうです。そこで危なそうな部分にサンハヤトのレジスト補修材を塗って保護しました。

このレジスト補修材、何故か近所のホームセンターHANDSMANで売ってるんですよ。
1年に何個売れるんでしょう?

そして部品を載せました。基板の上の方にある大きな抵抗みたいなのが10μHのインダクタです。入口の10μFは回路図では電界コンでしたが部品箱に積層セラミックがあったのでそっちにしました。

もっと小型化できるなー。

裏側に表面実装部品を載せています。MP2359の取り付けに失敗してリードを折り、1個無駄にしましたが何とか完成。

こっち側に表面実装部品のMP2359とショットキーダイオードが載っています。

電源を入れるとほぼ思った電圧が出ているのでサーボ(4グラムタイプ)を動かしてみます。動画で・・・

動作は問題なさそうですが抵抗やコンデンサをチップ型にしてもう少し小型化したいところです。また幾つも作るなら基板も発注したくなりますが・・・しかしお金をかけるなら結局は上記の80円のDCDCコンバータを買う方が安いかもしれません。

まあこれでESC大量&BECの目途が付きましたが、どんな機体をつくりましょう?