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

正文內容

語音控制小車的設計與實現(xiàn)(編輯修改稿)

2024-08-03 15:41 本頁面
 

【文章內容簡介】 有強大的處理功能,外部的其它信息由其處理后在傳出,以達到控制效果。 微處理器連接圖語音控制小車為四輪結構。其中前面兩個車輪由前輪電機控制,在連桿和支點作用下控制前輪左右擺動,來調節(jié)小車的前進方向。在自然狀態(tài)下,前輪在彈簧作用下保持中間位置。后面兩個車輪由后輪電機驅動,為整個小車提供動力。所以又稱前面的輪子為方向輪,后面的兩個輪子為驅動輪。直走:由小車的結構分析,在自然狀態(tài)下,前輪在彈簧作用下保持中間狀態(tài),這是只要后輪電機正轉小車就會前進。倒車:倒車動作和前進動作剛好相反,前輪電機仍然保持中間狀態(tài),后輪電機反轉,小車就會向后運動。如圖59所示。(a) 前進 (b) 后退左傳:前輪電機逆時針(規(guī)定為正轉),后輪電機正轉,這時小車就會在前后輪共同作用下朝左側前進。右轉:前輪電機反轉,后輪電機正轉,這時小車就會在前后輪共同作用下朝右側前進。(a) 左轉 (b) 右轉 小車左右轉示意圖控制板主要包括:接口電路、電源電路和兩路電機的驅動電路,控制板原理圖如圖 。 接口電路:接口電路負責將61板的I/O接口信號傳送給控制電路板,I/O信號主要為控制電機需要的IOB8~IOB11這四路信號,同時為了方便后續(xù)的開發(fā)和完善,預留了IOB12~IOB15以及IOA8~IOA15接口,可以在這些接口上添加一些傳感器。 電源部分:整個小車有4個電源信號:電池電源,控制板工作電源,61板工作電源,61板的I/O輸出電源。系統(tǒng)供電由電池提供,控制板直接采用電池供電(VCC),然后經二極管D1后產生61板電源(VCC_61),通過61板的Vio跳線產生61板的端口電源(V1)。 二極管D1作用: 降壓,4節(jié)電池提供的電壓VCC最大可達到6V,D1可有效地降壓。 保護,D1可以防止電源接反燒壞61板。 控制板原理圖 全橋驅動又稱 H橋驅動,下面介紹一下 H橋的工作原理: H橋一共有四個臂,分別為 B1~B4,每個臂由一個開關控制,示例中為三極管 Q1~Q4。如果讓 QQ2 導通 QQ4 關斷,如圖 ,此時電流將會流經 Q負載、Q2 組成的回路,電機正轉 如果讓 QQ2 關斷 QQ4 導通,此時電流將會流經 Q負載、Q4 組成的回路,電機反轉。如果讓 QQ2 關斷 QQ4 也關斷,負載 Load 兩端懸空,如圖 、B2 工作時的 H 橋電路簡圖 BB4 工作時的 H 橋電路簡圖所示,此時電機停轉。這樣就實現(xiàn)了電機的正轉、反轉、停止三態(tài)控制。如果讓 QQ2 導通 QQ4 也導通,那么電流將會流經 QQ4 組成的回路以及 Q2和 Q3 組成的回路, 所示,這時橋臂上會出現(xiàn)很大的短路電流。在實際應用時注意避免出現(xiàn)橋臂短路的情況,這會給電路帶來很大的危害,嚴重的會燒毀電路。 B1~B4 全部停止工作時的H 橋簡圖 B1~B4 全部工作時的 H 橋簡圖 動力電機驅動電路 動力驅動由后輪驅動實現(xiàn),負責小車的直線方向運動,包括前進和后退,后輪驅動電路是一個全橋驅動電路,:QQQQ4 四個三極管組成四個橋臂,Q1 和 Q4 組成一組,Q2 和Q3 組成一組,Q5 控制 QQ3 的導通與關斷,Q6 控制 Q1 和 Q4 的導通與關斷,而 QQ6 由 IOB9 和 IOB8控制,這樣就可以通過 IOB8 和 IOB9 控制四個橋臂的導通與關斷控制后輪電機的運行狀態(tài),使之正轉反轉或者停轉,進而控制小車的前進和后退。 :IOB11IOB10IOB9IOB8后電機前電機小車0000停轉停轉停0001正轉停轉前進0010反轉停轉倒退0101正轉正轉左前轉1001正轉反轉右前轉另外還有一些不常用的運行狀態(tài),比如右后轉、左后轉等,結合以上對前輪和后輪的狀態(tài)分析,其端口對照如表 所示:IOB11IOB10IOB9IOB8后電機前電機小車0110正轉正轉右后轉1010正轉反轉左后轉注意:為了小車的安全請不要出現(xiàn)以下兩種組合情況:表 禁止的輸入狀態(tài)列表IOB11IOB10IOB9IOB8后電機前電機小車**11停轉*停11***停轉停本章是對小車的硬件進行設計。小車為后輪驅動,通過前后輪電機來實現(xiàn)行走。前輪電機控制前輪的方向,后輪電機控制后輪的驅動。通過改變IOB的高低電平來控制電機的正反轉。 5 系統(tǒng)軟件設計 系統(tǒng)的總體程序流程 系統(tǒng)的總體程序流程如圖 所示:圖 系統(tǒng)總體程序流程圖,分為四大部分:初始化部分、訓練部分、識別部分、重訓操作。 初始化部分:初始化操作將 IOB8~IOB11 設置為輸出端,用以控制電機。必要時還要有對應的輸入端設置和PWM 端口設置等。 訓練部分:訓練部分完成的工作就是建立語音模型。程序一開始判斷小車是否被訓練過,如果沒有訓練過則要求對其進行訓練,并且會在訓練成功之后將訓練的模型存儲到FLASH,在以后使用時不需要重新訓練;如果已經訓練過會把存儲在FLASH 中的模型調出來裝載到辨識器中。 識別部分:在識別環(huán)節(jié)當中,如果辨識結果是名字,停止當前的動作并進入待命 狀態(tài),然后等待動作命令。如果辨識結果為動作指令小車會語音告知相應動作并執(zhí)行該動作,在運動過程中可以通過呼叫小車的名字使小車停下來。 重訓操作:考慮到有重新訓練的需求,設置了重新訓練的按鍵(61 板的KEY3) ,循環(huán)掃描該按鍵,一旦檢測到此鍵按下,則將擦除訓練標志位(0xe000 單元) ,并等待復位。復位后,程序重新執(zhí)行,當檢測到訓練標志位為0xffff時會要求重新對其進行訓練。 下面詳細介紹以上提到的子程序。::當程序檢測到訓練標志位BS_Flag內容為0xffff,就會要求操作者對它進行訓練操作,訓練操作的過程如圖 :訓練采用兩次訓練獲取結果的方式,以訓練名字為例:小車首先會提示:給我取個名字吧, 這時你可以告訴它一個名字 (比如Jack) ; 然后它會提示: 請再說一遍, 這時再次告訴它名字 (Jack) ,如果兩次的聲音差別不大,小車就能夠成功的建立模型,名稱訓練成功;如果沒能夠成功的建立模型,小車會告知失敗的原因并要求重新訓練。成功訓練名稱后會給出下一條待訓練指令提示音:前進,參照名稱訓練方式訓練前進指令。依次訓練小車的名稱—前進指令—倒車指令—左轉指令—右轉指令,全部訓練成功子程序返回,訓練結束。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個動作}: 語音識別流程如圖 :首先獲取辨識器的辨識結果,判斷是否有語音觸發(fā),如果有語音觸發(fā)則會返回識別結果的ID號,ID號對應名稱或者對應不同的動作。如果ID號為名稱,則結束運動(如果當前在運動狀態(tài)) ,進入待命狀態(tài),等待下一次的指令觸發(fā);如果 ID 號為動作,則語音告知將要執(zhí)行的動作,并執(zhí)行該動作。注:語音識別程序在語音中斷函數(shù)中進行。void BSR(void){ int Result。 //辨識結果寄存 Result = BSR_GetResult()。 //獲得識別結果if(Result0) //有語音觸發(fā)? { *P_IOB_Data=0x0000。 //臨時停車 switch(Result) { case NAME_ID: //識別出名稱命令 Stop()。 //停車待命 break。 case COMMAND_GO_ID: //識別出第一條命令 GoAhead()。 //執(zhí)行動作一:直走 break。 case COMMAND_BACK_ID://識別出第二條命令 BackUp()。 //執(zhí)行動作二:倒車 break。 case COMMAND_LEFT_ID: //識別出第三條命令 TurnLeft()。 //執(zhí)行動作三:左轉 break。 case COMMAND_RIGHT_ID: //識別出第四條命令 TurnRight()。 //執(zhí)行動作四:右轉 break。 default: break。 } }}: 動作子程序包括:前進、倒車、左拐、右拐、停車子程序。 前進:由小車的結構原理和驅動電路分析知:只要IOB8 為高電平,IOB9,IOB10,IOB11 全部為低電平即可實現(xiàn)小車的前進。前進子程序包括語音提示、置端口數(shù)據、啟動定時器操作。 倒車:由小車的結構原理分析和驅動電路分析知:只要IOB9 為高電平,IOB8,IOB10,IOB11全部為低電平即可實現(xiàn)小車的倒退。倒退子程序包括語音提示、置端口數(shù)據、啟動定時器操作。 左轉:由小車的結構原理分析和驅動電路分析知:小車左轉需要兩個條件:,這時對應的 I/O 狀態(tài)為:IOBIOB10 為高電平,IOBIOB11 為低電平。左轉子程序包括語音提示、置端口數(shù)據、啟動定時器操作。 右轉:由小車的結構原理分析和驅動電路分析知:小車右轉需要兩個條件:,這時對應的 I/O 狀態(tài)為:IOBIOB11 為高電平,IOBIOB10 為低電平。右轉子程序包括語音提示、置端口數(shù)據、啟動定時器操作。 注:在轉彎之前首先讓前輪朝目標方向的反方向偏轉,然后再讓前輪朝目標方向偏轉,這樣前輪的擺動范圍更大,慣性更大,擺幅也最大,能更好實現(xiàn)轉彎。void GoAhead() //前進{ PlaySnd(S_ACT1,3)。 //提示 *P_IOB_Data=0x0100。 //前進 *P_INT_Mask |= 0x0004。 //以下為中斷定時操作 __asm(int fiq,irq)。 uiTimecont = 0。}//=============================================================// 語法格式: void BackUp()。// 實現(xiàn)功能: 后退子函數(shù)// 參數(shù): 無// 返回值: 無//=============================================================void BackUp() //倒退{ PlaySnd(S_DCZY,3)。 //提示 *P_IOB_Data=0x0200。 //倒退 *P_INT_Mask |= 0x0004。 //以下為中斷定時操作 __asm(int fiq,irq)。 uiTimecont = 0。}//=============================================================// 語法格式: void TurnLeft()。// 實現(xiàn)功能: 左轉子函數(shù)// 參數(shù): 無// 返回值: 無//=============================================================void TurnLeft() //左轉{ PlaySnd(S_GJG,3)。 *P_IOB_Data=0x0900。 //右轉 Delay()。 //延時 *P_IOB_Data=0x0500。 //左轉 *P_INT_Mask |= 0x0004。 //以下為中斷定時操作 __asm(int fiq,irq)。 uiTimecont = 0。}//=============================================================// 語法格式: void TurnRight()。// 實現(xiàn)功能: 右轉子函數(shù)// 參數(shù): 無// 返回值: 無//=============================================================void TurnRight() //右轉{ PlaySnd(S_GJG,3)。 //語音提示 *P_IOB_Data=0x0500。 //左轉 Delay()。 //延時
點擊復制文檔內容
物理相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1