每日一言
????????不必與他人比較速度,你走的每一步都在書寫自己的傳奇。
案例:語音識別小車
這個是最后一個功能了,其實就是用語音功能讓小車自己切換各種模式,當然了我們需要先學習一下語音模塊
硬件:SU-03T
這個叫做非特定語音識別模塊:就是不分辨聲調音色,同一個指令大家的聲音都會可以識別,這個就叫做非特定語音識別模塊,
還有一個叫做特定語音識別模塊,比如我們熟悉的蘋果的siri就是可以識別音色和音調等等確保只有你的聲音可以識別
我們這個非特定語音模塊的話用于一些項目,還有玩具上面,還有一些公司的小產品上是一個非常好的模塊,實際上就是結合我們的代碼層面就是將多個功能的代碼進行整合在一個程序里,然后我們用語音模塊的觸發條件進行判斷,就可以實現某個功能
怎么使用:
我們拿到模塊之后廠家有一個說明書,我就直接說了,就是我們需要用一個USB轉TTL的模塊將
就是這樣,還有一個是VCC接串口工具的5v,就一定要記住模塊的vcc是接串口工具的5V而不是VCC,我之前TM的接的是VCC搞了我好久才發現的是我接錯了
任何時候一定不能怪硬件,肯定是自己的問題
好了接好線后我們去打開這個網址智能公元/AI產品零代碼平臺,
步驟
最后完成保存后發布版本,然后下載SDK
以上就是所有的步驟了,對這個模塊的簡單使用
最重要的是這個步驟了,配置控制條件,就是我們說的命令,語音模塊識別到后會給出相應的反應,比如這邊我們使用的是電平控制,如果說打開循跡模式,那么A252627就會根據我們的配置傳出不同的高低電平給單片機比如下發的代碼
因為對應著我們的代碼實現,我們進行對端口的電平設置來實現我們的需要實現的功能,
好了這個配置就這樣講完了
現在講我們怎么進行燒錄呢,首先要進行串口的連接上面已經講過了
用這個串口工具哈
隨后我們下載好的SDK進行解壓,一定是要是全英文的路徑,不然容易出錯
根據以上的步驟一路下來就可以啦,記得這個點擊燒錄的時候要將模塊上面的電源從0ff到ON這樣才可以燒錄,或者是接一個安卓的線那也可以直接進行燒錄
燒錄完之后就可以進行對話啦
代碼層面我們怎么寫呢???
現在輪到是代碼層面
我們先將循跡、避障、跟隨三種模式融合到一起
當然了我們先想一下我們的每個程序如果都要融合在一個程序里面,那么是不是就是要考慮定時器的占用,當然了我們的舵機和超聲波的測距這兩個都需要各自占用一個定時器,真的沒有辦法去通過軟件來進行設計來進行定時器的占用,然后我們電機的差速行駛這邊是不是也需要一個定時器,但是真的沒有辦法在占用了,因為電機要是占用一個的話,因為電機是永遠在占用的無法通過軟件的設計去控制定時器的使用,所以我們要取消電機的差速行駛了,所以我們的藍牙小車的功能也加不進去了,因為串口中斷也需要用一個定時器主要就是配置是不一樣的,我們超聲波的定時器唄不能先開始計時的,要等ECHO收到高電平才能開始,所以藍牙小車加不進去了,好了,現在我們分析好了現狀我們來寫代碼
整合代碼
主要就是講main.c文件的代碼,因為其他的都不變
這個的話就是我們將避障的代碼封裝成一個函數,利于我們的調用,當然那些該移植引腳的代碼,要自己去移植,我不講,之前都講過了
這個的話就是我們將循跡的代碼封裝成一個函數,利于我們的調用,當然那些該移植引腳的代碼,要自己去移植,我不講,之前都講過了
這個的話就是我們將跟隨小車的代碼封裝成一個函數,利于我們的調用,當然那些該移植引腳的代碼,要自己去移植,我不講,之前都講過了
主要就是這邊了,因為我們模塊的引腳我們使用的是A25 A26 A27 在教配置的時候也有說過,并配置好了電平,所以啊我們說話說到關鍵詞的時候單片機就會接受到這些高低電平的信號,所以我們就可以根據這個特性進行調用想要執行的功能。另外我們這邊也應用了OLED屏,加入一些有意思的元素,這個也是需要移植的,將之前代碼的OLED二次開發的案例中的OLED.c和OLED.h還有OledFont.h都移植到程序中,然后我們就在main函數中班添加OLED的初始化、清屏函數、必要的,然后再用那個你要顯示的內容寫上就可以了
這個是全部的引腳聲明
這些就是我的語音控制小車的所有內容了
先暫時展示沒有下地跑的視頻(等鋰電池到還有電烙鐵到、后續更新下地跑的小車)
語音控制小車
以后要學習C++了先提升代碼能力,學完C++在學stm32,學完32再學Linux