0){ if(gb2312DataLen gb2312Data[64]=''; printf("%s,len:%drn",gb2312Data,strlen(gb2312Data)); GUI_Write16CnCharMatrix(10,10,gb2312Data,LCD_COLOR_RGB565(255,255,255),LCD_COLOR_RGB565(255,0,0)); } } break; 大" />

一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

安信可Ai-M61系列模組實(shí)現(xiàn)藍(lán)牙歌詞播放功能

AIoT行業(yè)洞察 ? 來源:AIoT行業(yè)洞察 ? 作者:AIoT行業(yè)洞察 ? 2025-02-26 14:16 ? 次閱讀

以下作品由安信可社區(qū)用戶

sujingliang制作

Ai-M61 系列模組是由安信可科技開發(fā)的 Wi-Fi6 & 藍(lán)牙雙模模組,搭載BL618芯片作為處理器,支持Wi-Fi 802.11b/g/n/ax協(xié)議和BLE 5.3協(xié)議。BL618芯片內(nèi)置低功耗的32位RISC-V CPU,最高主頻可達(dá)320M. 豐富的外圍接口,包括DVP、MJPEG、Dispaly、Audio Codec、USB2.0、SDU、以太網(wǎng)(EMAC)、SD/MMC(SDH)、SPI、UART、I2C、I2S、PWM、GPDAC、GPADC、ACOMP和GPIO等。可廣泛應(yīng)用于音視頻多媒體、物聯(lián)網(wǎng)(IoT)、移動(dòng)設(shè)備、可穿戴電子設(shè)備、智能家居等領(lǐng)域。

Ai-M61系列模塊的核心BL618確實(shí)支持傳統(tǒng)藍(lán)牙功能,然而,由于博流官方(BL618芯片制造商)尚未正式發(fā)布針對(duì)這一功能的SDK,開發(fā)者在使用M61進(jìn)行傳統(tǒng)藍(lán)牙開發(fā)時(shí)面臨諸多挑戰(zhàn)。

GitHub上雖然可以找到博流官方的SDK,但其中關(guān)于傳統(tǒng)藍(lán)牙的代碼非常有限,且基于Zephyr藍(lán)牙棧的官方代碼缺乏具體的例程,這無疑增加了開發(fā)的難度。

1論壇里有大佬實(shí)現(xiàn)了BTstack port

使用BTstack測(cè)試M61

https://bbs.ai-thinker.com/forum.php?mod=viewthread&tid=44962&fromuid=14007

(出處: 物聯(lián)網(wǎng)開發(fā)者社區(qū)-安信可論壇)

也就是說可以用BTstack開源協(xié)議棧來開發(fā)M61模塊傳統(tǒng)藍(lán)牙功能。

2本文想實(shí)現(xiàn)的藍(lán)牙歌詞播放功能

看到有藍(lán)牙歌詞播放器在賣,感覺很神奇,用ESP32實(shí)現(xiàn)一下

https://bbs.21ic.com/icview-3414880-1-1.html?fromuser=sujingliang

(出處: 21ic電子技術(shù)開發(fā)論壇)

為了達(dá)到目標(biāo),需要完成以下工作:

