RoboCup SSL Rootsの回路を分析!【3:モータドライブ回路のブロック図】
こんにちは。ロボカップSSLに出場するチームRootsのと雷です。
チームではソフト開発を担当していますが、勉強のためロボットの回路を分析します。
3回目の今回は、メイン基板にあるモータドライブ回路のブロック図を作成します。
Rootsのロボットとは
Rootsのロボットに限らず、ロボカップSSLに出場しているのはこんなロボットです。
直径180 mm、高さ150 mmの大きさで、
準優勝でした!!!
— と雷@技術書典応援祭 (@chmod_x_akasit) August 18, 2019
ここまで勝ち続けられるとは思っていなくてびっくりしましたが、Rootsは強くなっています!!!
応援してくれた皆さんありがとうございました!!!
そして、キーパー0番と、PKを決めた4番ありがとう!!!#roots_ssl pic.twitter.com/FIhRi9MRI8
オムニホイールで全方向に移動して、
MFTの会場でデバッグするロボカッパー#MFTokyo2019 #MFT2019#roots_ssl pic.twitter.com/JvP72JAYac
— と雷@技術書典応援祭 (@chmod_x_akasit) August 4, 2019
ゴルフボールをキックするサッカーロボットです。
ロボット ヨシ!!!#MFTokyo2019 #MFT2019#ssl_roots pic.twitter.com/W0ElI09uij
— と雷@技術書典応援祭 (@chmod_x_akasit) August 2, 2019
メイン基板ってどれ?
メイン基板はこれです。
この3DモデルはGitHubからアクセスできます。
robot_Ver_JapanOpen2019 · SSL-Roots/Roots_home Wiki · GitHub
また、同じページには基板の写真も掲載されています。
メイン基板のXBeeやNucleoを囲うように、少し大きめのICが3つあります。
このIC周辺がモータドライブ回路です。 Rootsのロボットはホイールモータが3つ搭載されているため、 モータドライブ回路も3つあります。
3つの回路はほとんど同じなので、ブロック図は代表して1枚作成します。 (同じようなブロック図を何枚も作るのは面倒です)
回路図を見る
前回も見ましたが、もう一度回路図を確認しましょう。 回路図と部品表もGitHubの同じページに公開しています。
まずは回路図(PDF)を開いてみましょう。
つぎのようにPDFファイルが表示されます。
回路図に型名が書かれていない素子は、 部品表をみて確認しましょう。
そして今回参照するのはモータドライブ回路です。 回路図PDFの4~6ページにあります。
回路ブロック図
できあがった回路ブロック図がこちらです。
ブロック図の各要素について説明を加えます。
マイコン
ブロック図の中央にあるのがマイコンです。 マイクロチップ社のdsPIC33EP32MC502を使っています。
公式ページを見ると、このマイコンはモータコントロールに特化していることがわかります。
電源・通信回路ブロック
ブロック図の左上には電源と通信の回路ブロックがあります。
モータドライブ回路はメイン基板に実装されているので、 メイン基板の素子から電源供給され、メイン基板の素子と通信します。
マイコンの電源は3.3Vです。 また、15V電圧(バッテリー電圧)をアナログポートで監視します。 この15Vはモータにも供給されるので、モータ制御のために監視しているようです。
5ピンのピンヘッダはマイコンのソフト書き込み端子に接続されています。 このマイコンはdsPICなので、書き込みに使うのはPICKitでしょう。
エンコーダ・ID設定回路ブロック
ブロック図の左下にあるのがエンコーダとID設定回路ブロックです。
エンコーダ基板はホイールモータの裏側に取り付けられています。
マイコンの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回路ブロックがあります。
LED大事。
ドライブ回路ブロック
ブロック図右側にあるのが本命のドライブ回路ブロックです。 この回路のおかげでモータが回せるのです。
モータドライブ回路を知るためには、どんなモータを回すのかを知らなければなりません。 ロボットに搭載しているモータの情報は3Dモデルに書かれています。
部品構成欄にEC45fl-200189
と書かれているので、これはマクソンのEC 45 Flatブラシレスモータ(以下、EC45flat)だと分かります。
ブラシレスモータを回すので、ドライブ回路ブロックには素子がいっぱい必要なんですね。 MOSFETや電流センサがどう働くのかは回路図解説の記事に書きます。
ホールセンサ回路ブロック
ブロック図の右下にあるのがホールセンサ回路ブロックです。
EC45flatにはホールセンサが内蔵されています。 ホールセンサの信号ラインは電源ピン(ブロック図の11ピン)にプルアップされているので、出力信号は0Vと5Vです。 マイコンには3.3Vの信号を入力したいので、ダイオードを使って電圧を変換しています。
まとめと次回予告
今回はメイン基板のモータドライブ回路ブロック図を作成しました。
次回はエンコーダ基板とボールセンサ基板のブロック図を作成します。