『免費開源』基于STM32的智能垃圾桶之綜合代碼(HAL庫)
我們用定時器TIM2來實現(xiàn)1ms整數(shù)倍時間的定時,是在“非阻塞模式下定時器的回調(diào)函數(shù)” HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)中,添加一些變量來實現(xiàn):
接下來,我們可以設(shè)置4個舵機的初始狀態(tài),根據(jù)<基于STM32的智能垃圾桶之舵機控制(HAL庫)>中介紹的有關(guān)舵機控制的知識,我們可以通過如下方式設(shè)置4個舵機的初始角度為0°,并將4個舵機的狀態(tài)都設(shè)置為“空閑”狀態(tài):
因為我們有使用到USART1和USART3這兩個串口的中斷功能,所以,我們還需要使能他們的中斷接收:
在使能中斷接收后,當(dāng)串口有接收到數(shù)據(jù),便會自動進入到“串口接收完成回調(diào)函數(shù)” HAL_UART_RxCpltCallback(UART_HandleTypeDef *UartHandle)里面來:
我們在使用定時器中斷和串口中斷時,還需要在“stm32f1xx_it.c”文件中,添加如下代碼,否則,定時器中斷和串口中斷不起作用:
接下來,我們就要來實現(xiàn)語音識別部分的代碼,如下圖所示,讓我們USART1接收到0xFE(即:254)時,語音模塊口令模式喚醒成功,這個時候RGB紅燈亮,同時語音播報模塊會提示“主人請吩咐”。若10秒內(nèi)沒有說出具體的垃圾名,則RGB紅燈滅,下一次操作時需要重新喚醒:
這個時候,便進入了具體的垃圾類別的處理程序,當(dāng)我們語音播報模塊播放“主人請吩咐”完成后,我們便可以說出具體的垃圾名,然后,系統(tǒng)會根據(jù)語音識別模塊的返回值來執(zhí)行對應(yīng)的動作,這里是通過一個switch()語句來實現(xiàn):
具體的垃圾分類識別成功后,RGB綠色指示燈會亮,且語音播報模塊會播放對應(yīng)的垃圾分類名,同時,對應(yīng)的垃圾桶蓋會慢慢打開,這個打開的速度,可以在一定范圍內(nèi)調(diào)節(jié)。垃圾桶蓋打開完成后,延時5秒,便會自動關(guān)閉,這部分功能實現(xiàn)代碼,是在Servo_OpenAndClose()這個函數(shù)中,以舵機1的代碼為例,其余3個舵機代碼類似:
接下來,我們只需要將代碼下載到我們的開發(fā)板中,即可看到運行的效果:
由于我們的蜂鳴器正好跟舵機4共用了定時器TIM3的通道4引腳,所以,下載程序后蜂鳴器會一直在響,可能會對語音識別有一點小干擾,但是影響不會很大,如果有小伙伴在用我們的『OWL Micro F1開發(fā)板』做這個DIY項目,大家也可以把蜂鳴器拆除。
好了,到這里,我們的整個<智能垃圾桶>的DIY項目就全部介紹完成了,感興趣的小伙伴們可以自己動手做起來,雖然這個代碼是在我們的『OWL Micro F1開發(fā)板』上實現(xiàn)的,但是,如果大家沒有我們的這款開發(fā)板,大家也可以將代碼移植到別的STM32F1系列的板子上去運行。當(dāng)然咯,大家也可以在我們的代碼基礎(chǔ)上繼續(xù)做一些優(yōu)化,做一個更好玩的DIY項目出來。
需要完整代碼的小伙伴們可在我們『芯知識學(xué)堂』微信公眾號后臺回復(fù)“智能垃圾桶”后即可獲得本項目所有資料的下載鏈接,您們的支持是我們堅持創(chuàng)作的動力,感謝大家的支持!
原創(chuàng)不易,轉(zhuǎn)載請務(wù)必注明出處!
end
請輸入評論內(nèi)容...
請輸入評論/評論長度6~500個字
最新活動更多
-
10月31日立即下載>> 【限時免費下載】TE暖通空調(diào)系統(tǒng)高效可靠的組件解決方案
-
即日-11.13立即報名>>> 【在線會議】多物理場仿真助跑新能源汽車
-
11月28日立即報名>>> 2024工程師系列—工業(yè)電子技術(shù)在線會議
-
12月19日立即報名>> 【線下會議】OFweek 2024(第九屆)物聯(lián)網(wǎng)產(chǎn)業(yè)大會
-
即日-12.26火熱報名中>> OFweek2024中國智造CIO在線峰會
-
即日-2025.8.1立即下載>> 《2024智能制造產(chǎn)業(yè)高端化、智能化、綠色化發(fā)展藍皮書》
推薦專題
- 高級軟件工程師 廣東省/深圳市
- 自動化高級工程師 廣東省/深圳市
- 光器件研發(fā)工程師 福建省/福州市
- 銷售總監(jiān)(光器件) 北京市/海淀區(qū)
- 激光器高級銷售經(jīng)理 上海市/虹口區(qū)
- 光器件物理工程師 北京市/海淀區(qū)
- 激光研發(fā)工程師 北京市/昌平區(qū)
- 技術(shù)專家 廣東省/江門市
- 封裝工程師 北京市/海淀區(qū)
- 結(jié)構(gòu)工程師 廣東省/深圳市