かわロボ基板の話

f:id:chikuwa3777:20180723235741p:plain

今日はかわロボで使ってる基板の話をしようと思います。

 

最初はモータードライバやモーターの話を書いていきたかったんですが、最初から体系的にまとめるのはモチベ的に持たなさそうなので、一旦時系列で書いてから体系的に組み直す方向でやってみようと考えたわけです。

 

ま、このかわロボ基板の話、モーターとかモータードライバとかあんま関係ないんですけどね。

 

なんやかんやあって(ないけど)、かわロボの基板を作ることになった。

 

直前まで学ロボの電流どばどばの頭悪い基板ばっかり設計していたこともあって、正直380モーターしか使わないかわロボのパワー系の設計はかなりナメてた。銅線貼り付けかなーwやっぱw

 

f:id:chikuwa3777:20180724004937j:plain

脳筋っぷりが凄まじい。

下段左から4つめのFETは過負荷テストで半ば意図的に死んでしまった。

 

使ったゲートドライバはNCP5359、FETはMDD1503で、選定理由としてはひたすら""安いから""

どちらも購入先はRSonlineで、NCP5359は10個で300円、MDD1503は25個で1000円。担当者が価格設定ミスってんじゃないのか不安になるけどまあいいや。

ON Semiconductor デュアル MOSFETドライバ, 10~13.2 V, 8-Pin SOIC | NCP5359DR2G | RS Components

MagnaChip Nチャンネル MOSFET, 30 V, 87 A, 3 ピン パッケージDPAK (TO-252) | MDD1503RH | RS Components

NCP5359はドライバ起動時にローサイドドレインソース間電圧が十分低くないとFault出力をして動作できない。データシートと同じ回路で、パワー系とゲートドライバの電源が同時に投入された場合、ローサイドFETのドレインソース間電圧はドレインソース間寄生容量によって電源電圧の半分まで上昇する。対策として、ローサイドFETと並列に10kΩ程度の抵抗を付け、給電しっぱなしだったゲートドライバ電源をロジック系電源スイッチでまとめてオンオフすることで、並列抵抗でローサイドFETのドレインソース間寄生容量が放電されて十分電圧が低くなってから給電できるようになった。

あとから調べてみると、NCP5359Aという、ローサイドFETの並列抵抗を内蔵したタイプもあった。ONセミコンダクタは最初から気付いていたのか、あとからミスだと気付いて抵抗を内蔵したAつきもラインナップしたのか・・・。

 

最初はゲートにダンパ抵抗を入れていたが、ゲートドライバのエッジ検出回路はそれを想定していないらしく、うまく動作しなかったので0Ωにした。どうやらこれは最近のイケてるゲートドライバでは珍しくないようで、ものによっては外付けダンパ抵抗なしでドライブ電流がプログラマブルになっていることもある。

 

 

メインは学ロボのあまり物のSTM32F103、MPU6050とかI2Cでいい感じに楽したかったのでサブにATmega328P(Arduinoブートローダー入り)を選んだ。マイコン間通信はシリアルだけど今思えばI2Cにしてけばよかった。

 

学ロボでは、回路が原因で負けようものなら東京からの帰り際に線路に飛び込んでしまいそうなので、信頼性には気を使っていたし、本番で使う基板には中華部品は使わないようにしていた。その点かわロボなら負けても負けちゃったなぁで済むのでガンガン中華部品を使っている。それに、中華とはいえ不良率0.1%もあればまともに商売できないはずだし、この程度の規模で、かつ動作チェックもできるのなら問題ないだろうという考えもあった。

 

かわロボでは、通信系はフタバのプロポや受信機を使うように定められているのでS.BUSのプロトコル解析・・・はせずにmbed用らしいS.BUSデコード用ソースコードをインターネットから拾ってきてコピペして動かした。うーん素晴らしい。インターネット最高。

 

これが最初の基板。2017年末の立命杯で使ったもの。

f:id:chikuwa3777:20180724000047p:plain

必要に応じてUSBホストシールド載せたかったのでArduinoNano?Micro?互換ピンヘッダがあるけど、供給電圧ミスってホストシールド壊してしまったので一度も使えなかった上に、配線がメチャクチャキツかった。

SR518っていうシリアルサーボを動かしたかったのでDynamixel準拠のRS485端子も備えている。これも結局使わなかった。あとかわロボで使わなさそうなCAN、SPI(Arduino×2、STM×1)、エンコーダ入力なども備えている。

 

途中でDFPlayer miniというmicroSDカード内の音声ファイルを再生できるモジュールを見つけたので、無理やりArduino側SPI端子に拡張して繋いだ。再生する音声ファイルは箱崎星梨花のカードボイス集とかをYoutubeとかで見つけてきて、SoundEngineで使えそうなものだけ切り抜いて用意した。

モード切替(停止←→ジャイロなし動作←→ジャイロあり動作)時、出力切り替え時、転倒と復帰時、アーム動作などに合わせて喋るようにした。

 

 

全然関係ないけど、ゲームに登場する特定のキャラクターのボイスを何回もイヤホンで聞きながら波形を見つつ音声ファイルに切り出す作業は自他共に認めるオタクくささだった。

 

スピーカーは秋月で売っている8Ω8W、100円のもの。どうやら、背面が密閉されているとモジュール単体でもまともな音声が出せるらしい。

akizukidenshi.com

 

こっちが現在使っている基板。記事トップの図面はこの2枚めのもの。

f:id:chikuwa3777:20180723235747p:plain

レイアウトをすべて見直し、DFPlayerとラジコン受信機をオンボード化、バッテリー電圧を見られないのが地味に不便だったので中華簡易電圧計も乗せた。

この基板の設計が始まった頃、大道芸ロボコンに出ることになったので、ロボット用汎用基板としての特性が強く出てきた。1枚めであったRS485や不必要に多いSPIではなく、CANとI2Cに絞って電源の供給手段に自由度を増やした。

比較的正当進化した基板なのであまり語ることがないのでここいらで終わろうと思う。

 

 

立命杯だと接触不良?で操縦不能になり初戦敗退してしまったけど、のとロボの県内大会では優勝、本戦は2回戦敗退、大道芸は準優勝してその後研究室の宣伝としてあちこちで可動しているので、成功した基板(?)であると思う。

 

 

\マブシイ/

f:id:chikuwa3777:20180724010057j:plain