大会後に書いたTDPでは、基本的な回路構成や仕様などについて記載していますが、設計意図や経緯などについて掘り下げておきたいと思い、この記事を書くことにしました。
TDPはこちらから。
全体の設計思想
Orionは当チーム(ibis)における第3世代機です。
前世代機体のcrow同様に、
・基板の分散配置による低背化
・余裕を持ったスペック
といった基本思想に基づいて設計しています。
また、crowの開発や運用を経て、
・低コスト化
・量産性の向上
・デバッグ性・メンテナンス性の向上
・安定性の向上
といった、より実用性を意識した設計がされています。
これらの項目の殆どが、設計の単純化により達成されています。
全体設計
ロボットには4つの駆動輪(オムニホイール)、ドリブラー、ドリブラー上下動作用サーボモーター、ソレノイドが2種搭載されています。センサーはモーター制御用の磁気エンコーダー、ボール検出センサー、マウスセンサー、USBカメラと、少なめです。(SSL機体としては多いですが)
Orionの回路の全体像はこのようになっています(TDP向けに書いた図)
図の細かさが違いますが、前世代のcrowに比べると、かなり単純になっています。
前世代機から大きく変わった点としては、
・モータードライバが1基板2ドライバになり、枚数半減
・メイン基板+SBC+通信基板+WiFi子機から、メイン基板+CM4に単純化
・キッカーが1ソレノイドのサーボによるチップ/ストレート切り替えから、普通の2ソレノイド構成に
といったところです。
また、ハードウェア的には、モーターがダイレクトドライブ化したり、バッテリー容量が1300mAh→1700mAhに増加、3Dプリント部品の割合が大幅に増加したりと、後継機体ではありますが、設計的な連続性は殆どありません。ソフト的にも全部違うので、共通点はオムニのサイドホイールぐらいです。これもPTFE軸受化しているので、完全に同じではないですが・・・。
前世代機体からの変更点
立体基板の廃止
こういうやつ。
設計も製造も辛すぎるのでやめた。
本当に辛いので、こういうことやる場合は一品モノの時だけにしよう!
マイコンの変更 STM32 F103 → F303
半導体不足による入手性の問題、性能、コストの都合で変更しました。
F303のほうが上位ラインなので高価なのでは?と思われるかもしれませんが、設計当時は半導体不足の影響下にあり、需要の大きいF103が高価でした。
今は順当にF103のほうが数割安価なようです。それでも価格差は小さいので、今新しくマイコンを選定するならF103はあまりお勧めできないですが。
また、F1シリーズはFPU非搭載なので、浮動小数点演算の時間的コストが高く、パフォーマンスチューニングの第一候補に浮動小数点演算の排除が入ってきます。流石に趣味開発でこんなことやりたくないので、Coretex-M4 + FPU搭載のF3シリーズを選んだという面もあります。
ゲートドライバの変更 DRV8305 → FD6288Q
以前は高機能なTI製のDRV8305を使用していましたが、入手難や、低コスト化のために、ゲート駆動機能しか持たない単純なものに変更しました。
また、DRV8305は旧製品のため、ディスコンが近く、使い続けることはできませんでした。一応、TIの後継品としてDRV8323も評価していたのですが、コストの問題と、ここまでの機能は不要であることから不採用になりました。
新規に採用したFD6288は、中国製のドローン用ESC等に採用されている6ch(3相)ゲートドライバです。互換品が多く出回っており、安価で入手性が高いため採用しました。
モータードライバを2回路1基板化
これはコストや量産性の都合での変更です。
1ドライバ1基板の場合に比べて、電源コネクタの数や、ハーネスを大きく減らすことができます。あと、パワー系コネクタが専有する体積がわりとバカにならないという面もあったりはします。
また、2モーターを1マイコンで制御とすることで、マイコンやCANトランシーバーの数も半減させました。
ドライブ基板の基板発注(PCBA込)は1枚15$程度のため、かなり安いのではないかと思います。
磁気エンコーダICの変更 AK7452 → MA702 / MA732 / AS5047P
変更先が複数あるのは、新世代機になってからも変更が入っているからです。
エンコーダ基板(AS5047P搭載)
当初採用していたAK7452は、旭化成の14bit磁気エンコーダーです。2020年に半導体工場が火災で停止した影響か、ディスコンになり変更を余儀なくされました。
高価(1000円+)、SPIコマンドが長い(3byte)ため読み出しが遅いというデメリットはあったのですが、14bit出力の最下位bitがまったく振れないという驚異の精度を持っており、できれば使い続けたかったです。
一応、後継のAK7455は出ているのですが・・・一般経路から入手できなさそうなのと、そもそも供給に不安がありすぎるので、旭化成のICはもう採用しないことにしました。
さて、後継のMA702/MA732ですが、これはなにかのBLDCドライバ(忘れた)が採用しており、SPIクロックがかなり高速にできるため採用しました。が、ノイズが多いこと、キッカーを動作させた時にしばらく正常に動作しなくなること、たまに壊れる(これはICと言うよりも使い方や実装に起因する問題と思われる)などの理由で、2024年の米子高専での練習会後に廃止しました。ちなみに、MA702とMA732の違いは帯域フィルタを変えられるかどうかぐらいです。
MA732の後継のAS5047Pは、安価で、LCSCで購入可能なのでPCBA時に追加コストがかからないこと、moteus等が採用しており、実績があること、パッケージがSSOPで実装不良が出にくく、手実装による修理が容易であることから採用しました。今のところ、キッカー動作後の動作停止時間も短く、故障もしていない(そもそもあまり動かしていないが)ので、悪くなさそうです。
PCBAの活用、(JLCPCB & Elecrow)
流石に量産がしんどいのでJLCPCBのPCBAサービスを使用しています。当初の意図としては、実装の手間を省くのが目的だったのですが、LCSCの部品を積極的に使えるので低コスト化が進み、また実装のための予備数を購入する必要性が無くなったので無駄なコストの削減にもなりました。
基本的にはJLCPCBの実装サービスを使用しているのですが、一度だけElecrowのサービスも使用しました。こちらは、MA732のエンコーダ基板の量産に使用しました。
JLCPCBはGlobal Sourcingサービスを使用することで、LCSC以外のディストリビューター(Digikey等)で販売されている部品も使用可能になります。手数料をかなり取られるので極力使いたくないです。
一方、Elecrowの実装サービスは、Elecrow自前のディストリビューターが無いため、Digikey等から部品を買って実装依頼した場合の手数料が多少安く、かつメーカーサイトから直接購入するよう指示することもできます。MA732は、メーカー(mps)から購入すると半額程度になるため、大幅な低コスト化が可能でした。
が、先述の通りMA732を搭載したエンコーダ基板は故障率が高く、またElecrow実装の個体の故障率が非常に高い(壊れた基板がほぼElecrow実装)ため、ちょっと考えものです。あと、Elecrowはレジストがなんか薄いのも気になります。特に低下価格な中華基板屋はムラが大きいのは承知ですが。
実際の設計について
ユニークな点に絞って、いくつか説明していきます。
レイアウト、基板外形
メカ設計と基板レイアウトを一人でやることで圧倒的な設計密度を実現しています。メイン基板は自分の設計じゃないですが、外形データは自分が出しています。
集積密度が高いため、干渉がめちゃくちゃ厳しいです。自分でやっといてなんですが正気じゃないです。メカ設計中にざっくりとした基板外形をDXFで出し、基板設計をして、コネクタ位置を仮置きしてCAD上でモデリングし、その後基板設計とメカ設計をひたすら往復してどうにかします。
ここまでやるなら、KiCADを使わずに、Fusion360に統合されているEagle使ったほうがいいと思います。
電源基板 突入電流対策
電源基板には、バッテリー接続/電源投入時の、パワー系回路の突入電流対策 兼 短絡保護回路が備わっています。
パワー系電源の出力には、電源スイッチとポリスイッチを介したプレ充電経路と、15Aブレードヒューズ、電流検出抵抗とパワースイッチFETを介したパワー放電経路の、2経路があります
バッテリーを接続し、電源スイッチがONになると、ポリスイッチ経由でパワー系に電源が供給されます。
抵抗が数Ωあるポリスイッチ経由でパワー系回路に給電することで、突入電流を抑えつつ電源系のキャパシタを充電します。また、もし短絡状態で故障していたとしても、ポリスイッチが切れることによって、安全に電流を遮断できます。
ポリスイッチは定格電流200mA(手持ちの部品の都合で、100mA品を2並列になっています)で、無負荷でモーターを回すぐらいはできますが、大きな電流は流すことができません。モータードライバはパワー系電源からマイコンの電源を生成しているので、マイコンを起動させて通信チェックを行うために給電している、という面もあります。
プレ充電経路からの給電で、パワー系回路や通信系の正常性が確認できたら、(メイン基板からのコマンドを受けて)電源基板のマイコンはパワースイッチFETをONにします。こちらは大電流を流せるように設計されており、ミニブレードヒューズ(リセット可能なもの)によって連続15A定格となっています。
コネクタ類
CAN系をはじめとした信号系コネクタにはDF13を採用しています。デバッガ接続用コネクタは、いつものZHコネクタです。デバッガの延長コネクタにはDF11を使っています。電源基板とメイン基板の間には、コンパクトで多少電流が流せる2列コネクタとしてPHDを、電源スイッチやサーボにはPHを、ブラシレスモーターにはPico-Lockの2.0mmピッチ品を使っています。
Pico-Lockは3ピンのヘッダ+ハウジング+コンタクトの合計で300円程度と高価ですが、小型・低背かつロックつきで5A程度流せるので、ロボット系にはかなり向いているコネクタと思います。
パワー系は、パッテリー系はXT60とXT30、高電圧系はDF63です。DF63はサイズと許容電流のバランスが良いですが、在庫状況がやや不安定なので、あまりおすすめはできないですね。
DCDCコンバーター
珍しい設計をしているわけではないですが、rohmのBD9G101を使用しています。少部品で、そこそこスイッチング周波数が高い(1.5MHz)ぶんインダクタが小型、入力電圧範囲が6~42Vと広いので重宝します。
学ロボ時代に、rohmの部品提供で採用してから、ずっと使ってますね。
ドリブラー用ESC
ドリブラーに使っているブラシレスモーターを駆動するために、ドローン用のESCを採用しています。使っているのはskystars talon32 slim 40Aというモデルで、AliExpressで1000円程度で購入できます。本来はテレメトリが使えるはずなのですが、使えなかったり不安定だったりでいろいろと怪しいです。コピー品ではないかと疑っています。
ドローンは4ドライバを1基板にまとめる方向に進化しているので、旧来のラジコン系ESCの系譜にある本製品は在庫処分のような扱いで安く入手できるのだと思います。