目录

OpenVela 智能环境管家 - 树莓派Pico 2适配方案

项目概述

本项目实现了OpenVela操作系统在树莓派Pico 2 (RISC-V)上的完整适配,并开发了具有实际应用价值的AI智能环境管家应用。

核心创新点

  • 新平台适配:RISC-V Pico 2完整BSP(路径B深度适配)
  • AI Agent框架:集成openvela内置AI Agent,支持多LLM后端
  • 新型传感器驱动:DHT22温湿度传感器一线协议驱动
  • PWM风扇控制:自动环境调节驱动
  • 多步推理演示:用户指令→自主决策→硬件控制闭环

目录结构

.
├── BSP/                          # 板级支持包(NuttX Pico 2)
│   └── boards/riscv_pico2/      
├── Drivers/                      # 新增硬件驱动
│   ├── sensors/dht22/           # DHT22温湿度传感器驱动
│   └── pwm/fan/                 # PWM风扇控制驱动
├── AI_Agent/                     # AI应用框架
│   ├── tools/                    # 自定义Tool(C语言)
│   ├── skills/                   # 自定义Skill(Markdown)
│   └── apps/                     # 应用程序
├── Documentation/                # 技术文档
├── Tests/                        # 测试脚本
└── README.md

文件清单

第一阶段:平台适配(40分)

系统启动与稳定性(10分)

  • BSP/boards/riscv_pico2/Kconfig - 板级配置
  • BSP/boards/riscv_pico2/defconfig - 默认配置
  • BSP/boards/riscv_pico2/src/board.c - 板级初始化
  • BSP/boards/riscv_pico2/scripts/ld.script - 链接脚本

网络连接(5分)

  • Network drivers配置(以太网/WiFi)
  • TLS支持配置
  • 外网连接测试脚本

OpenVela框架适配(10分)

  • AI Agent框架启动配置
  • uORB消息总线适配
  • 传感器数据发布器

新增外设驱动(10分)

  • Drivers/sensors/dht22/dht22.c - DHT22驱动
  • Drivers/pwm/fan/pwm_fan.c - 风扇控制驱动

BSP规范与文档(5分)

  • 移植指南
  • 硬件接线图
  • API参考

第二阶段:AI Agent应用(45分)

Agent运行与基础对话(10分)

  • AI_Agent/apps/smart_climate_agent.c - Agent应用程序
  • LLM配置脚本

Skill与Tool质量(15分)

Skills (Markdown)

  • AI_Agent/skills/environment_analyzer.md - 环境分析Skill
  • AI_Agent/skills/climate_control_advisor.md - 气候调节Skill
  • AI_Agent/skills/health_monitor.md - 健康监测Skill

Tools (C语言)

  • AI_Agent/tools/sensor_tools.c - 传感器读取工具
  • AI_Agent/tools/actuator_tools.c - 执行器控制工具

端到端演示(10分)

  • Tests/agent_integration_test.sh - 集成测试脚本
  • 演示场景脚本
  • 预期输出示例

应用创新性(10分)

  • 多步推理闭环设计
  • 硬件协作方案
  • 用户体验优化

快速开始

前置条件

# 硬件
- 树莓派Pico 2 (RISC-V版本)
- DHT22温湿度传感器
- 5V PWM风扇
- USB调试线

# 工具链
- riscv-none-elf-gcc (GNU RISC-V工具链)
- cmake 3.16+
- openocd (烧录工具)

编译步骤

cd BSP/boards/riscv_pico2
mkdir build && cd build
cmake .. -DCMAKE_TOOLCHAIN_FILE=../toolchain.cmake
make -j4

烧录与运行

# 烧录到Pico 2
openocd -f interface/picoprobe.cfg -f target/riscv-pico2.cfg \
  -c "program build/nuttx.elf verify reset"

# 连接串口控制台
minicom -D /dev/ttyACM0 -b 115200

# NSH Shell中启动Agent应用
nsh> smart_climate_agent

硬件接线

Pico 2引脚配置:

DHT22温湿度传感器:
  Pin1 (VCC)   → 3V3
  Pin2 (DATA)  → GPIO16
  Pin4 (GND)   → GND

PWM风扇:
  VCC → 5V
  GND → GND
  PWM → GPIO17 (PWM功能)

可选:RGB LED用于UI反馈
  R → GPIO18
  G → GPIO19
  B → GPIO20

详见 Documentation/Hardware_Wiring_Guide.md

AI应用演示

场景1:自动温度调节

用户输入:
nsh> agent
Agent> "现在太热了,帮我调节"

Agent推理过程:
1. 读取温度 (read_temperature) → 28.5°C
2. 读取湿度 (read_humidity) → 45%
3. 发给LLM分析
4. LLM决策:温度过高,启动风扇
5. 执行 control_fan(80)
6. 返回结果

输出:
"已将风扇调至80%速度。当前温度28.5°C,湿度45%。
 预计5分钟降温到26°C。舒适度评分:78/100"

场景2:健康监测

用户输入:
Agent> "今天运动量怎么样?"

工具调用:
1. get_step_count() → 8500步
2. get_heart_rate() → 72 bpm
3. get_activity_time() → 2.5小时

LLM分析:
"今天运动量适中。建议增加30分钟有氧运动。
 心率正常,保持当前节奏。"

提交物列表

代码部分

  • BSP代码 → 提交到 openvela/nuttx-boards
  • 驱动代码 → 提交到 openvela/nuttx/drivers
  • Tool和Skill → 提交到 openvela/packages/ai_agent

文档部分

  • 技术报告(中文+英文)
  • 移植指南
  • 硬件接线图
  • API参考文档
  • 演示视频(3-5分钟)

测试与验证

  • 通过openvela官方准入测试集
  • 长时间运行测试(8+小时)
  • 功能演示视频

技术参数

系统资源

  • CPU: ARM Cortex-R5 @ 150 MHz (Pico 2)
  • RAM: 264 KB
  • Flash: 2 MB
  • 网络: USB WiFi模块或以太网适配器
  • 传感器: DHT22 (温度:-40~80°C, 精度±0.5°C)

性能指标

  • Agent推理延迟: ~800ms-2s (取决于LLM响应)
  • 传感器采样: ~2Hz
  • 内存使用: ~180KB (内核 + Agent框架)
  • 功耗: ~0.5W (idle) ~ 1.2W (working)

参考资源

许可证

本项目代码采用 Apache License 2.0 开源,遵循openvela社区规范。

作者与联系

  • 项目: OpenVela智能环境管家(Pico 2适配版)
  • 赛题联系: 闫老师 v-yanxingyu@xiaomi.com
  • 技术交流: openvela官方GitHub Issues / 技术交流群

最后更新: 2026-07-27

关于
329.2 MB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802047560号