メインコンテンツまでスキップ

技術調査(部品・構成)

Web調査結果(2026-07-18実施)。前提: AI/ML・Jetson/Raspberry Pi不使用、マイコン完結・低コスト。

1. ブラシレスモータ + ESC/ドライバと低速制御性

選択肢比較

構成低速制御性コスト難易度備考
ドローン用ESC (BLHeli系) + センサレス× 極めて悪い高速回転専用設計。低速でデシンク・失速。停止付近の制御は事実上不可
RCカー用センサレスESC始動時コギングあり。逆起電力検出方式のため極低速が苦手
RCカー用センサ付きESC (クローラー用)○〜◎△ 1〜2万円ホールセンサで停止からの滑らかな発進。Hobbywing QuicRun Fusion SE等はFOC駆動
SimpleFOC + ジンバルモータ(2804/5010) + AS5600◎ 数千円中〜高正弦波FOCで停止〜最高速まで滑らか。速度/位置/トルク閉ループ。ESP32/STM32/RP2040で直接駆動可
VESC× 1万円超・大型ミニカーにはオーバースペック
DCブラシ + エンコーダ + PID(比較用)フォールバック先。置き換えの動機を明確にしておく

推奨

  • 本命: SimpleFOC + センサ付き小型BLDC(例: Makerbase 2804/5010 + AS5600磁気エンコーダ)。 マイコン上でFOCが動き「マイコン完結・低コスト」の方針に最適。停止〜極低速までコギングなしの速度閉ループ。
  • 次点: クローラー用FOC一体型ESC(QuicRun Fusion SE等)。実装最速だが1万円級、速度フィードバックは別途。
  • センサレスは原理的に低速が弱いため不採用。「センサ付き(ホール or エンコーダ)」を必須条件とする。

参考: SimpleFOC / ESP SimpleFOC (Espressif公式) / SimpleFOCmini / Makerbase 2804+AS5600 / QuicRun Fusion SE / BLHeli_S低スロットル失速問題

2. マルチマイコン構成の設計パターン

パターン画像処理側制御側通信特徴
A. ESP32-S3 + RP2040/RP2350ESP32-S3(カメラI/F, PSRAM)RP2040(PIOでエンコーダ/PWM得意)UART両方安価。市販品(SenseCAP Indicator)にも同構成の実績。Wi-Fiデバッグ可
B. スマートカメラ + メインMCUPixy2 / HuskyLens / OpenMV / M5 UnitVSTM32/ESP32/RP2040UART/I2C/SPI画像処理を完全オフロード。メインMCUは結果を受けるだけ
C. 高性能MCU 1個Teensy 4.1等性能的には可能だがカメラI/Fと制御の両立が煩雑

マイコン間通信

方式注意点
UART(推奨)最も定石。非同期で互いをブロックしない。共通GND必須、パケット化(ヘッダ+チェックサム)を自作
I2CESP32はスレーブ実装が弱い(クロックストレッチ問題)。ToF用バスと分離必須
SPI高速だが配線増。スレーブ側DMA必須
CAN(ESP32はTWAI内蔵)ノイズ耐性最強だがトランシーバ外付け。2ノード間ではオーバーエンジニアリング気味
  • モータノイズ対策: UART配線は短く・ツイスト・GND太く。
  • 通信断でも制御側が安全に走り続ける(タイムアウトで直近値保持→加点機能停止)設計にする。

参考: ESP32-S3⇔RP2040 UART通信 (Zenn) / ESP-IDF TWAI / Pixy2設計思想

3. マイコンでの簡易画像処理(矢印・LED信号認識)

デバイス方式フレームレート自由度価格帯
Pixy2色ブロブ+ライン検出(専用FW)60fps固定〜1万円
HuskyLens (K210)色/ライン/物体追跡など内蔵7機能11〜30fps〜7千円
OpenMV (H7)MicroPythonで自由記述(blob/テンプレートマッチ)QVGAで数十fps1〜2万円
M5 UnitV (K210)MaixPyでblob/色抽出QVGAで実用fps〜4千円
ESP32-S3カメラボード自作: RGB565色しきい値→blob検出処理込み数〜十数fps高(全自作)2〜3千円
ESP32-CAM(無印)同上だが性能劣る〜7fps〜1500円

LED矢印認識の現実的な手法

  1. 色抽出+ブロブ検出(推奨): 露出を意図的に下げるとLED発光部だけが残り、しきい値処理が安定。 左右判定はブロブ重心のx座標や画素分布の偏りで可能。最軽量で全デバイスで実装可能。
  2. テンプレートマッチ(OpenMV find_template): 距離が既知の場面向け。スケール変化に弱い。
  3. 学習系(HuskyLens物体分類): 最速で動くが照明変化への頑健性は現場調整次第。

推奨: コスト優先なら ESP32-S3で色抽出+blob自作(2〜3千円)。開発期間優先なら HuskyLens / Pixy2。 国内ではマイコンカーラリー カメラクラス(GR-PEACH)がマイコンのみのカメラ走行を確立している好例。

参考: M5 UnitV / HuskyLensレビュー (diyrobocars) / OpenMVライントレース / ESP32-CAMカメラ設定

