はじめに
お久しぶりです。ケシゴムです。
最近は就活と研究で忙しすぎて、なかなか趣味に手をつけられていません。
今回は息抜きがてら、以前学生ロボコン用に作った基板について紹介していこうと思います。2年も記事を書けずに申し訳ないです……。
完成から記事にするまで、だいぶ時間が空いてしまいました。設計・製作をしていた頃から数えると約2年です。
「完成したら記事を書くぞ」と思っていたはずなのに、ロボコンの設計・製作やデバッグ、大会、次のロボットに追われていました。気付けばずっとロボコンをやっていた気がします。ということで、記事を書けなかったのはロボコンが悪いことにします。

学生ロボコン2025 ジャンプロボット用基板について


この基板は、学生ロボコン2025のジャンプロボット・RJ用に開発した、ジャンプ機構制御用の基板です。
RJにはジャンプ機構が3つあり、それぞれに専用の制御基板を取り付ける構成でした。そのため基板の外形は単に四角い基板にするのではなく、ジャンプ機構と同じ形状に合わせて設計しています。
ジャンプ機構は動けばよいだけでなく、3つの機構を狙ったタイミングで動かす必要があります。モータドライバとの通信、エンコーダの読み取り、ジャンプ高さを測るセンサ、上位からの司令値を、1枚の基板で扱えるようにしました。
全体の構成
| 種別 | 内容・用途 |
|---|---|
| メインMCU | STM32F405RG:ジャンプ制御など、リアルタイム性が必要な処理 |
| サブMCU | STM32H563RG:通信・インターフェース処理、必要に応じた高負荷演算 |
| CAN | モータドライバ(Odrive / VESC)向けの専用バス |
| 絶縁CAN | メインPCからの司令値受信向け |
| Ethernet | 絶縁CANの帯域が足りない場合に備えた通信経路 |
| SPI | AS5047P磁気エンコーダ2個の読み取り、およびOdrive向けSPI |
| RS485 | 汎用・拡張用の通信ポート |
| IO-Link | ジャンプ高さを測る測距センサ向け ×2 |
| UART | 2つのマイコン間の通信 |
マイコンを2個載せた
メインはSTM32F405RGです。言わずもがなベターな石で、ジャンプ制御のようなリアルタイム処理を担当させます。慣れていること、必要なペリフェラルが揃っていること、実績があることが採用理由です。
サブはSTM32H563RGです。当初はEthernetを使いたいのでH7系も検討していました。ただ、サブ側に必要以上にお金を積むのもな……と思っていたため、部室に在庫があったH563を採用しました。
H563RGは2 MB Flashと680 kB RAMを積んでいます。潤沢~~。
サブ側は通信・インターフェース、メイン側はジャンプ制御を受け持つ構成です。2つのマイコン間はUARTでつなぎます。役割を分ければ、通信をいじったせいで制御周期が乱れる事故を避けやすくなると考えました。
CANは2系統
CANは「Comm用」と「MD用」に分けています。
MD用CANは、OdriveまたはVESCなどのモータドライバ専用です。このバスには他の機器を基本的につながない想定にしています。ジャンプ機構の駆動に関わるバスを独立させることで、ほかの通信の影響を受けにくくする狙いです。
Comm用CANは、メインPCから司令値を受け取るための絶縁CANです。絶縁CANトランシーバにはISO1050DUBRを使う方針にしました。SOP-8なのは少し惜しいですが、安いのでしゃーなしです。
絶縁CAN側の電源はCANバス側から取る構成を考え、絶縁電源も用意しました。
終端抵抗と通信表示
CANの終端抵抗は、スライドスイッチで切り替えられるようにしました。設定状態はLEDでも分かるようにしています。
また、TX/RXの通信表示用LEDも置きました。基板サイズが気になるので、RGB LEDのG/Bを流用する作戦です。フルカラーを使いたいわけではなく、LEDをたくさん置きたい気持ちと基板サイズの折り合いをつけた結果です。
EthernetとRS485
EthernetはLAN8720Aとマグネット内蔵RJ45を使ったRMII構成です。絶縁CANだけで帯域が足りなくなった場合に備えて載せました。大会時に使わなかったとしても、「通信量が足りないから基板を作り直す」を避けられるだけで価値があります。
RS485はSTM32F405から出している汎用・拡張用ポートです。用途を固定しすぎず、必要になったときに使える予備ポートとして置いています。
デュアルエンコーダ
デュアルエンコーダ用にAS5047Pを2個、基板に直接載せました。基板外形や穴間を実際の機構とリンクして設計しているためです。
AS5047PのABI出力は、マイコンへオンボードで配線しています。SPIはOdriveへ直接出せるようにしました。用途に応じて読み出し経路を選べる構成で、コネクタはXAです。
IO-Linkと割り込み線
IO-Linkはジャンプ高さを測る測距センサを読むために2ポート用意しました。最初はMAX14824も検討しましたが、価格があまり変わらなかったため、既存システムで使っていたLTC2874を流用しました。元の4ポート構成から、この基板では2ポート構成にしています。
電源は、IO-Linkを読む必要があるので制御用24 Vから取っています。
大会直前に欲しくなるかもしれないので、INT割り込み線も引き出しました。
ちなみに、この基板を作ったあとに測距センサなどがリストラされたため、作っただけ基板になってしまいました。7軸ロボットアームなどのデバッグで使ってあげて供養しました。
シルクについて
なぜらき☆すたのシルクが入っているのかについてですが、基板設計当時はメンタルが人生イチすさんでいました。一人でずっと設計とか要件定義しかしておらず孤独をとても感じており、辛かったです。そんななか支えとなったのがらき☆すたでした。ふと作業用BGMとして垂れ流ししていましたが、適当に流れているのが逆に心地よくなりだいぶ心が楽になりました。そのため感謝も込めて乗せてあります(参考: http://www.tim.hi-ho.ne.jp/t-inukai/gallery/2007_22.html)
おわりに
学生ロボコン2025のRJ用ジャンプ機構制御基板の紹介でした。
ジャンプ機構が3つあるので、基板も3枚。制御・通信・計測をなるべく一枚で完結できるようにしつつ、Ethernet、RS485、割り込み線は予備ポートとして載せました。
2年越しの記事になってしまいましたが、当時の設計意図を残せてよかったです。次は完成と同時に記事を書きたいと思います。
JLCPCBについて
最後に、この基板の製造・実装でお世話になったJLCPCBさんに感謝します。
今回の基板には、マイコン、通信IC、エンコーダ、コネクタなどを詰め込んでいます。これを手実装だけで仕上げるのはかなり大変です。JLCPCBのPCB製造とPCBAを使えたことで、基板が届いてすぐに動作確認やデバッグへ進めました。
部品についても、PCBAで使える部品を検索しながらBOMを組めるため、設計段階から「実装できるか」「在庫はあるか」を確認しやすかったです。ロボコンでは基板を作った後に待ってくれる時間があまりないので、この速さは本当に助かりました。
基板製造だけでなく、PCBA、3Dプリント、CNC・板金加工なども利用できるので、ロボットを作る人には頼れるサービスだと思います。
改めて、JLCPCBさんありがとうございました!








































































