chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

聚豐項目 > 基于 AB32VG1的智能音頻控制系統(tǒng)

基于 AB32VG1的智能音頻控制系統(tǒng)

本系統(tǒng)支持本地按鍵觸發(fā)控制音頻播放、切換音量控制,LED通過閃爍時的亮度實時反映音高低,方便易用;同時通過wifi連接本地或遠程云端控制上位機,云端可遠程控制的音頻播放、切換、指定播放,音量控制等功能,設(shè)備實時上報狀態(tài)信息,交由云端處理,實現(xiàn)數(shù)據(jù)的實時交互,云與物的有機結(jié)合。 上位機軟件使用python Tkinter GUI 庫完成設(shè)計實現(xiàn),可運行在windows、linux等系統(tǒng),適配性、穩(wěn)定性、兼容性強,且UI交互更符合人性化設(shè)計。

April8820 April8820

分享
1 喜歡這個項目
團隊介紹

April8820 April8820

團隊成員

April8820 嵌入式軟件工程師

分享
項目簡介
本系統(tǒng)支持本地按鍵觸發(fā)控制音頻播放、切換音量控制,LED通過閃爍時的亮度實時反映音高低,方便易用;同時通過wifi連接本地或遠程云端控制上位機,云端可遠程控制的音頻播放、切換、指定播放,音量控制等功能,設(shè)備實時上報狀態(tài)信息,交由云端處理,實現(xiàn)數(shù)據(jù)的實時交互,云與物的有機結(jié)合。 上位機軟件使用python Tkinter GUI 庫完成設(shè)計實現(xiàn),可運行在windows、linux等系統(tǒng),適配性、穩(wěn)定性、兼容性強,且UI交互更符合人性化設(shè)計。
硬件說明

硬件組成:

本地硬件:AB32VG1開發(fā)版+ESP-C3-32S評估板

遠程控制:PC或其他終端設(shè)備

硬件介紹:

AB32VG1開發(fā)版使用到的外設(shè)有:SDIO,AUDIO,KEY,LED,PWM,UART等

ESP-C3-32S評估板UART與AB32VG1開發(fā)版UART1連接

PC:windows系統(tǒng)且已安裝python編譯環(huán)境

模塊圖片:

1.jpg


軟件說明

一、AB32VG1軟件流程圖:包括音頻控制下位機和上位機


RT-thread使用情況:

內(nèi)核:線程、消息隊列等

驅(qū)動:uart、pwm、io、spi、sdio、audio等

組件:dfs、romfs、fatfs、finsh等

軟件包:wavplayer、optparse、multibutton等

主流程:


image.png


key線程、uart線程、業(yè)務處理線程:

image.png

二、音頻控制下位機軟件詳細說明:

主流程:

1.rtthread內(nèi)核類模塊初始化:rthread啟動相關(guān)初始化

2.驅(qū)動、組件、軟件包初始化:uart、sdio、pwm、audio、msh、dfs、fatfs、multibutton、optparse、wavplayer等

3.romfs初始化,掛載到"/"目錄,并在rom中創(chuàng)建了sd文件夾(romfs.c如下)

1.png

4.sd卡掛載文件系統(tǒng),目錄為“/sd”

5.目錄“/sd”下的wav文件檢索

6.注冊按鍵回調(diào),創(chuàng)建按鍵檢測線程

7.pwm初始化及LED的亮度控亮

將當前播放音量作為pwm脈沖的周期,音量越高,閃爍時的LED越亮

KEY線程:

1.按鍵循環(huán)檢測觸發(fā)對應回調(diào)。

2.按鍵0回調(diào):單擊:上一首 ;長按:音量增加

3.按鍵1回調(diào):單擊:播放/暫停

4.按鍵2回調(diào):單擊:下一首 ;長按:音量降低

串口接收線程:

1.接收數(shù)據(jù)打包后放入接收信息隊列:

這里采用循環(huán)讀取的方式完成了串口打包,打包間隔為5ms

業(yè)務處理線程:

1.啟動串口接收線程

2.WIFI聯(lián)網(wǎng),建立socke連接

進入socket(這里使用UDP,可根據(jù)需求修改配置)透傳的指令及回復:

AT設(shè)置函數(shù):

該函數(shù)將根據(jù)配置指令結(jié)構(gòu)體數(shù)組,依次在重試次數(shù)內(nèi)發(fā)送AT指令,等待模組回復,并對比回復結(jié)果

AT命令交互函數(shù):

該函數(shù)實現(xiàn)了AT指令的一次交互,具體流程:串口數(shù)據(jù)緩存沖刷,發(fā)送AT指令,更劇結(jié)構(gòu)體定義控制發(fā)送換行,在超時時間內(nèi)等待模組回復,最終返回指令交互結(jié)果。

3.數(shù)據(jù)解析及處理,狀態(tài)上報

循環(huán)接收socket收到的數(shù)據(jù),對符合格式的數(shù)據(jù)進行處理;

無接收數(shù)據(jù)時,獲取當前播放狀態(tài),上報狀態(tài)信息到socket

狀態(tài)控制:

對命令碼進行相應動作:上一曲、下一曲、開始/暫停、音量加、減已經(jīng)播放指定歌曲

狀態(tài)獲?。?/span>

獲取當前播放狀態(tài)、播放音量、播放歌曲已經(jīng)播放列表


三、python上位機軟件詳細說明:

UI設(shè)計:

socket接收顯示:

創(chuàng)建socket,接收到數(shù)據(jù)后對數(shù)據(jù)進行解析,更新界面的信息展示

控制按鈕觸發(fā)及列表選擇回調(diào)函數(shù):

控制按鈕功能:上一曲、下一曲、開始/暫停、音量加、減

列表選擇功能:雙擊選擇歌曲后,上位機下發(fā)播放該歌曲指令

上位機展示:


四、GITEE廠庫地址

https://gitee.com/dingningee/ab32vg1.git

演示效果

1.主演示視頻

        

2.補充視頻

       


評論區(qū)(0 )