『免費(fèi)開(kāi)源』基于STM32的智能垃圾桶之綜合代碼(HAL庫(kù))
我們用定時(shí)器TIM2來(lái)實(shí)現(xiàn)1ms整數(shù)倍時(shí)間的定時(shí),是在“非阻塞模式下定時(shí)器的回調(diào)函數(shù)” HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)中,添加一些變量來(lái)實(shí)現(xiàn):
接下來(lái),我們可以設(shè)置4個(gè)舵機(jī)的初始狀態(tài),根據(jù)<基于STM32的智能垃圾桶之舵機(jī)控制(HAL庫(kù))>中介紹的有關(guān)舵機(jī)控制的知識(shí),我們可以通過(guò)如下方式設(shè)置4個(gè)舵機(jī)的初始角度為0°,并將4個(gè)舵機(jī)的狀態(tài)都設(shè)置為“空閑”狀態(tài):
因?yàn)槲覀冇惺褂玫経SART1和USART3這兩個(gè)串口的中斷功能,所以,我們還需要使能他們的中斷接收:
在使能中斷接收后,當(dāng)串口有接收到數(shù)據(jù),便會(huì)自動(dòng)進(jìn)入到“串口接收完成回調(diào)函數(shù)” HAL_UART_RxCpltCallback(UART_HandleTypeDef *UartHandle)里面來(lái):
我們?cè)谑褂枚〞r(shí)器中斷和串口中斷時(shí),還需要在“stm32f1xx_it.c”文件中,添加如下代碼,否則,定時(shí)器中斷和串口中斷不起作用:
接下來(lái),我們就要來(lái)實(shí)現(xiàn)語(yǔ)音識(shí)別部分的代碼,如下圖所示,讓我們USART1接收到0xFE(即:254)時(shí),語(yǔ)音模塊口令模式喚醒成功,這個(gè)時(shí)候RGB紅燈亮,同時(shí)語(yǔ)音播報(bào)模塊會(huì)提示“主人請(qǐng)吩咐”。若10秒內(nèi)沒(méi)有說(shuō)出具體的垃圾名,則RGB紅燈滅,下一次操作時(shí)需要重新喚醒:
這個(gè)時(shí)候,便進(jìn)入了具體的垃圾類別的處理程序,當(dāng)我們語(yǔ)音播報(bào)模塊播放“主人請(qǐng)吩咐”完成后,我們便可以說(shuō)出具體的垃圾名,然后,系統(tǒng)會(huì)根據(jù)語(yǔ)音識(shí)別模塊的返回值來(lái)執(zhí)行對(duì)應(yīng)的動(dòng)作,這里是通過(guò)一個(gè)switch()語(yǔ)句來(lái)實(shí)現(xiàn):
具體的垃圾分類識(shí)別成功后,RGB綠色指示燈會(huì)亮,且語(yǔ)音播報(bào)模塊會(huì)播放對(duì)應(yīng)的垃圾分類名,同時(shí),對(duì)應(yīng)的垃圾桶蓋會(huì)慢慢打開(kāi),這個(gè)打開(kāi)的速度,可以在一定范圍內(nèi)調(diào)節(jié)。垃圾桶蓋打開(kāi)完成后,延時(shí)5秒,便會(huì)自動(dòng)關(guān)閉,這部分功能實(shí)現(xiàn)代碼,是在Servo_OpenAndClose()這個(gè)函數(shù)中,以舵機(jī)1的代碼為例,其余3個(gè)舵機(jī)代碼類似:
接下來(lái),我們只需要將代碼下載到我們的開(kāi)發(fā)板中,即可看到運(yùn)行的效果:
由于我們的蜂鳴器正好跟舵機(jī)4共用了定時(shí)器TIM3的通道4引腳,所以,下載程序后蜂鳴器會(huì)一直在響,可能會(huì)對(duì)語(yǔ)音識(shí)別有一點(diǎn)小干擾,但是影響不會(huì)很大,如果有小伙伴在用我們的『OWL Micro F1開(kāi)發(fā)板』做這個(gè)DIY項(xiàng)目,大家也可以把蜂鳴器拆除。
好了,到這里,我們的整個(gè)<智能垃圾桶>的DIY項(xiàng)目就全部介紹完成了,感興趣的小伙伴們可以自己動(dòng)手做起來(lái),雖然這個(gè)代碼是在我們的『OWL Micro F1開(kāi)發(fā)板』上實(shí)現(xiàn)的,但是,如果大家沒(méi)有我們的這款開(kāi)發(fā)板,大家也可以將代碼移植到別的STM32F1系列的板子上去運(yùn)行。當(dāng)然咯,大家也可以在我們的代碼基礎(chǔ)上繼續(xù)做一些優(yōu)化,做一個(gè)更好玩的DIY項(xiàng)目出來(lái)。
需要完整代碼的小伙伴們可在我們『芯知識(shí)學(xué)堂』微信公眾號(hào)后臺(tái)回復(fù)“智能垃圾桶”后即可獲得本項(xiàng)目所有資料的下載鏈接,您們的支持是我們堅(jiān)持創(chuàng)作的動(dòng)力,感謝大家的支持!
原創(chuàng)不易,轉(zhuǎn)載請(qǐng)務(wù)必注明出處!
end