4. 白線(ゴールライン)検知 — グレーカーペット上

センサ応答速度適性備考
フォトリフレクタ(RPR-220, LBR-127HLD等)◎ μs級1個100円前後。設置高さ数mm〜1cm。2〜3個で十分
ラインセンサーアレイ(Pololu QTR-3A/8A)キャリブレーションAPIが優秀
カラーセンサ(TCS34725)△ 積分2.4ms〜応答遅・設置シビア。生産終了情報あり、新規採用非推奨
カメラ流用高位系に負荷が寄り、制御系自立の方針と相性が悪い

カーペット特有の注意点と定石

  • 毛足の乱反射・距離変動でアナログ値が揺れる → ①低め(5〜10mm)固定 ②複数センサのAND/多数決 ③起動時にカーペット面と白線上でキャリブレーション ④しきい値にヒステリシス ⑤遮光フード。
  • ゴール検知は通過1回検出できればよいので、横一列2〜4個+時間差判定が誤検知に強い。

推奨: フォトリフレクタ2〜4個(またはQTR-3A)+起動時キャリブレーション。

参考: Pololu QTRシリーズ / 秋月 LBR-127HLD / フォトリフレクタの使い方

5. ToFセンサー(VL53系)の仕様と5個同時使用の定石

センサ最大測距FoVレート特徴
VL53L0X〜2m25°高速モード〜50Hz(精度低下)最安・実績最多(現行構成)
VL53L1X〜4m27°(ROIで絞込可)Shortモード20msで50HzROIで実効FoVを制御可能。5個構成の本命
VL53L5CX〜4m63°対角・8×8ゾーン8×8で15Hz、4×4で60Hz1個で深度マップ。壁の傾き推定可能だが高価

複数個使用の定石

  1. I2Cアドレスは全個体0x29固定・不揮発でない → 起動時に全XSHUTをLow → 1個ずつ起こして ソフトからアドレス変更(0x30, 0x32, …)。毎起動時に必須。XSHUT用GPIOが個数分必要。
  2. 代替: I2CマルチプレクサTCA9548A、またはI2Cバス複数系統に分散。
  3. 光学干渉: FoVが重なる至近配置では相互干渉があり得る → 取付角度で重なり回避、 測定タイミングの互い違いトリガ、L1XならROIで受光範囲を絞る。
  4. 5個×50Hzのポーリングは割り込み(INTピン)駆動にすると制御ループを乱さない。I2Cは400kHz。

推奨: VL53L1X×5 + XSHUT個別GPIO + Shortモード50Hz。前方1個だけVL53L5CX(4×4/60Hz)で 壁面の向きを取る拡張はコーナー進入の姿勢推定に有効(コスト増と相談)。

参考: VL53L0X/L1X解説 / VL53L1X 50Hz設定 (ST) / 複数接続 (Qiita) / ESP32+VL53L0X複数接続 (DevelopersIO) / VL53L0X×3の自律走行車 (elchika)

6. IMU + エンコーダのデッドレコニング(スタック検知・自動復帰)

手法精度難度備考
車輪エンコーダのみ△ スリップで破綻カーペットはスリップ大きめ
エンコーダ(距離) + ジャイロ(方位)低〜中定石。方位はジャイロyaw積分。MPU-6050/BMI160で実用
相補フィルタ/Madgwick○+yawは磁気なしではドリフト残る
EKF本用途にはオーバーキル
  • 位置更新は x += d·cos(θ), y += d·sin(θ)。10〜100Hzでマイコン余裕。起動時静止でジャイロバイアス較正。
  • 壁あり周回コースなのでToF壁距離で横方向を随時リセットすれば累積誤差は実質問題にならない。 オドメトリは「どの区間にいるか」の粗い進捗管理・ゾーン制御に使う。

スタック検知・自動復帰の設計

  1. 指令 vs 実測の乖離: 目標速度が出ているのにエンコーダ速度≈0がN ms継続 → スタック判定。 FOC構成なら電流(トルク)上昇も併用可。
  2. 車輪空転型スタック(車輪は回るが進まない)は ToF距離の変化停止で検出。
  3. 復帰シーケンス: 停止 → 少し後退 → スタック直前のジャイロ方位へ旋回補正 → 再前進、を ステートマシンで実装。試行回数上限を設け、失敗時は逆方向へ。

SimpleFOC構成ならAS5600の回転情報がそのままエンコーダになるため、追加コストはIMU(数百円)のみ。

全体推奨構成(まとめ)

  • 駆動: 小型BLDC + AS5600 + SimpleFOC(撤退先: DCブラシ+エンコーダ)。RCシャーシ流用ならQuicRun Fusion SEが次点
  • 頭脳分離: 制御MCU(RP2350/STM32: ToF×5・白線・モータ・IMU)⇔ UART ⇔ 視覚MCU(ESP32-S3自作 or HuskyLens/Pixy2)
  • ToF: VL53L1X×5、XSHUTでアドレス再割当、Shortモード50Hz、割り込み駆動
  • 白線: フォトリフレクタ2〜4個 + 起動時キャリブレーション
  • スタック対策: エンコーダ乖離 + ToF距離停滞で検知 → 後退・旋回・再前進のステートマシン