編輯語:
芯片開放社區(OCC)面向廣大開發者推出應用實戰系列內容,通過分享開發者實戰開發案例,總結應用開發經驗,梳理開發中的常見問題及解決方案,為后續參與的開發者提供更多參考與借鑒。
本文是關于開發者 喬幫主分享了在Docker環境下,基于博流BL606P音視頻開發板,進行智能音箱系統搭建的完成過程。按照文中步驟操作后,你將得到一個可以進行對話的智能音箱。
01背景
平頭哥給我提供了一套博流BL606P音視頻開發板評測:
?
這套BL606P開發板是由博流科技研發,基于平頭哥的XTC906和E907,集成度較高,非常適合用于智能音箱系統。
開發套件提供了主控板、按鍵板,還提供了4歐3W的喇叭,還有按鍵板連接線和支撐柱,開箱連接好就能用了。
另外,這塊板子上,還板載調試器,使用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
最終輸出如下,說明基礎環境設置成功:
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
最終輸出結果如下,說明安裝成功:
04開發板的連接
將BL606P開發板連接到Windows電腦上之前,需要做好跳線設置。
參考官方提供的原理圖:
然后對照開發板的跳線進行設置:
本質上,就是把GPIO16-19,連接到TCK、TDI、TMS、TDO,這樣Type-C連接到電腦后,就能夠直接對接到調試端口了。
然后使用Type-C,將開發板的UART接口,連接到Windows電腦:
右邊的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信息,可以到任務管理器中查看是什么進程占用了,停止它即可。
其他成功后,界面如下:
上述界面輸出的最后一行,顯示了用于遠程連接的地址和端口,需要記好,在Docker的Linux環境下面需要使用。
target remote 192.168.1.47:8025
Linux安裝:T-Head-DebugServer
Docker環境中的Linux系統上,需要下載 T-Head-DebugServer-linux-x86_64 版本,在上述地址下載,解壓后,直接執行解壓得到的shell文件安裝即可:
在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工具,可以很方便地管理和下載源碼。
最后一步完成編譯,輸出如下:
經過上面的步驟, HelloWorld已經編譯完畢,可以用于燒錄測試了。
在第四節【安裝 T-Head-DebugServer 調試工具】中,得到了遠程調試的地址和端口,要在Docker中的Linux環境下進行燒錄,只需要將gdb燒錄配置文件中地址和端口,修改為遠程調試端口即可,具體命令如下:
sed -i 's#localhost8025#' gdbinitflash
然后,再執行下面的命令進行燒錄:
make flashall SDK=sdk_chip_bl606p_e907
燒錄過程中,Windows上的T-Head-DebugServer會有如下的信息輸出:
其中"Get connection from 192.168.1.100",表示來自這個IP的遠程調試連接,也就是Docker中的Linux連上來了。
make flashall燒錄命令執行成功后,具體輸出如下:
現在,可以關閉 Windows上的T-Head-DebugServer 工具,然后使用串口工具連接開發板,波特率使用 2000000,然后重啟開發板,就能收到如下的輸出信息:
看到【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文件的問題:
經過一番了解,正確獲取該工程的步驟應該如下:
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
編譯成功后,輸出如下:
然后,進行燒錄,具體步驟如下:
sed -i 's#localhost8025#' gdbinitflash make erasechip #擦除 make flashall #燒錄全量鏡像 make flash #僅燒錄應用鏡像
類似HelloWorld,第一步是設置遠程調試地址,所以需要先關閉串口工具,并打開Windows上的T-Head-DebugServer 工具,再執行上面的燒錄指令。
燒錄完成后,輸出如下:
燒錄完成后,再次關閉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供電,就能使用了。
使用【天貓精靈】喚醒,發出滴滴咚聲后,就可以進行自然語言對話了。
說出【天貓精靈】喚醒,會出現如下的輸出:
最后的WAKEUP表示喚醒。
再說出【告訴我現在時間】,就可看到和聽到回復了:
??
現在,就可以愉快地玩耍了。
09智能音箱系統體驗
雖然在智能音箱系統搭建的過程中,遇到了一些小問題,不過總的來說,還是比較順暢的。
博流提供了完成的BL6060開發套件,平頭哥提供了可以用于二次開發的系統源碼,最終實現的智能音箱,使用起來也非常流暢,回復也基本感覺不到延遲,體驗很好。
基于此基礎上,以此為原型,實現更多功能,進行產品的開發,可以非常的快捷方便。
審核編輯:湯梓紅
-
音視頻
+關注
關注
4文章
483瀏覽量
29977 -
開發板
+關注
關注
25文章
5121瀏覽量
98189 -
智能音箱
+關注
關注
31文章
1784瀏覽量
78788 -
Docker
+關注
關注
0文章
492瀏覽量
11961
原文標題:應用速遞 | 博流BL606P音視頻開發板:基于Docker環境進行智能音箱系統開發全過程
文章出處:【微信號:芯片開放社區,微信公眾號:芯片開放社區】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
基于博流BL606P音視頻開發板的ADC Key按鈕例程
![基于<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按鈕例程](https://file1.elecfans.com/web2/M00/88/82/wKgZomRq3P6ARgA7AAAU3vxdX3w175.png)
基于博流BL606P音視頻開發板的開發環境搭建及例程測試
![基于<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>環境搭建及例程測試](https://file1.elecfans.com/web2/M00/89/62/wKgaomSCiSaAcZvnAAAWjSY3U4k395.png)
博流BL606P音視頻開發板:(三)ADC測試
基于博流BL606P音視頻開發板通過藍牙進行WIFI配網測試
![基于<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配網測試](https://file1.elecfans.com/web2/M00/82/A5/wKgaomRbXSGAVgK1AACZYkh_sKQ702.png)
博流BL606P音視頻開發板:HelloWord Demo運行及跳線帽設置
![<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運行及跳線帽設置](https://file1.elecfans.com/web2/M00/82/C5/wKgaomRh3ryAey4wAABwn5Lk8FM056.png)
博流BL606P音視頻開發板CKLink無法下載的解決辦法
![<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無法下載的解決辦法](https://file1.elecfans.com/web2/M00/88/CB/wKgZomR0FZWAD2pKAAAm_jFYx2o759.png)
基于博流BL606P音視頻開發板驅動LED數碼管
![基于<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數碼管](https://file1.elecfans.com/web2/M00/8B/A7/wKgZomSc42uAGt-CAAAvmUFGPaU160.png)
基于博流BL606P音視頻開發板的CAN擴展模塊收發測試
![基于<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擴展模塊收發測試](https://file1.elecfans.com/web2/M00/8B/E2/wKgZomSiLV2AWddBAAAscNa4qLM977.png)
博流BL606P音視頻開發板:驅動MAX7219點陣模組
![<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點陣模組](https://file1.elecfans.com/web2/M00/8C/5A/wKgZomSrcLiAAup1AAC7W-YW_0c738.png)
評論