本设计:
5 u( N$ S8 d3 L2 _# W0 I9 O5 U STM32语音识别的智能蓝牙音箱(源程序+原理图+PCB+设计说明书+PPT) 原理图:Altium Designer 程序编译器:keil4/keil 5 编程语言:C语言 编号Y002 4 B1 l! l7 _) r1 _! ]; Y
设计说明: 本设计制作了以蓝牙接收模块,语音识别和STM32单片机为核心的蓝牙音箱。实现的具体要求如下: 1.语音识别: 采用基于自动语音识别技术的LD3320语音识别方案,调试语音模块识别本课题所需要的特定词汇。通过主控芯片STM32F103C8T6与语音识别模块LD-V7进行串口通信,主控芯片接收到串口关键字拼音后处理该消息命令。本课题需要的关键字包括:唤醒词、上一首、下一首、大声点、小声点、暂停、播放。 2.按键控制: 在不方便语音的情况下,可以采用按键来控制音箱。本课题选用JDY-64音频接收模块,该模块集成SD卡功能,支持按键控制。需要根据原厂手册提供的试用手册设计外围电路实现。 3.音频接收: 本课题选用的JDY-64 蓝牙模块,将模块接入应用产品,就可以实现手机电脑等智能设备的无线音乐传输,该模块采用蓝牙4.2版本,支持HFPV1.7、A2DPV1.2、 AVRCPV1.5、 AVCTPV1.2、AVDTPV1.2蓝牙协议,能够接收不同设备的音频信号,满足日常使用要求。 4.音箱的制作和调试: 采用D类功放处理芯片PAM8403,该芯片支持双声道功放,输出功率为3瓦特,能够直接驱动喇叭,支持蓝牙接收模块。喇叭采用市面上常见的3瓦特功率小音箱。
1 r# [2 v- u% u" L+ J
原理图(提供源文件):
, _6 ~2 Q$ q+ L# T _
PCB图(提供源文件):
4 \9 M& {6 D D) `5 ~
源程序(提供源文件)
+ i: ^% t' I- J9 Q
以下为部分程序:
9 z& n( k+ I9 Y! v- int main(void)
9 F" l6 `4 Y* p# p7 q9 x; A - {
+ N; r# ]) c6 d P! ~, h. W; ^/ L - delay_init(); //延时函数初始化 * H1 x$ s/ a1 V* u( X9 F9 [9 b
- NVIC_Configuration(); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级 //LED端口初始化" i; s" U1 }6 z, d
- uart_init(9600);//初始化串口1 uart_init
, R q) U+ S( Q; s5 U5 a3 ~5 E - buletooth_init();
! Z3 D0 x$ c: q0 ~- ~; y - int rec;+ E5 E% F1 w5 d
- while(1)
2 `, l- r7 g- ]& B w- O/ q; o - { 8 _& c8 M9 S% E7 }" B$ |! l4 W
- rec=ld3320_uart_receive();//得到接受函数的字符串buff J$ S% i1 H, y W
- printf("接收到 = %d\r\n",rec);: \5 g! _/ c( [; b( K
- switch(rec)( t1 Y6 Y( \ L3 B- A
- {
8 _. w S" f( S) z0 x - case 1: break;//小杰% w$ h: t! z9 C8 l w
- case 2: printf(" switch :2\r\n"); playorpause();break;//播放playorpause()/ X3 j) R* ^. [$ Q
- case 3: printf(" switch :3\r\n"); playorpause();break;//暂停& \, N% U6 p/ [2 A- t0 ^
- case 4: printf(" switch :4\r\n"); last();break;//上一首0 Y4 h, v0 T* t- Y8 K/ p
- case 5: printf(" switch :5\r\n");next();break;//下一首
; A j) P% a( d7 a8 N - case 6: printf(" switch :6\r\n"); volume_up();break;//大声点+ u$ {( v4 R" Y k
- case 7: printf(" switch :7\r\n");volume_down();break;//小点声) h/ m- N0 H* P2 M& m" t4 t2 v
- case 8: printf(" switch :8\r\n");break;//预留( \* L8 c. e% W1 K: z( [
- case 9: printf(" switch :9\r\n");break;//请重新识别发口令
% ^' q1 V& b8 ~6 w& F! n3 X% N/ L - case 10: printf(" switch :10\r\n");break;//请说出一级口令
: q. O/ j8 E3 l# g" ~4 m - default:break;
# `1 k, \8 l k+ \6 ^ - }
; N" p6 F: j6 U - } ' w5 R! j1 c5 ^( W; l
- }
复制代码 5 j! M: ~& {: ^" ~
; U k8 d5 [6 F, F& [
设计说明书:
1 k/ i2 `4 Y% M" t8 R
器件清单: 3 v( [! K% c/ I; h8 k* T- G
|