1、項(xiàng)目簡(jiǎn)介
- 演示視頻
- https://www.bilibili.com/video/BV1bC4y1579d/?spm_id_from=333.999.0.0&vd_source=0fb8a603c3cd84c0c72e5fa5d4201605
1.1 系統(tǒng)構(gòu)成
本系統(tǒng)采用stm32f103c8t6單片機(jī)+晶振電路+復(fù)位電路+電源電路+車(chē)位檢測(cè)電路+OLED顯示電路+繼電器控制電路+語(yǔ)音識(shí)別電路構(gòu)成。
1.2 系統(tǒng)功能
- 1,通過(guò)紅外對(duì)管模塊實(shí)時(shí)檢測(cè)車(chē)位是否占用,車(chē)位分為1車(chē)位,2車(chē)位,3車(chē)位。
- 2,屏幕實(shí)時(shí)顯示車(chē)位是否被占用、車(chē)位被占用數(shù)、空車(chē)位數(shù)。
- 3,可以通過(guò)語(yǔ)音控制對(duì)應(yīng)車(chē)位打開(kāi)與關(guān)閉(用繼電器模擬打開(kāi)與關(guān)閉)比如,說(shuō)打開(kāi)1號(hào)車(chē)位,然后1號(hào)對(duì)應(yīng)的打開(kāi)
2、部分電路設(shè)計(jì)
2.1 stm32f103c8t6單片機(jī)最小系統(tǒng)電路設(shè)計(jì)
STM32F103C8T6是一款由意法半導(dǎo)體公司(ST)推出的基于Cortex-M3內(nèi)核的32位微控制器,硬件采用LQFP48封裝。
具體參數(shù)為:
- 64K x 8bit的Flash
- 20K x 8bit的SRAM
- 37個(gè)GPIO,分別為PA0-PA15、PB0-PB15、PC13-PC15、PD0-PD1
- 2個(gè)12bit ADC合計(jì)12路通道,外部通道:PA0到PA7以及PB0到PB1
- 內(nèi)部通道:溫度傳感器通道ADC_Channel_16和內(nèi)部參考電壓通道ADC_Channel_17
- 4個(gè)16bit定時(shí)器/計(jì)數(shù)器,分別為T(mén)IM1、TIM2、TIM3、TIM4
- 2個(gè)看門(mén)狗定時(shí)器(獨(dú)立看門(mén)狗IWDG、窗口看門(mén)狗WWDG)
- 1個(gè)24bit向下計(jì)數(shù)的滴答定時(shí)器systick
- 2個(gè)IIC,2個(gè)SPI,3個(gè)USART,1個(gè)CAN
- 內(nèi)部8MHz時(shí)鐘HSI最高可倍頻到64MHz,外部8MHz時(shí)鐘HSE最高可倍頻到72MHz
Cortex-M3是ARM公司推出的基于ARMv7架構(gòu)的MCU內(nèi)核,ST公司在此內(nèi)核的基礎(chǔ)上完成了USART、DMA、GPIO等外圍電路的設(shè)計(jì)。
STM32單片機(jī)最小系統(tǒng)電路由復(fù)位電路、時(shí)鐘電路和電源電路。擁有這三部分電路后,單片機(jī)即可正常工作。
單片機(jī)最小系統(tǒng)原理圖如下圖所示:
實(shí)物圖:
2.2 OLED液晶顯示電路設(shè)計(jì)
IIC-OLED模塊是一種高品質(zhì)、高性能的顯示屏,采用了有機(jī)發(fā)光二極管(OLED)技術(shù),通過(guò)四個(gè)針腳控制電源和信號(hào)來(lái)實(shí)現(xiàn)對(duì)顯示內(nèi)容的控制。該模塊具有以下特點(diǎn):
- 高分辨率和色彩深度:該OLED模塊具有高達(dá)128x32像素的分辨率和16位色彩深度,可以呈現(xiàn)出細(xì)膩、清晰的畫(huà)面效果。
- 顯示角度廣泛:該模塊具有178度的廣角度,可以在各種角度下提供清晰的圖像顯示,同時(shí)也適用于不同的應(yīng)用場(chǎng)景。
- 低功耗:OLED技術(shù)具有自發(fā)光特性,因此相比其他類(lèi)型的顯示屏,該模塊具有更低的功耗,延長(zhǎng)了電池壽命。
- 高可靠性:該模塊采用了高品質(zhì)的材料和工藝,嚴(yán)格把控生產(chǎn)流程,保證了產(chǎn)品的穩(wěn)定性和可靠性,適用于各種環(huán)境下的使用。
- 簡(jiǎn)單易用:該模塊通過(guò)四個(gè)針腳進(jìn)行控制,接口簡(jiǎn)單,易于集成到各種設(shè)備中。
IIC總線的OLED模塊是一種高品質(zhì)、高性能的顯示屏,具有廣泛的應(yīng)用前景。
-
電路設(shè)計(jì)
-
OLED模塊實(shí)物圖:
-
2.2 語(yǔ)音識(shí)別電路設(shè)計(jì)
- 語(yǔ)音識(shí)別電路使用 ASRPRO 芯片,這款芯片內(nèi)置神經(jīng)網(wǎng)絡(luò)處理器,能支持 DNN\TDNN\RNN 等神經(jīng)網(wǎng)絡(luò)及卷積運(yùn)算,支持語(yǔ)音識(shí)別、聲紋識(shí)別、語(yǔ)音增強(qiáng)、語(yǔ)音檢測(cè)等功能,具備強(qiáng)勁的回聲消除和環(huán)境噪聲抑制能力,語(yǔ)音識(shí)別效果優(yōu)于其它語(yǔ)音芯片。該芯片方案還支持漢語(yǔ)、英語(yǔ)、日語(yǔ)等多種全球語(yǔ)言,可廣泛應(yīng)用于家電、照明、玩具、可穿戴設(shè)備、工業(yè)、汽車(chē)等產(chǎn)品領(lǐng)域。
- 模塊主芯片支持離線神經(jīng)網(wǎng)絡(luò)計(jì)算,支持單麥克風(fēng)降噪增強(qiáng),單麥克風(fēng)回聲消除,360度全方位拾音,可抑制環(huán)境噪音,保證嘈雜環(huán)境中語(yǔ)音識(shí)別的準(zhǔn)確性。使用本模塊進(jìn)行離線語(yǔ)音識(shí)別不依賴(lài)網(wǎng)絡(luò),時(shí)延小,性能高,可實(shí)現(xiàn) 98%以上的高識(shí)別率,10 米超遠(yuǎn)距離識(shí)別,響應(yīng)時(shí)間小于 0.1s
特點(diǎn)如下:
-
1、支持 DNN\TDNN\RNN 等神經(jīng)網(wǎng)絡(luò)及卷積計(jì)算,支持語(yǔ)音識(shí)別、聲紋識(shí)別、語(yǔ) 音增強(qiáng)、語(yǔ)音檢測(cè)等功能。
-
2、32 位高性能 CPU,運(yùn)行頻率最高支持 240MHz
-
3、32-bit 單周期乘法器,支持 DSP 擴(kuò)展加速
-
電路圖如下:
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-762710.html
-
ASRPRO語(yǔ)音識(shí)別模塊實(shí)物圖:
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-762710.html
3、部分代碼展示
3.1 系統(tǒng)外設(shè)初始化
void DeviceInit(void) {
uart_init(9600); //串口初始化為9600
RelayInit(); //繼電器初始化
BiZhangInit(); //避障初始化
OLED_Init(); //oled屏幕初始化
OLED_ColorTurn(0);//0正常顯示,1 反色顯示
OLED_DisplayTurn(0);//0正常顯示 1 屏幕翻轉(zhuǎn)顯示
}
3.2 OLED液晶顯示屏初始化
void OLED_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(SCL_APB, ENABLE); //使能端口時(shí)鐘
GPIO_InitStructure.GPIO_Pin = SCL_PIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD; //推挽輸出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//速度50MHz
GPIO_Init(SCL_PORT, &GPIO_InitStructure); //初始化引腳
GPIO_SetBits(SCL_PORT,SCL_PIN);
RCC_APB2PeriphClockCmd(SDA_APB, ENABLE); //使能端口時(shí)鐘
GPIO_InitStructure.GPIO_Pin = SDA_PIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽輸出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//速度50MHz
GPIO_Init(SDA_PORT, &GPIO_InitStructure); //初始化引腳
GPIO_SetBits(SDA_PORT,SDA_PIN);
OLED_WR_Byte(0xAE,OLED_CMD);//--turn off oled panel
OLED_WR_Byte(0x00,OLED_CMD);//---set low column address
OLED_WR_Byte(0x10,OLED_CMD);//---set high column address
OLED_WR_Byte(0x40,OLED_CMD);//--set start line address Set Mapping RAM Display Start Line (0x00~0x3F)
OLED_WR_Byte(0x81,OLED_CMD);//--set contrast control register
OLED_WR_Byte(0xCF,OLED_CMD);// Set SEG Output Current Brightness
OLED_WR_Byte(0xA1,OLED_CMD);//--Set SEG/Column Mapping 0xa0左右反置 0xa1正常
OLED_WR_Byte(0xC8,OLED_CMD);//Set COM/Row Scan Direction 0xc0上下反置 0xc8正常
OLED_WR_Byte(0xA6,OLED_CMD);//--set normal display
OLED_WR_Byte(0xA8,OLED_CMD);//--set multiplex ratio(1 to 64)
OLED_WR_Byte(0x3f,OLED_CMD);//--1/64 duty
OLED_WR_Byte(0xD3,OLED_CMD);//-set display offset Shift Mapping RAM Counter (0x00~0x3F)
OLED_WR_Byte(0x00,OLED_CMD);//-not offset
OLED_WR_Byte(0xd5,OLED_CMD);//--set display clock divide ratio/oscillator frequency
OLED_WR_Byte(0x80,OLED_CMD);//--set divide ratio, Set Clock as 100 Frames/Sec
OLED_WR_Byte(0xD9,OLED_CMD);//--set pre-charge period
OLED_WR_Byte(0xF1,OLED_CMD);//Set Pre-Charge as 15 Clocks & Discharge as 1 Clock
OLED_WR_Byte(0xDA,OLED_CMD);//--set com pins hardware configuration
OLED_WR_Byte(0x12,OLED_CMD);
OLED_WR_Byte(0xDB,OLED_CMD);//--set vcomh
OLED_WR_Byte(0x30,OLED_CMD);//Set VCOM Deselect Level
OLED_WR_Byte(0x20,OLED_CMD);//-Set Page Addressing Mode (0x00/0x01/0x02)
OLED_WR_Byte(0x02,OLED_CMD);//
OLED_WR_Byte(0x8D,OLED_CMD);//--set Charge Pump enable/disable
OLED_WR_Byte(0x14,OLED_CMD);//--set(0x10) disable
OLED_Clear();
OLED_WR_Byte(0xAF,OLED_CMD);
}
3.3 OLED顯示字符串
void OLED_ShowString(u8 x,u8 y,u8 *chr,u8 size1,u8 mode)
{
while((*chr>=' ')&&(*chr<='~'))//判斷是不是非法字符!
{
OLED_ShowChar(x,y,*chr,size1,mode);
if(size1==8)x+=6;
else x+=size1/2;
chr++;
}
}
到了這里,關(guān)于畢業(yè)設(shè)計(jì)|基于STM32單片機(jī)的語(yǔ)音識(shí)別控制智能停車(chē)場(chǎng)設(shè)計(jì)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!