0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于博流BL606P音视频开发板的智能音箱系统开发方案

芯片开放社区 来源:芯片开放社区 2023-06-06 17:11 次阅读

编辑语:

芯片开放社区(OCC)面向广大开发者推出应用实战系列内容,通过分享开发者实战开发案例,总结应用开发经验,梳理开发中的常见问题及解决方案,为后续参与的开发者提供更多参考与借鉴。

本文是关于开发者 乔帮主分享了在Docker环境下,基于博流BL606P音视频开发板,进行智能音箱系统搭建的完成过程。按照文中步骤操作后,你将得到一个可以进行对话的智能音箱。

01背景

平头哥给我提供了一套博流BL606P音视频开发板评测:

2a9f7a16-0448-11ee-90ce-dac502259ad0.jpg 2ac89590-0448-11ee-90ce-dac502259ad0.jpg

这套BL606P开发板是由博流科技研发,基于平头哥的XTC906和E907,集成度较高,非常适合用于智能音箱系统。

开发套件提供了主控板、按键板,还提供了4欧3W的喇叭,还有按键板连接线和支撑柱,开箱连接好就能用了。

2afc4d2c-0448-11ee-90ce-dac502259ad0.jpg

2b4353f2-0448-11ee-90ce-dac502259ad0.jpg

另外,这块板子上,还板载调试器,使用Type-C连接电脑后,就能够直接进行调试和固件烧录了,不需要单独配调试器。

我这边一向习惯使用Docker来搭建Linux开发环境,所以这次也不例外。不过,要进行固件烧录,目前还得借助Windows上运行的T-Head-DebugServer。

02Docker搭建基础环境

首先我们要搭建一个基于Ubuntu18.04版本的基础环境,并安装好基础工具包,以及设置好Python3作为默认Python环境。

以下是具体的步骤:

# 主机
# docker启动
mkdir projects
docker run -v $(pwd)/projects:/root/projects --name BL606P -it ubuntu:18.04

#docker内
# 基本工具安装
cd /root
apt update && apt -y install sudo vim

# apt更新安装基础工具包
sudo apt update
sudo apt upgrade
sudo apt install build-essential git curl lsof ping unzip

# 安装ppa
sudo apt install -y software-properties-common
sudo add-apt-repository ppa:deadsnakes/ppa #看到Enter就回车

# 安装python3.7
sudo apt install python3.7

# 更新指向
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.6 1
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.7 2

sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.7 2

sudo update-alternatives --config python
sudo update-alternatives --config python3

sudo apt autoremove

# 安装pip
sudo apt install python3-dev
sudo apt install python3-pip
sudo update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 1
sudo apt install python3-dev

# 检查Python安装结果:
python -V && python3 -V

最终输出如下,说明基础环境设置成功:

2b6dc34e-0448-11ee-90ce-dac502259ad0.jpg

03YoC工具链安装

XT系列芯片SDK编译,在Linux下使用yoc工具来进行,通过Python的包管理工具,可以很方便地安装。

具体步骤如下:

# 安装yoctools
sudo pip install yoctools -U

# 安装工具链
sudo yoc toolchain --riscv -f
ls /usr/local/thead/riscv64-unknown-elf

# 查看yoc版本
yoc -V

最终输出结果如下,说明安装成功:

2b8c5e76-0448-11ee-90ce-dac502259ad0.jpg

2ba760b8-0448-11ee-90ce-dac502259ad0.jpg

04开发板的连接

将BL606P开发板连接到Windows电脑上之前,需要做好跳线设置。

参考官方提供的原理图:

2bbe06c4-0448-11ee-90ce-dac502259ad0.jpg

然后对照开发板的跳线进行设置:

2be68a86-0448-11ee-90ce-dac502259ad0.jpg

本质上,就是把GPIO16-19,连接到TCK、TDI、TMS、TDO,这样Type-C连接到电脑后,就能够直接对接到调试端口了。

