项目介绍
小智 AI 是 虾哥 制作并开源的一个 硬件 AI 聊天机器人 。它搭载上了近期热门的 AI 大模型,具有超越传统语音助手的智能水平。小智 AI 能够准确理解用户的意图,实现多语种实时翻译、情感化语音交流,并能主动思考,提供更加智能的服务。
使用黄山派,通过蓝牙-pan协议共享手机网络,实现网络连接,进而连接AI模型,实现与小智面对面语音交互。现已开源至思澈的github,欢迎大家使用。
Git拉取
注:前置准备是需要安装 git 工具,如果没有安装请参考疑难解答。
目前源码仅托管在 GitHub,使用以下命令克隆源码:
git clone --recursive https://github.com/78/xiaozhi-sf32.git
需要注意的是,--recursive 参数是必须的,因为我们使用了子模块来管理依赖库。如果你忘记添加这个参数 clone 的话,请使用下面的命令重新拉取子模块 (submodule):
git submodule update --init --recursive
安装工具
xiaozhi 工程默认将 SiFli-SDK 作为一个子模块来引入。编译之前我们需要先安装 SiFli-SDK 工具,如果你之前已经安装过 SiFli-SDK 工具,可以跳过此步骤。
切换到 sdk 目录下,执行以下命令:
cd sdk
.\install.ps1
2
cd sdk
./install.sh
2
设置环境变量
安装完成之后,我们还需要设置环境变量,同样切换到 sdk 目录下,执行以下命令:
cd sdk
.\export.ps1
2
cd sdk
./export.sh
2
固件编译
注:若只是体验可以直接去下载小智固件
我们的工程在app/project目录下,因此进入该目录下,执行以下命令:
cd app/project
scons --board=sf32lb52-lchspi-ulp -j8
2
需要注意的是,这一步必须要在设置环境变量完成之后才能进行。
注:在 scons 命令中,--board 参数指定了编译的目标板子,-j8 参数指定了编译的线程数,可以根据自己的电脑性能进行调整。
编译成功之后会出现以下提示:
硬件准备
1、短接引脚
首先需要短接开发板的三对引脚,如图,这三对引脚是用来测量功耗的跳线,正常使用时需要将其短接。
- 5-6脚用来测试VBAT路径功耗,可以把电池和充电芯片与下游断开。
- 7-8脚用来测试VSYS路径功耗,可以把VSYS与下游断开
- 11-12脚用来测试VCC_3V3路径功耗,可以把VCC_3V3与下游断开
- 正常运行时要求:5-6、7-8和11-12脚加跳线帽短接, 不要插错了,不要插错了,不插错了,重要的事情说三遍
2、连接喇叭
应该将喇叭连接到开发板的SPK接口上,连接我们送的喇叭。
3、准备一块390*450 AMOLED屏 和 FPC转接线,连接时注意FPC转接线的面板方向,参考下图所示。
FPC转接线双面展示
4、最终硬件连接
烧录工具
下载最新版本的小智 AI 固件,通过 sftool 的 Flash 烧录工具(sftool),先将黄山派开发板中原本的代码擦除,再选择小智AI的固件进行下载。
https://github.com/OpenSiFli/sftool/releases
注:用最新版即可
烧录步骤
sftool 工具烧录
1、首先需要短接开发板的三对引脚
如图,这三对引脚是用来测量功耗的跳线,正常使用时需要将其短接。
- 5-6脚用来测试VBAT路径功耗,可以把电池和充电芯片与下游断开。
- 7-8脚用来测试VSYS路径功耗,可以把VSYS与下游断开
- 11-12脚用来测试VCC_3V3路径功耗,可以把VCC_3V3与下游断开
- 正常运行时要求:5-6、7-8和11-12脚加跳线帽短接, 不要插错了,不要插错了,不插错了,重要的事情说三遍
sftool的基本命令格式
sftool [选项] 命令 [命令选项]
-c, --chip <CHIP>: 目标芯片类型 (目前支持SF32LB52)
-m, --memory <MEMORY>: 存储类型 [nor, nand, sd] (默认: nor)
-p, --port <PORT>: 串行端口设备路径
-b, --baud <BAUD>: 闪存/读取时使用的串口波特率 (默认: 1000000)
--before <OPERATION>: 连接芯片前的操作 [no_reset, soft_reset] (默认: no_reset)
--after <OPERATION>: 工具完成后的操作 [no_reset, soft_reset] (默认: soft_reset)
--connect-attempts <ATTEMPTS>: 连接尝试次数,负数或0表示无限次 (默认: 7)
--compat : 兼容模式,如果经常出现超时错误或下载后校验失败,则应打开此选项。
2
3
4
5
6
7
8
9
10
1、在文件夹空白处,右键以终端打开,输入以下命令,替换串口设备端口号以及固件文件路径,其他选项参数使用默认即可
.\sftool.exe -c SF32LB52 -p com12 write_flash bootloader.bin@0x12010000 main.bin@0x12020000 ftab.bin@0x12000000
接收说明
.\sftool.exe -c SF32LB52 -p <端口号> write_flash <文件路径><烧写地址>
注:如果是Linux/macOS用户,请把 .\sftool.exe
替换为 ./sftool
。另外,macOS用户请使用 /dev/cu. 开头的串口号,例如 /dev/cu.wchusbserial585D0190531
bat烧录
如果是拉取下来的代码我们可以不用 sftool 工具,直接使用 uart_download.bat 来烧录,烧录步骤如下所示:
烧录命令:
build_sf32lb52-lchspi-ulp_hcpu\uart_download.bat
下载程序到开发板,当提示please input serial port number ,这里就该输入我们查到端口号,我这里是 COM12 ,输入 12 即可。
蓝牙使用注意事项
在连接板子设备之前,请打开手机的蓝牙网络共享功能!!!
Android蓝牙使用注意事项
![]() | ![]() | ![]() |
---|
iOS蓝牙使用注意事项
iOS同样需要打开蓝牙共享网络功能,以下是参考步骤
![]() | ![]() | ![]() |
---|
⚠ 注意:如果iOS在蓝牙列表未看见sifli-pan 设备,请尝试重启手机。
开始使用
正确烧录固件后,开发板初始化界面如下:
激活设备
烧录固件之后,确保蓝牙共享网络已打开,这时,手机就可以连接蓝牙 sifli-pan 设备了。 以下是Android手机连接状态示例图:
⚠ 注意:一般情况下,Android连接成功后,连接的蓝牙设备会显示正在向设备共享网络(iOS不会显示),我们可以以此确定是否成功开启蓝牙网络共享
连接上sifli-pan设备后,开发板会有连接画面提示,此时按下对话按键(KEY2),xiaozhi则会提示需要登录到控制面板,填设备码。 这个时候,打开浏览器,输入网址:xiaozhi.me 浏览器用手机或者电脑都可以。 进入小智 AI 的网页后,点击控制台,用手机号登录。
![]() | ![]() | ![]() |
---|
新建智能体填写,最后添加设备码。可以这个时候就可以正常使用了。
![]() | ![]() |
---|
![]() | ![]() |
---|
界面提示含义
出现下方ui提示均是pan断开的情况
异常情况:
- 对应手机的显示可能是未打开蓝牙共享直接连接sifli-pan设备
- 蓝牙共享网络关闭
- 蓝牙已断开
- 解决方案:打开蓝牙共享网络重新连接设备
下图为蓝牙连接成功但未开启蓝牙共享网络:
唤醒&重连
唤醒
长时间未对话小智会进入休眠,此时需要按下KEY1进行唤醒
重连
支持重连操作:若无主动删除手机匹配列表下的sifili-pan设备,当按下KEY1也可进行蓝牙重连
![]() | ![]() |
---|