版本协议

Public Domain

专业版
#第十届立创电赛#AI对话机器人10339632A

创建时间:4周前

51 0

描述

<h2>视频链接:</h2> <p>【基于SF32LB52的小智ai对话机器人功能介绍-哔哩哔哩】 <a href="https://b23.tv/MfjeurA" target="_blank">https://b23.tv/MfjeurA</a></p> <h2>项目简介</h2> <p>本项目是基于SF32LB52的小智AI对话机器人,具有看天气,看时间,听音乐及ai对话功能</p> <h2>项目功能</h2> <p>本设计是基于 SF32LB52 双模蓝牙 MCU 模组设计的小智 AI 对话机器人;系统集成了语音识别与播报模块,支持本地按键交互和语音指令,设置有2个独立按键,其中一个按键设置用于备用,另一个按键用于休眠时唤醒小智,实现人机语音交互的触发、当接收到语音指令后,系统通过本地处理或云端交互实现语义理解,并通过语音播报模块进行智能回复,同时配合 1.69寸TFT屏幕和喇叭提供状态提示与交互反馈,实现一个低功耗、高响应的嵌入式人工智能对话终端。</p> <h2>项目参数</h2> <p>本设计采用 LM4871 音频功率放大芯片驱动扬声器,配合模拟音频输出电路,在无外部专用语音合成模块的情况下实现清晰的语音播报。</p> <p>本设计采用 1.69 英寸 TFT 液晶显示屏,通过 SPI 协议由 SF32LB52 主控驱动,屏幕上方区域实时显示当前时间与天气信息,下方状态栏动态更新蓝牙连接状态、设备电量; 选用麦克风作为语音输入单元,直接接入 SF32LB52 的模拟音频输入通道,利用芯片内部 ADC 与降噪算法实现本地语音采集,支持近场语音识别与关键词唤醒功能; 当用户发出语音指令后,系统通过蓝牙连接手机网络将音频流传输至云端“小智AI”进行语义理解,并将回复文本返回本地,经语音合成后通过扬声器播报,实现低功耗、高响应的智能人机对话体验。</p> <h2>原理解析(硬件说明)</h2> <p>本项目由以下部分组成:电源部分、主控部分、麦克风输入部分、音频功放输出部分、TFT 显示部分、按键输入部分和状态指示灯部分。系统以 SF32LB52 为核心,通过麦克风采集用户语音指令,经片内 ADC 处理后,通过蓝牙连接手机网络上传至云端“小智AI”进行语义解析,并将回复文本本地合成语音播放,实现智能人机对话。</p> <ol> <li>电源部分 <img src="https://image.lceda.cn/oshwhub/pullImage/ab7e2e88c98b4cd68f38bb68479e4127.png" alt="image.png"> 示例图1--电池和开关电路 本项目采用 CR123A 锂电池供电,直接连接到模组的 VSYS 引脚。该模组支持 3.7V~4.7V 的电压范围,因此使用 CR123A 电池(标称电压 3.6V)非常合适。为了确保低功耗运行,模组的 VDD33_VOUT2 输出由软件控制,只有在芯片正常启动后才会提供 3.3V 电压。这种设计使得系统能够在不使用时关闭大部分功能,从而降低整体功耗。</li> <li>主控部分 <img src="https://image.lceda.cn/oshwhub/pullImage/acea06976bf34a72894ee692ae346559.png" alt="image.png"> 示例图2--主控电路: 本项目采用立创·开源SF32LB52模组作为主控芯片,该模组集成了 8MB PSRAM 和 16MB Flash,支持 240MHz 高频工作。模组内置 BLE 功能,能够直接连接手机上网,相比传统 WIFI 方案具有更低的功耗。模组的低功耗特性非常适合电池供电场景,BLE 连接功耗仅为 7μA(1S间隔),BT 连接功耗为 10μA(1S间隔),双连接模式下的功耗比单 BT 连接还能降低 60%。</li> <li>麦克风输入部分 <img src="https://image.lceda.cn/oshwhub/pullImage/ff4dfb8ed0974cf0aeb4b9b2e49ce2c7.png" alt="image.png"> 示例图3--麦克风电路: 麦克风采用驻极体材料,自带永久电荷,无需外部供电即可工作。为了确保麦克风稳定工作,通过 R3(10KΩ)电阻提供一个基准电压 MIC_BIAS,该电压由模组控制输出。R3 的阻值经过测试,既能保证音频信号的有效采集,又不会引入过多噪声。U2 电容用于滤除高频噪声,确保采集到的声音信号清晰无杂音。</li> <li>音频功放输出部分 <img src="https://image.lceda.cn/oshwhub/pullImage/195808e1be924c50a97c86203baf73d4.png" alt="image.png"> <img src="https://image.lceda.cn/oshwhub/pullImage/1bb8665d4e914378ab2e035c3f7cdb43.png" alt="image.png"> 示例图4--音频功放与喇叭电路: 音频功放采用 LM4871 芯片,是一款 3W 单声道 AB 类音频功率放大器,工作电压范围为 1.9V~5.5V。根据数据手册推荐的典型应用电路,本项目采用差分输入模式。LM4871 的 Shutdown 引脚通过 R4 电阻默认拉高,使功放处于关闭状态以节省功耗。当需要使用功放时,主控的 PA26 引脚输出低电平,使功放正常工作。</li> <li>TFT 显示部分 <img src="https://image.lceda.cn/oshwhub/pullImage/55cf3e8eea494aafb68159a1d07626ca.png" alt="image.png"> 示例图5--屏幕电路: 屏幕采用 1.69 寸 TFT 液晶屏,分辨率为 240x280,通过 SPI 协议与主控通信。屏幕供电电压为 3.3V,SPI 通信引脚可以选择主控的硬件 SPI 外设,以实现更高的通信速率和更快的屏幕刷新。屏幕显示时间、天气、蓝牙连接状态、设备电量等信息,为用户提供直观的交互界面。</li> <li>按键输入部分</li> </ol> <p><img src="https://image.lceda.cn/oshwhub/pullImage/9f8c9b129f014606afc438f914ad47c4.png" alt="image.png"> 本项目使用两个按键进行控制。U4 按键(PA34_KEY)是唤醒键 + 语音输入键,按下该按键可以让主控从低功耗睡眠状态唤醒,当主控正在工作时,按下按键进行语音输入。U3 按键目前待定用途,设计出来备用。</p> <ol> <li>状态指示灯部分 <img src="https://image.lceda.cn/oshwhub/pullImage/9a1d55cf60384058a5ce25957bb5e0b9.png" alt="image.png"> 示例图7--LED电路: 状态指示灯采用翠绿色 LED,通过模组 IO 控制。IO 输出低电平时 LED 灯亮,IO 输出高电平时 LED 灯灭。该指示灯用于显示模组的工作状态,帮助用户了解系统的运行情况。</li> </ol> <h2>软件代码</h2> <p>软件开源地址:<a href="https://github.com/78/xiaozhi-sf32" target="_blank">https://github.com/78/xiaozhi-sf32</a></p> <h2>注意事项</h2> <ul> <li>项目原理图中的 R7 和 R8 电阻跟声音大小成线性关系,两个电阻越大,声音越小;两个电阻越小,声音越大。但是声音的大小始终不会超过喇叭的实际可输出声音大小。毕竟该芯片只有 1W 的功放输出。 W 数越大,功率越高,耗电越大,声音越响。</li> </ul> <h2>组装流程</h2> <p>因为我没有打印外壳,所以组装流程更多涉及的是对插片元器件的焊接,ai训练营为了便于焊接除主控外,均属于插件器件,所以焊接难点是主控,先将焊盘表面涂上助焊剂,然后对准引脚,先固定一点,接下来慢慢焊接,使用刀头烙铁头,慢慢引出引脚,连锡了用烙铁轻轻点一下,将多余的锡带走,主要是要有耐心,新手切勿尝试使用拖焊,往往控制不好力度,会导致主控报废,如下是我焊接报废的一块主控板<img src="https://image.lceda.cn/oshwhub/pullImage/5d0facb24ad842f08fbad44b978c7238.png" alt="image.png"> 还有就是我的布局有点问题,没有考虑屏幕的空间导致屏幕翘起来了</p> <p><img src="https://image.lceda.cn/oshwhub/pullImage/8ab8ce66747347f587cafda2ff7b9b5f.png" alt="image.png"></p> <h2>程序烧录</h2> <p>程序开源地址:<a href="https://github.com/78/xiaozhi-sf32" target="_blank">https://github.com/78/xiaozhi-sf32</a> 最新固件下载地址:<a href="https://github.com/78/xiaozhi-sf32/releases/tag/v1.3.3" target="_blank">https://github.com/78/xiaozhi-sf32/releases/tag/v1.3.3</a> 使用sftool工具烧录固件,打开终端之后输入如下命令(Windows): !!!需要注意的是:命令中的 ./sftool.exe 中的斜杠,在不同操作系统中有不同的表现: windows是反斜杠,linux是斜杠。 下面是1.2.0-1.2.2版本的烧录命令: ./sftool.exe -p COM3 -c SF32LB52 write_flash bootloader.bin@0x12010000 ftab.bin@0x12000000 ER_IROM2.bin@0x12A28000 ER_IROM3.bin@0x12228000 ER_IROM1.bin@0x12020000 1.3.0版本则应该使用下列命令: ./sftool.exe -p COM3 -c SF32LB52 write_flash bootloader.bin@0x12010000 ftab.bin@0x12000000 ER_IROM2.bin@0x12A28000 ER_IROM3.bin@0x12268000 ER_IROM1.bin@0x12020000 bootloader.bin、ER_IROM2.bin、ER_IROM3.bin、ER_IROM1.bin 和ftab.bin是你下载的固件文件名,建议使用绝对路径引用,如果路径中出现中文或者空格请用"将路径括起来。 其中COM3是你连接开发板的串口号,可能会有所不同,请根据实际情况修改。 可以打开设备管理器查看对应串口号:'COM'后面接着的数字就是串口号 没有意外的话,烧录完成之后会自动重启运行,屏幕应该被点亮。</p> <h2>实物图</h2> <p>最后成品如图所示, <img src="https://image.lceda.cn/oshwhub/pullImage/80064ac88794479096fb122cef8f4ad7.png" alt="image.png"></p> <p><img src="https://image.lceda.cn/oshwhub/pullImage/445cf66165c745eaab28869a5894258d.png" alt="image.png"> 没有外壳确实不好看,不过我这个要加外壳还需要重新布局和布线留出屏幕的放置空间,只能后续有时间再改正了。</p>

文档

BOM

暂无

附件

附件名 下载
sf32lb52-xty-ai-tht (1.3.3 and sftool).zip

评论(0)

  • 表情
    emoji
    小嘉工作篇
    小嘉日常篇
  • 图片
成功
工程所有者当前已关闭评论
goToTop
svg-battery svg-battery-wifi svg-books svg-more svg-paste svg-pencil svg-plant svg-ruler svg-share svg-user svg-logo-cn svg-double-arrow