3B+M1運(yùn)行環(huán)境搭建(&串口通信)

3B+系統(tǒng)安裝
????受限于硬件條件,為保證流暢完成任務(wù),建議安裝官方開(kāi)發(fā)的Raspberry Pi OS系統(tǒng)(嘗試過(guò)裝Ubuntu mate,but很卡我的建議是別嘗試了,Raspberry Pi OS甚至可以裝lite無(wú)界面版)。
????Raspberry Pi OS分為ARM32和ARM64版本,建議使用ARM64,訊飛官方對(duì)ARM32支持不是很好的樣子,新版本的SDK里沒(méi)有ARM32的動(dòng)態(tài)庫(kù)(嘗試過(guò)新SDK配舊動(dòng)態(tài)庫(kù),以失敗告終,而后又嘗試使用舊SDK,也沒(méi)成功,深夜不確定是不是因?yàn)闋顟B(tài)不好誤操作),經(jīng)過(guò)驗(yàn)證ARM64 配合新版SDK可以正常運(yùn)行。
?
配置步驟:
1.系統(tǒng)安裝
2.格式化SD卡:選擇你的SD卡后直接點(diǎn)擊format(格式化),無(wú)需修改配置。(SD卡請(qǐng)保持插入,SD卡建議別太小,大于不!等于8G)
3.寫(xiě)入鏡像:選擇鏡像和設(shè)備盤(pán)后無(wú)需修改其余配置直接寫(xiě)入就好。(SD卡請(qǐng)保持插入)
4.安裝到樹(shù)莓派:插卡,連接鼠標(biāo)鍵盤(pán)和顯示器,上電及進(jìn)入系統(tǒng)初始化??吹浇坛踢@步,教程后面的可以不用看了。
教程鏈接:https://www.cnblogs.com/devilmaycry812839668/p/12803693.html
?
M1運(yùn)行環(huán)境搭建
請(qǐng)按照手冊(cè)進(jìn)行配置,注意系統(tǒng)架構(gòu),基本可以順利完成。(注意:請(qǐng)使用Linux_SDK)
大概步驟:
1規(guī)則
2下載必要軟件
3檢測(cè)設(shè)備
4配置動(dòng)態(tài)庫(kù)(注意選擇合適的系統(tǒng)位數(shù))
5編譯例程(注意選擇合適的系統(tǒng)位數(shù))
6運(yùn)行例程(例程運(yùn)行,表明運(yùn)行環(huán)境正常)
本地功能實(shí)現(xiàn)建議流程:
1.復(fù)制例程demo文件夾到同級(jí)目錄,修改.c文件夾代碼實(shí)現(xiàn)本地化功能。
2.修改Makefile中

,修改生成的可執(zhí)行文件的文件名。
3.用Pi + 顯示器可能有點(diǎn)卡,建議使用虛擬機(jī)配Linux或SSH在win上寫(xiě)代碼編譯然后上硬件驗(yàn)證。
串口通信環(huán)境搭建
串口通信環(huán)境配置用于打通Linux與MCU間的通信,重要?。?!
?
環(huán)境搭建的步驟:
1.打開(kāi)串口功能:3B+有兩個(gè)串口,一個(gè)是硬件串口比較高級(jí),還有一個(gè)是mini串口(不好就是了),但是高級(jí)串口默認(rèn)配置給藍(lán)牙使用了,排針上留下的串口接口連接的miniuart,需要先把藍(lán)牙Ban掉,然后利用引腳映射把高級(jí)串口映射到排針留的接口,詳情請(qǐng)看配置主教程和輔教程。
?
2.串口測(cè)試:可進(jìn)入Python測(cè)試串口(看配置輔教程后半部分),打開(kāi)串口的時(shí)候可能會(huì)報(bào)錯(cuò)(無(wú)法打開(kāi)port),這是因?yàn)闄?quán)限不夠,請(qǐng)使用命令:sudo python打開(kāi)python進(jìn)行測(cè)試。
?
3.c語(yǔ)言調(diào)用串口:
C代碼建議參考配置輔教程的代碼部分。
?
4.串口調(diào)用相關(guān)庫(kù)??!
樹(shù)莓派調(diào)用串口,使用專(zhuān)為樹(shù)莓派開(kāi)發(fā)的wiringPi庫(kù)最方便,在使用配置教程中安裝的庫(kù)進(jìn)行編譯時(shí)會(huì)報(bào)錯(cuò):庫(kù)不兼容。
報(bào)錯(cuò)原因如教程《庫(kù)不兼容》所示,為庫(kù)所用ARM32環(huán)境與調(diào)用環(huán)境ARM64不兼容所致。
但這個(gè)庫(kù)幾年前就不更新了,舊版只適用ARM32。幸運(yùn)的是有大神做了ARM64適配,詳情請(qǐng)看《wiringPi_ARM64教程》。

注意:如上圖為教程中的安裝方式,但github很可能訪(fǎng)問(wèn)不到,且教程中的鏈接版本也比較舊,故已將最新版庫(kù)的.deb文件放在文件夾中(2.61-g版,為大神自命名版本),可存入linux中,并使用上圖命令:sudo dpkg -i 文件名進(jìn)行安裝。
教程鏈接:
配置主教程:https://blog.csdn.net/wanggao_1990/article/details/103702563
配置輔教程:https://blog.csdn.net/qq_43125185/article/details/112791641(前面管腳映射的步驟配圖了,比較好懂,但是后面關(guān)閉(stop)系統(tǒng)控制的步驟有錯(cuò)誤,請(qǐng)以主教程為準(zhǔn))
root用戶(hù)組相關(guān):https://blog.51cto.com/liangchaoxi/4047612(打開(kāi)串口需要root權(quán)限)
?
庫(kù)不兼容:https://blog.csdn.net/qq_29111047/article/details/126665236
wiringPi_ARM64教程:https://www.bilibili.com/read/cv8344099/
?
?
已做的測(cè)試:
M1聲源定位功能測(cè)試&開(kāi)發(fā)方式嘗試:
????2023/07/29 使用虛擬機(jī)配置環(huán)境后連接M1驗(yàn)證demo例程
????2023/07/31修改原demo文件為僅保留和支持重復(fù)喚醒并輸出喚醒角度的聲源定位Demo。
使用C語(yǔ)言調(diào)用wiringPi庫(kù)進(jìn)行樹(shù)莓派串口透?jìng)鳒y(cè)試:
????2023/07/31編譯c程序?qū)崿F(xiàn)樹(shù)莓派與windows串口收發(fā)。
聲源定位&串口透?jìng)骶C合測(cè)試:
????2023/08/01 使用移植串口通信到麥克風(fēng)SDK中,實(shí)現(xiàn)通過(guò)重復(fù)喚醒進(jìn)行聲源定位并發(fā)送喚醒角度。(在sdk編譯環(huán)境下運(yùn)行wiringpi等第三方庫(kù)需要修改Makefile)
補(bǔ)充:
Makefile修改:
修改 1:

修改如圖所示項(xiàng)目修改生成目標(biāo)可執(zhí)行文件名。
修改2:

修改此項(xiàng)目(在后面添加 -lxxx庫(kù)鏈接),可以引入第三方庫(kù)。