{
  "schema": "nuedc-hardware-lab-ai-index/v1",
  "generatedAt": "2026-07-25T01:59:08.065Z",
  "purpose": "给 AI 和人类快速读取电赛元器件资料、Hardware Lab、planner、笔记和参考文档的总索引。",
  "site": {
    "name": "NUEDC Hardware Lab / Components Atlas",
    "localHardwareLab": "http://127.0.0.1:8765/hardware-lab.html",
    "localStaticPreview": "http://127.0.0.1:8788/hardware-lab.html?variant=dashboard#",
    "onlineHome": "https://nuedc-components-atlas-public.pages.dev/",
    "onlineHardwareLab": "https://nuedc-components-atlas-public.pages.dev/hardware-lab",
    "onlinePlanner": "https://nuedc-components-atlas-public.pages.dev/planner"
  },
  "aiReadingOrder": [
    "llms.txt",
    "ai-index.json",
    "README.md",
    "docs/component_card_index.md",
    "planner/footprints.json",
    "hardware-lab-prototype/component-media.js",
    "notes/note_001.md"
  ],
  "directories": {
    "notes": "个人笔记、参考文档摘要、调试记录。适合长期沉淀。",
    "componentCards": "每个模块一份 Markdown 卡片，适合接线前查询。",
    "assets": "实物图、电路图、正面引脚图、卡片图。",
    "planner": "洞洞板封装数据和 planner 前端。",
    "hardwareLab": "Hardware Lab 工作台前端与本机后端桥接说明。"
  },
  "conventions": {
    "hardwareBoundary": "线上静态站不能直接访问 USB、串口、文件系统或编译器；真实硬件动作必须走本机后端。",
    "flashSafety": "真实烧录必须有精确 probe UID、fresh artifact 和显式安全确认；不得自动选择多个探针中的第一个。",
    "noteFrontmatter": [
      "title",
      "topic",
      "module",
      "source",
      "status",
      "updated"
    ]
  },
  "documents": [
    {
      "path": "README.md",
      "kind": "document",
      "exists": true,
      "title": "电赛通用元器件资料总览",
      "bytes": 5841,
      "updatedAt": "2026-07-21T10:32:50.030Z"
    },
    {
      "path": "00_总架构与图纸索引.md",
      "kind": "document",
      "exists": true,
      "title": "电赛元器件总架构与图纸索引",
      "bytes": 4428,
      "updatedAt": "2026-07-09T01:54:40.590Z"
    },
    {
      "path": "01_元器件引脚图与接线总表.md",
      "kind": "document",
      "exists": true,
      "title": "元器件引脚图与接线总表",
      "bytes": 15554,
      "updatedAt": "2026-07-09T01:19:54.169Z"
    },
    {
      "path": "02_使用说明书_上电调试流程.md",
      "kind": "document",
      "exists": true,
      "title": "通用使用说明书与上电调试流程",
      "bytes": 6901,
      "updatedAt": "2026-07-09T01:15:44.442Z"
    },
    {
      "path": "03_grill_me_问题树.md",
      "kind": "document",
      "exists": true,
      "title": "Grill Me 问题树",
      "bytes": 5168,
      "updatedAt": "2026-07-09T00:53:24.599Z"
    },
    {
      "path": "04_按题型选择主控与模块.md",
      "kind": "document",
      "exists": true,
      "title": "按题型选择主控与模块",
      "bytes": 2955,
      "updatedAt": "2026-07-09T01:13:44.890Z"
    },
    {
      "path": "05_模块接口级图纸索引.md",
      "kind": "document",
      "exists": true,
      "title": "模块接口级图纸索引",
      "bytes": 3426,
      "updatedAt": "2026-07-09T01:30:51.762Z"
    },
    {
      "path": "docs/component_card_index.md",
      "kind": "document",
      "exists": true,
      "title": "元器件卡片库索引",
      "bytes": 27039,
      "updatedAt": "2026-07-25T00:21:24.403Z"
    },
    {
      "path": "07_模块接口级元器件图鉴.html",
      "kind": "page",
      "exists": true,
      "title": "模块接口级元器件图鉴",
      "bytes": 88235,
      "updatedAt": "2026-07-25T00:21:24.406Z"
    },
    {
      "path": "08_2026视觉导航定点小车采购与验收清单.md",
      "kind": "document",
      "exists": true,
      "title": "2026 视觉导航与定点任务小车采购与验收清单",
      "bytes": 7947,
      "updatedAt": "2026-07-21T16:45:49.909Z"
    },
    {
      "path": "09_2026清单发布后控制题采购修正版.md",
      "kind": "document",
      "exists": true,
      "title": "2026 清单发布后控制题采购修正版",
      "bytes": 5984,
      "updatedAt": "2026-07-22T04:31:26.362Z"
    },
    {
      "path": "10_Hardware_Lab本机后端说明.md",
      "kind": "document",
      "exists": true,
      "title": "Hardware Lab 本机后端说明",
      "bytes": 4438,
      "updatedAt": "2026-07-24T08:45:05.911Z"
    },
    {
      "path": "planner.html",
      "kind": "page",
      "exists": true,
      "title": "电赛模块封装规划器",
      "bytes": 4401,
      "updatedAt": "2026-07-24T17:18:04.793Z"
    },
    {
      "path": "hardware-lab.html",
      "kind": "page",
      "exists": true,
      "title": "NUEDC Hardware Lab",
      "bytes": 4397,
      "updatedAt": "2026-07-25T01:58:42.301Z"
    },
    {
      "path": "hardware-lab.html",
      "kind": "page",
      "exists": true,
      "title": "NUEDC Hardware Lab",
      "bytes": 4397,
      "updatedAt": "2026-07-25T01:58:42.300Z"
    },
    {
      "path": "notes/note_001.md",
      "kind": "note",
      "exists": true,
      "title": "AI 笔记索引",
      "bytes": 253,
      "updatedAt": "2026-07-25T00:21:17.899Z"
    },
    {
      "path": "notes/note_002.md",
      "kind": "note",
      "exists": true,
      "title": "Hardware Lab 笔记区",
      "bytes": 516,
      "updatedAt": "2026-07-25T00:21:17.898Z"
    },
    {
      "path": "cards/card_doc_001.md",
      "kind": "component-card",
      "exists": true,
      "title": "STM32F103C8T6 Blue Pill 主控板",
      "bytes": 1620,
      "updatedAt": "2026-07-25T00:21:24.319Z"
    },
    {
      "path": "cards/card_doc_002.md",
      "kind": "component-card",
      "exists": true,
      "title": "立创天猛星 MSPM0G3507 M0 主控板",
      "bytes": 2384,
      "updatedAt": "2026-07-25T00:21:24.322Z"
    },
    {
      "path": "cards/card_doc_003.md",
      "kind": "component-card",
      "exists": true,
      "title": "TB6612FNG 双路直流电机驱动",
      "bytes": 1623,
      "updatedAt": "2026-07-25T00:21:24.344Z"
    },
    {
      "path": "cards/card_doc_004.md",
      "kind": "component-card",
      "exists": true,
      "title": "立创天空星 STM32F407 主控板",
      "bytes": 2573,
      "updatedAt": "2026-07-25T00:21:24.339Z"
    },
    {
      "path": "cards/card_doc_005.md",
      "kind": "component-card",
      "exists": true,
      "title": "MG310 GMR 编码器电机",
      "bytes": 1601,
      "updatedAt": "2026-07-25T00:21:24.346Z"
    },
    {
      "path": "cards/card_doc_006.md",
      "kind": "component-card",
      "exists": true,
      "title": "MG513X / MG513XL 霍尔编码器直流减速电机",
      "bytes": 2559,
      "updatedAt": "2026-07-25T00:21:24.349Z"
    },
    {
      "path": "cards/card_doc_007.md",
      "kind": "component-card",
      "exists": true,
      "title": "AT8236 双路编码器直流电机驱动",
      "bytes": 2694,
      "updatedAt": "2026-07-25T00:21:24.353Z"
    },
    {
      "path": "cards/card_doc_008.md",
      "kind": "component-card",
      "exists": true,
      "title": "MaixCAM Pro / K230 / OpenMV 视觉模块",
      "bytes": 1732,
      "updatedAt": "2026-07-25T00:21:24.358Z"
    },
    {
      "path": "cards/card_doc_009.md",
      "kind": "component-card",
      "exists": true,
      "title": "JY61P UART 姿态模块",
      "bytes": 1581,
      "updatedAt": "2026-07-25T00:21:24.360Z"
    },
    {
      "path": "cards/card_doc_010.md",
      "kind": "component-card",
      "exists": true,
      "title": "MPU6050 I2C 姿态模块",
      "bytes": 1792,
      "updatedAt": "2026-07-25T00:21:24.362Z"
    },
    {
      "path": "cards/card_doc_011.md",
      "kind": "component-card",
      "exists": true,
      "title": "BNO085 / BNO08X 九轴融合姿态模块",
      "bytes": 1953,
      "updatedAt": "2026-07-25T00:21:24.365Z"
    },
    {
      "path": "cards/card_doc_012.md",
      "kind": "component-card",
      "exists": true,
      "title": "ICM42688 / ICM-42688-P 六轴 IMU",
      "bytes": 1773,
      "updatedAt": "2026-07-25T00:21:24.371Z"
    },
    {
      "path": "cards/card_doc_013.md",
      "kind": "component-card",
      "exists": true,
      "title": "0.96 OLED / SSD1306 显示模块",
      "bytes": 1120,
      "updatedAt": "2026-07-25T00:21:24.373Z"
    },
    {
      "path": "cards/card_doc_014.md",
      "kind": "component-card",
      "exists": true,
      "title": "灰度巡迹模块",
      "bytes": 1220,
      "updatedAt": "2026-07-25T00:21:24.393Z"
    },
    {
      "path": "cards/card_doc_015.md",
      "kind": "component-card",
      "exists": true,
      "title": "激光驱动板",
      "bytes": 1116,
      "updatedAt": "2026-07-25T00:21:24.395Z"
    },
    {
      "path": "cards/card_doc_016.md",
      "kind": "component-card",
      "exists": true,
      "title": "张大头/ZDT 闭环步进驱动",
      "bytes": 1565,
      "updatedAt": "2026-07-25T00:21:24.397Z"
    },
    {
      "path": "cards/card_doc_017.md",
      "kind": "component-card",
      "exists": true,
      "title": "元器件卡片库",
      "bytes": 5327,
      "updatedAt": "2026-07-25T00:21:24.398Z"
    }
  ],
  "modules": [
    {
      "id": "stm32f103-bluepill",
      "title": "STM32F103C8T6 Blue Pill 主控板",
      "category": "主控",
      "status": "ready",
      "footprint": {
        "pitchMm": 2.54,
        "body": {
          "w": 7,
          "h": 22
        },
        "pinCount": 40,
        "pinTypes": {
          "power": 4,
          "signal": 33,
          "ground": 3
        },
        "pins": [
          {
            "id": "l01",
            "name": "VBAT",
            "x": 0,
            "y": 1,
            "type": "power"
          },
          {
            "id": "l02",
            "name": "PC13",
            "x": 0,
            "y": 2,
            "type": "signal"
          },
          {
            "id": "l03",
            "name": "PC14",
            "x": 0,
            "y": 3,
            "type": "signal"
          },
          {
            "id": "l04",
            "name": "PC15",
            "x": 0,
            "y": 4,
            "type": "signal"
          },
          {
            "id": "l05",
            "name": "PA0",
            "x": 0,
            "y": 5,
            "type": "signal"
          },
          {
            "id": "l06",
            "name": "PA1",
            "x": 0,
            "y": 6,
            "type": "signal"
          },
          {
            "id": "l07",
            "name": "PA2",
            "x": 0,
            "y": 7,
            "type": "signal"
          },
          {
            "id": "l08",
            "name": "PA3",
            "x": 0,
            "y": 8,
            "type": "signal"
          },
          {
            "id": "l09",
            "name": "PA4",
            "x": 0,
            "y": 9,
            "type": "signal"
          },
          {
            "id": "l10",
            "name": "PA5",
            "x": 0,
            "y": 10,
            "type": "signal"
          },
          {
            "id": "l11",
            "name": "PA6",
            "x": 0,
            "y": 11,
            "type": "signal"
          },
          {
            "id": "l12",
            "name": "PA7",
            "x": 0,
            "y": 12,
            "type": "signal"
          },
          {
            "id": "l13",
            "name": "PB0",
            "x": 0,
            "y": 13,
            "type": "signal"
          },
          {
            "id": "l14",
            "name": "PB1",
            "x": 0,
            "y": 14,
            "type": "signal"
          },
          {
            "id": "l15",
            "name": "PB10",
            "x": 0,
            "y": 15,
            "type": "signal"
          },
          {
            "id": "l16",
            "name": "PB11",
            "x": 0,
            "y": 16,
            "type": "signal"
          },
          {
            "id": "l17",
            "name": "RST",
            "x": 0,
            "y": 17,
            "type": "signal"
          },
          {
            "id": "l18",
            "name": "3V3",
            "x": 0,
            "y": 18,
            "type": "power"
          },
          {
            "id": "l19",
            "name": "GND",
            "x": 0,
            "y": 19,
            "type": "ground"
          },
          {
            "id": "l20",
            "name": "GND",
            "x": 0,
            "y": 20,
            "type": "ground"
          },
          {
            "id": "r01",
            "name": "3V3",
            "x": 6,
            "y": 1,
            "type": "power"
          },
          {
            "id": "r02",
            "name": "GND",
            "x": 6,
            "y": 2,
            "type": "ground"
          },
          {
            "id": "r03",
            "name": "5V",
            "x": 6,
            "y": 3,
            "type": "power"
          },
          {
            "id": "r04",
            "name": "PB9",
            "x": 6,
            "y": 4,
            "type": "signal"
          },
          {
            "id": "r05",
            "name": "PB8",
            "x": 6,
            "y": 5,
            "type": "signal"
          },
          {
            "id": "r06",
            "name": "PB7",
            "x": 6,
            "y": 6,
            "type": "signal"
          },
          {
            "id": "r07",
            "name": "PB6",
            "x": 6,
            "y": 7,
            "type": "signal"
          },
          {
            "id": "r08",
            "name": "PB5",
            "x": 6,
            "y": 8,
            "type": "signal"
          },
          {
            "id": "r09",
            "name": "PB4",
            "x": 6,
            "y": 9,
            "type": "signal"
          },
          {
            "id": "r10",
            "name": "PB3",
            "x": 6,
            "y": 10,
            "type": "signal"
          },
          {
            "id": "r11",
            "name": "PA15",
            "x": 6,
            "y": 11,
            "type": "signal"
          },
          {
            "id": "r12",
            "name": "PA12",
            "x": 6,
            "y": 12,
            "type": "signal"
          },
          {
            "id": "r13",
            "name": "PA11",
            "x": 6,
            "y": 13,
            "type": "signal"
          },
          {
            "id": "r14",
            "name": "PA10",
            "x": 6,
            "y": 14,
            "type": "signal"
          },
          {
            "id": "r15",
            "name": "PA9",
            "x": 6,
            "y": 15,
            "type": "signal"
          },
          {
            "id": "r16",
            "name": "PA8",
            "x": 6,
            "y": 16,
            "type": "signal"
          },
          {
            "id": "r17",
            "name": "PB15",
            "x": 6,
            "y": 17,
            "type": "signal"
          },
          {
            "id": "r18",
            "name": "PB14",
            "x": 6,
            "y": 18,
            "type": "signal"
          },
          {
            "id": "r19",
            "name": "PB13",
            "x": 6,
            "y": 19,
            "type": "signal"
          },
          {
            "id": "r20",
            "name": "PB12",
            "x": 6,
            "y": 20,
            "type": "signal"
          }
        ]
      },
      "media": {
        "photo": "assets/photo/photo_020.jpg",
        "cardPng": "assets/card_png/card_001.png",
        "cardSvg": "assets/card_svg/card_svg_001.svg",
        "pinMap": "assets/pin_map/pin_map_001.svg",
        "markdown": "cards/card_doc_001.md",
        "extraImages": [
          {
            "src": "assets/pin_map/pin_map_001.svg",
            "caption": "00 STM32F103C8T6 BluePill主控板 正面引脚图"
          },
          {
            "src": "assets/circuit/circuit_027.svg",
            "caption": "STM32F103C8T6 接口速查"
          }
        ]
      },
      "usageNotes": [
        "F103 IO 是 3.3V 逻辑",
        "PA13/PA14 留给 SWD",
        "CANH/CANL 不能直连 PA11/PA12",
        "电机/激光/步进独立供电",
        "按题目决定它是主控还是辅助板"
      ],
      "sources": [
        "https://stm32-base.org/boards/STM32F103C8T6-Blue-Pill.html",
        "https://stm32-base.org/assets/img/boards/STM32F103C8T6_Blue_Pill-2.jpg",
        "https://stm32-base.org/assets/pdf/boards/original-schematic-STM32F103C8T6-Blue_Pill.pdf",
        "本地 F103 云台工程：gimbal_stm32f103c8t6/STM32_GIMBAL_WIRING.md"
      ],
      "links": []
    },
    {
      "id": "lckfb-tmx-mspm0g3507",
      "title": "立创天猛星 MSPM0G3507 M0 主控板",
      "category": "主控",
      "status": "ready",
      "footprint": {
        "pitchMm": 2.54,
        "body": {
          "w": 22,
          "h": 14
        },
        "pinCount": 80,
        "pinTypes": {
          "ground": 14,
          "signal": 58,
          "power": 8
        },
        "pins": [
          {
            "id": "p1a01",
            "name": "GND",
            "x": 1,
            "y": 1,
            "type": "ground"
          },
          {
            "id": "p1b01",
            "name": "GND",
            "x": 1,
            "y": 2,
            "type": "ground"
          },
          {
            "id": "p1a02",
            "name": "A26",
            "x": 2,
            "y": 1,
            "type": "signal"
          },
          {
            "id": "p1b02",
            "name": "A27",
            "x": 2,
            "y": 2,
            "type": "signal"
          },
          {
            "id": "p1a03",
            "name": "A24",
            "x": 3,
            "y": 1,
            "type": "signal"
          },
          {
            "id": "p1b03",
            "name": "A25",
            "x": 3,
            "y": 2,
            "type": "signal"
          },
          {
            "id": "p1a04",
            "name": "B24",
            "x": 4,
            "y": 1,
            "type": "signal"
          },
          {
            "id": "p1b04",
            "name": "B25",
            "x": 4,
            "y": 2,
            "type": "signal"
          },
          {
            "id": "p1a05",
            "name": "A22",
            "x": 5,
            "y": 1,
            "type": "signal"
          },
          {
            "id": "p1b05",
            "name": "B20",
            "x": 5,
            "y": 2,
            "type": "signal"
          },
          {
            "id": "p1a06",
            "name": "A15",
            "x": 6,
            "y": 1,
            "type": "signal"
          },
          {
            "id": "p1b06",
            "name": "A14",
            "x": 6,
            "y": 2,
            "type": "signal"
          },
          {
            "id": "p1a07",
            "name": "A17",
            "x": 7,
            "y": 1,
            "type": "signal"
          },
          {
            "id": "p1b07",
            "name": "A16",
            "x": 7,
            "y": 2,
            "type": "signal"
          },
          {
            "id": "p1a08",
            "name": "B18",
            "x": 8,
            "y": 1,
            "type": "signal"
          },
          {
            "id": "p1b08",
            "name": "B17",
            "x": 8,
            "y": 2,
            "type": "signal"
          },
          {
            "id": "p1a09",
            "name": "A21",
            "x": 9,
            "y": 1,
            "type": "signal"
          },
          {
            "id": "p1b09",
            "name": "B19",
            "x": 9,
            "y": 2,
            "type": "signal"
          },
          {
            "id": "p1a10",
            "name": "A23",
            "x": 10,
            "y": 1,
            "type": "signal"
          },
          {
            "id": "p1b10",
            "name": "A02",
            "x": 10,
            "y": 2,
            "type": "signal"
          },
          {
            "id": "p1a11",
            "name": "3V3",
            "x": 11,
            "y": 1,
            "type": "power"
          },
          {
            "id": "p1b11",
            "name": "GND",
            "x": 11,
            "y": 2,
            "type": "ground"
          },
          {
            "id": "p1a12",
            "name": "5V",
            "x": 12,
            "y": 1,
            "type": "power"
          },
          {
            "id": "p1b12",
            "name": "GND",
            "x": 12,
            "y": 2,
            "type": "ground"
          },
          {
            "id": "p1a13",
            "name": "B22",
            "x": 13,
            "y": 1,
            "type": "signal"
          },
          {
            "id": "p1b13",
            "name": "B21",
            "x": 13,
            "y": 2,
            "type": "signal"
          },
          {
            "id": "p1a14",
            "name": "B01",
            "x": 14,
            "y": 1,
            "type": "signal"
          },
          {
            "id": "p1b14",
            "name": "A30",
            "x": 14,
            "y": 2,
            "type": "signal"
          },
          {
            "id": "p1a15",
            "name": "A07",
            "x": 15,
            "y": 1,
            "type": "signal"
          },
          {
            "id": "p1b15",
            "name": "B00",
            "x": 15,
            "y": 2,
            "type": "signal"
          },
          {
            "id": "p1a16",
            "name": "B14",
            "x": 16,
            "y": 1,
            "type": "signal"
          },
          {
            "id": "p1b16",
            "name": "B10",
            "x": 16,
            "y": 2,
            "type": "signal"
          },
          {
            "id": "p1a17",
            "name": "A18",
            "x": 17,
            "y": 1,
            "type": "signal"
          },
          {
            "id": "p1b17",
            "name": "B11",
            "x": 17,
            "y": 2,
            "type": "signal"
          },
          {
            "id": "p1a18",
            "name": "3V3",
            "x": 18,
            "y": 1,
            "type": "power"
          },
          {
            "id": "p1b18",
            "name": "RST",
            "x": 18,
            "y": 2,
            "type": "signal"
          },
          {
            "id": "p1a19",
            "name": "5V",
            "x": 19,
            "y": 1,
            "type": "power"
          },
          {
            "id": "p1b19",
            "name": "GND",
            "x": 19,
            "y": 2,
            "type": "ground"
          },
          {
            "id": "p1a20",
            "name": "GND",
            "x": 20,
            "y": 1,
            "type": "ground"
          },
          {
            "id": "p1b20",
            "name": "GND",
            "x": 20,
            "y": 2,
            "type": "ground"
          },
          {
            "id": "p2a01",
            "name": "GND",
            "x": 1,
            "y": 11,
            "type": "ground"
          },
          {
            "id": "p2b01",
            "name": "GND",
            "x": 1,
            "y": 12,
            "type": "ground"
          },
          {
            "id": "p2a02",
            "name": "A28",
            "x": 2,
            "y": 11,
            "type": "signal"
          },
          {
            "id": "p2b02",
            "name": "A00",
            "x": 2,
            "y": 12,
            "type": "signal"
          },
          {
            "id": "p2a03",
            "name": "A31",
            "x": 3,
            "y": 11,
            "type": "signal"
          },
          {
            "id": "p2b03",
            "name": "A01",
            "x": 3,
            "y": 12,
            "type": "signal"
          },
          {
            "id": "p2a04",
            "name": "B04",
            "x": 4,
            "y": 11,
            "type": "signal"
          },
          {
            "id": "p2b04",
            "name": "A08",
            "x": 4,
            "y": 12,
            "type": "signal"
          },
          {
            "id": "p2a05",
            "name": "B05",
            "x": 5,
            "y": 11,
            "type": "signal"
          },
          {
            "id": "p2b05",
            "name": "A09",
            "x": 5,
            "y": 12,
            "type": "signal"
          },
          {
            "id": "p2a06",
            "name": "A10",
            "x": 6,
            "y": 11,
            "type": "signal"
          },
          {
            "id": "p2b06",
            "name": "B15",
            "x": 6,
            "y": 12,
            "type": "signal"
          },
          {
            "id": "p2a07",
            "name": "A11",
            "x": 7,
            "y": 11,
            "type": "signal"
          },
          {
            "id": "p2b07",
            "name": "B16",
            "x": 7,
            "y": 12,
            "type": "signal"
          },
          {
            "id": "p2a08",
            "name": "B12",
            "x": 8,
            "y": 11,
            "type": "signal"
          },
          {
            "id": "p2b08",
            "name": "B02",
            "x": 8,
            "y": 12,
            "type": "signal"
          },
          {
            "id": "p2a09",
            "name": "B13",
            "x": 9,
            "y": 11,
            "type": "signal"
          },
          {
            "id": "p2b09",
            "name": "B03",
            "x": 9,
            "y": 12,
            "type": "signal"
          },
          {
            "id": "p2a10",
            "name": "CLK",
            "x": 10,
            "y": 11,
            "type": "signal"
          },
          {
            "id": "p2b10",
            "name": "DIO",
            "x": 10,
            "y": 12,
            "type": "signal"
          },
          {
            "id": "p2a11",
            "name": "3V3",
            "x": 11,
            "y": 11,
            "type": "power"
          },
          {
            "id": "p2b11",
            "name": "GND",
            "x": 11,
            "y": 12,
            "type": "ground"
          },
          {
            "id": "p2a12",
            "name": "5V",
            "x": 12,
            "y": 11,
            "type": "power"
          },
          {
            "id": "p2b12",
            "name": "GND",
            "x": 12,
            "y": 12,
            "type": "ground"
          },
          {
            "id": "p2a13",
            "name": "B07",
            "x": 13,
            "y": 11,
            "type": "signal"
          },
          {
            "id": "p2b13",
            "name": "B06",
            "x": 13,
            "y": 12,
            "type": "signal"
          },
          {
            "id": "p2a14",
            "name": "B09",
            "x": 14,
            "y": 11,
            "type": "signal"
          },
          {
            "id": "p2b14",
            "name": "B08",
            "x": 14,
            "y": 12,
            "type": "signal"
          },
          {
            "id": "p2a15",
            "name": "A13",
            "x": 15,
            "y": 11,
            "type": "signal"
          },
          {
            "id": "p2b15",
            "name": "A12",
            "x": 15,
            "y": 12,
            "type": "signal"
          },
          {
            "id": "p2a16",
            "name": "B26",
            "x": 16,
            "y": 11,
            "type": "signal"
          },
          {
            "id": "p2b16",
            "name": "B23",
            "x": 16,
            "y": 12,
            "type": "signal"
          },
          {
            "id": "p2a17",
            "name": "A29",
            "x": 17,
            "y": 11,
            "type": "signal"
          },
          {
            "id": "p2b17",
            "name": "B27",
            "x": 17,
            "y": 12,
            "type": "signal"
          },
          {
            "id": "p2a18",
            "name": "CHIP",
            "x": 18,
            "y": 11,
            "type": "signal"
          },
          {
            "id": "p2b18",
            "name": "AGND",
            "x": 18,
            "y": 12,
            "type": "ground"
          },
          {
            "id": "p2a19",
            "name": "3V3",
            "x": 19,
            "y": 11,
            "type": "power"
          },
          {
            "id": "p2b19",
            "name": "GND",
            "x": 19,
            "y": 12,
            "type": "ground"
          },
          {
            "id": "p2a20",
            "name": "5V",
            "x": 20,
            "y": 11,
            "type": "power"
          },
          {
            "id": "p2b20",
            "name": "GND",
            "x": 20,
            "y": 12,
            "type": "ground"
          }
        ]
      },
      "media": {
        "photo": "assets/photo/photo_010.jpg",
        "cardPng": "assets/card_png/card_002.png",
        "cardSvg": "assets/card_svg/card_svg_002.svg",
        "pinMap": "assets/pin_map/pin_map_002.svg",
        "markdown": "cards/card_doc_002.md",
        "extraImages": [
          {
            "src": "assets/pin_map/pin_map_002.svg",
            "caption": "01 LCKFB TMX MSPM0G3507 天猛星M0主控板 正面引脚图"
          },
          {
            "src": "assets/circuit/circuit_015.png",
            "caption": "LCKFB TMX MSPM0G3507 TianMengXing board resources"
          },
          {
            "src": "assets/circuit/circuit_016.png",
            "caption": "LCKFB TMX MSPM0G3507 TianMengXing MSPM0G3507 pinout"
          }
        ]
      },
      "usageNotes": [
        "IO 按 3.3V 逻辑处理",
        "下载口和 RST 不要随便复用",
        "UART BSL 前确认 TX/RX 和 PA18 状态",
        "电机/步进/激光不要从板上 3V3 取电",
        "同一接口外设多时先做引脚冲突表"
      ],
      "sources": [
        "https://wiki.lckfb.com/zh-hans/tmx-mspm0g3507/",
        "https://wiki.lckfb.com/zh-hans/tmx-mspm0g3507/download-center.html",
        "https://oshwhub.com/li-chuang-kai-fa-ban/li-chuang-tian-meng-xing-mspm0g3507-kai-fa-ban",
        "https://item.szlcsc.com/44440454.html"
      ],
      "links": [
        {
          "label": "天猛星 MSPM0G3507 官方教程",
          "url": "https://wiki.lckfb.com/zh-hans/tmx-mspm0g3507/",
          "note": "先看板载资源、供电、下载和外设分布"
        },
        {
          "label": "天猛星资料下载中心",
          "url": "https://wiki.lckfb.com/zh-hans/tmx-mspm0g3507/download-center.html",
          "note": "原理图、资料包和例程入口"
        },
        {
          "label": "天猛星开源硬件工程",
          "url": "https://oshwhub.com/li-chuang-kai-fa-ban/li-chuang-tian-meng-xing-mspm0g3507-kai-fa-ban",
          "note": "查看 PCB、BOM、封装和原理图工程"
        }
      ]
    },
    {
      "id": "lckfb-tkx-stm32f407",
      "title": "立创天空星 STM32F407 主控板",
      "category": "主控",
      "status": "ready",
      "footprint": {
        "pitchMm": 2.54,
        "body": {
          "w": 14,
          "h": 22
        },
        "pinCount": 40,
        "pinTypes": {
          "signal": 36,
          "ground": 3,
          "power": 1
        },
        "pins": [
          {
            "id": "l01",
            "name": "PA02",
            "x": 0,
            "y": 1,
            "type": "signal"
          },
          {
            "id": "l02",
            "name": "PA00",
            "x": 0,
            "y": 2,
            "type": "signal"
          },
          {
            "id": "l03",
            "name": "PA04",
            "x": 0,
            "y": 3,
            "type": "signal"
          },
          {
            "id": "l04",
            "name": "PA06",
            "x": 0,
            "y": 4,
            "type": "signal"
          },
          {
            "id": "l05",
            "name": "PC04",
            "x": 0,
            "y": 5,
            "type": "signal"
          },
          {
            "id": "l06",
            "name": "PB00",
            "x": 0,
            "y": 6,
            "type": "signal"
          },
          {
            "id": "l07",
            "name": "PE07",
            "x": 0,
            "y": 7,
            "type": "signal"
          },
          {
            "id": "l08",
            "name": "PE09",
            "x": 0,
            "y": 8,
            "type": "signal"
          },
          {
            "id": "l09",
            "name": "PE11",
            "x": 0,
            "y": 9,
            "type": "signal"
          },
          {
            "id": "l10",
            "name": "PE13",
            "x": 0,
            "y": 10,
            "type": "signal"
          },
          {
            "id": "l11",
            "name": "PE15",
            "x": 0,
            "y": 11,
            "type": "signal"
          },
          {
            "id": "l12",
            "name": "PB10",
            "x": 0,
            "y": 12,
            "type": "signal"
          },
          {
            "id": "l13",
            "name": "PB13",
            "x": 0,
            "y": 13,
            "type": "signal"
          },
          {
            "id": "l14",
            "name": "PB15",
            "x": 0,
            "y": 14,
            "type": "signal"
          },
          {
            "id": "l15",
            "name": "PD09",
            "x": 0,
            "y": 15,
            "type": "signal"
          },
          {
            "id": "l16",
            "name": "PD11",
            "x": 0,
            "y": 16,
            "type": "signal"
          },
          {
            "id": "l17",
            "name": "PD13",
            "x": 0,
            "y": 17,
            "type": "signal"
          },
          {
            "id": "l18",
            "name": "PD15",
            "x": 0,
            "y": 18,
            "type": "signal"
          },
          {
            "id": "l19",
            "name": "AGND",
            "x": 0,
            "y": 19,
            "type": "ground"
          },
          {
            "id": "l20",
            "name": "GND",
            "x": 0,
            "y": 20,
            "type": "ground"
          },
          {
            "id": "r01",
            "name": "PD03",
            "x": 13,
            "y": 1,
            "type": "signal"
          },
          {
            "id": "r02",
            "name": "PC08",
            "x": 13,
            "y": 2,
            "type": "signal"
          },
          {
            "id": "r03",
            "name": "PD02",
            "x": 13,
            "y": 3,
            "type": "signal"
          },
          {
            "id": "r04",
            "name": "PC10",
            "x": 13,
            "y": 4,
            "type": "signal"
          },
          {
            "id": "r05",
            "name": "PE06",
            "x": 13,
            "y": 5,
            "type": "signal"
          },
          {
            "id": "r06",
            "name": "PE04",
            "x": 13,
            "y": 6,
            "type": "signal"
          },
          {
            "id": "r07",
            "name": "PE02",
            "x": 13,
            "y": 7,
            "type": "signal"
          },
          {
            "id": "r08",
            "name": "PE00",
            "x": 13,
            "y": 8,
            "type": "signal"
          },
          {
            "id": "r09",
            "name": "PC03",
            "x": 13,
            "y": 9,
            "type": "signal"
          },
          {
            "id": "r10",
            "name": "PB08",
            "x": 13,
            "y": 10,
            "type": "signal"
          },
          {
            "id": "r11",
            "name": "PB06",
            "x": 13,
            "y": 11,
            "type": "signal"
          },
          {
            "id": "r12",
            "name": "PB04",
            "x": 13,
            "y": 12,
            "type": "signal"
          },
          {
            "id": "r13",
            "name": "PB07",
            "x": 13,
            "y": 13,
            "type": "signal"
          },
          {
            "id": "r14",
            "name": "BAT",
            "x": 13,
            "y": 14,
            "type": "power"
          },
          {
            "id": "r15",
            "name": "PD06",
            "x": 13,
            "y": 15,
            "type": "signal"
          },
          {
            "id": "r16",
            "name": "PD05",
            "x": 13,
            "y": 16,
            "type": "signal"
          },
          {
            "id": "r17",
            "name": "PD01",
            "x": 13,
            "y": 17,
            "type": "signal"
          },
          {
            "id": "r18",
            "name": "PA15",
            "x": 13,
            "y": 18,
            "type": "signal"
          },
          {
            "id": "r19",
            "name": "PC06",
            "x": 13,
            "y": 19,
            "type": "signal"
          },
          {
            "id": "r20",
            "name": "GND",
            "x": 13,
            "y": 20,
            "type": "ground"
          }
        ]
      },
      "media": {
        "photo": "assets/photo/photo_009.png",
        "cardPng": "assets/card_png/card_004.png",
        "cardSvg": "assets/card_svg/card_svg_004.svg",
        "pinMap": "assets/pin_map/pin_map_004.svg",
        "markdown": "cards/card_doc_004.md",
        "extraImages": [
          {
            "src": "assets/pin_map/pin_map_004.svg",
            "caption": "02 LCKFB TKX STM32F407 天空星主控板 正面引脚图"
          },
          {
            "src": "assets/circuit/circuit_013.png",
            "caption": "LCKFB TKX STM32F407 SkyStar pin number map"
          },
          {
            "src": "assets/circuit/circuit_014.png",
            "caption": "LCKFB TKX STM32F407 SkyStar schematic overview"
          },
          {
            "src": "assets/circuit/circuit_012.png",
            "caption": "LCKFB TKX STM32F407 SkyStar crystal schematic"
          }
        ]
      },
      "usageNotes": [
        "先看 Pinout 序号再插线",
        "板载 TF/LCD/音频/按键/LED 会占脚",
        "F407 IO 仍按 3.3V 逻辑处理",
        "SWD 口必须留出来便于现场救程序",
        "所有模块上车前先做引脚冲突表"
      ],
      "sources": [
        "https://wiki.lckfb.com/zh-hans/tkx/tkx-stm32f407vxt6/",
        "https://wiki.lckfb.com/zh-hans/tkx/hardware/schematic.html",
        "https://wiki.lckfb.com/storage/html/fdb-pinout/index.html",
        "https://oshwhub.com/li-chuang-kai-fa-ban/li-chuang-liang-shan-pai-tian-kong-xing-kai-fa-ban"
      ],
      "links": [
        {
          "label": "天空星 STM32F407 官方教程",
          "url": "https://wiki.lckfb.com/zh-hans/tkx/tkx-stm32f407vxt6/",
          "note": "先看板卡介绍、板载资源和外设入口"
        },
        {
          "label": "天空星官方原理图说明",
          "url": "https://wiki.lckfb.com/zh-hans/tkx/hardware/schematic.html",
          "note": "查电源、时钟、下载、板载外设占脚"
        },
        {
          "label": "天空星官方交互式 Pinout",
          "url": "https://wiki.lckfb.com/storage/html/fdb-pinout/index.html",
          "note": "按 P1/P2 序号查具体 GPIO 和复用功能"
        },
        {
          "label": "天空星开源硬件工程",
          "url": "https://oshwhub.com/li-chuang-kai-fa-ban/li-chuang-liang-shan-pai-tian-kong-xing-kai-fa-ban",
          "note": "查看 PCB、BOM、封装和原理图工程"
        }
      ]
    },
    {
      "id": "tb6612fng",
      "title": "TB6612FNG 双路直流电机驱动",
      "category": "执行器/驱动",
      "status": "ready",
      "footprint": {
        "pitchMm": 2.54,
        "body": {
          "w": 8,
          "h": 10
        },
        "pinCount": 14,
        "pinTypes": {
          "power": 2,
          "ground": 1,
          "signal": 11
        },
        "pins": [
          {
            "id": "p01",
            "name": "VM",
            "x": 0,
            "y": 1,
            "type": "power"
          },
          {
            "id": "p02",
            "name": "VCC",
            "x": 0,
            "y": 2,
            "type": "power"
          },
          {
            "id": "p03",
            "name": "GND",
            "x": 0,
            "y": 3,
            "type": "ground"
          },
          {
            "id": "p04",
            "name": "AO1",
            "x": 0,
            "y": 5,
            "type": "signal"
          },
          {
            "id": "p05",
            "name": "AO2",
            "x": 0,
            "y": 6,
            "type": "signal"
          },
          {
            "id": "p06",
            "name": "BO1",
            "x": 0,
            "y": 8,
            "type": "signal"
          },
          {
            "id": "p07",
            "name": "BO2",
            "x": 0,
            "y": 9,
            "type": "signal"
          },
          {
            "id": "p08",
            "name": "PWMA",
            "x": 7,
            "y": 1,
            "type": "signal"
          },
          {
            "id": "p09",
            "name": "AIN1",
            "x": 7,
            "y": 2,
            "type": "signal"
          },
          {
            "id": "p10",
            "name": "AIN2",
            "x": 7,
            "y": 3,
            "type": "signal"
          },
          {
            "id": "p11",
            "name": "STBY",
            "x": 7,
            "y": 4,
            "type": "signal"
          },
          {
            "id": "p12",
            "name": "BIN1",
            "x": 7,
            "y": 6,
            "type": "signal"
          },
          {
            "id": "p13",
            "name": "BIN2",
            "x": 7,
            "y": 7,
            "type": "signal"
          },
          {
            "id": "p14",
            "name": "PWMB",
            "x": 7,
            "y": 8,
            "type": "signal"
          }
        ]
      },
      "media": {
        "photo": "assets/photo/photo_021.png",
        "cardPng": "assets/card_png/card_003.png",
        "cardSvg": "assets/card_svg/card_svg_003.svg",
        "pinMap": "assets/pin_map/pin_map_003.svg",
        "markdown": "cards/card_doc_003.md",
        "extraImages": [
          {
            "src": "assets/pin_map/pin_map_003.svg",
            "caption": "01 TB6612FNG 双路直流电机驱动 正面引脚图"
          },
          {
            "src": "assets/photo/photo_022.jpg",
            "caption": "TB6612FNG Pololu 实物顶视"
          },
          {
            "src": "assets/circuit/circuit_030.png",
            "caption": "TB6612FNG Pololu 最小接线图"
          },
          {
            "src": "assets/circuit/circuit_029.png",
            "caption": "TB6612FNG Pololu 原理图"
          }
        ]
      },
      "usageNotes": [
        "VM 和 VCC 不要混",
        "电机启动前先架空车轮",
        "方向反了先改 AIN/BIN 或软件符号",
        "VM 旁加电解和 0.1uF",
        "编码器不接 TB6612"
      ],
      "sources": [
        "https://www.pololu.com/product/713",
        "https://a.pololu-files.com/picture/0J4621.1200.jpg",
        "https://a.pololu-files.com/picture/0J12386.1200.png",
        "https://a.pololu-files.com/picture/0J4624.1200.png"
      ],
      "links": []
    },
    {
      "id": "mg310-encoder-motor",
      "title": "MG310 GMR 编码器电机",
      "category": "执行器/驱动",
      "status": "ready",
      "footprint": {
        "pitchMm": 2.54,
        "body": {
          "w": 8,
          "h": 3
        },
        "pinCount": 6,
        "pinTypes": {
          "power": 3,
          "ground": 1,
          "signal": 2
        },
        "pins": [
          {
            "id": "p01",
            "name": "M+",
            "x": 1,
            "y": 0,
            "type": "power"
          },
          {
            "id": "p02",
            "name": "M-",
            "x": 2,
            "y": 0,
            "type": "power"
          },
          {
            "id": "p03",
            "name": "VCC",
            "x": 4,
            "y": 0,
            "type": "power"
          },
          {
            "id": "p04",
            "name": "GND",
            "x": 5,
            "y": 0,
            "type": "ground"
          },
          {
            "id": "p05",
            "name": "A",
            "x": 6,
            "y": 0,
            "type": "signal"
          },
          {
            "id": "p06",
            "name": "B",
            "x": 7,
            "y": 0,
            "type": "signal"
          }
        ]
      },
      "media": {
        "photo": "assets/photo/photo_013.jpg",
        "cardPng": "assets/card_png/card_005.png",
        "cardSvg": "assets/card_svg/card_svg_005.svg",
        "pinMap": "assets/pin_map/pin_map_005.svg",
        "markdown": "cards/card_doc_005.md",
        "extraImages": [
          {
            "src": "assets/pin_map/pin_map_005.svg",
            "caption": "02 MG310 GMR编码器电机 正面引脚图"
          },
          {
            "src": "assets/photo/photo_012.png",
            "caption": "MG310 霍尔 GMR编码器电机 6P线序对照"
          },
          {
            "src": "assets/circuit/circuit_020.svg",
            "caption": "MG310 GMR 6P线序"
          },
          {
            "src": "assets/photo/photo_003.jpg",
            "caption": "整车 MG310装配参考"
          }
        ]
      },
      "usageNotes": [
        "电机线和编码器线不要混",
        "A/B 相符号反会让闭环发疯",
        "5V 编码器进 3V3 主控要确认电平",
        "先手转轮看计数",
        "再接 VM 测电机"
      ],
      "sources": [
        "本地接线整理：01_元器件引脚图与接线总表.md",
        "本地装配参考：MakerWorld_2451532_25E三轮小车底盘/reference_images",
        "https://www.ebuy7.com/wheel-fun-technology-mg310-dc-gear-motor-with-ab-phase-500-line-high-precision-gmr-encoder-mg370.html"
      ],
      "links": []
    },
    {
      "id": "mg513x-encoder-motor",
      "title": "MG513X / MG513XL 霍尔编码器直流减速电机",
      "category": "执行器/驱动",
      "status": "ready",
      "footprint": {
        "pitchMm": 2.54,
        "body": {
          "w": 8,
          "h": 3
        },
        "pinCount": 6,
        "pinTypes": {
          "power": 3,
          "ground": 1,
          "signal": 2
        },
        "pins": [
          {
            "id": "p01",
            "name": "M-",
            "x": 1,
            "y": 0,
            "type": "power"
          },
          {
            "id": "p02",
            "name": "GND",
            "x": 2,
            "y": 0,
            "type": "ground"
          },
          {
            "id": "p03",
            "name": "A",
            "x": 3,
            "y": 0,
            "type": "signal"
          },
          {
            "id": "p04",
            "name": "B",
            "x": 4,
            "y": 0,
            "type": "signal"
          },
          {
            "id": "p05",
            "name": "VCC",
            "x": 5,
            "y": 0,
            "type": "power"
          },
          {
            "id": "p06",
            "name": "M+",
            "x": 6,
            "y": 0,
            "type": "power"
          }
        ]
      },
      "media": {
        "photo": "assets/photo/photo_014.jpg",
        "cardPng": "assets/card_png/card_006.png",
        "cardSvg": "assets/card_svg/card_svg_006.svg",
        "pinMap": "assets/pin_map/pin_map_006.svg",
        "markdown": "cards/card_doc_006.md",
        "extraImages": [
          {
            "src": "assets/pin_map/pin_map_006.svg",
            "caption": "02A MG513X 霍尔编码器直流减速电机 正面引脚图"
          },
          {
            "src": "assets/photo/photo_015.jpg",
            "caption": "MG513X MG513XL 霍尔 GMR版本对比"
          },
          {
            "src": "assets/circuit/circuit_022.svg",
            "caption": "MG513X 霍尔编码器电机 6P接线示意"
          },
          {
            "src": "assets/circuit/circuit_023.jpg",
            "caption": "MG513X MG513XL 产品参数表"
          },
          {
            "src": "assets/circuit/circuit_021.jpg",
            "caption": "MG513X 编码器参数对比"
          }
        ]
      },
      "usageNotes": [
        "先只接编码器手转看 A/B 计数",
        "再接驱动器空载低速转",
        "M+/M- 与 A/B 任一反向都要统一到软件符号",
        "堵转电流较大，驱动器和电池要留余量",
        "6P 顺序必须按实物确认"
      ],
      "sources": [
        "https://wheeltec.net/product/html/?223.html=",
        "https://wheeltec.net/product/pics/20251121/1763712101.jpg",
        "https://wheeltec.net/kindeditor/attached/image/20251121/20251121160211_40559.jpg",
        "https://wheeltec.net/kindeditor/attached/image/20251121/20251121160212_30101.jpg"
      ],
      "links": [
        {
          "label": "AT8236 + MG513X 速度闭环例程目录",
          "url": "https://github.com/ZhiKong0/nuedc-component-examples/tree/main/motor/at8236-mg513x",
          "note": "公共 C 驱动、编码器测速、速度 PI、host smoke test 和移植说明"
        },
        {
          "label": "MG513X 编码器 smoke test 清单",
          "url": "https://github.com/ZhiKong0/nuedc-component-examples/blob/main/motor/at8236-mg513x/docs/debug_checklist.md",
          "note": "先手转看计数，再空载低速，再闭环"
        }
      ]
    },
    {
      "id": "at8236-driver",
      "title": "AT8236 双路编码器直流电机驱动",
      "category": "执行器/驱动",
      "status": "ready",
      "footprint": {
        "pitchMm": 2.54,
        "body": {
          "w": 12,
          "h": 11
        },
        "pinCount": 16,
        "pinTypes": {
          "power": 2,
          "ground": 1,
          "signal": 13
        },
        "pins": [
          {
            "id": "p01",
            "name": "VM",
            "x": 0,
            "y": 1,
            "type": "power"
          },
          {
            "id": "p02",
            "name": "VCC",
            "x": 0,
            "y": 2,
            "type": "power"
          },
          {
            "id": "p03",
            "name": "GND",
            "x": 0,
            "y": 3,
            "type": "ground"
          },
          {
            "id": "p04",
            "name": "AO1",
            "x": 0,
            "y": 5,
            "type": "signal"
          },
          {
            "id": "p05",
            "name": "AO2",
            "x": 0,
            "y": 6,
            "type": "signal"
          },
          {
            "id": "p06",
            "name": "BO1",
            "x": 0,
            "y": 8,
            "type": "signal"
          },
          {
            "id": "p07",
            "name": "BO2",
            "x": 0,
            "y": 9,
            "type": "signal"
          },
          {
            "id": "p08",
            "name": "PWMA",
            "x": 11,
            "y": 1,
            "type": "signal"
          },
          {
            "id": "p09",
            "name": "AIN1",
            "x": 11,
            "y": 2,
            "type": "signal"
          },
          {
            "id": "p10",
            "name": "AIN2",
            "x": 11,
            "y": 3,
            "type": "signal"
          },
          {
            "id": "p11",
            "name": "STBY",
            "x": 11,
            "y": 4,
            "type": "signal"
          },
          {
            "id": "p12",
            "name": "PWMB",
            "x": 11,
            "y": 6,
            "type": "signal"
          },
          {
            "id": "p13",
            "name": "BIN1",
            "x": 11,
            "y": 7,
            "type": "signal"
          },
          {
            "id": "p14",
            "name": "BIN2",
            "x": 11,
            "y": 8,
            "type": "signal"
          },
          {
            "id": "p15",
            "name": "EA1",
            "x": 5,
            "y": 10,
            "type": "signal"
          },
          {
            "id": "p16",
            "name": "EA2",
            "x": 6,
            "y": 10,
            "type": "signal"
          }
        ]
      },
      "media": {
        "photo": "assets/photo/photo_004.jpg",
        "cardPng": "assets/card_png/card_007.png",
        "cardSvg": "assets/card_svg/card_svg_007.svg",
        "pinMap": "assets/pin_map/pin_map_007.svg",
        "markdown": "cards/card_doc_007.md",
        "extraImages": [
          {
            "src": "assets/pin_map/pin_map_007.svg",
            "caption": "02B AT8236 双路编码器直流电机驱动 正面引脚图"
          },
          {
            "src": "assets/circuit/circuit_005.jpg",
            "caption": "AT8236 Yahboom 标准版接口说明"
          },
          {
            "src": "assets/circuit/circuit_004.svg",
            "caption": "AT8236 标准版 双路编码器电机接线示意"
          },
          {
            "src": "assets/circuit/circuit_006.jpg",
            "caption": "AT8236 Yahboom 标准版接线示例"
          },
          {
            "src": "assets/circuit/circuit_007.jpg",
            "caption": "AT8236 Yahboom Lite版引脚说明"
          }
        ]
      },
      "usageNotes": [
        "标准版和 Lite 版引脚表不同",
        "先确认 5V/3V3 是输出还是输入",
        "单路空载调通后再双路闭环",
        "编码器反馈仍进主控计数",
        "峰值电流、散热和电池内阻要留余量"
      ],
      "sources": [
        "https://category.yahboom.net/products/dual-md-module",
        "https://www.yahboom.com/study_module/Dual-MD-Module",
        "https://github.com/YahboomTechnology/2-Channel-Motor-Driver-Module",
        "https://category.yahboom.net/cdn/shop/files/AT8236_Motor_Drive_Module_Yahom_01.jpg?v=1692606927",
        "https://cdn.shopify.com/s/files/1/0066/9686/1780/files/AT8236_Motor_Drive_Module_Yahom_18_2048x2048.jpg?v=1692607275"
      ],
      "links": [
        {
          "label": "AT8236 + MG513X 电机例程目录",
          "url": "https://github.com/ZhiKong0/nuedc-component-examples/tree/main/motor/at8236-mg513x",
          "note": "双路驱动、编码器反馈、速度 PI 和 STM32F103/MSPM0 移植提示"
        },
        {
          "label": "AT8236 接线说明",
          "url": "https://github.com/ZhiKong0/nuedc-component-examples/blob/main/motor/at8236-mg513x/docs/wiring.md",
          "note": "标准版、Lite 版、MG513X 电机线和编码器线怎么分"
        }
      ]
    },
    {
      "id": "maixcam-pro",
      "title": "MaixCAM Pro / K230 / OpenMV 视觉模块",
      "category": "视觉/姿态",
      "status": "ready",
      "footprint": {
        "pitchMm": 2.54,
        "body": {
          "w": 10,
          "h": 10
        },
        "pinCount": 10,
        "pinTypes": {
          "power": 2,
          "ground": 1,
          "signal": 7
        },
        "pins": [
          {
            "id": "p01",
            "name": "5V",
            "x": 0,
            "y": 2,
            "type": "power"
          },
          {
            "id": "p02",
            "name": "3V3",
            "x": 0,
            "y": 3,
            "type": "power"
          },
          {
            "id": "p03",
            "name": "GND",
            "x": 0,
            "y": 4,
            "type": "ground"
          },
          {
            "id": "p04",
            "name": "TX",
            "x": 0,
            "y": 6,
            "type": "signal"
          },
          {
            "id": "p05",
            "name": "RX",
            "x": 0,
            "y": 7,
            "type": "signal"
          },
          {
            "id": "p06",
            "name": "SCL",
            "x": 9,
            "y": 2,
            "type": "signal"
          },
          {
            "id": "p07",
            "name": "SDA",
            "x": 9,
            "y": 3,
            "type": "signal"
          },
          {
            "id": "p08",
            "name": "IO0",
            "x": 9,
            "y": 5,
            "type": "signal"
          },
          {
            "id": "p09",
            "name": "IO1",
            "x": 9,
            "y": 6,
            "type": "signal"
          },
          {
            "id": "p10",
            "name": "BOOT",
            "x": 9,
            "y": 8,
            "type": "signal"
          }
        ]
      },
      "media": {
        "photo": "assets/photo/photo_011.png",
        "cardPng": "assets/card_png/card_008.png",
        "cardSvg": "assets/card_svg/card_svg_008.svg",
        "pinMap": "assets/pin_map/pin_map_008.svg",
        "markdown": "cards/card_doc_008.md",
        "extraImages": [
          {
            "src": "assets/pin_map/pin_map_008.svg",
            "caption": "03 MaixCAM Pro 视觉模块 正面引脚图"
          },
          {
            "src": "assets/circuit/circuit_017.png",
            "caption": "MaixCAM Pro Sipeed 完整IO引脚图"
          },
          {
            "src": "assets/circuit/circuit_019.jpg",
            "caption": "MaixCAM2 Sipeed 引脚图参考"
          }
        ]
      },
      "usageNotes": [
        "TX/RX 交叉接",
        "先用 115200",
        "协议先只传 valid/dx/dy",
        "现场要能调曝光/阈值",
        "视觉供电要留余量"
      ],
      "sources": [
        "https://wiki.sipeed.com/hardware/en/maixcam/maixcam_pro.html",
        "https://wiki.sipeed.com/static/image/maixcam_pro.png",
        "https://wiki.sipeed.com/hardware/assets/maixcam/maixcam_pro_io.png",
        "https://raw.githubusercontent.com/sipeed/sipeed_wiki/main/docs/hardware/assets/maixcam/maixcam_pro_io.png"
      ],
      "links": []
    },
    {
      "id": "jy61p-uart",
      "title": "JY61P UART 姿态模块",
      "category": "视觉/姿态",
      "status": "ready",
      "footprint": {
        "pitchMm": 2.54,
        "body": {
          "w": 6,
          "h": 4
        },
        "pinCount": 4,
        "pinTypes": {
          "power": 1,
          "ground": 1,
          "signal": 2
        },
        "pins": [
          {
            "id": "p01",
            "name": "VCC",
            "x": 1,
            "y": 0,
            "type": "power"
          },
          {
            "id": "p02",
            "name": "GND",
            "x": 2,
            "y": 0,
            "type": "ground"
          },
          {
            "id": "p03",
            "name": "TX",
            "x": 3,
            "y": 0,
            "type": "signal"
          },
          {
            "id": "p04",
            "name": "RX",
            "x": 4,
            "y": 0,
            "type": "signal"
          }
        ]
      },
      "media": {
        "photo": "assets/photo/photo_008.png",
        "cardPng": "assets/card_png/card_009.png",
        "cardSvg": "assets/card_svg/card_svg_009.svg",
        "pinMap": "assets/pin_map/pin_map_009.svg",
        "markdown": "cards/card_doc_009.md",
        "extraImages": [
          {
            "src": "assets/pin_map/pin_map_009.svg",
            "caption": "04 JY61P UART姿态模块 正面引脚图"
          },
          {
            "src": "assets/circuit/circuit_010.png",
            "caption": "JY61P 立创接线参考"
          },
          {
            "src": "assets/circuit/circuit_011.svg",
            "caption": "JY61P UART接线图"
          }
        ]
      },
      "usageNotes": [
        "只读姿态通常只接 TX",
        "波特率先试 9600/115200",
        "坐标系方向贴标签",
        "运动补偿前先静态校准",
        "和 MPU6050 不要重复上车"
      ],
      "sources": [
        "https://wiki.lckfb.com/zh-hans/dmx/module/sensor/jy61p-measurement-sensor.html",
        "本地引脚整理：01_元器件引脚图与接线总表.md"
      ],
      "links": [
        {
          "label": "JY61P WIT C SDK 驱动目录",
          "url": "https://github.com/ZhiKong0/nuedc-component-examples/tree/main/imu/jy61p-sdk",
          "note": "REG.h + wit_c_sdk.c/h，适合先移植串口帧解析"
        },
        {
          "label": "JY61P 完整 STM32H7 模板工程",
          "url": "https://github.com/ZhiKong0/nuedc-component-examples/tree/main/imu/jy61p-template",
          "note": "包含 UART、TIM、HAL 工程结构，适合看完整初始化"
        }
      ]
    },
    {
      "id": "mpu6050",
      "title": "MPU6050 I2C 姿态模块",
      "category": "视觉/姿态",
      "status": "ready",
      "footprint": {
        "pitchMm": 2.54,
        "body": {
          "w": 8,
          "h": 5
        },
        "pinCount": 8,
        "pinTypes": {
          "power": 1,
          "ground": 1,
          "signal": 6
        },
        "pins": [
          {
            "id": "p01",
            "name": "VCC",
            "x": 0,
            "y": 1,
            "type": "power"
          },
          {
            "id": "p02",
            "name": "GND",
            "x": 1,
            "y": 1,
            "type": "ground"
          },
          {
            "id": "p03",
            "name": "SCL",
            "x": 2,
            "y": 1,
            "type": "signal"
          },
          {
            "id": "p04",
            "name": "SDA",
            "x": 3,
            "y": 1,
            "type": "signal"
          },
          {
            "id": "p05",
            "name": "XDA",
            "x": 4,
            "y": 1,
            "type": "signal"
          },
          {
            "id": "p06",
            "name": "XCL",
            "x": 5,
            "y": 1,
            "type": "signal"
          },
          {
            "id": "p07",
            "name": "AD0",
            "x": 6,
            "y": 1,
            "type": "signal"
          },
          {
            "id": "p08",
            "name": "INT",
            "x": 7,
            "y": 1,
            "type": "signal"
          }
        ]
      },
      "media": {
        "photo": "assets/photo/photo_016.jpg",
        "cardPng": "assets/card_png/card_010.png",
        "cardSvg": "assets/card_svg/card_svg_010.svg",
        "pinMap": "assets/pin_map/pin_map_010.svg",
        "markdown": "cards/card_doc_010.md",
        "extraImages": [
          {
            "src": "assets/pin_map/pin_map_010.svg",
            "caption": "05 MPU6050 I2C姿态模块 正面引脚图"
          },
          {
            "src": "assets/circuit/circuit_026.png",
            "caption": "MPU6050 Components101 Pinout"
          },
          {
            "src": "assets/circuit/circuit_025.png",
            "caption": "MPU6050 Components101 原理图"
          },
          {
            "src": "assets/circuit/circuit_024.png",
            "caption": "MPU6050 Arduino 接线参考"
          }
        ]
      },
      "usageNotes": [
        "SCL/SDA 需要上拉",
        "线太长会不稳",
        "地址冲突先查 AD0",
        "只想快读角度优先 JY61P",
        "I2C 先低速调通"
      ],
      "sources": [
        "https://components101.com/sensors/mpu6050-module",
        "https://components101.com/sites/default/files/component_pin/MPU6050-Pinout.png",
        "https://components101.com/sites/default/files/inline-images/MPU6050-Circuit_0.png"
      ],
      "links": [
        {
          "label": "MPU6050 MSPM0/CCS 驱动目录",
          "url": "https://github.com/ZhiKong0/nuedc-component-examples/tree/main/imu/mpu6050-driver",
          "note": "含 mpu6050.c/h、DMP、I2C 适配，适合移植到底盘板"
        },
        {
          "label": "MPU6050 OLED 软件 I2C SysConfig",
          "url": "https://github.com/ZhiKong0/nuedc-component-examples/blob/main/imu/mpu6050-syscfg/mpu6050-oled-software-i2c.syscfg",
          "note": "MSPM0 I2C 引脚和外设配置参考"
        }
      ]
    },
    {
      "id": "bno085",
      "title": "BNO085 / BNO08X 九轴融合姿态模块",
      "category": "视觉/姿态",
      "status": "ready",
      "footprint": {
        "pitchMm": 2.54,
        "body": {
          "w": 8,
          "h": 5
        },
        "pinCount": 8,
        "pinTypes": {
          "power": 2,
          "ground": 1,
          "signal": 5
        },
        "pins": [
          {
            "id": "p01",
            "name": "VIN",
            "x": 0,
            "y": 1,
            "type": "power"
          },
          {
            "id": "p02",
            "name": "3V3",
            "x": 1,
            "y": 1,
            "type": "power"
          },
          {
            "id": "p03",
            "name": "GND",
            "x": 2,
            "y": 1,
            "type": "ground"
          },
          {
            "id": "p04",
            "name": "SCL",
            "x": 3,
            "y": 1,
            "type": "signal"
          },
          {
            "id": "p05",
            "name": "SDA",
            "x": 4,
            "y": 1,
            "type": "signal"
          },
          {
            "id": "p06",
            "name": "INT",
            "x": 5,
            "y": 1,
            "type": "signal"
          },
          {
            "id": "p07",
            "name": "RST",
            "x": 6,
            "y": 1,
            "type": "signal"
          },
          {
            "id": "p08",
            "name": "PS0",
            "x": 7,
            "y": 1,
            "type": "signal"
          }
        ]
      },
      "media": {
        "photo": "assets/photo/photo_005.png",
        "cardPng": "assets/card_png/card_011.png",
        "cardSvg": "assets/card_svg/card_svg_011.svg",
        "pinMap": "assets/pin_map/pin_map_011.svg",
        "markdown": "cards/card_doc_011.md",
        "extraImages": [
          {
            "src": "assets/pin_map/pin_map_011.svg",
            "caption": "06 BNO085 九轴融合姿态模块 正面引脚图"
          },
          {
            "src": "assets/circuit/circuit_008.png",
            "caption": "BNO085 Adafruit Pinout"
          }
        ]
      },
      "usageNotes": [
        "想少写融合算法优先 BNO085",
        "PS0/PS1 先按例程模式接",
        "UART-RVC 先看波特率和帧头",
        "I2C 线短并确认上拉",
        "上车前先静置看 yaw 漂移"
      ],
      "sources": [
        "https://learn.adafruit.com/adafruit-9-dof-orientation-imu-fusion-breakout-bno085",
        "https://cdn-learn.adafruit.com/assets/assets/000/094/950/original/sensors_image.png?1600803606=",
        "https://cdn-learn.adafruit.com/assets/assets/000/095/538/original/sensors__edittop-2.png?1602263691="
      ],
      "links": [
        {
          "label": "BNO08X UART-RVC 驱动目录",
          "url": "https://github.com/ZhiKong0/nuedc-component-examples/tree/main/imu/bno08x-uart-rvc",
          "note": "适合 BNO085/BNO08X 走 UART-RVC，先拿稳定姿态帧"
        },
        {
          "label": "bno08x_uart_rvc.c",
          "url": "https://github.com/ZhiKong0/nuedc-component-examples/blob/main/imu/bno08x-uart-rvc/bno08x_uart_rvc.c",
          "note": "串口帧解析入口，移植时先看这里"
        }
      ]
    },
    {
      "id": "icm42688",
      "title": "ICM42688 / ICM-42688-P 六轴 IMU",
      "category": "视觉/姿态",
      "status": "ready",
      "footprint": {
        "pitchMm": 2.54,
        "body": {
          "w": 8,
          "h": 5
        },
        "pinCount": 8,
        "pinTypes": {
          "power": 1,
          "ground": 1,
          "signal": 6
        },
        "pins": [
          {
            "id": "p01",
            "name": "VCC",
            "x": 0,
            "y": 1,
            "type": "power"
          },
          {
            "id": "p02",
            "name": "GND",
            "x": 1,
            "y": 1,
            "type": "ground"
          },
          {
            "id": "p03",
            "name": "SCL/SCK",
            "x": 2,
            "y": 1,
            "type": "signal"
          },
          {
            "id": "p04",
            "name": "SDA/SDI",
            "x": 3,
            "y": 1,
            "type": "signal"
          },
          {
            "id": "p05",
            "name": "SA0/SDO",
            "x": 4,
            "y": 1,
            "type": "signal"
          },
          {
            "id": "p06",
            "name": "CS",
            "x": 5,
            "y": 1,
            "type": "signal"
          },
          {
            "id": "p07",
            "name": "INT1",
            "x": 6,
            "y": 1,
            "type": "signal"
          },
          {
            "id": "p08",
            "name": "INT2",
            "x": 7,
            "y": 1,
            "type": "signal"
          }
        ]
      },
      "media": {
        "photo": "assets/photo/photo_007.png",
        "cardPng": "assets/card_png/card_012.png",
        "cardSvg": "assets/card_svg/card_svg_012.svg",
        "pinMap": "assets/pin_map/pin_map_012.svg",
        "markdown": "cards/card_doc_012.md",
        "extraImages": [
          {
            "src": "assets/pin_map/pin_map_012.svg",
            "caption": "07 ICM42688 六轴高性能IMU 正面引脚图"
          }
        ]
      },
      "usageNotes": [
        "它没有磁力计，yaw 会随时间漂",
        "高速采样优先 SPI",
        "I2C 调通后再上频率",
        "陀螺零偏必须静态校准",
        "比赛控制环里不要阻塞读 IMU"
      ],
      "sources": [
        "https://github.com/SUSTAINA-OP/ICM-42688-P-Module",
        "https://github.com/SUSTAINA-OP/ICM-42688-P-Module/raw/master/images/pinout.png",
        "https://invensense.tdk.com/products/motion-tracking/6-axis/icm-42688-p/"
      ],
      "links": [
        {
          "label": "ICM42688 驱动目录",
          "url": "https://github.com/ZhiKong0/nuedc-component-examples/tree/main/imu/icm42688-hardware",
          "note": "含 icm42688_driver.c/h，适合看寄存器初始化和读数"
        },
        {
          "label": "icm42688_driver.c",
          "url": "https://github.com/ZhiKong0/nuedc-component-examples/blob/main/imu/icm42688-hardware/icm42688_driver.c",
          "note": "具体 SPI/I2C 读写封装和初始化流程"
        }
      ]
    },
    {
      "id": "oled-ssd1306",
      "title": "0.96 OLED / SSD1306 显示模块",
      "category": "调试/传感",
      "status": "ready",
      "footprint": {
        "pitchMm": 2.54,
        "body": {
          "w": 6,
          "h": 4
        },
        "pinCount": 4,
        "pinTypes": {
          "ground": 1,
          "power": 1,
          "signal": 2
        },
        "pins": [
          {
            "id": "p01",
            "name": "GND",
            "x": 1,
            "y": 0,
            "type": "ground"
          },
          {
            "id": "p02",
            "name": "VCC",
            "x": 2,
            "y": 0,
            "type": "power"
          },
          {
            "id": "p03",
            "name": "SCL",
            "x": 3,
            "y": 0,
            "type": "signal"
          },
          {
            "id": "p04",
            "name": "SDA",
            "x": 4,
            "y": 0,
            "type": "signal"
          }
        ]
      },
      "media": {
        "photo": "assets/photo/photo_019.jpg",
        "cardPng": "assets/card_png/card_013.png",
        "cardSvg": "assets/card_svg/card_svg_013.svg",
        "pinMap": "assets/pin_map/pin_map_013.svg",
        "markdown": "cards/card_doc_013.md",
        "extraImages": [
          {
            "src": "assets/pin_map/pin_map_013.svg",
            "caption": "08 OLED SSD1306显示模块 正面引脚图"
          },
          {
            "src": "assets/photo/photo_018.jpg",
            "caption": "OLED Waveshare 实物图"
          }
        ]
      },
      "usageNotes": [
        "I2C 地址常见 0x3C/0x3D",
        "别占关键 PWM/UART 脚",
        "显示刷新不要阻塞控制环",
        "调试时非常有用",
        "上电无显示先扫 I2C 地址"
      ],
      "sources": [
        "https://components101.com/displays/oled-display-ssd1306",
        "https://www.waveshare.com/wiki/0.96inch_OLED_Module"
      ],
      "links": []
    },
    {
      "id": "gray-tracker",
      "title": "灰度巡迹模块",
      "category": "调试/传感",
      "status": "ready",
      "footprint": {
        "pitchMm": 2.54,
        "body": {
          "w": 12,
          "h": 4
        },
        "pinCount": 10,
        "pinTypes": {
          "power": 1,
          "ground": 1,
          "signal": 8
        },
        "pins": [
          {
            "id": "p01",
            "name": "VCC",
            "x": 0,
            "y": 1,
            "type": "power"
          },
          {
            "id": "p02",
            "name": "GND",
            "x": 1,
            "y": 1,
            "type": "ground"
          },
          {
            "id": "p03",
            "name": "S1",
            "x": 3,
            "y": 1,
            "type": "signal"
          },
          {
            "id": "p04",
            "name": "S2",
            "x": 4,
            "y": 1,
            "type": "signal"
          },
          {
            "id": "p05",
            "name": "S3",
            "x": 5,
            "y": 1,
            "type": "signal"
          },
          {
            "id": "p06",
            "name": "S4",
            "x": 6,
            "y": 1,
            "type": "signal"
          },
          {
            "id": "p07",
            "name": "S5",
            "x": 7,
            "y": 1,
            "type": "signal"
          },
          {
            "id": "p08",
            "name": "S6",
            "x": 8,
            "y": 1,
            "type": "signal"
          },
          {
            "id": "p09",
            "name": "S7",
            "x": 9,
            "y": 1,
            "type": "signal"
          },
          {
            "id": "p10",
            "name": "S8",
            "x": 10,
            "y": 1,
            "type": "signal"
          }
        ]
      },
      "media": {
        "photo": "assets/photo/photo_002.jpg",
        "cardPng": "assets/card_png/card_014.png",
        "cardSvg": "assets/card_svg/card_svg_014.svg",
        "pinMap": "assets/pin_map/pin_map_014.svg",
        "markdown": "cards/card_doc_014.md",
        "extraImages": [
          {
            "src": "assets/pin_map/pin_map_014.svg",
            "caption": "09 灰度巡迹模块 正面引脚图"
          },
          {
            "src": "assets/circuit/circuit_001.svg",
            "caption": "灰度巡迹 8路接口示意"
          }
        ]
      },
      "usageNotes": [
        "数字模块接 GPIO，模拟模块接 ADC",
        "先做黑白阈值校准",
        "角点要连续帧确认",
        "模块供 5V 时确认输出电平",
        "线束固定好再调阈值"
      ],
      "sources": [
        "本地 QQ/DoubleLZ MSPM0 SysConfig 引脚整理",
        "本地装配参考：MakerWorld_2451532_25E三轮小车底盘/reference_images"
      ],
      "links": []
    },
    {
      "id": "laser-driver",
      "title": "激光驱动板",
      "category": "执行器/驱动",
      "status": "ready",
      "footprint": {
        "pitchMm": 2.54,
        "body": {
          "w": 6,
          "h": 4
        },
        "pinCount": 4,
        "pinTypes": {
          "power": 1,
          "ground": 1,
          "signal": 2
        },
        "pins": [
          {
            "id": "p01",
            "name": "VIN",
            "x": 1,
            "y": 0,
            "type": "power"
          },
          {
            "id": "p02",
            "name": "GND",
            "x": 2,
            "y": 0,
            "type": "ground"
          },
          {
            "id": "p03",
            "name": "PWM",
            "x": 3,
            "y": 0,
            "type": "signal"
          },
          {
            "id": "p04",
            "name": "EN",
            "x": 4,
            "y": 0,
            "type": "signal"
          }
        ]
      },
      "media": {
        "photo": "assets/photo/photo_001.svg",
        "cardPng": "assets/card_png/card_015.png",
        "cardSvg": "assets/card_svg/card_svg_015.svg",
        "pinMap": "assets/pin_map/pin_map_015.svg",
        "markdown": "cards/card_doc_015.md",
        "extraImages": [
          {
            "src": "assets/pin_map/pin_map_015.svg",
            "caption": "10 激光驱动板 正面引脚图"
          },
          {
            "src": "assets/circuit/circuit_003.svg",
            "caption": "激光驱动板 原理简图"
          },
          {
            "src": "assets/circuit/circuit_002.png",
            "caption": "激光舵机控制 参考原理图"
          }
        ]
      },
      "usageNotes": [
        "GPIO 不能直接给激光供电",
        "只允许一个主控直接控制激光",
        "先低占空比短时点亮",
        "不照人眼和反光面",
        "先确认限流方式"
      ],
      "sources": [
        "本地激光灯驱动板.eprj 解析结果"
      ],
      "links": []
    },
    {
      "id": "zdt-stepper-driver",
      "title": "张大头/ZDT 闭环步进驱动",
      "category": "执行器/驱动",
      "status": "ready",
      "footprint": {
        "pitchMm": 2.54,
        "body": {
          "w": 12,
          "h": 9
        },
        "pinCount": 12,
        "pinTypes": {
          "power": 6,
          "ground": 2,
          "signal": 4
        },
        "pins": [
          {
            "id": "p01",
            "name": "VM+",
            "x": 0,
            "y": 1,
            "type": "power"
          },
          {
            "id": "p02",
            "name": "VM-",
            "x": 0,
            "y": 2,
            "type": "ground"
          },
          {
            "id": "p03",
            "name": "A+",
            "x": 0,
            "y": 4,
            "type": "power"
          },
          {
            "id": "p04",
            "name": "A-",
            "x": 0,
            "y": 5,
            "type": "power"
          },
          {
            "id": "p05",
            "name": "B+",
            "x": 0,
            "y": 6,
            "type": "power"
          },
          {
            "id": "p06",
            "name": "B-",
            "x": 0,
            "y": 7,
            "type": "power"
          },
          {
            "id": "p07",
            "name": "VCC",
            "x": 11,
            "y": 1,
            "type": "power"
          },
          {
            "id": "p08",
            "name": "GND",
            "x": 11,
            "y": 2,
            "type": "ground"
          },
          {
            "id": "p09",
            "name": "TX/CANH",
            "x": 11,
            "y": 4,
            "type": "signal"
          },
          {
            "id": "p10",
            "name": "RX/CANL",
            "x": 11,
            "y": 5,
            "type": "signal"
          },
          {
            "id": "p11",
            "name": "STEP",
            "x": 11,
            "y": 7,
            "type": "signal"
          },
          {
            "id": "p12",
            "name": "DIR",
            "x": 11,
            "y": 8,
            "type": "signal"
          }
        ]
      },
      "media": {
        "photo": "assets/photo/photo_006.png",
        "cardPng": "assets/card_png/card_016.png",
        "cardSvg": "assets/card_svg/card_svg_016.svg",
        "pinMap": "assets/pin_map/pin_map_016.svg",
        "markdown": "cards/card_doc_016.md",
        "extraImages": [
          {
            "src": "assets/pin_map/pin_map_016.svg",
            "caption": "11 闭环步进 ZDT TTL CAN 正面引脚图"
          },
          {
            "src": "assets/photo/photo_023.png",
            "caption": "ZDT X42S 闭环步进电机 手册实物参考"
          },
          {
            "src": "assets/circuit/circuit_009.png",
            "caption": "Emm42 V5 驱动板接口说明 手册图"
          },
          {
            "src": "assets/circuit/circuit_031.svg",
            "caption": "ZDT TTL CAN接口示意"
          }
        ]
      },
      "usageNotes": [
        "TTL 和 CAN 不要混接",
        "MCU CAN 不能直连 CANH/CANL",
        "每个轴地址不能冲突",
        "先单轴低速点动",
        "必须先验证 STOP 命令"
      ],
      "sources": [
        "本地 ZDT_X42S 文档与 F103 云台工程整理",
        "Eeeasy1z__vision_tracker/zdt_step_example_c/docs/ZDT_X42S第二代闭环步进电机用户手册V1.0.5_260527.pdf",
        "Prolxs__2025DianSaiK230/Emm_V5.0步进闭环驱动说明书Rev1.3.pdf"
      ],
      "links": []
    }
  ]
}