然后使用Type-C,将开发板的UART接口,连接到Windows电脑:

2c1cae5e-0448-11ee-90ce-dac502259ad0.jpg右边的Type-C接口,只是用于供电的,不能用于调试通信。 

05安装 T-Head-DebugServer 调试工具

Windows安装T-Head-DebugServer

Windows可以直接下载 T-Head-DebugServer-windows 版本进行安装即可。下载地址:https://occ.t-head.cn/community/download?id=4133634465765330944

T-Head-DebugServer默认需要1025端口,所以启动前,先检查该端口是否被占用,可在Windows黑窗口执行下面的命令检查:

netstat -aon | findstr LISTEN | findstr 1025

如果输出端口被占用了,上述命令会输出对应的PID信息,可以到任务管理器中查看是什么进程占用了,停止它即可。

其他成功后,界面如下:

2c382116-0448-11ee-90ce-dac502259ad0.jpg

上述界面输出的最后一行,显示了用于远程连接的地址和端口,需要记好,在Docker的Linux环境下面需要使用。

target remote 192.168.1.47:8025

Linux安装:T-Head-DebugServer

Docker环境中的Linux系统上,需要下载 T-Head-DebugServer-linux-x86_64 版本,在上述地址下载,解压后,直接执行解压得到的shell文件安装即可:

2c693d46-0448-11ee-90ce-dac502259ad0.jpg

在Linux环境中,也可以检查1025端口是否被占用,对应的指令如下:

lsof -i:1025

安装好以后,再执行下面的命令启动T-Head-DebugServer:

DebugServerConsole -setclk 8 -port 1025

06测试基础功能开发

上述环境搭建好以后,可以使用官方提供的HelloWorld进行测试,使用如下的步骤,在Docker中的Linux环境下,下载编译HelloWorld工程:

mkdir ~/test
cd ~/test
yoc init
yoc install helloworld
cd solutions/helloworld
make SDK=sdk_chip_bl606p_e907

在上述命令中,使用yoc工具,可以很方便地管理和下载源码。

最后一步完成编译,输出如下:

2ca45368-0448-11ee-90ce-dac502259ad0.jpg

经过上面的步骤, HelloWorld已经编译完毕,可以用于烧录测试了。

在第四节【安装 T-Head-DebugServer 调试工具】中,得到了远程调试的地址和端口,要在Docker中的Linux环境下进行烧录,只需要将gdb烧录配置文件中地址和端口,修改为远程调试端口即可,具体命令如下:

sed -i 's#localhost8025#' gdbinitflash

然后,再执行下面的命令进行烧录:

make flashall SDK=sdk_chip_bl606p_e907

烧录过程中,Windows上的T-Head-DebugServer会有如下的信息输出:

2cc02a5c-0448-11ee-90ce-dac502259ad0.jpg

其中"Get connection from 192.168.1.100",表示来自这个IP的远程调试连接,也就是Docker中的Linux连上来了。

make flashall烧录命令执行成功后,具体输出如下:

2ce843fc-0448-11ee-90ce-dac502259ad0.jpg

现在,可以关闭 Windows上的T-Head-DebugServer 工具,然后使用串口工具连接开发板,波特率使用 2000000,然后重启开发板,就能收到如下的输出信息:

2d1dd918-0448-11ee-90ce-dac502259ad0.jpg

看到【hello world】,说明我们的基础开发烧录运行搞定,下面可以开始进行智能音箱功能的开发烧录测试了。

07智能音箱系统搭建

平头哥为bl606提供了SDK_longyuan,用于智能音箱系统的基础开发,类似上面的HelloWorld,也使用yoc工具进行操作,具体步骤如下:

cd ~/test
yoc install smart_speaker_v2
cd solutions/helloworld
cp package_bl606p_mind.yaml package.yaml
make clean && make

但是在最后make编译的过程中,会出现找不到ao.h文件的问题:

