編輯語:
芯片開放社區(qū)(OCC)面向廣大開發(fā)者推出應(yīng)用實(shí)戰(zhàn)系列內(nèi)容,通過分享開發(fā)者實(shí)戰(zhàn)開發(fā)案例,總結(jié)應(yīng)用開發(fā)經(jīng)驗(yàn),梳理開發(fā)中的常見問題及解決方案,為后續(xù)參與的開發(fā)者提供更多參考與借鑒。
本文是關(guān)于開發(fā)者 喬幫主分享了在Docker環(huán)境下,基于博流BL606P音視頻開發(fā)板,進(jìn)行智能音箱系統(tǒng)搭建的完成過程。按照文中步驟操作后,你將得到一個(gè)可以進(jìn)行對(duì)話的智能音箱。
01背景
平頭哥給我提供了一套博流BL606P音視頻開發(fā)板評(píng)測(cè):
?
這套BL606P開發(fā)板是由博流科技研發(fā),基于平頭哥的XTC906和E907,集成度較高,非常適合用于智能音箱系統(tǒng)。
開發(fā)套件提供了主控板、按鍵板,還提供了4歐3W的喇叭,還有按鍵板連接線和支撐柱,開箱連接好就能用了。
另外,這塊板子上,還板載調(diào)試器,使用Type-C連接電腦后,就能夠直接進(jìn)行調(diào)試和固件燒錄了,不需要單獨(dú)配調(diào)試器。
我這邊一向習(xí)慣使用Docker來搭建Linux開發(fā)環(huán)境,所以這次也不例外。不過,要進(jìn)行固件燒錄,目前還得借助Windows上運(yùn)行的T-Head-DebugServer。
02Docker搭建基礎(chǔ)環(huán)境
首先我們要搭建一個(gè)基于Ubuntu18.04版本的基礎(chǔ)環(huán)境,并安裝好基礎(chǔ)工具包,以及設(shè)置好Python3作為默認(rèn)Python環(huán)境。
以下是具體的步驟:
# 主機(jī) # docker啟動(dòng) mkdir projects docker run -v $(pwd)/projects:/root/projects --name BL606P -it ubuntu:18.04 #docker內(nèi) # 基本工具安裝 cd /root apt update && apt -y install sudo vim # apt更新安裝基礎(chǔ)工具包 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安裝結(jié)果: python -V && python3 -V
最終輸出如下,說明基礎(chǔ)環(huán)境設(shè)置成功:
03YoC工具鏈安裝
XT系列芯片的SDK編譯,在Linux下使用yoc工具來進(jìn)行,通過Python的包管理工具,可以很方便地安裝。
具體步驟如下:
# 安裝yoctools sudo pip install yoctools -U # 安裝工具鏈 sudo yoc toolchain --riscv -f ls /usr/local/thead/riscv64-unknown-elf # 查看yoc版本 yoc -V
最終輸出結(jié)果如下,說明安裝成功:
04開發(fā)板的連接
將BL606P開發(fā)板連接到Windows電腦上之前,需要做好跳線設(shè)置。
參考官方提供的原理圖:
然后對(duì)照開發(fā)板的跳線進(jìn)行設(shè)置:
本質(zhì)上,就是把GPIO16-19,連接到TCK、TDI、TMS、TDO,這樣Type-C連接到電腦后,就能夠直接對(duì)接到調(diào)試端口了。
然后使用Type-C,將開發(fā)板的UART接口,連接到Windows電腦:
右邊的Type-C接口,只是用于供電的,不能用于調(diào)試通信。?
05安裝 T-Head-DebugServer 調(diào)試工具
Windows安裝T-Head-DebugServer
Windows可以直接下載 T-Head-DebugServer-windows 版本進(jìn)行安裝即可。下載地址:https://occ.t-head.cn/community/download?id=4133634465765330944
T-Head-DebugServer默認(rèn)需要1025端口,所以啟動(dòng)前,先檢查該端口是否被占用,可在Windows黑窗口執(zhí)行下面的命令檢查:
netstat -aon | findstr LISTEN | findstr 1025
如果輸出端口被占用了,上述命令會(huì)輸出對(duì)應(yīng)的PID信息,可以到任務(wù)管理器中查看是什么進(jìn)程占用了,停止它即可。
其他成功后,界面如下:
上述界面輸出的最后一行,顯示了用于遠(yuǎn)程連接的地址和端口,需要記好,在Docker的Linux環(huán)境下面需要使用。
target remote 192.168.1.47:8025
Linux安裝:T-Head-DebugServer
Docker環(huán)境中的Linux系統(tǒng)上,需要下載 T-Head-DebugServer-linux-x86_64 版本,在上述地址下載,解壓后,直接執(zhí)行解壓得到的shell文件安裝即可:
在Linux環(huán)境中,也可以檢查1025端口是否被占用,對(duì)應(yīng)的指令如下:
lsof -i:1025
安裝好以后,再執(zhí)行下面的命令啟動(dòng)T-Head-DebugServer:
DebugServerConsole -setclk 8 -port 1025
06測(cè)試基礎(chǔ)功能開發(fā)
上述環(huán)境搭建好以后,可以使用官方提供的HelloWorld進(jìn)行測(cè)試,使用如下的步驟,在Docker中的Linux環(huán)境下,下載編譯HelloWorld工程:
mkdir ~/test cd ~/test yoc init yoc install helloworld cd solutions/helloworld make SDK=sdk_chip_bl606p_e907
在上述命令中,使用yoc工具,可以很方便地管理和下載源碼。
最后一步完成編譯,輸出如下:
經(jīng)過上面的步驟, HelloWorld已經(jīng)編譯完畢,可以用于燒錄測(cè)試了。
在第四節(jié)【安裝 T-Head-DebugServer 調(diào)試工具】中,得到了遠(yuǎn)程調(diào)試的地址和端口,要在Docker中的Linux環(huán)境下進(jìn)行燒錄,只需要將gdb燒錄配置文件中地址和端口,修改為遠(yuǎn)程調(diào)試端口即可,具體命令如下:
sed -i 's#localhost8025#' gdbinitflash
然后,再執(zhí)行下面的命令進(jìn)行燒錄:
make flashall SDK=sdk_chip_bl606p_e907
燒錄過程中,Windows上的T-Head-DebugServer會(huì)有如下的信息輸出:
其中"Get connection from 192.168.1.100",表示來自這個(gè)IP的遠(yuǎn)程調(diào)試連接,也就是Docker中的Linux連上來了。
make flashall燒錄命令執(zhí)行成功后,具體輸出如下:
現(xiàn)在,可以關(guān)閉 Windows上的T-Head-DebugServer 工具,然后使用串口工具連接開發(fā)板,波特率使用 2000000,然后重啟開發(fā)板,就能收到如下的輸出信息:
看到【hello world】,說明我們的基礎(chǔ)開發(fā)燒錄運(yùn)行搞定,下面可以開始進(jìn)行智能音箱功能的開發(fā)燒錄測(cè)試了。
07智能音箱系統(tǒng)搭建
平頭哥為bl606提供了SDK_longyuan,用于智能音箱系統(tǒng)的基礎(chǔ)開發(fā),類似上面的HelloWorld,也使用yoc工具進(jìn)行操作,具體步驟如下:
cd ~/test yoc install smart_speaker_v2 cd solutions/helloworld cp package_bl606p_mind.yaml package.yaml make clean && make
但是在最后make編譯的過程中,會(huì)出現(xiàn)找不到ao.h文件的問題:
經(jīng)過一番了解,正確獲取該工程的步驟應(yīng)該如下:
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
編譯成功后,輸出如下:
然后,進(jìn)行燒錄,具體步驟如下:
sed -i 's#localhost8025#' gdbinitflash make erasechip #擦除 make flashall #燒錄全量鏡像 make flash #僅燒錄應(yīng)用鏡像
類似HelloWorld,第一步是設(shè)置遠(yuǎn)程調(diào)試地址,所以需要先關(guān)閉串口工具,并打開Windows上的T-Head-DebugServer 工具,再執(zhí)行上面的燒錄指令。
燒錄完成后,輸出如下:
燒錄完成后,再次關(guān)閉Windows上的T-Head-DebugServer 工具,然后使用串口工具連接到開發(fā)板,重啟開發(fā)板后,會(huì)進(jìn)入基礎(chǔ)shell環(huán)境,并提示進(jìn)行WiFi連接設(shè)置,此時(shí)要使用如下的指令:
kv set wifi_ssid0 OpenBSD kv set wifi_psk0 13581882013 reboot
再次重啟成功后,喇叭就會(huì)發(fā)聲,網(wǎng)絡(luò)連接成功,天貓精靈歡迎。
按照正常邏輯,此時(shí)就可以說【天貓精靈】喚醒,進(jìn)行對(duì)話了。
實(shí)際使用時(shí),說【天貓精靈】喚醒后,馬上就死機(jī)了,反復(fù)嘗試都是直接崩潰了。
又經(jīng)過一番了解,原來,需要降級(jí)編譯鏈才行。
具體步驟如下:
從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
設(shè)置工具鏈路徑:
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"
設(shè)置完成,重新上面的編譯燒錄步驟,并再次設(shè)置WiFi連接,一切就正常了。
08智能音箱系統(tǒng)體驗(yàn)
完成后的智能音箱,可以脫離調(diào)試環(huán)境了,使用專用電源供電,或者使用Type-C供電,就能使用了。
使用【天貓精靈】喚醒,發(fā)出滴滴咚聲后,就可以進(jìn)行自然語言對(duì)話了。
說出【天貓精靈】喚醒,會(huì)出現(xiàn)如下的輸出:
最后的WAKEUP表示喚醒。
再說出【告訴我現(xiàn)在時(shí)間】,就可看到和聽到回復(fù)了:
??
現(xiàn)在,就可以愉快地玩耍了。
09智能音箱系統(tǒng)體驗(yàn)
雖然在智能音箱系統(tǒng)搭建的過程中,遇到了一些小問題,不過總的來說,還是比較順暢的。
博流提供了完成的BL6060開發(fā)套件,平頭哥提供了可以用于二次開發(fā)的系統(tǒng)源碼,最終實(shí)現(xiàn)的智能音箱,使用起來也非常流暢,回復(fù)也基本感覺不到延遲,體驗(yàn)很好。
基于此基礎(chǔ)上,以此為原型,實(shí)現(xiàn)更多功能,進(jìn)行產(chǎn)品的開發(fā),可以非常的快捷方便。
審核編輯:湯梓紅
-
音視頻
+關(guān)注
關(guān)注
4文章
511瀏覽量
30308 -
開發(fā)板
+關(guān)注
關(guān)注
25文章
5378瀏覽量
100678 -
智能音箱
+關(guān)注
關(guān)注
31文章
1787瀏覽量
79336 -
Docker
+關(guān)注
關(guān)注
0文章
501瀏覽量
12523
原文標(biāo)題:應(yīng)用速遞 | 博流BL606P音視頻開發(fā)板:基于Docker環(huán)境進(jìn)行智能音箱系統(tǒng)開發(fā)全過程
文章出處:【微信號(hào):芯片開放社區(qū),微信公眾號(hào):芯片開放社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
基于博流BL606P音視頻開發(fā)板的ADC Key按鈕例程

