RoboTry

ROSを使ってロボットを動かすぞ

RoboCup SSL Rootsの回路を分析!【3:モータドライブ回路のブロック図】

こんにちは。ロボカップSSLに出場するチームRootsと雷です。

チームではソフト開発を担当していますが、勉強のためロボットの回路を分析します。

3回目の今回は、メイン基板にあるモータドライブ回路のブロック図を作成します。

Rootsのロボットとは

Rootsのロボットに限らず、ロボカップSSLに出場しているのはこんなロボットです。

直径180 mm、高さ150 mmの大きさで、

オムニホイールで全方向に移動して、

ゴルフボールをキックするサッカーロボットです。

メイン基板ってどれ?

メイン基板はこれです。

f:id:macakasit:20200329130531p:plain
メイン基板(3Dモデル)

この3DモデルはGitHubからアクセスできます。

robot_Ver_JapanOpen2019 · SSL-Roots/Roots_home Wiki · GitHub

また、同じページには基板の写真も掲載されています。

f:id:macakasit:20200404225211j:plain
メイン基板

メイン基板のXBeeNucleoを囲うように、少し大きめのICが3つあります。

このIC周辺がモータドライブ回路です。 Rootsのロボットはホイールモータが3つ搭載されているため、 モータドライブ回路も3つあります。

3つの回路はほとんど同じなので、ブロック図は代表して1枚作成します。 (同じようなブロック図を何枚も作るのは面倒です)

回路図を見る

前回も見ましたが、もう一度回路図を確認しましょう。 回路図と部品表もGitHubの同じページに公開しています。

まずは回路図(PDF)を開いてみましょう。

つぎのようにPDFファイルが表示されます。

f:id:macakasit:20200325081518p:plain
回路図(PDF)

回路図に型名が書かれていない素子は、 部品表をみて確認しましょう。

そして今回参照するのはモータドライブ回路です。 回路図PDFの4~6ページにあります。

f:id:macakasit:20200404144542p:plain
モータドライブ回路図

回路ブロック図

できあがった回路ブロック図がこちらです。

f:id:macakasit:20200404144854p:plain
モータドライブ回路ブロック図

ブロック図の各要素について説明を加えます。

マイコン

ブロック図の中央にあるのがマイコンです。 マイクロチップ社のdsPIC33EP32MC502を使っています。

公式ページを見ると、このマイコンはモータコントロールに特化していることがわかります。

www.microchip.com

電源・通信回路ブロック

ブロック図の左上には電源と通信の回路ブロックがあります。

f:id:macakasit:20200404145352p:plain
電源・通信回路ブロック

モータドライブ回路はメイン基板に実装されているので、 メイン基板の素子から電源供給され、メイン基板の素子と通信します。

マイコンの電源は3.3Vです。 また、15V電圧(バッテリー電圧)をアナログポートで監視します。 この15Vはモータにも供給されるので、モータ制御のために監視しているようです。

5ピンのピンヘッダはマイコンのソフト書き込み端子に接続されています。 このマイコンはdsPICなので、書き込みに使うのはPICKitでしょう。

エンコーダ・ID設定回路ブロック

ブロック図の左下にあるのがエンコーダとID設定回路ブロックです。

f:id:macakasit:20200404150656p:plain
エンコーダ・ID設定回路ブロック

エンコーダ基板はホイールモータの裏側に取り付けられています。

f:id:macakasit:20200404203712p:plain
GitHub上の3Dモデルより これがエンコーダ基板

マイコンのRA2、RA3ピンに接続されるのがID設定回路ブロックです。 といってもただのプルアップ・プルダウン回路です。

ロボットにはモータドライブマイコン(dsPIC)が3つ搭載されており、 それぞれにモータ制御プログラムを書き込みます。 しかし別々のプログラムを3つ作成するのは面倒です。 できることなら1つのプログラムを流用したいですよね。 それを簡単にするのがこのID設定回路ブロックです。

たとえば、RA2とRA3がプルダウンならID0、 RA2がプルアップならID1、 RA3がプルアップならID2という風にプログラムを作成すれば、 一つのプログラムを使いまわすことができます。

コードにするとこんな感じです。

// コード例
int myID = readMyIDfromRA2andRA3();
if (myID == ID0){
  // 右モータの制御
} else if(myID == ID1){
  // 左モータの制御
} else if(myID == ID2){
  // 後モータの制御
}

作業を簡単にする(あるいは作業ミスを減らす)工夫が見られますね!

LED回路ブロック

ブロック図右上にはLED回路ブロックがあります。

f:id:macakasit:20200404205637p:plain
LED回路ブロック

LED大事。

ドライブ回路ブロック

ブロック図右側にあるのが本命のドライブ回路ブロックです。 この回路のおかげでモータが回せるのです。

f:id:macakasit:20200404205839p:plain
ドライブ回路ブロック

モータドライブ回路を知るためには、どんなモータを回すのかを知らなければなりません。 ロボットに搭載しているモータの情報は3Dモデルに書かれています。

f:id:macakasit:20200404210502p:plain
3Dモデルより ロボットのモータ

部品構成欄にEC45fl-200189と書かれているので、これはマクソンのEC 45 Flatブラシレスモータ(以下、EC45flat)だと分かります。

www.maxongroup.co.jp

ブラシレスモータを回すので、ドライブ回路ブロックには素子がいっぱい必要なんですね。 MOSFETや電流センサがどう働くのかは回路図解説の記事に書きます。

ホールセンサ回路ブロック

ブロック図の右下にあるのがホールセンサ回路ブロックです。

f:id:macakasit:20200404223920p:plain
ホールセンサ回路ブロック

EC45flatにはホールセンサが内蔵されています。 ホールセンサの信号ラインは電源ピン(ブロック図の11ピン)にプルアップされているので、出力信号は0Vと5Vです。 マイコンには3.3Vの信号を入力したいので、ダイオードを使って電圧を変換しています。

まとめと次回予告

今回はメイン基板のモータドライブ回路ブロック図を作成しました。

次回はエンコーダ基板とボールセンサ基板のブロック図を作成します。