1、驅(qū)動(dòng)一個(gè)屏幕,可以是LED、LCD,這個(gè)決定最終的顯示效果。
2、需要一個(gè)GBK漢字字模庫,用來獲取顯示漢字。
3、需要一個(gè)UTF轉(zhuǎn)GBK的函數(shù),因?yàn)锳VRCP是UTF-8格式的,需要轉(zhuǎn)換成GBK格式才能通過GBK漢字字模庫獲取字模。
4、讀懂A2DP例程,加入適當(dāng)?shù)墓δ?。(btstack編程

3關(guān)于LCD驅(qū)動(dòng)和字庫驅(qū)動(dòng)(不是本重點(diǎn))

【外設(shè)移植】+LCD_ST7735+M61開發(fā)板+GB2312字庫

https://bbs.ai-thinker.com/forum.php?mod=viewthread&tid=44421&fromuid=14007

(出處: 物聯(lián)網(wǎng)開發(fā)者社區(qū)-安信可論壇)

4關(guān)于UTF轉(zhuǎn)GBK的函數(shù)

UTF漢字不能直接轉(zhuǎn)換為GBK,需要先將UTF轉(zhuǎn)換為unicode,再將unicode通過查表法轉(zhuǎn)換為GBK。

這部分不用自己實(shí)現(xiàn),網(wǎng)上有現(xiàn)成的。https://gitee.com/zhangkt1995/my ... /utf8_gb2312_switch

5btstack編程

可參考前面大佬提供的btstack_test工程。

git clone https://github.com/bouffalolab/bouffalo_sdk.git
cd ./bouffalo_sdk/examples
git clone https://github.com/O2C14/btstack_test.git
cd ./btstack_test
rm -rf ./btstack
git clone https://github.com/bluekitchen/btstack.git -b v1.6.1
在CMakeLists.txt中設(shè)置使用a2dp_sink_demo.c這個(gè)例子。
set(EXAMPLE "a2dp_sink_demo")
a2dp_sink_demo.c中在 case
AVRCP_SUBEVENT_NOW_PLAYING_TITLE_INFO增加如下內(nèi)容
case AVRCP_SUBEVENT_NOW_PLAYING_TITLE_INFO:
if (avrcp_subevent_now_playing_title_info_get_value_len(packet) > 0){
memcpy(avrcp_subevent_value, avrcp_subevent_now_playing_title_info_get_value(packet), avrcp_subevent_now_playing_title_info_get_value_len(packet));
printf("AVRCP Controller: Title %sn", avrcp_subevent_value);
memset(gb2312Data,'',sizeof(gb2312Data));
size_t gb2312DataLen = utf8_to_gb2312((uint8_t *)avrcp_subevent_value, strlen(avrcp_subevent_value), (uint8_t *)gb2312Data, sizeof(gb2312Data));
if(gb2312DataLen>0){
if(gb2312DataLen<256)gb2312Data[gb2312DataLen]='';
gb2312Data[64]='';
printf("%s,len:%drn",gb2312Data,strlen(gb2312Data));
GUI_Write16CnCharMatrix(10,10,gb2312Data,LCD_COLOR_RGB565(255,255,255),LCD_COLOR_RGB565(255,0,0));
}
}
break;

大概就是在AVRCP收到TITLE事件后,獲取title(歌詞)信息avrcp_subevent_value;通過utf8_to_gb2312將utf8格式轉(zhuǎn)為GB2312格式;然后在LCD上顯示出來。

AVRCP_SUBEVENT_NOTIFICATION_TRACK_CHANGED中增加對(duì)avrcp_controller_get_now_playing_info的調(diào)用,就是在TRACK發(fā)生改變時(shí)調(diào)用獲取playing_info函數(shù),進(jìn)而觸發(fā)AVRCP_SUBEVENT_NOW_PLAYING_TITLE_INFO。

6使用效果

手機(jī)打開藍(lán)牙,和M61配對(duì)連接,然后可以斷開連接

wKgZPGe-sb6Aa3_JAACIjCrWKBQ963.jpg

●在手機(jī)藍(lán)牙斷開連接的情況下,通過串口工具發(fā)出btstack c命令使M61發(fā)送AVRCP連接命令,

缺省會(huì)觸發(fā)訂閱AVRCP_NOTIFICATION_EVENT_TRACK_CHANGED
avrcp_controller_enable_notification(a2dp_sink_demo_avrcp_connection.avrcp_cid, AVRCP_NOTIFICATION_EVENT_TRACK_CHANGED);

這時(shí)手機(jī)和M61會(huì)自動(dòng)連接上。

wKgZO2e-sb-AR62xAAGoZs81VPo384.jpg

●打開手機(jī)上的音樂播放軟件

wKgZPGe-sb-ADCs_AAC-mFEhjfQ977.jpg

手機(jī)上的歌詞變化,LCD上也會(huì)相應(yīng)變化

wKgZO2e-scCAKPW7AAAgv7tzLek771.jpg

7總結(jié)

使用了BTstack下的a2dp_sink_demo例程,這個(gè)例程好像是mcu這邊連接手機(jī)發(fā)送A2DP、AVRCP連接和訂閱才能獲取歌詞信息,而通過手機(jī)連接MCU就不能。嘗試改成手機(jī)端主動(dòng)連接實(shí)現(xiàn)相同功能,但沒有成功,還是對(duì)btstack了解太少。而且從MCU端連接需要提供手機(jī)藍(lán)牙的MAC地址,這個(gè)比較頭暈了,打個(gè)比方:想用藍(lán)牙耳機(jī)連接手機(jī)聽歌需要先知道手機(jī)藍(lán)牙MAC,這完全不具有操作性。

類似下面的報(bào)錯(cuò)時(shí)不時(shí)就發(fā)生,然后程序就掛了,非常不穩(wěn)定。

exception_entry
mcause=38000007
mepc:a0004732
mtval:00000000
Store/AMO access fault

不是每個(gè)手機(jī)都可以建立AVRCP連接,手頭2個(gè)手機(jī),1個(gè)可以,1個(gè)不行。

歸根到底利用AVRCP協(xié)議獲取歌詞信息,實(shí)現(xiàn)的方案還是存在不少問題。主要是因?yàn)榻佑|傳統(tǒng)藍(lán)牙時(shí)間比較短,而且藍(lán)牙協(xié)議棧還是太復(fù)雜,好多東西都不懂,慢慢學(xué)習(xí)。