基于博流BL606P音視頻開發(fā)板的開發(fā)環(huán)境搭建及例程測(cè)試

博流BL606P音視頻開發(fā)板:(三)ADC測(cè)試
基于博流BL606P音視頻開發(fā)板的智能音箱測(cè)試

基于博流BL606P音視頻開發(fā)板通過藍(lán)牙進(jìn)行WIFI配網(wǎng)測(cè)試

博流BL606P音視頻開發(fā)板:HelloWord Demo運(yùn)行及跳線帽設(shè)置

基于博流BL606P音視頻開發(fā)板實(shí)現(xiàn)RGB點(diǎn)燈

博流BL606P音視頻開發(fā)板CKLink無法下載的解決辦法

基于博流BL606P音視頻開發(fā)板的藍(lán)牙音頻測(cè)試

基于博流BL606P音視頻開發(fā)板驅(qū)動(dòng)LED數(shù)碼管

基于博流BL606P音視頻開發(fā)板的CAN擴(kuò)展模塊收發(fā)測(cè)試

博流BL606P音視頻開發(fā)板:驅(qū)動(dòng)MAX7219點(diǎn)陣模組

基于博流BL606P音視頻開發(fā)板的GPIO點(diǎn)燈教程

基于博流BL606P音視頻開發(fā)板驅(qū)動(dòng)LED數(shù)碼管

基于博流BL606P音視頻開發(fā)板的音響測(cè)試

評(píng)論