freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

單片機語音遙控小車的設(shè)計論文(編輯修改稿)

2025-07-15 12:51 本頁面
 

【文章內(nèi)容簡介】 來調(diào)節(jié)小車的前進方向。在自然狀態(tài)下,前輪在彈簧作用下保持中間位置,如果前輪方向有偏差,可調(diào)節(jié)方向旋鈕。后面兩個車輪由后輪電機驅(qū)動,為整個小車提供前行動力。圖 515 所示側(cè)視圖。前輪電機反向轉(zhuǎn)動,后輪電機正向轉(zhuǎn)動,這時小車就是會在前后輪共同作用下朝右側(cè)前行,如圖 516 所示。同理實現(xiàn)小車的向前直行,向后倒車,向左轉(zhuǎn)等動作。 圖 515 車體側(cè)視圖后輪 前輪圖 516 小車頂視右轉(zhuǎn)圖 SPCE061A 精簡開發(fā)板SPCE061A 精簡開發(fā)板(簡稱 61 板) ,是以凌陽 16 位單片機 SPCE061A 為核心的精簡開發(fā)-仿真-實驗板,除具備單片機最小系統(tǒng)電路外,還包括有電源電路、音頻電路(含 MIC 輸入電路和 DAC 音頻輸出部分) 、復(fù)位電路。61 板上有調(diào)試器接口(Probe接口)以及下載線(EZ_Probe)接口,分別可接凌陽科技的在線調(diào)試器、簡易下載線,配合 unSP IDE,可方便地在板上實現(xiàn)程序的下載、在線仿真調(diào)試。61 板上的主要功能模塊如下:(1)SPCE061A 單片機最小系統(tǒng)外圍電路模塊;(2)電源輸入模塊;(3)音頻電路(包含 Mic 輸入、DAC 音頻功放輸出)模塊;(4)按鍵模塊;(5)I/O 端口接口模塊;(6)調(diào)試、下載接口模塊。 系統(tǒng)實物圖實物圖分兩部分,圖 517 為小車實物圖;圖 518 為語音遙控部分實物圖。圖 517 小車實物圖圖 518 語音遙控部分實物圖6 系統(tǒng)軟件設(shè)計 軟件結(jié)構(gòu)本系統(tǒng)主要包括以下程序:小車訓練子程序,語音識別子程序,無線信號發(fā)射子程序,電機驅(qū)動子程序,中斷子程序。第一塊開發(fā)板主程序流程圖如圖 61 所示,第二塊開發(fā)板主程序流程圖如圖 62 所示。圖 61 第一塊開發(fā)板主程序流程圖YNYN初始化訓練小車保存訓練結(jié)果進入識別模式語音識別清模型存儲區(qū)等待復(fù)位重新訓練發(fā)射語音識別對應(yīng)數(shù)據(jù)碼已訓練過開始裝載語音模型圖 62 第二塊開發(fā)板主流程圖系統(tǒng)的主程序流程如圖 61 所示,分為四大部分:初始化部分、訓練部分、識別部分、重訓操作。初始化部分:初始化操作將 IOB8~IOB11 設(shè)置為輸出端,用以控制電機。必要時還要有對應(yīng)的輸入端設(shè)置和 PWM 端口設(shè)置等。 訓練部分:訓練部分完成的工作就是建立語音模型。程序一開始判斷小車是否被訓練過,如果沒有訓練過則要求對其進行訓練,并且會在訓練成功之后將訓練的模型存儲到 Flash,在以后使用時不需要重新訓練;如果已經(jīng)訓練過會把存儲在 Flash 中的模型調(diào)出來裝載到辨識器中。 識別部分:在識別環(huán)節(jié)當中,如果辨識結(jié)果是名字,通過無線發(fā)射模塊通知到第二塊開發(fā)板,停止當前的動作并進入待命狀態(tài),然后等待動作命令。如果辨識結(jié)果為動作指令小車會語音告知相應(yīng)動作并執(zhí)行該動作,在運動過程中可以通過呼叫小車的名字使小車停下來。重訓操作:考慮到有重新訓練的需求,設(shè)置了重新訓練的按鍵(61 板的 KEY3) ,循環(huán)掃描該按鍵,一旦檢測到此鍵按下,則將擦除訓練標志位(0xe000 單元) ,并等待復(fù)位。復(fù)位后,程序重新執(zhí)行,當檢測到訓練標志位為 0xffff 時會要求重新對其進行訓練。 語音識別原理簡介語音識別主要分為“訓練”和“識別”兩個階段。在訓練階段,單片機對采集到的語音樣本進行分析處理,從中提取出語音特征信息,建立一個特征模型;在識別階段,單片機對采集到的語音樣本也進行類似的分析處理,提取出語音的特征信息,然后將這個特征信息模型與已有的特征模型進行對比,如果二者達到了一定的匹配度,則輸入的語音被識別。具體語音識別流程圖如圖 63 所示。N播放相應(yīng)交互語音執(zhí)行相應(yīng)電機操作Y接收到數(shù)據(jù)碼初始化開始掃描鍵盤圖 63 語音識別流程圖 訓練子程序當程序檢測到訓練標志位 BS_Flag 內(nèi)容為 0xffff,就會要求操作者對它進行訓練操作,訓練操作的過程如圖 64 所示:訓練采用兩次訓練獲取結(jié)果的方式,以訓練名字為例:小車首先會提示:給我取個名字吧,這時你可以告訴它一個名字(比如小強) ;然后它會提示:請再說一遍,這時再次告訴它名字(小強) ,如果兩次的聲音差別不大,小車就能夠成功的建立模型,名稱訓練成功;如果沒能夠成功的建立模型,小車會告知失敗的原因并要求重新訓練。成功訓練名稱后會給出下一條待訓練指令提示音:前進,參照名稱訓練方式訓練前進指令。依次訓練小車的名稱—前進指令—倒車指令—左轉(zhuǎn)指令—右轉(zhuǎn)指令,全部訓練成功子程序返回,訓練結(jié)束。圖 64 小車訓練流程圖下面是訓練部分的子程序,在訓練時如果訓練不成功 TrainWord()返回值不為 0,要求重復(fù)訓練,只有當訓練成功,TrainWord()返回 0,進行下一條指令訓練。void TrainSD() { while(TrainWord(NAME_ID,S_NAME) != 0) 。 //訓練名稱 while(TrainWord(COMMAND_GO_ID,S_ACT1) != 0) 。 //訓練第 1 個動作 while(TrainWord(COMMAND_BACK_ID,S_ACT2) != 0) 。 //訓練第 2 個動作 while(TrainWord(COMMAND_LEFT_ID,S_ACT3) != 0) 。 //訓練第 3 個動作 while(TrainWord(COMMAND_RIGHT_ID,S_ACT4) != 0) 。 //訓練第 4 個動作 } 語音識別子程序語音識別流程如圖 65 所示:首先獲取辨識器的辨識結(jié)果,判斷是否有語音觸發(fā),如果有語音觸發(fā)則會返回識別結(jié)果的 ID 號,ID 號對應(yīng)名稱或者對應(yīng)不同的動作。如果ID 號為名稱,則結(jié)束運動(如果當前在運動狀態(tài)) ,進入待命狀態(tài),等待下一次的指令觸發(fā);如果 ID 號為動作,則語音告知將要執(zhí)行的動作,并執(zhí)行該動作。圖 65 語音識別流程圖 動作子程序動作子程序包括:前進、倒車、左拐、右拐、停車子程序。 前進:由小車的結(jié)構(gòu)原理和驅(qū)動電路分析知:只要 IOB8 為高電平,IOB9,IOB10,IOB11 全部為低電平即可實現(xiàn)小車的前進。前進子程序包括語音提示、置端口數(shù)據(jù)、啟動定時器操作,該部分程序如下: void GoAhead() //前進 { PlaySnd(S_ACT1,3)。 //語音提示 *P_IOB_Data=0x0100。 //前進 *P_INT_Mask |= 0x0004。 //開 2Hz 中斷 __asm(int fiq,irq)。 uiTimecont = 0。 //清定時器 } 倒車:由小車的結(jié)構(gòu)原理分析和驅(qū)動電路分析知:只要 IOB9 為高電平,IOB8,IOB10,IOB11 全部為低電平即可實現(xiàn)小車的倒退。倒退子程序包括語音提示、置端口數(shù)據(jù)、啟動定時器操作,程序如下:void BackUp() //倒退 { PlaySnd(S_ACT2,3)。 //語音提示 *P_IOB_Data=0x0200。 //倒車 *P_INT_Mask |= 0x0004。 //開 2Hz 中斷 __asm(int fiq,irq)。 uiTimecont = 0。 //清定時器 }左轉(zhuǎn):由小車的結(jié)構(gòu)原理分析和驅(qū)動電路分析知:小車左轉(zhuǎn)需要兩個條件:輪左偏 ,這時對應(yīng)的 I/O 狀態(tài)為:IOBIOB10 為高電平,IOBIOB11 為低電平。左轉(zhuǎn)子程序包括語音提示、置端口數(shù)據(jù)、啟動定時器操作,該部分程序如下: void TurnLeft() //左轉(zhuǎn) { PlaySnd(S_GJG,3)。 //播放提示音 *P_IOB_Data=0x0900。 //前輪右偏 Delay()。 //延時 *P_IOB_Data=0x0500。 //前輪左偏 *P_INT_Mask |= 0x0004。 //打開 2Hz 中斷 __asm(int fiq,irq)。 //允許總中斷 uiTimecont = 0。 //清定時器 }右轉(zhuǎn):由小車的結(jié)構(gòu)原理分析和驅(qū)動電路分析知:小車右轉(zhuǎn)需要兩個條件:輪右偏 I/O 狀態(tài)為:IOBIOB11 為高電平,IOBIOB10 為低電平。右轉(zhuǎn)子程序包括語音提示端口數(shù)據(jù)、啟動定時器操作,該部分程序如下:void TurnLeft() //左轉(zhuǎn) { PlaySnd(S_GJG,3)。 //播放提示音 *P_IOB_Data=0x0500。 //前輪左偏 Delay()。 //延時 *P_IOB_Data=0x0900。 //前輪右偏 *P_INT_Mask |= 0x0004。 //打開 2Hz 中斷 __asm(int fiq,irq)。 //允許總中斷 uiTimecont = 0。 //清定時器 } 中斷子程序雖然已經(jīng)有了前進、后退以及停車(通過直接呼叫小車的名字使其停車)等語音控制指令,但是考慮環(huán)境的干擾因素,小車運行時的噪音影響和有效距離的限制,小車運行后可能接收不到語音指令而一直運行。為了防止出現(xiàn)這種情況,加入了時間控制,在啟動小車運行的同時啟動定時器,定時器時間到停止小車的運行,該定時器借助于 2Hz 時基中斷完成, 圖 66 所示為該程序的流程圖。可以在程序中修改uiTimeset 參數(shù)來控制運行時間,當 uiTimeset=2 時,運行時間為 1s,以此類推。圖 66 中斷子程序流程7 操作步驟 硬件連接語音控制小車電路包括兩大部分:SPCE061A 開發(fā)板部分和控制板部分,硬件部分的連接主要用到 SPCE061A 的 IOB8~IOB11 來控制小車的狀態(tài)。 電源部分連接:電池電源直接接控制板電源接口 J1, J2 接 61 板的電源,連接時注意電源極性。 代碼下載硬件連接完成之后,檢查無誤,接下來就可以下載程序了。具體的步驟為: 第一步:打開集成開發(fā)環(huán)境,打開“”文件,編譯鏈接。 第二步:點擊菜單 Project-Select Body,或者直接點擊 圖標打開如圖 71所示的對話框:圖 71 Select Body 對話框第三步:在彈出的對話框中選擇 Body Name 為 SPCE061A,選擇 Probe 為 EZ_Probe,點擊 OK 按鈕確定。 第四步:點擊 IDE 工具欄上的 圖標,選擇 Use ICE 模式。 第五步:按 F8 快捷下載按鈕,下載代碼。8 測試成功下載程序以后,去掉下載線并復(fù)位系統(tǒng)(如果使用 EZProbe 還應(yīng)將 Probe 選擇跳線 S5 拔去) ,小車就會提示對它進行訓練。訓練采用應(yīng)答式訓練,每條指令的訓練次數(shù)為兩次,每一條命令的訓練過程都是一樣的,以“前進”為例說明: 步驟一:小車提示“前進” ; 步驟二:告訴小車“前進” ; 步驟三:小車提示“請再說一遍” (重復(fù)訓練提示音) ; 步驟四:再次告訴小車“前進” (重復(fù)訓練一次) 。這是一個完整的訓練過程,如果訓練成功,小車會自動進入下一條指令的訓練,并會提示下一條指令對應(yīng)的動作;如果沒有訓練成功,小車會提示“說什么暗語呀”或者“沒有聽到任何聲音”等信息,這樣的話就要重復(fù)剛才所說的四個步驟,直到成功為止。整個的訓練過程共有 5 次這樣的訓練,依次為:名稱——前進——后退——左拐——右拐。完成訓練后,輸入語音命令“前進” ,觀察小車是否前行。9 結(jié)論凌陽 SPCE061A 單片機的數(shù)字信號處理能力,獨有的語音識別能力為本系統(tǒng)的設(shè)計提供了便利條件;32 個可編程 I/O 口,使得擴展外圍設(shè)備非常方便;CP
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1