MimiClaw - 单片机 AI
约 1090 字大约 4 分钟
2026-03-07
单片机 AI - 运行在 5 美元 ESP32 芯片上的 AI Agent,功耗仅 0.5W,可用充电宝供电。
核心特性
极低功耗
- 功耗仅 0.5W
- 可用充电宝供电数天
- 深度睡眠模式支持
- 动态功耗管理
微型体积
- 运行在 ESP32 单片机
- 硬币大小的芯片
- 无需传统操作系统
- 完全嵌入式设计
实时系统
- 基于 FreeRTOS 微实时系统
- 任务优先级调度
- 中断驱动架构
- 确定性响应时间
闪存记忆
- 使用 SPIFFS 闪存文件系统
- 掉电不丢失记忆
- 4MB 存储空间
- 磨损均衡机制
快速开始
硬件要求
- ESP32 开发板(推荐 ESP32-DevKitC)
- USB 数据线
- 5V 电源或充电宝
开发环境
# 安装 ESP-IDF
git clone --recursive https://github.com/espressif/esp-idf.git
cd esp-idf
./install.sh
# 设置环境变量
. ./export.sh编译烧录
# 克隆仓库
git clone https://github.com/memovai/mimiclaw.git
cd mimiclaw
# 配置
idf.py menuconfig
# 编译
idf.py build
# 烧录
idf.py -p /dev/ttyUSB0 flash
# 查看日志
idf.py -p /dev/ttyUSB0 monitor技术架构
硬件架构
┌─────────────────────────────┐
│ ESP32 芯片 │
│ ┌─────────┐ ┌──────────┐ │
│ │ CPU 0 │ │ CPU 1 │ │
│ │ 240MHz │ │ 240MHz │ │
│ └─────────┘ └──────────┘ │
│ ┌─────────────────────────┐│
│ │ 520KB SRAM ││
│ └─────────────────────────┘│
│ ┌─────────────────────────┐│
│ │ 4MB Flash (SPIFFS) ││
│ └─────────────────────────┘│
│ ┌─────────────────────────┐│
│ │ WiFi/BLE 模块 ││
│ └─────────────────────────┘│
└─────────────────────────────┘软件架构
// FreeRTOS 任务结构
void ai_task(void *pvParameters) {
while (1) {
// 接收消息
char* message = receive_message();
// 调用 LLM API
char* response = call_llm_api(message);
// 存储记忆
store_memory(message, response);
// 发送响应
send_response(response);
// 进入低功耗模式
vTaskDelay(pdMS_TO_TICKS(100));
}
}网络通信
// TCP Socket 通信
int sock = socket(AF_INET, SOCK_STREAM, 0);
connect(sock, (struct sockaddr *)&server_addr, sizeof(server_addr));
// 发送请求
send(sock, request, strlen(request), 0);
// 接收响应
recv(sock, buffer, sizeof(buffer), 0);功能特性
WiFi 连接
// WiFi 配置
wifi_config_t wifi_config = {
.sta = {
.ssid = "YourSSID",
.password = "YourPassword",
},
};
esp_wifi_set_config(ESP_IF_WIFI_STA, &wifi_config);
esp_wifi_start();蓝牙通信
// BLE 服务器
esp_ble_gatts_create_service(gatts_if, &service_id, 4);
esp_ble_gatts_add_char(gatts_if, service_handle, &char_uuid,
ESP_GATT_PERM_READ | ESP_GATT_PERM_WRITE,
ESP_GATT_CHAR_PROP_BIT_READ | ESP_GATT_CHAR_PROP_BIT_WRITE,
&char_val, NULL);闪存存储
// SPIFFS 文件操作
FILE* f = fopen("/spiffs/memory.txt", "a");
fprintf(f, "%s\n", memory_content);
fclose(f);低功耗模式
// 深度睡眠
esp_sleep_enable_timer_wakeup(60 * 1000000); // 60秒后唤醒
esp_deep_sleep_start();
// 轻度睡眠
esp_light_sleep_start();适用场景
桌面 AI 摆件
- 放在桌面的智能助手
- 语音交互小玩具
- 极客装饰品
物联网设备
- 智能家居控制中心
- 传感器数据处理
- 边缘 AI 推理
低功耗场景
- 电池供电设备
- 太阳能供电系统
- 长时间无人值守
性能指标
| 指标 | 数值 |
|---|---|
| 功耗 | 0.5W (活跃) / 0.01W (睡眠) |
| 内存占用 | ~200KB RAM |
| 存储空间 | 4MB Flash |
| 响应延迟 | 100-500ms |
| WiFi 连接 | 802.11 b/g/n |
| 蓝牙 | BLE 4.2 |
开发指南
内存优化
// 使用静态分配避免碎片
static char buffer[1024];
// 及时释放内存
char* temp = malloc(size);
// 使用 temp
free(temp);
// 使用栈内存
void function() {
char local_buffer[256];
// 使用 local_buffer
}任务优先级
// 创建高优先级任务
xTaskCreate(critical_task, "Critical", 2048, NULL, 10, NULL);
// 创建低优先级任务
xTaskCreate(background_task, "Background", 2048, NULL, 1, NULL);看门狗定时器
// 初始化看门狗
esp_task_wdt_init(30, true);
esp_task_wdt_add(NULL);
// 喂狗
esp_task_wdt_reset();扩展功能
传感器集成
// DHT11 温湿度传感器
float temperature = read_dht11_temperature();
float humidity = read_dht11_humidity();
// 发送给 AI
char message[128];
sprintf(message, "当前温度 %.1f°C,湿度 %.1f%%", temperature, humidity);显示屏支持
// OLED 显示
#include "ssd1306.h"
ssd1306_init();
ssd1306_clear_screen();
ssd1306_draw_string(0, 0, "MimiClaw", 16, 1);
ssd1306_refresh_gram();语音识别
// I2S 麦克风
i2s_config_t i2s_config = {
.mode = I2S_MODE_MASTER | I2S_MODE_RX,
.sample_rate = 16000,
.bits_per_sample = I2S_BITS_PER_SAMPLE_16BIT,
// ...
};与其他版本对比
vs 官方版
- 官方版需要完整操作系统,MimiClaw 运行在单片机
- 官方版功耗数瓦,MimiClaw 仅 0.5W
- 官方版体积大,MimiClaw 硬币大小
vs Nanobot
- Nanobot 需要 Python 环境,MimiClaw 纯 C 语言
- Nanobot 内存 100MB+,MimiClaw 仅 200KB
- Nanobot 适合服务器,MimiClaw 适合嵌入式
vs NanoClaw
- NanoClaw 使用 Docker 隔离,MimiClaw 物理隔离
- NanoClaw 安全性更高,MimiClaw 功耗更低
- 应用场景完全不同
相关链接
- GitHub: memovai/mimiclaw
- ESP-IDF 文档: docs.espressif.com
- 硬件购买: 淘宝搜索 ESP32
- 问题反馈: Issues
贡献
欢迎嵌入式开发者贡献!
# 克隆仓库
git clone https://github.com/memovai/mimiclaw.git
# 运行单元测试
idf.py build
idf.py flash monitor许可证
MIT License - 详见 LICENSE