加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入

基于STM32和LD3320的智能語音識(shí)別柔光臺(tái)燈設(shè)計(jì)

08/09 09:46
1948
服務(wù)支持:
技術(shù)交流群

完成交易后在“購買成功”頁面掃碼入群,即可與技術(shù)大咖們分享疑惑和經(jīng)驗(yàn)、收獲成長和認(rèn)同、領(lǐng)取優(yōu)惠和紅包等。

虛擬商品不可退

當(dāng)前內(nèi)容為數(shù)字版權(quán)作品,購買后不支持退換且無法轉(zhuǎn)移使用。

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論
放大
實(shí)物圖
相關(guān)方案
  • 方案介紹
  • 相關(guān)文件
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

原理圖Altium Designer

程序編譯器:keil4/keil 5

編程語言:C語言

設(shè)計(jì)編號(hào):Y001

資料下載鏈接

設(shè)計(jì)說明

課題主要研究語音識(shí)別、按鍵識(shí)別、PWM波調(diào)節(jié)亮度、OLED屏幕顯示四個(gè)模塊。

目前市面上語音識(shí)別的臺(tái)燈大多僅是控制燈的亮滅,采用的是普通LED節(jié)能燈進(jìn)行照明。相比較于市場上已有的產(chǎn)品,本課題所研究設(shè)計(jì)的臺(tái)燈采用的主控芯片是性能較高的STM32F103C8T6單片機(jī)芯片,采用中斷方式對(duì)臺(tái)燈進(jìn)行按鍵控制,并通過基于LD332O語音識(shí)別模塊,利用非特定人語音識(shí)別技術(shù)對(duì)臺(tái)燈的工作狀態(tài)進(jìn)行語音控制,同時(shí)實(shí)現(xiàn)了語音控制和按鍵控制臺(tái)燈的工作狀態(tài)。

采用輸出波形比較輸出PWM波,利用PWM波來控制光照的亮度及達(dá)到柔光照射的目的。并采用OLED屏幕顯示臺(tái)燈的工作狀態(tài)燈信息,因此使用者可以快速的指導(dǎo)臺(tái)燈目前的工作狀態(tài),根據(jù)自身的實(shí)際需求通過語音或者按鍵對(duì)臺(tái)燈的工作狀態(tài)進(jìn)行調(diào)節(jié),這樣就能夠更好的幫助這些弱勢(shì)群體,如老人、兒童、孕婦等行動(dòng)不便的人。

由于采用的是柔光臺(tái)燈照明,在一定程度上減緩青少年近視發(fā)病率持續(xù)上升的趨勢(shì),并且LED燈能夠緩解資源消耗過大、污染物排放量的現(xiàn)狀。

實(shí)現(xiàn)功能如下:

1、語音識(shí)別部分:采用市面上流行的基于LD3320語音識(shí)別模塊,利用非特定人語音識(shí)別(ASR)技術(shù),調(diào)試語音模塊使其滿足臺(tái)燈所需要的特定詞匯。詞匯包括:喚醒詞、開燈、關(guān)燈、亮一點(diǎn)、變暗等。采用主控芯片STM32F103C8T6與LD3320語音識(shí)別模塊進(jìn)行串口通信,主控芯片接收數(shù)據(jù)后處理該消息命令。

2、按鍵控制部分:利用按鍵中斷機(jī)制來控制燈的亮度,以及控制燈的開和關(guān)。

3、PWM波控制LED柔光燈亮度部分:采用STM32F103C8T6內(nèi)部自帶定時(shí)器輸出PWM功能,接上外圍電路,控制多個(gè)LED燈。

4、顯示模塊部分:主控芯片通過SPI協(xié)議驅(qū)動(dòng)0.96寸OLED屏幕,在128*64個(gè)像素點(diǎn)的屏幕上顯示燈的亮度級(jí)數(shù)及其他信息。

img

img

原理圖

img

系統(tǒng)各模塊器件介紹

