メイン基板Rev.3解説
2025-05-24
Fornax
今年7月の世界大会へ向け設計したメイン基板Rev.3が届いたので基板の機能の解説をします。
今回の基板のコンセプトとして、「いくつもの機能を集約して、部品点数を減らす」ということが挙げられます。
これは、
という効果を意図したものです。
全国大会に作成した機体では、5枚の基板(メイン基板、電源基板、後ろ基板、タイル基板、LiDAR基板)が複雑に組み合わさった構成になっており、整備に多少手間がかかりました。(もちろんそれでも簡単ではあります)
今回、世界大会へ向けた機体、基板を作成するにあたり、この整備性というポイントを大きく意識しました。
この2点に気を使い、コネクタの配置などを考えながら設計したので、整備性はかなり良くなりました。
2. 通信の安定 について
全国大会の機体では機体の前側と後ろ側で合計4本のケーブルがありました。しかし、この機体は前後でひねる構造を採用しているため、この4本のケーブルは常に外から力を受けながら運用されていることになります。
この要因によって、実際に通信エラーが起きることもありました。さらに、何かバグが起こった時にこの部分を疑わなければならないという労力も増えました。(そして、そうした場合に実際にこれが原因であることはほとんどない)
今回の基板では、そうしたポイントが大幅に改善され、前後でのケーブルは電源線の1本のみとなりました!絶対に通信エラーが起きえない構成なので、かなりいいのではないかと思います。
マイコン間の通信を可能な限り基板内に収め、その配線もノイズ対策に極限まで気を配った構成になっています。具体的には
などです。もともと通信エラーはほとんどありませんでしたが、この改良により通信エラーを疑う必要がなくなるのが大きなポイントです。
この基板の回路系統図は以下
矢印は基板内の通信線。
特に目立つのが、同じ基板内にマイコンが二つあることです。様々なユニットからの情報を集約するメインマイコンと、シリアルサーボ4つを制御するモータ用マイコンの二つがあります。
なぜこの実装をしたかというと、「ソフトウェアが簡潔になる」というメリットがあるからです。勿論、1つのマイコンにしてソフトウェア側でシリアルサーボの制御とその他センサーの記述を分けることは不可能ではありません。しかし、それをしようとすると、それぞれの通信のタイミングまで踏み込んで考える必要があり、どうしてもプログラムが複雑化していきます。プログラムの複雑化はデバッグの難化につながるので、それを避けるためにマイコンをプロセスごとに分けました。
メインマイコンにはSTM32H723ZGを採用しています。主な理由としては、
この3つがあげられます。それぞれ詳しく説明します。
1.性能が高い これはメインマイコンとしてあらゆる制御を行うので必要です。
2.PlatformIOで使える これに関しては、これまでPlatformIOのArduinoフレームワークで開発してきた都合上必要です。
3.PCBAが使える これは、JLCPCBのPCBAのことです。メインマイコンは144pinのLQFPパッケージです。144pinものピンを手動で半田付けするのは大変なので、これも必要です。
ちなみに、このリンクでPCBAに使える部品が検索できます。
IMUにはBNO085を採用しています。以前はBNO055を採用していましたが、ドリフトが一定あるので、LiDARによる角度補正がどれほど通用するかわからない世界大会のために、よりドリフトの少ないBNO085を採用しました。
XIAOのESP32S3を採用しています。世界大会にはほかのチームと協力するSuperTeamという競技があり、そこで必須になるであろうBLEに対応したマイコンを搭載できるようにしています。
距離の測定は基本的にLiDARを使用しますが、さらに制御周期を短くし、壁との距離をうまく調整するために、VL53L0Xを前側に取り付けています。
UnitV AI Cameraを採用しています。全国大会でも使ってて使い勝手が良かったので続投です。
デバッグ用のディスプレイです。全国大会ではマイコンの加減で使用をあきらめましたが、世界大会では使っていきたいです。
バンパーには引き続きロードセルを採用しています。回路的には、オペアンプの差動増幅回路を使っています。ロードセルのSig+とSig-を差動増幅しています。増幅率は2350倍くらい(47kΩ/20Ω)です。
被災者発見のサイン用及びデバッグ用にWS2812Bを搭載しています。左右対称の配置にしたのでかっこいいです。
STM32F446REを使用しています。全国大会からの続投です。処理能力が高いので、高い頻度でオドメトリの取得を行うことができるため採用しています。
モーターにはFEETECH社のSTS3032を使用しています。コアレスサーボなので、動作音がとても静かです。また小さいのにかなりのトルクを出すことができるので、レスキュー競技には最適なサーボモーターだと思います。(それなりに高いのが難点)
このサーボモーターはシリアル通信で制御します。1つのマイコンから複数サーボの制御ができるように、MAX3485を使用したUART-RS485変換回路を作成しています。
今回の基板発注をご支援いただいたスポンサーの紹介をしたいと思います。
JLCPCBさんです。
JLCPCBは中国に工場がある基板製造サービスです。
安価で、発注から到着までの時間が短いというメリットがあります。
基板製造の他にも3DプリントやCNC切削のサービスなども手掛けており、それぞれ安価なのでぜひ利用してみてください!(下のリンクから利用できます)
JLCPCBで基板を注文する方法を説明します。
まず、JLCPCBのサイトにアクセスします。
「お見積り」をクリックします。
「ガーバーファイルを追加」で設計した基板のガーバーを追加します。
設定は基本的に変えなくても問題ありませんが、基板の色や銅箔の厚さなど変更したいことがあれば、それぞれ設定します。
設定が終われば「カートに保存」を押せばOKです!
あとは支払いの設定を行い決済をすれば注文完了です。
通常は注文から1週間程度で届きます。
安く速く基板が製造できるのがJLCPCBの特長だと思うので、みなさんもぜひ利用してみてください!
下のリンクから発注できます。
https://jlcpcb.com/JPV