第5講:第四章-單片機輸入接口與機器人觸覺導航_第1頁
第5講:第四章-單片機輸入接口與機器人觸覺導航_第2頁
第5講:第四章-單片機輸入接口與機器人觸覺導航_第3頁
第5講:第四章-單片機輸入接口與機器人觸覺導航_第4頁
第5講:第四章-單片機輸入接口與機器人觸覺導航_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

SHENZHENDEPUSH.TECHLONOGYCO.,LTD單片機輸入接口與機器人觸覺導航第四章DEPUSH本講1.單片機輸入接口簡介2.觸覺傳感器的安裝及測試 與操作符、?操作符、if…else條件判斷語句3.觸覺導航策略實現(xiàn) if...else...if多分支選擇語句、關系和邏輯運算符4.機器人進入死區(qū)后的智能決策 if…else條件判斷語句的嵌套DEPUSH單片機輸入接口前兩章:

1.機器人的根本動作,一種被動式的運動,不能自主決策;

2.單片機端口用作輸出。本章及后續(xù)章節(jié):

1.單片機端口用作輸入,存儲傳感器采集的信息;

2.機器人自主導航。任何自動化系統(tǒng)均采用傳感器采集信息。DEPUSH安裝并測試機器人胡須安裝胡須胡須硬件安裝示意DEPUSH安裝并測試機器人胡須搭建胡須電路胡須電路實物圖胡須是一個機械式的、接地常開的單刀單擲開關。胡須接地〔GND〕是因為主板外圍的鍍金孔都連接到GND,而金屬支架和螺絲釘提供電氣連接給胡須。DEPUSH安裝并測試機器人胡須獲取胡須狀態(tài)I/O口監(jiān)測10K電阻上的電壓變化:1.胡須沒被觸動,電壓為5V,輸入為12.胡須被觸動,電壓為0,輸入0intP1_4state(void)//獲取P1_4的狀態(tài),右胡須{return(P1&0x10)?1:0;}intP2_3state(void)//獲取P2_3的狀態(tài),左胡須{return(P2&0x08)?1:0;}DEPUSH安裝并測試機器人胡須與操作符&與運算符“&〞的功能是參與運算的兩數(shù)各對應的二進位相與。只有對應的兩個二進位均為1時,結(jié)果位才為1,否那么為0。如整數(shù)7與12相與:

00000111 〔7的二進制〕

&00001100 〔12的二進制〕

=00000100 〔結(jié)果為4〕P1&0x10:取P1.4P1P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.00x1000010000P2&0x08:取P2.3P2P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.00x0800001000DEPUSH安裝并測試機器人胡須?操作符一般形式:表達式1?表達式2:表達式3先求解表達式1,如果非0〔真〕,那么求解表達式2,并把表達式2的結(jié)果作為整個條件表達式的值;如果表達式1的值為0〔假〕,那么求解表達式3,并把表達式3的值作為整個條件表達式的值。return(P1&0x10)?1:0;if(P1&0x10)return1;elsereturn0;if…else語句是條件判斷語句,它根據(jù)判定的結(jié)果〔真或假〕決定執(zhí)行給出的兩種操作之一。if(表達式)語句1;else語句2;DEPUSH安裝并測試機器人胡須測試胡須while(1){printf("右邊胡須的狀態(tài):%d",P1_4state());printf("左邊胡須的狀態(tài):%d\n",P2_3state());delay_nms(150);}DEPUSH通過胡須信息導航在機器人行走過程中,導航程序需要接受胡須輸入信息,判斷它的意義,調(diào)用一系列使機器人倒退、旋轉(zhuǎn)朝不同方向行走的動作子函數(shù)。if…else…if多分支選擇語句if(表達式1)語句1;elseif(表達式2)語句2;

…elseif(表達式m)語句m;else語句n;if((P1_4state()==0)&&(P2_3state()==0)){Backward();Left_Turn();Left_Turn();}elseif(P1_4state()==0){Backward();Left_Turn();}elseif(P2_3state()==0){Backward();Right_Turn();}elseForward();DEPUSH通過胡須信息導航關系和邏輯運算符關系和邏輯運算符概念中的關鍵是True〔真〕和Flase〔假〕。C語言中,非0為True,0為Flase。關系或邏輯運算符的表達式對Flase和True分別返回值0和1。關系和邏輯運算符含義>大于>=大于等于<小于<=小于等于==(與“=〞區(qū)別)等于!=不等于&&(與“&〞區(qū)別)與||或!非判斷運算符兩邊表達式的值,真返回值1,假返回值0DEPUSH通過胡須信息導航例程:RoamingWithWhiskers.c

#include<BoeBot.h>#include<uart.h>intP1_4state(void){return(P1&0x10)?1:0;}intP2_3state(void){return(P2&0x08)?1:0;}…………intmain(void){…………while(1){if((P1_4state()==0)&&(P2_3state()==0)){Backward();Left_Turn();Left_Turn();}elseif(P1_4state()==0){Backward();Left_Turn();}elseif(P2_3state()==0){Backward();Right_Turn();}elseForward();}}DEPUSH機器人進入死區(qū)后的人工智能決策假設機器人進入了墻角,它將如何動作?……elseif(P1_4state()==0){Backward();Left_Turn();}elseif(P2_3state()==0){Backward();Right_Turn();}……右須碰到,后退再左拐左須碰到,后退再右拐困在墻角解決方案:程序記住每個胡須的前一次觸動狀態(tài),并和當前觸動狀態(tài)比照。如果狀態(tài)相反,就在交替總數(shù)上加1。如果這個交替總數(shù)超過了程序中預先給定的閥值,那么就該做一個“U〞型轉(zhuǎn)彎,并且把胡須交替計數(shù)器復位。DEPUSH機器人進入死區(qū)后的人工智能決策if…else語句嵌套IF(condition1){Commandsforcondition1IF(condition2){Commandsforbothcondition2andcondition1}ELSE{Commandsforcondition1butnotcondition2}}ELSE{Commandsfornotcondition1}偽代碼通常用來描述不依賴于計算機語言的算法。無論是哪種計算機語言,都必須能夠描述人類知識的邏輯結(jié)構(gòu)。在寫條件判斷算法時,經(jīng)常用一種用于描述人類知識結(jié)構(gòu)邏輯的偽代碼來描述在計算機中如何實現(xiàn)這些邏輯算法,以使算法具有通用性。有了偽代碼,用具體的語言來實現(xiàn)算法就很簡單了。DEPUSHif(P1_4state()!=P2_3state()){if((old2!=P1_4state())&&(old3!=P2_3state())){counter=counter+1;old2=P1_4state();old3=P2_3state();if(counter>4){counter=1;Backward();Left_Turn();Left_Turn();}}elsecounter=1;}機器人進入死區(qū)后的人工智能決策例程:EscapingCorners.c

……intcounter;//存儲交替探測的次數(shù)intold2=1;//存儲右胡須舊狀態(tài)值intold3=0;//存儲左胡須舊狀態(tài)值……counter=1;……為什么old2和old3賦的初值不一樣?因為程序總是比照交替觸動的局部,或者P1_4state()==0,或者P2_3state()==0。011001old2=0;o

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論