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; 大" />

在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

安信可Ai-M61系列模組實現藍牙歌詞播放功能

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

以下作品由安信可社區用戶

sujingliang制作

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

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

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

1論壇里有大佬實現了BTstack port

使用BTstack測試M61

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

(出處: 物聯網開發者社區-安信可論壇)

也就是說可以用BTstack開源協議棧來開發M61模塊傳統藍牙功能。

2本文想實現的藍牙歌詞播放功能

看到有藍牙歌詞播放器在賣,感覺很神奇,用ESP32實現一下

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

(出處: 21ic電子技術開發論壇)

為了達到目標,需要完成以下工作:

1、驅動一個屏幕,可以是LED、LCD,這個決定最終的顯示效果。
2、需要一個GBK漢字字模庫,用來獲取顯示漢字。
3、需要一個UTF轉GBK的函數,因為AVRCP是UTF-8格式的,需要轉換成GBK格式才能通過GBK漢字字模庫獲取字模。
4、讀懂A2DP例程,加入適當的功能。(btstack編程

3關于LCD驅動和字庫驅動(不是本重點)

【外設移植】+LCD_ST7735+M61開發板+GB2312字庫

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

(出處: 物聯網開發者社區-安信可論壇)

4關于UTF轉GBK的函數

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

這部分不用自己實現,網上有現成的。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中設置使用a2dp_sink_demo.c這個例子。
set(EXAMPLE "a2dp_sink_demo")
a2dp_sink_demo.c中在 case
AVRCP_SUBEVENT_NOW_PLAYING_TITLE_INFO增加如下內容
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格式轉為GB2312格式;然后在LCD上顯示出來。

AVRCP_SUBEVENT_NOTIFICATION_TRACK_CHANGED中增加對avrcp_controller_get_now_playing_info的調用,就是在TRACK發生改變時調用獲取playing_info函數,進而觸發AVRCP_SUBEVENT_NOW_PLAYING_TITLE_INFO。

6使用效果

手機打開藍牙,和M61配對連接,然后可以斷開連接

wKgZPGe-sb6Aa3_JAACIjCrWKBQ963.jpg

●在手機藍牙斷開連接的情況下,通過串口工具發出btstack c命令使M61發送AVRCP連接命令,

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

這時手機和M61會自動連接上。

wKgZO2e-sb-AR62xAAGoZs81VPo384.jpg

●打開手機上的音樂播放軟件

wKgZPGe-sb-ADCs_AAC-mFEhjfQ977.jpg

手機上的歌詞變化,LCD上也會相應變化

wKgZO2e-scCAKPW7AAAgv7tzLek771.jpg

7總結

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

類似下面的報錯時不時就發生,然后程序就掛了,非常不穩定。

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

不是每個手機都可以建立AVRCP連接,手頭2個手機,1個可以,1個不行。

歸根到底利用AVRCP協議獲取歌詞信息,實現的方案還是存在不少問題。主要是因為接觸傳統藍牙時間比較短,而且藍牙協議棧還是太復雜,好多東西都不懂,慢慢學習。

8原貼地址

Ai-M61實現藍牙歌詞播放功能 - 電子DIY - 物聯網開發者社區-安信可論壇 - Powered by Discuz!?bbs.ai-thinker.com/forum.php?mod=viewthread&tid=45524&_dsign=3bc296c7

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 藍牙
    +關注

    關注

    114

    文章

    5944

    瀏覽量

    172161
  • wi-fi
    +關注

    關注

    14

    文章

    2188

    瀏覽量

    125867
  • 安信可
    +關注

    關注

    0

    文章

    172

    瀏覽量

    4209
收藏 人收藏

    評論

    相關推薦

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

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

    Ai-M61/62系列的固件燒錄指導

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

    Ai-WB2系列模組概述

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

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

    Ai-WB2系列模組基于TCP的MQTT連接服務器使用示例
    的頭像 發表于 10-16 10:21 ?1190次閱讀
    <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連接服務器使用示例

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

    本文介紹Ai-M61/Ai-M62系列模組/開發板連接亞馬遜云方法。 Ai-M61 系列
    的頭像 發表于 02-04 15:51 ?1026次閱讀
    <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標準的演進,Wi-Fi6已走向大規模商用階段。去年通過長期研發設計及反復打磨,推出WiFi 6+BLE5.3+X模組——Ai-M
    的頭像 發表于 02-25 09:54 ?1237次閱讀
    <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模組發布

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

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

    Ai-M61系列是“WiFi 6+BLE5.3+Thread”高性能的嵌入式無線通信模組,該模組搭載BL618 芯片作為核心處理器,BL618 芯片系統包含帶 FPU 和 DSP 的
    的頭像 發表于 03-12 16:22 ?812次閱讀
    “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/藍牙二合一Ai-M62-CBS模組

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

    基于Ai-M61模組打造一個智能魚缸水質監測系統

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

    【雷達燈控】 Rd-03E+ 燈 + Ai-M61

    的相關產品。產品的資料有很多,不過感覺有些文件的內容有些重復,上位機軟件的各個參數可能是因為涉及到內部邏輯所以沒有詳細說明。模塊資料鏈接:Rd-03 系列模組 |
    的頭像 發表于 06-07 09:45 ?616次閱讀
    【雷達燈控】<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 實現點燈

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

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

    hello,小伙伴們,經過一段時間的開發和測試,Ai-M61/M62模組可以支持CAN接口
    的頭像 發表于 12-27 10:59 ?456次閱讀
    <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接口了?

    藍牙模組PB系列常見問題

    科技針對物聯網設計通用型的藍牙模組,其功能強大、用途廣泛。可以用于 智能燈、智能插座、智能
    的頭像 發表于 01-16 09:52 ?369次閱讀

    能和Ai-M61模組對話了?手搓一個ChatGPT 語音助手

    起猛了, Ai-M61模組能說話了! 超低延遲實時秒回 ,對話超絲滑的那種,先來看一段VCR: 小安派+ChatGPT語音實測:對話
    的頭像 發表于 03-12 11:57 ?206次閱讀
    能和<b class='flag-5'>Ai-M61</b><b class='flag-5'>模組</b>對話了?手搓一個ChatGPT 語音助手
    主站蜘蛛池模板: 九九碰| 91大神大战高跟丝袜美女 | 日本三级在线播放线观看2021 | 国产精品久久久久久久人热 | 久久青草18免费观看网站 | 色成网| 神马午夜在线观看 | 亚洲精品一线二线三线 | 久久精品国产乱子伦多人 | 性久久久久久久 | 亚洲情a成黄在线观看 | 欧美成人 一区二区三区 | 欧美成人aaaa免费高清 | 国产大乳美女挤奶视频 | 亚洲国产激情在线一区 | 亚洲视频一区在线观看 | 鲁老汉精品视频在线观看 | 国产精品一区在线观看你懂的 | 黄 色 大 片 网站 | 久久都是精品 | 国产伦精品一区二区三区网站 | 亚洲狠狠婷婷综合久久久图片 | 又粗又长又大又黄的日本视频 | 亚州 色 图 综合 | 久久精品网站免费观看 | 藏经阁在线观看 | 欧美一级二级三级视频 | 毛片观看网址 | 免费啪视频在线观看免费的 | 成人亚洲欧美在线电影www色 | 国产一级特黄在线播放 | 伊人91在线 | 老师喂我吃她的奶水脱她胸罩 | 天天摸天天澡天天碰天天弄 | 日本大片成人免费播放 | 成人性色生活片免费看爆迷你毛片 | 亚洲精品视频专区 | 中文字幕第一页在线 | 天天爱天天爽 | 在线观看黄色网 | 国产一级淫 |