用途:当 robocar 双控制器架构出现 I2C 通信问题时使用,涵盖主控制器与摄像头模块之间的调试、监控与同步。
架构:主控制器 Heltec WiFi LoRa 32 负责 AI 决策、电机控制和 LoRa 通信;ESP32-CAM 负责图像采集、视觉分析,并作为 I2C 从机。两者通过 I2C 互联。
构建与烧录:使用 just 命令,如 just robocar::build-main、just robocar::build-cam、just robocar::build-all;烧录为 just robocar::flash-main PORT=/dev/cu.usbserial-0001 与 just robocar::flash-cam PORT=/dev/cu.usbserial-0002,烧录摄像头时需将 GPIO0 接 GND,之后断开并复位。可用 ls -la /dev/cu.usbserial-* /dev/ttyUSB* 识别端口。
监控:开两个终端,分别运行 just robocar::monitor-main PORT=... 与 just robocar::monitor-cam PORT=...。
调试要点:I2C 常见问题包括无响应(地址错误,确认 7 位地址)、超时(缺少上拉,SDA/SCL 加 4.7K 电阻)、数据损坏(速率过快,降低时钟)、间歇故障(接线松动)。主从地址须一致,如主端 #define CAMERA_I2C_ADDR 0x55,从端 #define I2C_SLAVE_ADDR 0x55。接线为 SDA(21)、SCL(22)、GND,SDA/SCL 需上拉到 3.3V。
协议与时序:通信流程为主发命令字节、摄像头处理、回送响应、主读取。可开启日志 esp_log_level_set("i2c", ESP_LOG_DEBUG)。命令过快时在 i2c_master_cmd_begin 后加 vTaskDelay(pdMS_TO_TICKS(10))。同步问题可加握手、增大超时、使用中断或加就绪信号 GPIO。
其他命令:just robocar::info、make check-environment、just robocar::clean-all、just robocar::develop-main PORT=/dev/xxx、just robocar::develop-cam PORT=/dev/xxx。
限制:资料未提供收费、价格、平台支持范围与效果数据;具体硬件引脚与代码细节需以实际项目为准。