BLDCMD作った

2018年1月29日

はじめに

最近ロボカップSSLチーム「Scramble」というチームに参加してロボカップはじめました。NHKロボコンから未だに回路作る人になってしまいました。
回路の中でも,担当はメイン制御基板とモータドライバです(またかよ)。今回はこれまでとは違って、人生初のブラシレスDCモータドライバを作ることになりました。はてさてどうなるのやら

モータドライバを作る

とりあえず作ってみましょうか。各チームの概要シート(TDP)ってやつを読んでいたんですが、みんなMaxonのECFlatに磁気エンコーダくっつけてるのが多いですね。やっぱホールセンサだけだと分解能とかイマイチなんですかね。まぁ各ロボコン界隈にはセオリーがいくつかある感じで、ロボカップSSLの場合,ECFlatに磁気エンコーダつけるのがそれなのでしょうかね。新参ということもあり,実績のあるものを採用して,同じ構成にしてみましょう。
みなさんたいてい磁気エンコーダのために基板をモータの後ろにつけていますが、やたらスペース余っててもったいないなぁって思ってました。まぁそこで思うわけですよ。モータの後ろの基板にモータドライバ載っければ良くない?
よっしゃいっちょやりましょう。

はいできました。基板が届いた瞬間に早速ミスを見つけてゲンナリしていました。

構成

簡単に説明します。
ぼくの大好きなSTMicroElectronicsから「SPSPIN32F0」「STSPIN32F0A」という石が出ています。この石(F0Aの方)、かなり変態でして、この石の中に

  • STM32F031
  • ハーフブリッジゲートドライバ×3
  • オペアンプ×3
  • 過電流検出コンパレータ
  • 12VLDO
  • 3.3Vバックコンバータ

が入っています。すごいです。ブラシレスモータドライバを作る場合、これを別々の回路として用意する必要があります。ですが1パッケージに収まっているので、これが発表されたときに
あ、これでブラシレスモータドライバ作るしかないな
と思いました。というのも、この石が出たので、モータ裏の基板にモータドライバを載せようと決意しました。というかこの石くらいしか面白いもの無いんだよなぁ

デバッグ

動作確認していた当時、12VLDOから電圧が出力されていなかったため、何をミスしたのか、壊したのか、全くわかりませんでした。データシートを血眼になって眺めていたところ,以下の項目を見つけました。

どうやら内部の過電流検出コンパレータを有効にしないと、12VLDOの出力が有効にならないようです。ここのコードを直した結果,無事に12Vが出力されました。一安心。

動いた

そのあとなにか部品を壊してしまうなどもなく,コードをわちゃわちゃ書いていき…

回りました。やったぜ(´◔౪◔)۶ヨッシャ!
というのもホールセンサのパターンに対応してスイッチングのパターン切り替えてるだけですがね…
ひとまず初めて作ったブラシレスDCモータドライバが無事に動いて嬉しいです。今回見つけたミスの修正とか不要だった部品のパッドを取り除いたりとかして,また新しいバージョンを発注にかけたいと思います。そろそろ旧正月に入るからあまりモタモタしていられませんね

構成上,近くにキック用のソレノイドが配置されるので,ノイズがかなり心配であはあります。まぁ対策は思いついていますが,だめだったらその時に考えましょう(笑)
ロボカップSSLにて,皆さんとお会い出来ることを楽しみに,ロボットもとい回路の製作を頑張っていきたいと思います。

まとめ

人生で初めてブラシレスモータ回した。
ロボカップSSLは(多分)新規性のある回路を作った。