1. 功能說(shuō)明
在機(jī)器人車(chē)體上安裝2個(gè) 灰度傳感器 ,實(shí)現(xiàn)機(jī)器人按照下圖所指定的路線進(jìn)行導(dǎo)航運(yùn)動(dòng),來(lái)模擬倉(cāng)庫(kù)物流機(jī)器人按指定路線行進(jìn)的工作過(guò)程。
2. 使用樣機(jī)
本實(shí)驗(yàn)使用的樣機(jī)為R023e樣機(jī)。
3. 功能實(shí)現(xiàn)
3.1 電子硬件
在這個(gè)示例中,我們采用了以下硬件,請(qǐng)大家參考:
主控板 | Basra(兼容Arduino Uno) |
擴(kuò)展板 | SH-01外圍電路擴(kuò)展板(與Bigfish擴(kuò)展板相似)? |
傳感器 | 灰度傳感器 |
電池 | 7.4V鋰電池 |
電路連接說(shuō)明:
② 2個(gè)灰度傳感器分別接在擴(kuò)展板的傳感器接口A0、A4上。
3.2 編寫(xiě)程序
傳感器觸發(fā)情況、小車(chē)行駛狀態(tài)、對(duì)應(yīng)行為策略表:
傳感器1 | 傳感器2 | 小車(chē)狀態(tài) | 動(dòng)作 |
0 | 1 | 小車(chē)左偏 | 向右調(diào)整 |
1 | 0 | 小車(chē)右偏 | 向左調(diào)整 |
1 | 1 | 到達(dá)終點(diǎn) | 停止 |
0 | 0 | 正常 | 前進(jìn) |
① 根據(jù)實(shí)驗(yàn)內(nèi)容,利用多分支結(jié)構(gòu)設(shè)計(jì)出程序流程圖。
機(jī)器人軌跡導(dǎo)航任務(wù)流程圖
② 根據(jù)設(shè)計(jì)好的程序流程圖進(jìn)行編程,編寫(xiě)并燒錄以下程序(blackline_4if.ino),該程序?qū)?shí)現(xiàn)演示視頻中的動(dòng)作【完整例程源代碼下載詳見(jiàn)https://www.robotway.com/h-col-113.html】
編程環(huán)境:Arduino 1.8.19
/*------------------------------------------------------------------------------------ 版權(quán)說(shuō)明:Copyright 2023 Robottime(Beijing) Technology Co., Ltd. All Rights Reserved. Distributed under MIT license.See file LICENSE for detail or copy at https://opensource.org/licenses/MIT by 機(jī)器譜 2023-02-09 https://www.robotway.com/ ------------------------------------------------------------------------------------*/ void turnleft_slow(); void forward(); void carstop(); void turnright_slow(); void setup() { pinMode( 18, INPUT); pinMode( 14, INPUT); pinMode( 10, OUTPUT); pinMode( 6, OUTPUT); pinMode( 5, OUTPUT); pinMode( 9, OUTPUT); } void loop() { if (( digitalRead(14) && digitalRead(18) )) { forward(); } if (( !( digitalRead(14) ) && digitalRead(18) )) { turnleft_slow(); } if (( digitalRead(14) && !( digitalRead(18) ) )) { turnright_slow(); } if (( !( digitalRead(14) ) && !( digitalRead(18) ) )) { carstop(); delay( 5000 ); } } void turnright_slow() { analogWrite(6 , 80); analogWrite(10 , 0); analogWrite(5 , 0); analogWrite(9 , 0); } void carstop() { analogWrite(6 , 0); analogWrite(10 , 0); analogWrite(5 , 0); analogWrite(9 , 0); } void turnleft_slow() { analogWrite(6 , 0); analogWrite(10 , 0); analogWrite(5 , 80); analogWrite(9 , 0); } void forward() { analogWrite(6 , 80); analogWrite(10 , 0); analogWrite(5 , 80); analogWrite(9 , 0); }
也可以使用if…else嵌套寫(xiě)法(blackline_ifelse.ino)。
void stop(); void left(); void right(); void forwards(); void setup() { pinMode( 18, INPUT); pinMode( 14, INPUT); pinMode( 10, OUTPUT); pinMode( 6, OUTPUT); pinMode( 5, OUTPUT); pinMode( 9, OUTPUT); } void loop() { if (( !( digitalRead(14) ) && digitalRead(18) )) { right(); } else { if (( digitalRead(14) && !( digitalRead(18) ) )) { left(); } else { if (( !( digitalRead(14) ) && !( digitalRead(18) ) )) { stop(); } else { forwards(); } } } } void stop() { analogWrite(5 , 0); analogWrite(9 , 0); analogWrite(6 , 0); analogWrite(10 , 0); } void right() { analogWrite(5 , 150); analogWrite(9 , 0); analogWrite(6 , 0); analogWrite(10 , 150); } void forwards() { analogWrite(5 , 150); analogWrite(9 , 0); analogWrite(6 , 150); analogWrite(10 , 0); } void left() { analogWrite(5 , 0); analogWrite(9 , 150); analogWrite(6 , 150); analogWrite(10 , 0); }
審核編輯黃宇
?
-
傳感器
+關(guān)注
關(guān)注
2563文章
52589瀏覽量
763765 -
機(jī)器人
+關(guān)注
關(guān)注
213文章
29498瀏覽量
211573
發(fā)布評(píng)論請(qǐng)先 登錄
小型平行履帶底盤(pán)的制作分享

第13章-循跡功能 STM32智能小車(chē)循跡教程 PID循跡算法分析

怎樣用Labview的vision相關(guān)模塊實(shí)現(xiàn)圖像的灰度掃描以及灰度差分
循跡智能小車(chē)是由哪些部分組成的
差分底盤(pán)的設(shè)計(jì)資料分享
使用以雙灰度傳感器實(shí)現(xiàn)的曲線循跡以及矩形循跡的資料說(shuō)明

小型雙節(jié)履帶底盤(pán)的制作

小型三節(jié)履帶底盤(pán)的制作

小型雙輪差速底盤(pán)視覺(jué)循跡功能的實(shí)現(xiàn)

如何實(shí)現(xiàn)雙輪差速底盤(pán)躲避懸崖的功能?

小型平行履帶底盤(pán)實(shí)現(xiàn)雙灰度循跡功能

評(píng)論