整個(gè)設(shè)計(jì)包括STM32F103C8T6主控芯片模塊、0.96寸OLED顯示模塊、LD3320語音模塊、按鍵模塊、LED燈組模塊等組成,如下圖 2.1所示:

image-20220901004833721

主要用到的元器件有STM32F103C8T6單片機(jī)、OLED顯示屏幕和其驅(qū)動(dòng)芯片SSD1306、LD3320語音識(shí)別芯片和內(nèi)部的增強(qiáng)型51單片機(jī)等,這些元器件將會(huì)在本章中進(jìn)行介紹。

LD3320語音識(shí)別模塊

? LD3320語音識(shí)別常用的芯片,該芯片組成的語音模塊識(shí)別的靈敏度高,采用的是非特定人語音識(shí)別(ARS)技術(shù),這種技術(shù)是能夠識(shí)別漢字小寫拼音內(nèi)容的,本課題的語音識(shí)別模塊由LD3320與STC11L08XE單片機(jī)組成識(shí)別系統(tǒng),如圖 2.4所示:

img

語音識(shí)別系統(tǒng)原理框圖

? 語音識(shí)別芯片能夠?qū)?a class="article-link" target="_blank" href="/baike/484367.html">咪頭輸入的語音信息內(nèi)容進(jìn)行頻譜分析之后再提取出該信息內(nèi)容的特征,再將識(shí)別出來的內(nèi)容傳輸至語音識(shí)別器中與先前所設(shè)定好的關(guān)鍵詞進(jìn)行比對(duì),然后找出與識(shí)別出的信息最為相似的關(guān)鍵詞,并進(jìn)行輸出。使用者只需要將識(shí)別出來的關(guān)鍵詞語內(nèi)容以漢字拼音字符串的形式傳輸至語音芯片當(dāng)中,即可識(shí)別生效。本課題語音識(shí)別模塊每次識(shí)別完成將通過中斷方式請(qǐng)求主控模塊進(jìn)行處理,通過SPI協(xié)議從語音識(shí)別芯片讀取信息,并根據(jù)識(shí)別的信息通過串口通信的方式將識(shí)別出來的信息發(fā)送給STM32F103C8T6單片機(jī)。

OLED顯示模塊

OLED顯示屏,是一種有機(jī)的發(fā)光二極管,它能夠自發(fā)光,并且擁有反應(yīng)靈敏、極薄厚度、能夠適應(yīng)的溫度范圍大、對(duì)比度相對(duì)較高,還有不需要背光源、結(jié)構(gòu)簡單、分辨率高等優(yōu)勢(shì),同時(shí)也存在著難以大型化的不足。

img本課題采用的OLED顯示屏為中景園電子的顯示屏,該模塊有藍(lán)色、黃藍(lán)色、白色三種顏色可供選擇,但是每一個(gè)OLED顯示屏只能顯示這三種顏色中的其中一種顏色,模塊尺寸為2.7CM2.6CM,顯示尺寸為0.96寸,屏幕的分辨率達(dá)12864,工作電壓為3.3V。其結(jié)構(gòu)圖如下圖 2.6所示:

image-20220901005115058

PCB圖

img

源程序

img

img

程序設(shè)計(jì)框架

整個(gè)程序的設(shè)計(jì)主要分為STM32F103C8T6單片機(jī)IO的初始化程序設(shè)計(jì)、OLED顯示程序設(shè)計(jì)、PWM波輸出程序設(shè)計(jì)、LD3320語音識(shí)別程序設(shè)計(jì)等,設(shè)計(jì)的框架如下圖 4.1所示:

img

程序流程圖

主程序里,先直接調(diào)用各個(gè)模塊初始化程序,完成OLED初始化、定時(shí)器初始化、串口初始化等,然后不斷掃描執(zhí)行switch case函數(shù),調(diào)用PWM波輸出控制LED燈程序和OLED顯示屏顯示函數(shù)。串口中斷和按鍵外部中斷會(huì)改變工switch控制參數(shù),以此達(dá)到改變PWM波和OLED不同的顯示界面。其主函數(shù)程序如下