2d473e0c-0448-11ee-90ce-dac502259ad0.jpg

经过一番了解,正确获取该工程的步骤应该如下:

mkdir ~/longyuan
cd ~/longyuan
yoc init
yoc install sdk_longyuan
cd solutions/smart_speaker_v2
cp package_bl606p_mind.yaml package.yaml
make clean && make

编译成功后,输出如下:

2d722edc-0448-11ee-90ce-dac502259ad0.jpg

然后,进行烧录,具体步骤如下:

sed -i 's#localhost8025#' gdbinitflash
make erasechip #擦除
make flashall  #烧录全量镜像
make flash     #仅烧录应用镜像

类似HelloWorld,第一步是设置远程调试地址,所以需要先关闭串口工具,并打开Windows上的T-Head-DebugServer 工具,再执行上面的烧录指令。

烧录完成后,输出如下:

2d928bd2-0448-11ee-90ce-dac502259ad0.jpg

烧录完成后,再次关闭Windows上的T-Head-DebugServer 工具,然后使用串口工具连接到开发板,重启开发板后,会进入基础shell环境,并提示进行WiFi连接设置,此时要使用如下的指令:

kv set wifi_ssid0 OpenBSD
kv set wifi_psk0 13581882013
reboot

再次重启成功后,喇叭就会发声,网络连接成功,天猫精灵欢迎。

按照正常逻辑,此时就可以说【天猫精灵】唤醒,进行对话了。

实际使用时,说【天猫精灵】唤醒后,马上就死机了,反复尝试都是直接崩溃了。

又经过一番了解,原来,需要降级编译链才行。

具体步骤如下:

从https://occ.t-head.cn/community/download?id=4049193882418745344下载Xuantie-900-gcc-elf-newlib-x86_64-V2.4.0-20220428.tar.gz到~/

解压工具链:

cd ~
tar xzvf Xuantie-900-gcc-elf-newlib-x86_64-V2.4.0-20220428.tar.gz

设置工具链路径:

export PATH="/root/Xuantie-900-gcc-elf-newlib-x86_64-V2.4.0/bin:/root/Xuantie-900-gcc-elf-newlib-x86_64-V2.4.0/riscv64-unknown-elf/bin:$PATH"

设置完成,重新上面的编译烧录步骤,并再次设置WiFi连接,一切就正常了。

08智能音箱系统体验

完成后的智能音箱,可以脱离调试环境了,使用专用电源供电,或者使用Type-C供电,就能使用了。

使用【天猫精灵】唤醒,发出滴滴咚声后,就可以进行自然语言对话了。

说出【天猫精灵】唤醒,会出现如下的输出:

2dc57bc8-0448-11ee-90ce-dac502259ad0.png最后的WAKEUP表示唤醒。

再说出【告诉我现在时间】,就可看到和听到回复了:

2e1f173c-0448-11ee-90ce-dac502259ad0.png  

现在,就可以愉快地玩耍了。

09智能音箱系统体验

虽然在智能音箱系统搭建的过程中,遇到了一些小问题,不过总的来说,还是比较顺畅的。

博流提供了完成的BL6060开发套件,平头哥提供了可以用于二次开发的系统源码,最终实现的智能音箱,使用起来也非常流畅,回复也基本感觉不到延迟,体验很好。

基于此基础上,以此为原型,实现更多功能,进行产品的开发,可以非常的快捷方便。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 音视频
    +关注

    关注

    4

    文章

    463

    浏览量

    29852
  • 开发板
    +关注

    关注

    25

    文章

    4933

    浏览量

    97157
  • 智能音箱
    +关注

    关注

    31

    文章

    1783

    浏览量

    78487
  • Docker
    +关注

    关注

    0

    文章

    454

    浏览量

    11807

原文标题:应用速递 | 博流BL606P音视频开发板:基于Docker环境进行智能音箱系统开发全过程

