1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

知能ロボコン2027の準備①

1
Last updated at Posted at 2026-08-16

はじめに

こんにちは,じゃにです.
今回は知能ロボコン2027出場に向けて製作を始めた新回路システムについての記事です.
(最終的なゴールは知ロボ2027としますが,やさロボ2026にも出るかも)
新規で設計,発注,実装した基板について紹介します.
知ロボ2026で使用した回路システムの反省点をもとに構成を見直し,新たに複数の基板を設計・発注・実装しました.本記事では,それらの基板について紹介します.

※この記事はJLCPCBの提供でお送りします.

WARNING
記事内の回路構成や、コードを用いて発生した損害について、筆者は一切の責任を負いません.

↓知ロボ2026に出場した際のブログ記事はこちら

JLCPCBについて

image.png

JLCPCBは,香港に本社を置く基板製造会社です.
100 mm × 100 mm以下の2層基板であれば2ドルから製造できるなど,比較的安価に基板を発注できます.また,基板製造・PCBAだけでなく,JLC3DPやJLCCNC(CNC加工、板金加工)などの機械加工サービスも提供されています.
私も高専時代から基板を何度も発注してきましたが,大学4年生になってから初めてPCBAを発注しました.
基板が届いてから,チップ部品を実装していき自分で基板を完成させる過程も楽しいですが,届いてから基板がすぐ使える状態だとかなり楽で,すぐに基板の試験に入ることができ,最近はかなりお世話になってます.(記事にしてない基板でもPCBAを利用しています)

↓初めてPCBAを発注した時の記事

↓PCBAで使用する部品はこのページから探しています

英語での発注はこちらから!

https://t.co/lAPDEdZeq5

日本語での発注はこちらから!

https://jlcpcb.com/jp/

知ロボ2026の基板について

知ロボ2026のメイン基板は下の画像のようなものでした(実際には3DP製のガワがついてる).  
メインマイコン,電源スイッチング,UI(ディスプレイ,ボタン入力)が一体になっています.  
image.png

  • このユニットが単純にでかい
  • 設定値を変えるたびにソースコードを再コンパイルし、ファームウェア全体をマイコンに書き込み直す必要があったため、ちょっとした調整にも非常に時間がかかっていた(1変更に1分半ほどかかる)
  • メイン制御とディスプレイ描画を同一マイコンで処理していたため,表示が不安定になる場合があった

これらの問題を改善するため,知ロボ2027では以下の方針で回路システムを再設計しました.

  • メインマイコン部と電源スイッチング部を分離してスタッキングすることで投影面積を小さく
  • プログラムを全部書き込むのではなくてパラメータのみを変更できる仕組み
  • ディスプレイ,ボタン入力は専用基板に

メイン基板&電源基板

【基板外観】

①メイン基板
image.png
②電源基板
image.png
③合体
image.png
image.png

メイン基板と電源基板はピンヘッダを用いてスタッキングします.  
知ロボ2026の会場で見せていただいたずしさん@zc_ozzの基板をリスペクトしています.

ずしさんの基板は40×50mmのサイズとのことですが,私の基板は72×47mmと少し大きいです.  
なんでこんな中途半端な値かというと,秋月のユニバーサル基板Cタイプと同じ寸法にしているからです. 

秋月のユニバーサル基板と寸法を揃えてる理由はあんまりないですが,共通規格化とかしやすいかなって思ってるので,高専時代からこうしてます.

【メイン基板回路図】

image.png

(回路図を整理する暇がなかったので見づらい感じになっちゃってます...)

機能

  • CANバス × 3
  • UART × 2
  • デバッグプローブ用ポート
  • NeoPixel × 4
  • ユーザーボタン × 4
  • 電源基板との通信

今まで,Raspberry Pi Picoを基板に実装していましたが,今回の基板から直接RP2354Aを実装しています.
マイコンのICを直接載せる基板の設計が初めてだったので,基板設計をするにあたり以下のブログ,ラズパイ財団公式のデザインマニュアル,minimal designなどを参考にしました.

今回の基板で実装しているICはRP2354Aなので,上記リンク内の「RP2350A Minimal KiCAD」を参考に基板設計を進めました.「RP2350A Minimal KiCAD」はフラッシュが外付けされていますが,RP2354Aにはフラッシュが内蔵されているため,今回は外付けフラッシュを省略しています.

また,RP2354Aを実装するにあたりUSB Type-Cコネクタを用いたUSB経由での書き込みも実装しようかと思いましたが,試してみたかったのでデバッグプローブによる書き込みにしました.  
公式のデバッグプローブは高いので,RP2040-Zero(互換品)を用いて自作したものを使います(ブログを書くにあたって調べたら,公式のデバッグプローブもびっくりするほど高いわけじゃなかった). 

↓デバッグプローブ自作はこのブログを参考にしました

【メイン基板基板図】

image.png
image.png
image.png
image.png

配線をする際もラズパイ財団のminimal designをかなり参考というか流用しました.  
↓RP2354A周辺回路
image.png

minimal designのIC裏のベタとかは特徴的なのでTwitterで画像が流れてきたらRP2040系マイコンだってわかるようになりました.