image-20220901005224963

主函數(shù)

int main(void)
{
	delay_init();	    	 //延時(shí)函數(shù)初始化
	NVIC_Configuration(); 	 //設(shè)置NVIC中斷分組2:2位搶占優(yōu)先級(jí),2位響應(yīng)優(yōu)先級(jí) 	LED_Init();			     //LED端口初始化
	OLED_Init();			//初始化OLED 
	OLED_Clear(); 
	TIM1_PWM_Init();        //TIM1 PWM波輸出初始化,并使能TIM1 PWM輸出
	usart2_Init(9600);	    //初始化串口2
	EXTIX_Init();

	int j;
	show_name();
	My_USART2_SendData("123");
	while(1) 
	{
		j=ld3320_uart_receive();         //得到接受函數(shù)的字符串buff
		pwm_led_out_test(lighter); 
		switch(j)
		{
			case 1: show_name(); break; //小陳
			case 2:     //亮一點(diǎn)
			  My_USART2_SendData("ligther ");
			  if(lighter<5)              //如果亮度還不滿5
			    { lighter++; show_light(lighter);  }    //顯示亮度
			  else
			    { show_zuida(); } break;    //屏幕提示已達(dá)最大亮度
			case 3:      //變暗
			  if(lighter>0)
			    { lighter--; show_light(lighter); }    //顯示亮度
			  else
			    { show_zuidi(); } break;       //屏幕提示已達(dá)最低亮度
			case 4: lighter = 3; show_light(lighter); break;   //開燈,默認(rèn)亮度等級(jí)3,60%
			case 5: lighter = 0; show_ling(); break;       //關(guān)燈
			case 6: lighter = 1; show_ershi(); break;       //亮度20
			case 7: lighter = 3; show_liushi(); break;       //亮度60
			case 8: lighter = 5; show_yibai(); break; 		//亮度100
			case 9: show_chongfa(); break;       //顯示請(qǐng)重新發(fā)口令
			case 10: show_chongfa();	break;      //顯示請(qǐng)重新發(fā)口令
			default:break;
		}
	}
}

OLED程序

液晶顯示屏程序里,先配置SPI協(xié)議四個(gè)GPIO口和SSD1306復(fù)位引腳為推挽輸出,然后輸出復(fù)位電平復(fù)位SSD1306芯片。接下來是調(diào)用寫命令函數(shù)來設(shè)置SSD1306工作參數(shù),最后關(guān)閉顯示,復(fù)位坐標(biāo)點(diǎn)到原點(diǎn),

/初始化SSD1306通信引腳					    
void OLED_Init(void)
{ 	
 	GPIO_InitTypeDef  GPIO_InitStructure;
 	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);//使能A端口時(shí)鐘
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_7;
 	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 		    //推挽輸出
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;         //速度50MHz
 	GPIO_Init(GPIOA, &GPIO_InitStructure);	
 	GPIO_SetBits(GPIOA,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_4);
	
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);//使能A端口時(shí)鐘
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_8;
 	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 		    //推挽輸出
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;         //速度50MHz
 	GPIO_Init(GPIOB, &GPIO_InitStructure);
 	GPIO_SetBits(GPIOB,GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_8);
   
   OLED_RST_Set();
	delay_ms(100);
	OLED_RST_Clr();
	delay_ms(200);
	OLED_RST_Set();      //復(fù)位過程

LD3320驅(qū)動(dòng)代碼

