CI-03T 离线语音模组图形化编程完全指南:从零到实战
对于嵌入式开发初学者或非专业开发者来说,编写 C 代码可能是一个不小的门槛。幸运的是,SmartPi 的 CI-03T/CI-33T 系列离线语音模组支持使用米思奇(Mixly)进行图形化积木编程,开发者无需编写一行 C 代码即可实现语音控制、串口通信等复杂功能。 官方提供了一体化安装包,包含: 下载地址:米思奇软件安装和模块导入 !!! tip "重要提示" 使用前请务必将米思奇软件更新到 Mixly 2.0 rc4 版本!绝大多数报错都是版本不一致导致的。 !!! warning "常见错误" 不要试图选择单个 将 CI-03T 模组与 CH340 USB 转串口模块连接: 连接完成后,通过 USB 线将 CH340 接入电脑。 本案例实现:对 CI-03T 说"打开空调",Arduino 点亮 LED;说"关闭空调",LED 熄灭。 CI-03T 与 Arduino 连接: LED 连接到 Arduino Pin 13(板载 LED)或外接 LED。 在米思奇中搭建以下逻辑: 可能原因: 解决方案: 可能原因: 解决方案: 可能原因: 解决方案: 可能原因: 解决方案: 问题描述:在 Mixly 平台生成固件时,等待时间过长,半节课仍未完成。 !!! warning "注意事项" 变量播报需要使用专门的"播报变量"积木块 不能直接将变量放入文本播报中 在米思奇中使用 U8g2 库驱动 SSD1306 显示中文: 米思奇图形化编程为 CI-03T 离线语音模组提供了零门槛的开发方式。通过拖拽积木块,开发者可以快速实现: 上手清单: 图形化编程不仅是学习嵌入式开发的起点,也是快速验证创意想法的有力工具。从简单的 LED 控制开始,逐步探索语音交互的无限可能。 相关标签:CI-03T、米思奇、图形化编程、Arduino、串口通信、离线语音、积木编程前言
本文将系统介绍如何从零开始搭建 CI-03T 的图形化开发环境,并实现与 Arduino 的串口通信交互。所有技术参数已与官方文档交叉验证。为什么选择图形化编程?
传统代码开发 vs 图形化编程
对比项 传统 C 代码开发 米思奇图形化编程 学习门槛 需要掌握 C 语言语法 拖拽积木块,无需代码基础 开发效率 需要手动编写编译配置 可视化配置,所见即所得 调试难度 需要熟悉串口调试工具 内置调试功能,问题定位直观 适用人群 专业嵌入式开发者 创客、学生、快速原型开发者 支持的模组型号
开发环境搭建
第一步:下载安装包
第二步:安装 Notepad++ 并配置账号
CI-03T安装包/ci03t/build 目录下的 blockTool.exe.config 文件<appSettings>
<add key="username" value="your_smartpi_username" />
<add key="password" value="your_smartpi_password" />
</appSettings>第三步:更新米思奇软件
打开米思奇安装包,选择 "一键更新"。建议多更新两次,确保更新到位。第四步:导入 CI-03T 板卡
rc4_ci03t 文件夹.java 或 .xml 文件,应选择整个 rc4_ci03t 文件夹。第五步:硬件连接
CI-03T 引脚 CH340 引脚 说明 TX RX 发送 → 接收(交叉连接) RX TX 接收 → 发送(交叉连接) GND GND 共地 5V/3.3V 5V/3.3V 供电保持一致 实战案例:语音控制 Arduino LED
硬件准备
硬件连接
CI-03T 引脚 Arduino 引脚 TX RX (Pin 0) RX TX (Pin 1) GND GND 5V 5V 米思奇积木编程
┌─────────────────────────────────────┐
│ 当设备启动时 │
└──────────────┬──────────────────────┘
│
▼
┌─────────────────────────────────────┐
│ 初始化串口:波特率 9600 │
└─────────────────────────────────────┘
│
┌────────┴────────┐
│ │
▼ ▼
┌─────────────┐ ┌─────────────┐
│识别"打开空调"│ │识别"关闭空调"│
└──────┬──────┘ └──────┬──────┘
│ │
▼ ▼
┌─────────────┐ ┌─────────────┐
│串口发送"AC_ON"│ │串口发送"AC_OFF"│
└─────────────┘ └─────────────┘Arduino 代码
void setup() {
// 初始化串口通信,波特率与 CI-03T 保持一致
Serial.begin(9600);
// 设置 Pin 13 为输出模式
pinMode(13, OUTPUT);
}
void loop() {
// 检查串口是否有数据
if (Serial.available() > 0) {
// 读取串口字符串
String cmd = Serial.readString();
// 去除换行符
cmd.trim();
// 根据命令执行操作
if (cmd == "AC_ON") {
digitalWrite(13, HIGH); // 点亮 LED
} else if (cmd == "AC_OFF") {
digitalWrite(13, LOW); // 熄灭 LED
}
}
}上传与测试
常用积木指令参考
流程控制积木
积木块 功能说明 顺序执行 按顺序执行连接的积木块 如果…那么…否则… 条件判断语句 重复 N 次 循环执行指定次数 一直重复 无限循环 变量与运算积木
积木块 功能说明 创建变量 创建数字/文本/布尔变量 设置变量为 给变量赋值 变量 + 数字 数值运算(加减乘除) 变量 = 数字 比较运算(大于/小于/等于) 串口通信积木
积木块 功能说明 初始化串口 设置波特率(9600/115200) 串口发送字符串 向外部设备发送文本 串口发送数字 向外部设备发送数值 串口接收字符串 从外部设备读取数据 硬件控制积木
积木块 功能说明 设置数字引脚 输出高/低电平 设置 PWM 输出 调节亮度或速度 读取数字引脚 读取按键或传感器 读取模拟引脚 读取电位器或模拟传感器 常见问题排查
问题一:上传卡住或报错
blockTool.exe.config 账号密码错误问题二:串口接收不到数据
问题三:语音指令无法识别
问题四:提示"不是内部或外部命令"
build 文件夹中是否存在 blockTool.exeC:\Mixly)问题五:Mixly 固件生成过慢
解决方案:进阶技巧
使用变量播报
┌─────────────────────────────────────┐
│ 设置变量"温度"为 25 │
└──────────────┬──────────────────────┘
│
▼
┌─────────────────────────────────────┐
│ 播报变量"温度" │
└─────────────────────────────────────┘与 SSD1306 OLED 显示屏配合
#include <U8g2lib.h>
U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0);
void setup() {
u8g2.begin();
u8g2.setFont(u8g2_font_chinese16_1); // 设置中文字体
}
void loop() {
u8g2.clearBuffer();
u8g2.setCursor(0, 10);
u8g2.print("你好"); // 显示中文
u8g2.sendBuffer();
}学习资源
资源类型 链接 官方 Block 文档 https://help.aimachip.com/docs/block Mixly 官方手册 https://mixly.org/ 智能公元平台 https://smartpi.cn/ 新手入门视频 https://www.bilibili.com/video/BV1e8411T77q/ 基础教程视频 https://www.bilibili.com/video/BV11Y4y197LB/ 总结
参考资源
资源类型 链接 官方 Block 文档 https://help.aimachip.com/docs/block Mixly 官方手册 https://mixly.org/ 智能公元平台 https://smartpi.cn/ 新手入门视频 https://www.bilibili.com/video/BV1e8411T77q/ 基础教程视频 https://www.bilibili.com/video/BV11Y4y197LB/