| 創(chuàng)澤機(jī)器人 |
| CHUANGZE ROBOT |
機(jī)器人已經(jīng)可以用2個(gè)或4個(gè)傳感器,又快又穩(wěn)定地進(jìn)行 巡線(xiàn)運(yùn)動(dòng)了吧?不過(guò),如果機(jī)器人行走的路線(xiàn)上除了直線(xiàn)、曲線(xiàn)還有各種路口又該怎么辦 呢?這次的實(shí)驗(yàn)就來(lái)解決這個(gè)問(wèn)題,先來(lái)看看圖9-5中這樣的丁字路口,機(jī)器人應(yīng)該采 用什么樣的策略才能通過(guò)。
為了讓機(jī)器人成功通過(guò)各種路口, 一般我們還是需要給機(jī)器人并排安上4個(gè)傳感器。 但是和用上節(jié)課中對(duì)4個(gè)傳感器的使用不一樣,這里用內(nèi)側(cè)兩個(gè)傳感器幫助機(jī)器人完成 巡線(xiàn)。而當(dāng)外側(cè)的兩個(gè)傳感器檢測(cè)到黑線(xiàn)時(shí),就知道了機(jī)器人遇到了路口。這時(shí)就可以 根據(jù)具體情況,讓機(jī)器人做出轉(zhuǎn)彎動(dòng)作了。
實(shí)驗(yàn)器材
· 已經(jīng)組裝好的機(jī)器人;
· 計(jì)算機(jī)及軟件編程環(huán)境;
·USB 下載線(xiàn);
· 主控制器;
· 杜邦連接線(xiàn)若干;
· 4個(gè)使用杜邦連接線(xiàn)的地面灰度檢測(cè)傳感器;
· 用黑色膠布粘貼的丁字路口。
實(shí)驗(yàn)步驟
1.連接機(jī)器人
在機(jī)器人的底盤(pán)上并排安裝4個(gè)地面灰度傳感器,用杜邦連接線(xiàn)把它們按順序分別 連接到主控板的A0~A3 端口,其中Z左端的傳感器連接A0 口,Z右端的連接 A3 口。
2.調(diào)試灰度閾值
同樣,像以前一樣通過(guò)實(shí)驗(yàn)確定機(jī)器人所采用的灰度閾值。因?yàn)?個(gè)傳感器的電路 和安裝上可能會(huì)出現(xiàn)微小的差別,所以這里比較穩(wěn)妥的處理方式是不要嫌麻煩,為它們每 個(gè)都測(cè)量一個(gè)灰度閾值。
3.編 寫(xiě) 和調(diào)試程序
通過(guò)上面的分析可以知道,對(duì)于機(jī)器人來(lái)說(shuō),只要是Z左或Z右端的傳感器檢測(cè)到了 黑線(xiàn),就代表機(jī)器人遇到了路口。這時(shí)就可以停止巡線(xiàn)而進(jìn)入90°轉(zhuǎn)彎的過(guò)程。根據(jù)這 個(gè)思路,請(qǐng)同學(xué)們自己去編寫(xiě)或是參考下面的示例程序,將機(jī)器人通過(guò)丁字路口的程序?qū)?現(xiàn)。這個(gè)示例程序大部分結(jié)構(gòu)和上節(jié)課的示例程序類(lèi)似,所不同的只是對(duì)機(jī)器人Z外端 兩個(gè)傳感器檢測(cè)到黑線(xiàn)時(shí)的處理,我們用省略號(hào)把同上節(jié)課例程重復(fù)的大部分內(nèi)容略過(guò)。
const int TurnTime=300;
void loop()(
leftValue=analogRead(LeftPort);
leftMiddleValue=analogRead (LeftMiddlePort);
rightMiddleValue=analogRead(RightMiddlePort);
rightValue=analogRead(RightPort);
if(leftValue
analogWrite(RightSpeedPort,ForwardSpeed);
}else if(leftValue>Threshold II rightValue>Threshold){ digitalWrite(LeftDirPort,LOW);
analogWrite(LeftSpeedPort,ForwardSpeed);
analogWrite(RightSpeedPort,ForwardSpeed);
delay(TurnTime);
digitalWrite(LeftDirPort,HIGH);
}else if(leftMiddleValue>Threshold){
analogWrite(LeftSpeedPort,TurnHighSpeed);
analogWrite(RightSpeedPort,TurnLowSpeed); }else{
analogWrite(LeftSpeedPort,TurnLowSpeed);
analogWrite(RightSpeedPort,TurnHighSpeed); }
delay(100);
//原地轉(zhuǎn)90°所需的時(shí)間
&&rightMiddleValue< //直行
//原地向左轉(zhuǎn)90°
//向右轉(zhuǎn)彎
//向左轉(zhuǎn)彎
//延時(shí).100ms
請(qǐng)注意,如果大家直接套用上面給出的示例程序,機(jī)器人往往是不會(huì)乖乖地通過(guò)路口 的。這時(shí),就需要請(qǐng)同學(xué)們仔細(xì)觀(guān)察機(jī)器人遇到路口的反應(yīng)。然后,根據(jù)機(jī)器人運(yùn)動(dòng)時(shí)所 表現(xiàn)出的現(xiàn)象不同,對(duì)問(wèn)題的所在進(jìn)行判斷并解決。比如,機(jī)器人的傳感器端口接線(xiàn)的順 序有錯(cuò)誤;機(jī)器人轉(zhuǎn)90°彎的速度或時(shí)間參數(shù)不合適,導(dǎo)致轉(zhuǎn)向過(guò)度或不足等。就是在這 個(gè)過(guò)程中大家解決問(wèn)題的能力才會(huì)得到提高,因此請(qǐng)同學(xué)們千萬(wàn)不要滿(mǎn)足于弄懂了原理, 一 定要?jiǎng)邮謩?dòng)腦,對(duì)機(jī)器人進(jìn)行實(shí)際的調(diào)試工作。
![]() |
| 機(jī)器人底盤(pán) Disinfection Robot 消毒機(jī)器人 講解機(jī)器人 迎賓機(jī)器人 移動(dòng)機(jī)器人底盤(pán) 商用機(jī)器人 智能垃圾站 智能服務(wù)機(jī)器人 大屏機(jī)器人 霧化消毒機(jī)器人 展廳機(jī)器人 服務(wù)機(jī)器人底盤(pán) 具身智能教育機(jī)器人 智能配送機(jī)器人 導(dǎo)覽機(jī)器人 |