はじめに
この記事で何がわかる?
ブラシレスモーターを制御するための回路とソフトウェアについて、MCUを主軸に解説します。MCUのメーカーを変えても同じ事が出来るように、各社のペリフェラルの違いや特徴について複数回に分けて解説します。今回は全体像の説明です。
こんな感じでモーターの操作/モニターが出来るようになります。
ブラシレスモーターを回してみる【PCソフトをざっくり解説】
こんな人に読んで欲しい
- はじめてブラシレスモーター制御用ソフトを開発する人
- MCU調達難で仕方なくメーカーを変えようと思っている人
- ブラシレスモーター制御用MCUの選定で迷っている人
なお本記事を読むには以下の前提知識が必要です。
- ブラシレスモーターが回転する仕組みを知っている
- ブラシレスモーター制御に必要な回路のイメージがざっくり出来ている
- MCUを用いたプログラミングの経験がある
上記がちょっと自信無いな~という人には、本文最後に基本的な知識をフォローするおススメWebページを紹介しています。本記事で必要な技術の流れを理解してから、ご参照下さい。
そもそも何故こんな記事を書くのか?
モーター制御用MCUの選定方法
みなさんはモーター制御用のMCUを選定する時、どのように選定していますか?
- 仕様を比較して必要な機能を実現出来るMCUを選択
- 使用(購入)実績のあるメーカーのMCUを選択
- コストを優先し必要な機能をギリギリ実現出来るMCUを選択 などなど。
モーター制御用MCUでは、PWM出力の特殊機能やAD変換との連携、割り込み処理を”軽く”するための機能(DMA、コプロセッサなど)があると便利です。
これらの仕様は、実装してみて初めて必要条件を満たしているか判断できます。スペックシートだけではわからない、もしくは読み取り切れなかったために罠に引っかかる事も多いです。
しかし気になったMCUをすべて実装してみるのは、途方もない労力を要します。なぜなら各MCUの実装にあたりデーターシートや開発環境の理解、場合によっては開発用周辺機器(デバッガ)の調達も必要となり、時間/コストが多く掛かるためです。
MCUメーカー変更のハードル
これらのMCUを苦労して選択した後、急に調達の見込みが立たなくなったり、生産終了になったりして泣きを見た事がありませんか?そうなると代わりのMCUを選ぶことになりますが、MCUメーカー変更はハードルが非常に高くなります。
なぜならモーター制御に関わるMCUの機能はメーカーごとに仕様が異なり、ここが変わるとモーター制御の根幹部分を作り直す必要があるためです。
しかし同じメーカーを選択した場合は、結局調達期間が変わらなかったり、生産終了のリスクを回避しきれない可能性があります。
MCUに依存しない開発を目指して
そこで様々なモーター制御用MCUを触ってみて、最低限モーター制御が出来るところまで実装して、その方法をシェアしようというのが本記事の目的です。この記事を読んだ皆様が、モーター制御用MCUの選定や変更に掛ける時間を半減出来るようにします。
実験機器について
本記事で使用する機器の構成
まず最初に、本記事で使用する機器を説明します。以下の写真と表は使用する機器一式です。MCUだけが毎回変わっていきます。
分類 | 品名 | メーカー |
---|---|---|
モーター | EC 32 flat Ø32 mm メーカーページ | マクソンジャパン株式会社 |
モータードライバ | DRV8305EVM メーカーページ | テキサス・インスツルメンツ |
PC (ソフト) | Visual Studio Community メーカーページ | 日本マイクロソフト株式会社 |
MCU | モーター制御用MCU各種 | STマイクロエレクトロニクス ルネサスエレクトロニクス マイクロチップ・テクノロジー etc… |
本記事では回路については詳しく説明しませんが、どのような接続になっているかだけ簡単に説明します。以下の図は上記の写真をブロック図にしたものです。
MCUとモーターの間にある”DRV8305EVM”が、モータードライバと呼ばれる部品になります。この部品がMCUからの信号に応じてモーターへの電力供給を行います。またモーター電流を読み取るためのセンサーも搭載されています。ここではMCUとモーターの間に入って電力を制御してくれる部品とだけ覚えておいて下さい。
部品としてはMCU、モータードライバ、ブラシレスモーターの3点だけになります。他の周辺機器として安定化電源とPC(Windows)が必要です。
どんな事が出来るのか
- ブラシレスモーターの速度制御
- モーター電流の読み取り
- PCからの速度指令、速度/電流値モニタリング
本記事ではMCU毎のモーター制御機能を実装/比較するのが主目的のため、最後の指令/モニタリングは本記事では解説しない予定です。
MCUの選定基準
- モーター制御専用機能がある事
- ¥5,000以下の評価ボードがある事 (出来ればデバッガ付き)
- 上記を満たすエントリークラス
ターゲットデバイス
以下のようなデバイスを実装/解説します(他色々実装予定)。
MCUシリーズ | メーカー名 |
---|---|
STM32F0 | STマイクロエレクトロニクス |
RL78/G14 | ルネサスエレクトロニクス |
dsPIC33C | マイクロチップ・テクノロジー |
いずれもブラシレスモーター制御に適した機能を持っています。その中でも同じシリーズの中で出来るだけローエンドな物を選びました。同じメーカー/シリーズでしたらそこまで大きく使い方に差が出ませんし、必要に応じて機能/性能を足せば良いだけになります。
上記は進める中で変更される可能性があります。記事作成時の入手性や著者の興味が移り変わる、より新しいデバイスのリリース等が予想されるためです。もし”このシリーズも取り上げてほしい”というご要望がありましたら、APS様か著者Twitter( @miha_labs)へコメント下さい。
MCU機能評価のフェーズ
ブラシレスモーターを制御するために必要な機能を、段階を追って実装します。ブラシレスモーター制御の基本となる、ホールセンサを使用した120度通電制御を例に、以下3つの段階で解説していきます。
フェーズ1 : ホールセンサ読み取り
まず最初にホールセンサを読み取ります。この段階ではモーター回転制御は行わず、モーターを手で回してホールセンサ出力が検出出来ることを確認します。またホールセンサ出力が移り変わる時間間隔を測定する事で、ローターの回転速度が測定出来ます。
フェーズ2 : モータ制御制御
フェーズ1で検出したローターの位置に応じて、モータードライバへ通電指示を与え、モーターが回転する事を確認します。またモーターの回転速度が指令速度と一致するようPI制御を行います。
フェーズ3 : モータ電流検出
少し応用的になりますが、モーターに流れる電流量を測定します。電流量を測定する事で、モーターに掛かっている負荷を知ることが出来るため、過負荷状態になったら回転数を下げるといった制御が可能になります。
フェーズ1~3を実装しながら、各MCUの特徴や便利な機能を紹介していきます。逆に他社と比較して不足していると感じる機能/性能等も忖度せずに紹介します。
最後に
今後の予定
次回より具体的な実装方法を解説していきます。初回はSTマイクロエレクトロニクス社製のSTM32F0です。
STM32シリーズは開発環境や調達性の観点から利用しやすく、利用者の多さからWeb上に多くの情報があるため、初めて触る場合のハードルが最も低いと感じます。
しかし有名なスマートフォン等でも採用されている事から、市況に応じて調達が難しくなる場合もあります。
ちょっと難しかった人には
もし上記が全くわからない場合や自信が無い場合は、とりあえず本記事をさっと目を通して頂き、以下のようなサイトで知識を広めて頂ければと思います。
ルネサスエレクトロニクス
BLDCモーターとは?
ブラシレスモーターが回転する仕組みや制御について、応用部分には踏み込まずにすっきり解説されています。
ROHM
スギケン先生のモータードライバー道場
ブラシレスモーターについてマンガでわかりやすく解説しています。第2話からブラシレスモーターの話題が始まります。
こちらも是非
“もっと見る” ブログ
【フーリエ級数編6:フーリエ級数実践編】イメージでしっかりつかむ信号処理〜基礎から学ぶFFT〜
オイラーの公式は本当に重要&有用なものなので、しつこいようですがもう少しその意味を掘り下げておきたいと思います。話が脱線しているように見えるかもしれませんが、オイラーの公式と複素数についてしっかりイメージを固めておくことがこの後の話で大切になってきます。
【フーリエ級数編5:複素フーリエ級数】イメージでしっかりつかむ信号処理〜基礎から学ぶFFT〜
オイラーの公式は本当に重要&有用なものなので、しつこいようですがもう少しその意味を掘り下げておきたいと思います。話が脱線しているように見えるかもしれませんが、オイラーの公式と複素数についてしっかりイメージを固めておくことがこの後の話で大切になってきます。
【フーリエ級数編4:フーリエ係数を求める】イメージでしっかりつかむ信号処理〜基礎から学ぶFFT〜
フーリエ級数で表現したい信号x(t)があるとして、そのx(t)をうまく再現してくれるようなフーリエ係数Ak, Bkを求めることはどうすればできるのでしょうか。