void ProcessInt0(void)
{
	uint8 nAsrResCount=0;
	EX0=0;            //外部中斷0允許位:不允許
	ucRegVal = LD_ReadReg(0x2B);   
	LD_WriteReg(0x29,0) ;      //中斷允許寄存器
	LD_WriteReg(0x02,0) ;      //FIFO中斷允許位
	if((ucRegVal & 0x10) && LD_ReadReg(0xb2)==0x21 && LD_ReadReg(0xbf)==0x35)
// b2:DSP忙閑狀態(tài),0x21表閑,可以進(jìn)行下一步ASR動(dòng)作;bf:ASR狀態(tài)報(bào)告寄存器,確定一次語音識(shí)別流程正常結(jié)束,識(shí)別成功
	{
		nAsrResCount = LD_ReadReg(0xba); 
		if(nAsrResCount>0 && nAsrResCount<=4)   //BA寄存器對(duì)內(nèi)容進(jìn)行評(píng)分
		   { 
			nAsrStatus=LD_ASR_FOUNDOK;  //0x10 一次識(shí)別結(jié)束后有一個(gè)識(shí)別結(jié)果
		   } 
		else 
	      { 
			nAsrStatus=LD_ASR_FOUNDZERO;  //0x11一次識(shí)別結(jié)束后沒有識(shí)別結(jié)果
		    }
	}
	else                      //沒有識(shí)別結(jié)果
	   {
		nAsrStatus=LD_ASR_FOUNDZERO;
	    }
LD_WriteReg(0x2b,0);        //中斷請(qǐng)求編號(hào)寄存器
LD_WriteReg(0x1C,0);        //ADC開關(guān)控制,寫0表示ADC不可用
LD_WriteReg(0x29,0) ;      //中斷允許寄存器
LD_WriteReg(0x02,0) ;      //FIF0中斷允許
LD_WriteReg(0x2B,0);       //中斷請(qǐng)求編號(hào)寄存器
LD_WriteReg(0xBA,0);	     //中斷輔助信息寄存器
LD_WriteReg(0xBC,0);	     //識(shí)別過程強(qiáng)制結(jié)束,在ASR進(jìn)行過程中,可以設(shè)置本寄存器提前結(jié)束本次ASR過程
LD_WriteReg(0x08,1);	     //清除FIF0內(nèi)容(清除指定FIF0后再寫入一次0x00),0x01為清除FIFO_DATA
LD_WriteReg(0x08,0);	     //清除FIFO_DATA后 再次寫
EX0=1;                   //外部中斷允許位:允許中斷
}

設(shè)計(jì)說明書

立論依據(jù)

(課題來源、選題依據(jù)和背景情況、課題研究目的、理論意義和實(shí)際應(yīng)用價(jià)值)

隨著社會(huì)的發(fā)展,人們對(duì)美好生活愈加的向往,智能產(chǎn)品成為時(shí)代的發(fā)展趨勢(shì)。我國語音識(shí)別研究在近年來發(fā)展迅速,研究的水平也從實(shí)驗(yàn)室逐步走向市場,進(jìn)入消費(fèi)者的電子產(chǎn)品、工業(yè)、家電、通信、汽車電子、醫(yī)療、家庭服務(wù)等各個(gè)領(lǐng)域。

語音識(shí)別技術(shù)就是通過識(shí)別和理解把語音信號(hào)轉(zhuǎn)變?yōu)橄鄳?yīng)的文本或命令的高技術(shù),發(fā)展至今日,中小詞匯量非特定人語音識(shí)別系統(tǒng)識(shí)別精度已經(jīng)大于98%,對(duì)特定人語音識(shí)別系統(tǒng)的識(shí)別精度就更高,這已經(jīng)能夠滿足一般應(yīng)用的要求,于是大量的語音識(shí)別產(chǎn)品開始進(jìn)入市場和服務(wù)領(lǐng)域。這些產(chǎn)品為人們的生活提供了很大的便利,例如語音識(shí)別的智能臺(tái)燈,改變了傳統(tǒng)只能通過手動(dòng)控制的方式,采用語音識(shí)別技術(shù),通過語音來控制臺(tái)燈的工作狀態(tài)。