動作には問題ないですが,なぜか電源のインジケータLEDを付け忘れたのでチョット不便です.

【電源基板回路図】

image.png

機能

  • 駆動電源スイッチング
  • 非常停止スイッチ

電源のスイッチング部は以前の記事の電源スイッチング回路と同様のものです.
image.png
(使ってるMOSFETが500円くらいするからもう少し安く作れるようにしたい...)
J1のコネクタに非常停止スイッチを接続します.1,2番ピンに駆動電源が行くようにしているのは照光タイプの非常停止スイッチに対応するためです.

スライドスイッチSW1,非常停止スイッチ,マイコンからの制御ピン「EM_FLAG」の状態による駆動電源出力の違いは下の表の通りです.
非常停止スイッチだけでなく,「EM_FLAG」によってマイコン側から駆動電源の出力を制御することができます.

SW1 非常停止スイッチ EM_FLAG 駆動電源出力
上 - - 無条件にON
下 解除 HIGH ON
下 解除 LOW OFF
下 押下 - EM_FLAGによらずOFF

駆動電源の状態をマイコンで見るための回路です.
image.png
駆動電源を分圧してマイコンのピン「DP_FLAG」で読みます.
左側の回路は「EM_FLAG」がHIGHのとき,つまりマイコン側から駆動電源のONを許可しているときに点灯するLEDです.

【電源回路基板図】

image.png
image.png
image.png
image.png

パラメータ変更基板

【基板外観】

①中身の基板
image.png

②ケース付きの基板
image.png

知ロボ2027に向けた回路の最大のアップデートがこのパラメータ変更基板です.
知ロボ2026では射出機構などのパラメータを変更する際にメインマイコンのコードをすべて書き込みなおす必要があり,その作業に1分半ほどかかるため大きなロスになっていました.  
そこで,知ロボ2027ではパラメータ変更に時間がかからないようにパラメータ変更基板を別途用意し,その基板がメインマイコンに対してCANでパラメータを配信する形にします.

【回路図】

image.png

機能

  • CANバス × 1
  • NeoPixel × 1
  • ユーザーLED × 1

理想ダイオードを用いた電源ORingの回路です.
image.png

メインの基板側とのCAN通信のケーブルから供給される5VとUSBのVBUSのORingをしています.
メインの回路と接続中にPCやスマホとUSB-Cケーブルで接続して,そこから5Vが供給されても問題ないようにORingしてます.

基板上のUSB Type-CコネクタはESP32-S3のGPIO19/20(USB D-/D+)に接続しており,プログラムの書き込みと,PC・スマホとのUSB通信の両方に使用できるようにしています.
image.png

【基板図】

image.png
image.png
image.png
image.png

【3Dビューワ】

image.png
image.png
普通にベタGNDにしないだけでよさそうですが一応アンテナの下の基板をくりぬいています.

UIによるパラメータ変更

この動画を見てもらうのがわかりやすいと思います.

この動画ではiPhoneを接続してパラメータ変更のデモとして基板上のNeoPixelの色を変更しています.  
(動画ではなぜか反映が遅いが普段はサクサク)

PCとESP32をUSB-Cで接続すると,ESP32はUSB Ethernetデバイスとして認識されます.ブラウザから決められたアドレスにアクセスすると,ESP32上で動作しているWeb UIを開くことができます.
UIで選択したパラメータは,ESP32からCAN通信でメイン基板へ送信されます.メイン基板は受け取った内容を自分自身,またはCANで接続された子基板へ反映します.  
ESP32側ではESP-IDFを使い,Webサーバ,USB Ethernet,CAN通信,フラッシュ保存を実装しています.

パラメータの反映方法は2種類用意しています.
1つ目は「一時適用」です.受信したパラメータをRAM上に保持して動作に反映します.電源を切ると設定値は失われますが,動作確認や調整中など,頻繁に値を変更する場合に使用します.
2つ目は「保存して適用」です.受信したパラメータを動作に反映するとともに,Flashにも保存します.そのため,電源を切っても設定値が保持され,次回起動時にも同じ値を使用できます.

また,ESP32側にもFlashを利用したプリセット機能を実装しています.メインロジック基板側のFlashは現在使用している設定値を保持するためのものですが,ESP32側では複数のパラメータセットをプリセットとして保存できます.これにより,「試走1回目」「試合本番用」のように,あらかじめ保存した設定をまとめて呼び出して各基板へ送信できます.  

ESP32自体がWeb UIをホストしているため,PCやスマートフォン側に専用アプリをインストールする必要はありません.また,UIを利用するためにインターネットへ接続する必要もなく,ロボット単体の閉じたネットワーク内で使用できます.そのため,大会会場などインターネット接続が利用できない環境でもパラメータ調整が可能です.

まとめ

今回は知ロボ2027に向けた基板発注第一弾として,メイン基板,電源基板,パラメータ変更基板を製作しました.特にパラメータ変更基板によって,これまで時間のかかっていたパラメータ調整をWeb UIから行えるようになりました.

実際に動かしてみると修正したい点もいくつか見つかったので,次回以降は今回の基板の修正版や,UI・ディスプレイ基板などを製作する予定です.

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?