發(fā)表評(píng)論
請(qǐng)輸入評(píng)論內(nèi)容...
請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字
圖片新聞
-
機(jī)器人奧運(yùn)會(huì)戰(zhàn)報(bào):宇樹(shù)機(jī)器人摘下首金,天工Ultra搶走首位“百米飛人”
-
存儲(chǔ)圈掐架!江波龍起訴佰維,索賠121萬(wàn)
-
長(zhǎng)安汽車(chē)母公司突然更名:從“中國(guó)長(zhǎng)安”到“辰致科技”
-
豆包前負(fù)責(zé)人喬木出軌BP后續(xù):均被辭退
-
字節(jié)AI Lab負(fù)責(zé)人李航卸任后返聘,Seed進(jìn)入調(diào)整期
-
員工持股爆雷?廣汽埃安緊急回應(yīng)
-
中國(guó)“智造”背后的「關(guān)鍵力量」
-
小米汽車(chē)研發(fā)中心重磅落地,寶馬家門(mén)口“搶人”
最新活動(dòng)更多
-
10月23日火熱報(bào)名中>> 2025是德科技創(chuàng)新技術(shù)峰會(huì)
-
10月23日立即報(bào)名>> Works With 開(kāi)發(fā)者大會(huì)深圳站
-
10月24日立即參評(píng)>> 【評(píng)選】維科杯·OFweek 2025(第十屆)物聯(lián)網(wǎng)行業(yè)年度評(píng)選
-
11月27日立即報(bào)名>> 【工程師系列】汽車(chē)電子技術(shù)在線大會(huì)
-
12月18日立即報(bào)名>> 【線下會(huì)議】OFweek 2025(第十屆)物聯(lián)網(wǎng)產(chǎn)業(yè)大會(huì)
-
精彩回顧立即查看>> 【限時(shí)福利】TE 2025國(guó)際物聯(lián)網(wǎng)展·深圳站
推薦專題
- 1 人形機(jī)器人,正狂奔在批量交付的曠野
- 2 宇樹(shù)機(jī)器人撞人事件的深度剖析:六維力傳感器如何成為人機(jī)安全的關(guān)鍵屏障
- 3 解碼特斯拉新AI芯片戰(zhàn)略 :從Dojo到AI5和AI6推理引擎
- 4 AI版“四萬(wàn)億刺激”計(jì)劃來(lái)了
- 5 2025年8月人工智能投融資觀察
- 6 7 a16z最新AI百?gòu)?qiáng)榜:硅谷頂級(jí)VC帶你讀懂全球生成式AI賽道最新趨勢(shì)
- 8 Manus跑路,大廠掉線,只能靠DeepSeek了
- 9 一家被嚴(yán)重低估的國(guó)產(chǎn)AI巨頭
- 10 地平線的野心:1000萬(wàn)套HSD上車(chē)