現(xiàn)在大部分臺(tái)燈都是通過手動(dòng)控制,雖然目前已有語音控制的臺(tái)燈,但大多數(shù)語音控制臺(tái)燈的控制模式單一,主要是控制臺(tái)燈的開和關(guān)。當(dāng)需要調(diào)節(jié)光照亮度時(shí)還需手動(dòng)調(diào)節(jié),因此使用起來很不方便,特別是對(duì)于老人、兒童和行動(dòng)不便者來講尤其困難。

設(shè)計(jì)這樣一款能夠通過語音識(shí)別控制亮滅以及亮度的臺(tái)燈,它可以根據(jù)使用者的需求來進(jìn)行調(diào)節(jié),這樣就能夠更好的幫助這些弱勢(shì)群體人群,以及在一定程度上減緩青少年近視發(fā)病率持續(xù)上升的趨勢(shì),并且能夠避免資源的不必要消耗。

文獻(xiàn)綜述

(國內(nèi)外研究現(xiàn)狀、發(fā)展動(dòng)態(tài))

隨著智能制造業(yè)的快速發(fā)展,語音識(shí)別開始得到廣泛的應(yīng)用,在信息處理、通信、控制等領(lǐng)域也相繼出現(xiàn)了各種功能的語音識(shí)別系統(tǒng)。其中應(yīng)用相對(duì)廣泛的有IBM公司的Viavoice、Android系統(tǒng)的Voice Actions、蘋果的Siri以及國內(nèi)科大訊飛的語音識(shí)別產(chǎn)品等,這些軟件的共同點(diǎn)是文本轉(zhuǎn)語音的功能較為完善,而反過來語音轉(zhuǎn)文本的功能則較為差些。例如Voice Actions的識(shí)別能力超強(qiáng),但是前提是必須按照規(guī)定的格式和語法結(jié)構(gòu)表達(dá),否則就無法識(shí)別。

隨著語音識(shí)別的廣泛應(yīng)用,出現(xiàn)了許多不同用途的語音識(shí)別模塊,例如DFRobot的中文語音識(shí)別模塊,它的核心是國內(nèi)ICRoute公司的高性能LD3320語音識(shí)別芯片,是一顆基于非特定人語音識(shí)別(ASR)技術(shù)的語音識(shí)別/聲控芯片,上面集成了高精度的A/D和D/A接口,不再需要外界輔助的Flash和RAM,就可以實(shí)現(xiàn)語音識(shí)別、聲控、人機(jī)對(duì)話功能,不需要用戶進(jìn)行錄音訓(xùn)練,識(shí)別的關(guān)鍵詞語列表是可以動(dòng)態(tài)編輯的。

越來越多的語音識(shí)別模塊的出現(xiàn),更加刺激了語音識(shí)別類產(chǎn)品的創(chuàng)新研發(fā),市面上出現(xiàn)各種功能的語音智能產(chǎn)品,產(chǎn)品以實(shí)用性、易用性和人性化為主,致力于為人們提供一個(gè)舒適、方便、高效和快捷的生活環(huán)境。

研究內(nèi)容

畢業(yè)設(shè)計(jì)(論文)的主要研究內(nèi)容、構(gòu)想與思路、可能出現(xiàn)的工作難點(diǎn)以及擬解決的方法)

主要研究內(nèi)容:本課題是基于語音識(shí)別的智能LED柔光臺(tái)燈設(shè)計(jì),主要的研究內(nèi)容包括語音識(shí)別模塊應(yīng)用,PWM波控制LED柔光燈的亮度,0.96寸OLED顯示當(dāng)前柔光LED臺(tái)燈的工作狀態(tài),軟件硬件的聯(lián)合調(diào)試。

構(gòu)想與思路:

