用途
Arduino Code Generator 用于生成面向 Arduino 与嵌入式 C++ 的代码片段,覆盖传感器、执行器、通信总线、状态机、定时、数据记录和硬件抽象等场景。当用户请求实现代码时使用,并要求先提供确切的开发板、框架、工具链、引脚、电压、内存和库版本。
主要能力
支持以下模式分类:
- 硬件抽象:支持条件编译的多开发板 config.h、UNO/ESP32/RP2040 的引脚定义、内存预算跟踪。
- 传感器读取与滤波:ADC 降噪(移动平均、中值、卡尔曼)、DHT22、BME280、模拟传感器、数据校验与校准。
- 输入处理:软件按键去抖、边沿检测(PRESSED/RELEASED/LONG_PRESS)、多按键管理。
- 通信:I2C 设备扫描与诊断、SPI 配置、UART/Serial 协议、CSV 数据输出。
- 定时与并发:非阻塞 millis() 模式、不使用 delay() 的任务调度、基于优先级的调度器、状态机。
- 硬件检测:自动检测开发板(UNO/ESP32/RP2040)、SRAM 使用监控、传感器回退策略、自适应配置。
- 数据持久化:带 CRC 校验的 EEPROM、SD 卡 FAT32 记录、EEPROM 磨损均衡、缓冲写入。
使用方式
浏览示例草图:
ls examples/
其中包括 config-example.ino、filtering-example.ino、buttons-example.ino、i2c-example.ino、csv-example.ino、scheduler-example.ino、state-machine-example.ino、hardware-detection-example.ino、data-logging-example.ino。
列出可用模式:
uv run --no-project scripts/generate_snippet.py --list
按模式与开发板生成代码:
uv run --no-project scripts/generate_snippet.py --pattern i2c --board esp32
uv run --no-project scripts/generate_snippet.py --pattern buttons --board uno --output button.ino
交互模式:
uv run --no-project scripts/generate_snippet.py --interactive
代码生成工作流包括:识别模式类型、阅读参考文档、生成代码、提供接线图与使用说明、在相关时建议与其他模式组合。
适用场景
需要为 Arduino 或嵌入式 C++ 项目生成实现代码,且能够明确指定开发板、框架、工具链、引脚、电压、内存和库版本的场景。内置模板面向 UNO、ESP32 和 RP2040。
限制
生成器的 board 标志仅作为模板选择器,并不证明所生成代码能在外观相似的开发板上工作。对于不支持的开发板或厂商框架行为,应以文档说明,而不是猜测。使用前需阅读共享契约与开发板配置,隔离开发板特定分支,检查内存与外设约束,并说明结果是仅有构建证明,还是同时具备上传、硬件和系统证明。其他具体收费、价格或平台信息暂未提供。