8原貼地址

Ai-M61實(shí)現(xiàn)藍(lán)牙歌詞播放功能 - 電子DIY - 物聯(lián)網(wǎng)開發(fā)者社區(qū)-安信可論壇 - Powered by Discuz!?bbs.ai-thinker.com/forum.php?mod=viewthread&tid=45524&_dsign=3bc296c7

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 藍(lán)牙
    +關(guān)注

    關(guān)注

    115

    文章

    5976

    瀏覽量

    172718
  • wi-fi
    +關(guān)注

    關(guān)注

    14

    文章

    2202

    瀏覽量

    126191
  • 安信可
    +關(guān)注

    關(guān)注

    0

    文章

    180

    瀏覽量

    4308
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    高性能、低功耗、驅(qū)屏,Ai-M61系列模組驅(qū)屏能力介紹

    Ai-M61系列是“WiFi 6+BLE5.3+Thread”高性能的嵌入式無線通信模組,該模組搭載BL618 芯片作為核心處理器,BL618 芯片系統(tǒng)包含帶 FPU 和 DSP 的
    的頭像 發(fā)表于 05-22 11:47 ?1928次閱讀
    高性能、低功耗、<b class='flag-5'>可</b>驅(qū)屏,<b class='flag-5'>Ai-M61</b><b class='flag-5'>系列</b><b class='flag-5'>模組</b>驅(qū)屏能力介紹

    Ai-M61/62系列的固件燒錄指導(dǎo)

    本文介紹Ai-M61/62系列模組/開發(fā)板的固件燒錄。
    的頭像 發(fā)表于 07-02 11:23 ?1953次閱讀
    <b class='flag-5'>Ai-M61</b>/62<b class='flag-5'>系列</b>的固件燒錄指導(dǎo)

    Ai-WB2系列模組概述

    Ai-WB2系列模組科技開發(fā)的Wi-Fi&BT模組
    的頭像 發(fā)表于 09-09 10:01 ?1683次閱讀

    Ai-WB2系列模組基于TCP的MQTT連接服務(wù)器使用示例

    Ai-WB2系列模組基于TCP的MQTT連接服務(wù)器使用示例
    的頭像 發(fā)表于 10-16 10:21 ?1281次閱讀
    <b class='flag-5'>安</b><b class='flag-5'>信</b><b class='flag-5'>可</b><b class='flag-5'>Ai</b>-WB2<b class='flag-5'>系列</b><b class='flag-5'>模組</b>基于TCP的MQTT連接服務(wù)器使用示例

    Ai-M61/Ai-M62系列連接AWS亞馬遜云

    本文介紹Ai-M61/Ai-M62系列模組/開發(fā)板連接亞馬遜云方法。 Ai-M61 系列
    的頭像 發(fā)表于 02-04 15:51 ?1105次閱讀
    <b class='flag-5'>安</b><b class='flag-5'>信</b><b class='flag-5'>可</b><b class='flag-5'>Ai-M61</b>/<b class='flag-5'>Ai-M</b>62<b class='flag-5'>系列</b>連接AWS亞馬遜云

    推出Wi-Fi 6+BLE5.3模組Ai-M62-M2-I

    隨著Wi-Fi標(biāo)準(zhǔn)的演進(jìn),Wi-Fi6已走向大規(guī)模商用階段。去年通過長(zhǎng)期研發(fā)設(shè)計(jì)及反復(fù)打磨,推出WiFi 6+BLE5.3+X模組——Ai-M
    的頭像 發(fā)表于 02-25 09:54 ?1327次閱讀
    <b class='flag-5'>安</b><b class='flag-5'>信</b><b class='flag-5'>可</b>推出Wi-Fi 6+BLE5.3<b class='flag-5'>模組</b><b class='flag-5'>Ai-M62-M</b>2-I

    小尺寸,高性能!WiFi 6+BLE 5.3, Ai-M62-M2-I模組發(fā)布

    隨著Wi-Fi標(biāo)準(zhǔn)的演進(jìn),Wi-Fi6已走向大規(guī)模商用階段。去年通過長(zhǎng)期研發(fā)設(shè)計(jì)及反復(fù)打磨,推出WiFi 6+BLE5.3+X模組——Ai-M
    的頭像 發(fā)表于 02-26 11:42 ?1199次閱讀
    小尺寸,高性能!WiFi 6+BLE 5.3, <b class='flag-5'>Ai-M62-M</b>2-I<b class='flag-5'>模組</b>發(fā)布

    “WiFi 6+BLE5.3+Thread”,Ai-M61系列模組選型

    Ai-M61系列是“WiFi 6+BLE5.3+Thread”高性能的嵌入式無線通信模組,該模組搭載BL618 芯片作為核心處理器,BL618 芯片系統(tǒng)包含帶 FPU 和 DSP 的
    的頭像 發(fā)表于 03-12 16:22 ?877次閱讀
    “WiFi 6+BLE5.3+Thread”,<b class='flag-5'>安</b><b class='flag-5'>信</b><b class='flag-5'>可</b><b class='flag-5'>Ai-M61</b><b class='flag-5'>系列</b><b class='flag-5'>模組</b>選型

    推出一款極小尺寸的Wi-Fi/藍(lán)牙二合一Ai-M62-CBS模組

    大家好,今年我們陸續(xù)發(fā)布了星閃、Rd-03L、WiFi系列模組新品,今天發(fā)布的這款模組Ai-M62-CBS,是由
    的頭像 發(fā)表于 03-25 18:20 ?1757次閱讀
    <b class='flag-5'>安</b><b class='flag-5'>信</b><b class='flag-5'>可</b>推出一款極小尺寸的Wi-Fi/<b class='flag-5'>藍(lán)牙</b>二合一<b class='flag-5'>Ai-M</b>62-CBS<b class='flag-5'>模組</b>

    基于Ai-M61模組打造一個(gè)智能魚缸水質(zhì)監(jiān)測(cè)系統(tǒng)

    要保證合理的光照,水氧才能讓小魚順利成長(zhǎng),這些對(duì)新手來說太難了!! 正好小安發(fā)現(xiàn)手頭上的Ai-M61模組,可以打造一個(gè)智能魚缸水質(zhì)檢測(cè)系統(tǒng)。來看看怎么做? ? 小安先查詢了下產(chǎn)品的介紹: Ai-M61
    的頭像 發(fā)表于 03-29 11:04 ?782次閱讀

    【雷達(dá)燈控】 Rd-03E+ 燈 + Ai-M61

    的相關(guān)產(chǎn)品。產(chǎn)品的資料有很多,不過感覺有些文件的內(nèi)容有些重復(fù),上位機(jī)軟件的各個(gè)參數(shù)可能是因?yàn)樯婕暗絻?nèi)部邏輯所以沒有詳細(xì)說明。模塊資料鏈接:Rd-03 系列模組 |
    的頭像 發(fā)表于 06-07 09:45 ?682次閱讀
    【雷達(dá)燈控】<b class='flag-5'>安</b><b class='flag-5'>信</b><b class='flag-5'>可</b> Rd-03E+ 燈 + <b class='flag-5'>Ai-M61</b>

    智能家居之旅(3):Ai-M61/M62 接入HomeAssistant 實(shí)現(xiàn)點(diǎn)燈

    上一篇我們介紹了MQTT設(shè)備如何接入HomeAssistant(打卡智能家居之旅(2):設(shè)備接入HomeAssistant的方法),這一篇就給大家講一下Ai-M61/M62 開發(fā)板或者模組怎么通過
    的頭像 發(fā)表于 06-07 10:07 ?899次閱讀
    智能家居之旅(3):<b class='flag-5'>Ai-M61</b>/<b class='flag-5'>M</b>62 接入HomeAssistant <b class='flag-5'>實(shí)現(xiàn)</b>點(diǎn)燈

    Ai-M61/M62系列模組支持CAN接口了?

    hello,小伙伴們,經(jīng)過一段時(shí)間的開發(fā)和測(cè)試,Ai-M61/M62模組可以支持CAN接口
    的頭像 發(fā)表于 12-27 10:59 ?561次閱讀
    <b class='flag-5'>安</b><b class='flag-5'>信</b><b class='flag-5'>可</b><b class='flag-5'>Ai-M61</b>/<b class='flag-5'>M</b>62<b class='flag-5'>系列</b><b class='flag-5'>模組</b>支持CAN接口了?

    藍(lán)牙模組PB系列常見問題

    科技針對(duì)物聯(lián)網(wǎng)設(shè)計(jì)通用型的藍(lán)牙模組,其功能強(qiáng)大、用途廣泛。可以用于 智能燈、智能插座、智能
    的頭像 發(fā)表于 01-16 09:52 ?487次閱讀

    能和Ai-M61模組對(duì)話了?手搓一個(gè)ChatGPT 語音助手

    起猛了, Ai-M61模組能說話了! 超低延遲實(shí)時(shí)秒回 ,對(duì)話超絲滑的那種,先來看一段VCR: 小安派+ChatGPT語音實(shí)測(cè):對(duì)話
    的頭像 發(fā)表于 03-12 11:57 ?287次閱讀
    能和<b class='flag-5'>Ai-M61</b><b class='flag-5'>模組</b>對(duì)話了?手搓一個(gè)ChatGPT 語音助手