1. 語音識(shí)別部分:采用市面上流行的非特定人語音識(shí)別(ASR)模塊,調(diào)試模塊可以滿足所需臺(tái)燈要的特定詞匯。詞匯包括:喚醒詞、開燈、關(guān)燈、亮一點(diǎn)、暗一點(diǎn)。采用主控芯片STM32F103C8T6與語音識(shí)別模塊進(jìn)行串口通信,主控芯片接收數(shù)據(jù)后處理該消息命令。

2. 按鍵控制部分:按鍵中斷機(jī)制控制燈的亮度,按鍵控制燈的開光。

3. PWM波LED柔光燈亮度:采用STM32F103C8T6內(nèi)部自帶定時(shí)器輸出PWM功能,接上外圍電路,控制多個(gè)LED燈。

4. 顯示模塊:主控芯片通過SPI協(xié)議驅(qū)動(dòng)0.96寸OLED屏幕,在128*64個(gè)像素點(diǎn)的屏幕上顯示燈的亮度級(jí)數(shù)及其他信息

研究基礎(chǔ)

(所需研究條件和實(shí)驗(yàn)條件)

1. 設(shè)計(jì)需要的主要元器件: STM32F103C8T6單片機(jī)開發(fā)板、LED燈、基于LD3320語音識(shí)別模塊、0.96寸OLED屏幕

2. 制作需要的實(shí)驗(yàn)條件:用于軟硬件設(shè)計(jì)的個(gè)人電腦、用于制作電路板的電子電工實(shí)驗(yàn)室相關(guān)設(shè)備、用于燒錄程序的ST-LINK下載器。

3. 調(diào)試需要的實(shí)驗(yàn)條件:直流穩(wěn)壓電壓源、萬用表、示波器等。

4. 研究所需的理論基礎(chǔ):C語言程序設(shè)計(jì)、單片機(jī)原理及應(yīng)用、模擬電子技術(shù)基礎(chǔ)、數(shù)字電路與邏輯設(shè)計(jì)、電路分析基礎(chǔ)等。

img

資料清單

下載鏈接見文章開頭

  1. 設(shè)計(jì)需要的主要元器件: STM32F103C8T6單片機(jī)開發(fā)板、LED燈、基于LD3320語音識(shí)別模塊、0.96寸OLED屏幕

2. 制作需要的實(shí)驗(yàn)條件:用于軟硬件設(shè)計(jì)的個(gè)人電腦、用于制作電路板的電子電工實(shí)驗(yàn)室相關(guān)設(shè)備、用于燒錄程序的ST-LINK下載器。

3. 調(diào)試需要的實(shí)驗(yàn)條件:直流穩(wěn)壓電壓源、萬用表、示波器等。

4. 研究所需的理論基礎(chǔ):C語言程序設(shè)計(jì)、單片機(jī)原理及應(yīng)用、模擬電子技術(shù)基礎(chǔ)、數(shù)字電路與邏輯設(shè)計(jì)、電路分析基礎(chǔ)等。

資料清單

下載鏈接見文章開頭

img

  • 設(shè)計(jì)資料獲取聯(lián)系方式.doc

推薦器件

更多器件
器件型號(hào) 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊(cè) ECAD模型 風(fēng)險(xiǎn)等級(jí) 參考價(jià)格 更多信息
STM32F429VIT6 1 STMicroelectronics High-performance advanced line, Arm Cortex-M4 core with DSP and FPU, 2 Mbytes of Flash memory, 180 MHz CPU, ART Accelerator, Chrom-ART Accelerator, FSMC, TFT

ECAD模型

下載ECAD模型
$34.08 查看
STM32F103VET6TR 1 STMicroelectronics Mainstream Performance line, Arm Cortex-M3 MCU with 512 Kbytes of Flash memory, 72 MHz CPU, motor control, USB and CAN

ECAD模型

下載ECAD模型
$13.06 查看
ATXMEGA256A3BU-MH 1 Microchip Technology Inc IC MCU 8BIT 256KB FLASH 64QFN

ECAD模型

下載ECAD模型
$5.86 查看

相關(guān)推薦

電子產(chǎn)業(yè)圖譜