文章出处:【微信号:芯片开放社区,微信公众号:芯片开放社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    基于BL606P音视频开发板的ADC Key按钮例程

    本文是关于开发者 kit7828 基于BL606P-DVK开发板实战开发的系列文章中的第三篇,主要介绍了ADC Key按钮例程,后面还会持续更新该
    的头像 发表于 05-22 11:09 1142次阅读
    基于<b class='flag-5'>博</b><b class='flag-5'>流</b><b class='flag-5'>BL606P</b><b class='flag-5'>音视频</b><b class='flag-5'>开发板</b>的ADC Key按钮例程

    基于BL606P音视频开发板开发环境搭建及例程测试

    本文是关于开发者 zhanghui 基于BL606P-DVK开发板实战开发的系列文章中的第一篇,主要介绍了开发环境搭建及例程测试,后面还会持
    发表于 06-09 10:04 745次阅读
    基于<b class='flag-5'>博</b><b class='flag-5'>流</b><b class='flag-5'>BL606P</b><b class='flag-5'>音视频</b><b class='flag-5'>开发板</b>的<b class='flag-5'>开发</b>环境搭建及例程测试

    BL606P音视频开发板:(三)ADC测试

    本文是关于开发者 qinyunti 基于BL606P-DVK开发板实战开发的系列文章中的一篇,主要介绍了ADC测试,后面还会持续更新该开发
    的头像 发表于 04-10 10:26 762次阅读

    基于BL606P音视频开发板智能音箱测试

    本文是关于开发者 qinyunti 基于BL606P-DVK开发板实战开发的系列文章中的一篇,主要介绍了智能
    的头像 发表于 05-09 11:22 900次阅读
    基于<b class='flag-5'>博</b><b class='flag-5'>流</b><b class='flag-5'>BL606P</b><b class='flag-5'>音视频</b><b class='flag-5'>开发板</b>的<b class='flag-5'>智能</b><b class='flag-5'>音箱</b>测试

    基于BL606P音视频开发板通过蓝牙进行WIFI配网测试

    本文是关于开发者 qinyunti 基于BL606P-DVK开发板实战开发的系列文章中的一篇,主要介绍了通过蓝牙进行WIFI配网测试,后面还会持续更新该
    的头像 发表于 05-10 16:59 995次阅读
    基于<b class='flag-5'>博</b><b class='flag-5'>流</b><b class='flag-5'>BL606P</b><b class='flag-5'>音视频</b><b class='flag-5'>开发板</b>通过蓝牙进行WIFI配网测试

    BL606P音视频开发板:HelloWord Demo运行及跳线帽设置

    本文是关于开发者 kit7828 基于BL606P-DVK开发板实战开发的系列文章中的第一篇,主要介绍了环境搭建及HelloWord Demo运行,后面还会持续更新该
    的头像 发表于 05-15 15:25 1055次阅读
    <b class='flag-5'>博</b><b class='flag-5'>流</b><b class='flag-5'>BL606P</b><b class='flag-5'>音视频</b><b class='flag-5'>开发板</b>:HelloWord Demo运行及跳线帽设置

    基于BL606P音视频开发板实现RGB点灯

    本文是关于开发者 kit7828 基于BL606P-DVK开发板实战开发的系列文章中的第二篇,主要介绍了BL606P实现RGB点灯,后面还会
    的头像 发表于 05-18 10:57 991次阅读
    基于<b class='flag-5'>博</b><b class='flag-5'>流</b><b class='flag-5'>BL606P</b><b class='flag-5'>音视频</b><b class='flag-5'>开发板</b>实现RGB点灯

    BL606P音视频开发板CKLink无法下载的解决办法

    本文是关于开发者 kit7828 基于BL606P-DVK开发板实战开发的系列文章中的第五篇,主要介绍了CKLink无法下载的解决办法,后面还会持续更新该
    的头像 发表于 05-29 10:59 849次阅读
    <b class='flag-5'>博</b><b class='flag-5'>流</b><b class='flag-5'>BL606P</b><b class='flag-5'>音视频</b><b class='flag-5'>开发板</b>CKLink无法下载的解决办法

    基于BL606P音视频开发板的蓝牙音频测试

    本文是关于开发者 zhanghui 基于BL606P-DVK开发板实战开发的系列文章中的第三篇,主要介绍了蓝牙音频测试,后面还会持续更新该开发
    的头像 发表于 06-25 09:42 596次阅读
    基于<b class='flag-5'>博</b><b class='flag-5'>流</b><b class='flag-5'>BL606P</b><b class='flag-5'>音视频</b><b class='flag-5'>开发板</b>的蓝牙音频测试

    基于BL606P音视频开发板驱动LED数码管

    本文是关于开发者 zhanghui 基于BL606P-DVK开发板实战开发的系列文章中的第四篇,主要介绍了LED数据管模块TM1638驱动的测试,后面还会持续更新该
    的头像 发表于 06-29 09:49 465次阅读
    基于<b class='flag-5'>博</b><b class='flag-5'>流</b><b class='flag-5'>BL606P</b><b class='flag-5'>音视频</b><b class='flag-5'>开发板</b>驱动LED数码管

    基于BL606P音视频开发板的CAN扩展模块收发测试

    本文是关于开发者 zhanghui 基于BL606P-DVK开发板实战开发的系列文章中的第五篇,主要介绍了CAN扩展模块收发测试,后面还会持续更新社区
    的头像 发表于 07-03 10:06 701次阅读
    基于<b class='flag-5'>博</b><b class='flag-5'>流</b><b class='flag-5'>BL606P</b><b class='flag-5'>音视频</b><b class='flag-5'>开发板</b>的CAN扩展模块收发测试

    BL606P音视频开发板:驱动MAX7219点阵模组

    本文是关于开发者 乘简 基于BL606P-DVK开发板实战开发的系列文章中的一篇,主要介绍了驱动MAX7219点阵模组,后面还会持续更新社区开发
    的头像 发表于 07-10 10:43 833次阅读
    <b class='flag-5'>博</b><b class='flag-5'>流</b><b class='flag-5'>BL606P</b><b class='flag-5'>音视频</b><b class='flag-5'>开发板</b>:驱动MAX7219点阵模组

    基于BL606P音视频开发板的GPIO点灯教程

    本文是关于开发者 swzswz 基于BL606P-DVK开发板实战开发的系列文章中的一篇,主要介绍了GPIO点灯,后面还会持续更新社区开发
    的头像 发表于 07-17 10:54 666次阅读
    基于<b class='flag-5'>博</b><b class='flag-5'>流</b><b class='flag-5'>BL606P</b><b class='flag-5'>音视频</b><b class='flag-5'>开发板</b>的GPIO点灯教程

    基于BL606P音视频开发板驱动LED数码管

    本文是关于开发者 swzswz 基于BL606P-DVK开发板实战开发的系列文章中的一篇,主要介绍了驱动led数码管,后面还会持续更新社区开发
    的头像 发表于 07-20 10:58 540次阅读
    基于<b class='flag-5'>博</b><b class='flag-5'>流</b><b class='flag-5'>BL606P</b><b class='flag-5'>音视频</b><b class='flag-5'>开发板</b>驱动LED数码管

    基于BL606P音视频开发板的音响测试

    本文是关于开发者 swzswz 基于BL606P-DVK开发板实战开发的系列文章中的一篇,主要介绍了音响测试,后面还会持续更新社区开发者的测
    的头像 发表于 07-25 09:56 565次阅读
    基于<b class='flag-5'>博</b><b class='flag-5'>流</b><b class='flag-5'>BL606P</b><b class='flag-5'>音视频</b><b class='flag-5'>开发板</b>的音响测试