国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Arduino智能小車的循跡避障設(shè)計(jì)與實(shí)現(xiàn)

2021-11-02 02:59:12李云飛肖江彭浩東胡申輝劉泓杏
科技信息·學(xué)術(shù)版 2021年20期
關(guān)鍵詞:避障

李云飛 肖江 彭浩東 胡申輝 劉泓杏

摘要:近年來,機(jī)器人逐步的進(jìn)入了人們的視線,而針對機(jī)器人的循跡避障問題,采用的是一種基于Arduino單片機(jī)的循跡避障系統(tǒng)。該系統(tǒng)主要是通過Arduino單片機(jī)為核心,通過光電傳感器來實(shí)現(xiàn)循跡功能、超聲波模塊實(shí)現(xiàn)自動避障功能,電機(jī)驅(qū)動模塊來控制電機(jī)的驅(qū)動,從而到達(dá)小車的循跡避障功能。該系統(tǒng)穩(wěn)定性好,能夠很好地應(yīng)用于機(jī)器人運(yùn)輸?shù)阮I(lǐng)域,具有很好地實(shí)用價(jià)值。

關(guān)鍵詞:Arduino 尋跡 避障

一、硬件和軟件設(shè)計(jì)

1、硬件系統(tǒng)

該智能小車總體上可以分為:電源模塊、光電傳感器模塊、超聲波模塊、Arduino模塊和直流電機(jī)驅(qū)動模塊。該小車可以實(shí)現(xiàn)循跡和自動避障功能。主要是以Arduino UNO開發(fā)板為主要控制芯片,來控制超聲波模塊、光電傳感器模塊,采用直流電機(jī)為動力。

2、Arduino模塊

該設(shè)計(jì)采用的是Arduino開發(fā)板,Arduino是一款便捷,靈活,易于上手的開源電子平臺。包含硬件和軟件。它構(gòu)建與原始碼simple I/O介面版。具有類似于C,C++的開發(fā)環(huán)境。硬件部分是用來做電路連接的Arduino開發(fā)板。Arduino IDE則是計(jì)算機(jī)的程序,在其中編寫程序代碼;將程序通過USB轉(zhuǎn)接線上傳到 Arduino 開發(fā)板后,程序便會操作器實(shí)現(xiàn)想要實(shí)現(xiàn)的尋跡避障功能。

二、尋跡模塊

于通過光電傳感器實(shí)現(xiàn)此功能,光電傳感器是通過把光強(qiáng)度的變化轉(zhuǎn)變成電信號來進(jìn)行控制的。光電傳感器一般有發(fā)送器、接收器和檢測電路構(gòu)成的。而該設(shè)計(jì)采用的是紅外探測器。紅外探測器是能對外界紅外光輻射產(chǎn)生響應(yīng)的光電傳感器,是目前傳感器領(lǐng)域發(fā)展的重點(diǎn)之一。通過這種光電傳感器就能很方便進(jìn)行小車的循跡功能。我們所用到的就是在智能小車上安裝光電傳感器來進(jìn)行小車的尋跡功能從而達(dá)到實(shí)驗(yàn)?zāi)康摹?/p>

三、超聲避障模塊

對于超聲避障模塊。首先我們要進(jìn)行了解對于超聲避障主要是通過超聲波模塊,探測到物體就馬上輸出脈沖,到單片機(jī)中預(yù)處理。再通過電機(jī)驅(qū)動模塊進(jìn)行控制,從而實(shí)現(xiàn)避障功能。超聲波我們選擇的是HC-SR04超聲波傳感器,該傳感器具有低功耗的特點(diǎn),能夠適用于電池供電的設(shè)備,方便我們在此基礎(chǔ)上安裝移動電源,而且方便連接,價(jià)格也便宜。通過超聲波模塊可以判斷前方是否有障礙物,從而小車是否進(jìn)行避障,這樣就能解決小車避障的問題。

四、功能實(shí)現(xiàn)

首先定義小車的前進(jìn),左轉(zhuǎn),右轉(zhuǎn)函數(shù),再通過if判斷實(shí)現(xiàn)尋基于避障功能,避障的優(yōu)先級高于循跡。具體思路是,首先判斷前方20cm內(nèi)是否有障礙物,如果有且距離大于10cm,則調(diào)用run1函數(shù)慢速前進(jìn),而如果距離小于10cm則調(diào)用spin_left函數(shù)左轉(zhuǎn),以此實(shí)現(xiàn)避障。其次當(dāng)前方20cm無障礙物時(shí),通過光電傳感器檢測黑線,如果兩塊RPR220傳感器都檢測不到黑線,則保持前進(jìn),如果左尋跡傳感器檢測到信號,則代表小車向右偏離軌道,此時(shí)調(diào)用函數(shù)向左轉(zhuǎn)并點(diǎn)亮左led小燈提示偏離軌跡,直到信號消失,如果右尋跡傳感器檢測到信號,則代表小車向左偏離軌道,此時(shí)調(diào)用函數(shù)向右轉(zhuǎn)并點(diǎn)亮右led小燈提示偏離軌跡,直到信號消失。基于Arduino實(shí)現(xiàn)尋跡避障的功能,功能在Arduino-IDE中實(shí)現(xiàn):

void setup()

{

Serial.begin(9600);初始化電機(jī)驅(qū)動IO為輸出方式初始化超聲波引腳

pinMode(Echo,INPUT);定義超聲波輸入腳

pinMode(Trig,OUTPUT);定義超聲波輸出腳

pinMode(Left_motor_go,OUTPUT);

pinMode(Left_motor_back,OUTPUT);

pinMode(Right_motor_go,OUTPUT);

pinMode(Right_motor_back,OUTPUT);

pinMode(key,INPUT);定義按鍵接口為輸入接口

pinMode(beep,OUTPUT);

pinMode(SensorRight,INPUT);定義右循跡紅外傳感器為輸入

pinMode(SensorLeft,INPUT);定義左循跡紅外傳感器為輸入

digitalWrite(key,HIGH);

digitalWrite(beep,HIGH);

}

void Distance_test() 量出前方距離

{

digitalWrite(Trig,LOW);給觸發(fā)腳低電平

delayMicroseconds(2);

digitalWrite(Trig,HIGH);

delayMicroseconds(10);//10us

digitalWrite(Trig,LOW);持續(xù)給觸發(fā)腳低電

float Fdistance = pulseIn(Echo,HIGH);讀取高電平時(shí)間

Fdistance= Fdistance/58;

Serial.print("Distance:");輸出距離

Serial.println(Fdistance);顯示距離

Distance = Fdistance;

}

void loop()

{

while(1)

{

SR = digitalRead(SensorRight);

SL = digitalRead(SensorLeft);

Distance_test();

Serial.println( Distance);

if(Distance<=10)

{

spin_left(4);

}

else if(Distance<20&&Distance>10)

run1();

else

{

if (SL ==LOW&&SR== LOW)

run();//調(diào)用前進(jìn)函數(shù)

else if (SL == LOW & SR == HIGH)

right();

else if (SR == LOW & SL ==? HIGH)

left();

}

delay(200);

}

}

五、總結(jié)

Arduino在智能小車這方面的運(yùn)用只是這個(gè)領(lǐng)域方面的一小部分。尋跡和避障也只是一個(gè)基礎(chǔ)的功能。同時(shí)對于Arduino這一方面的前端研發(fā)還有更為強(qiáng)大的功能。我也相信通過Arduino的發(fā)展,能夠?qū)⑦@些功能實(shí)體化衍生到我們生活的各處。本文只是在Arduino的基礎(chǔ)之內(nèi),設(shè)計(jì)了一款綜合性功能的小車的應(yīng)用。旨在引起讀者對于這一領(lǐng)域的興趣。進(jìn)一步的去探索Arduino更多的功能。

參考文獻(xiàn):

[1]蔡睿妍.Arduino 的原理及應(yīng)用[J]電子設(shè)計(jì)工程,2012.20(16)155-157.

[2]趙建偉,班鈺,王義,等基于 Arduino 的智能小車的 控制系統(tǒng)設(shè)計(jì)[J].兵工自動化,2015,34(5):74-76.96.

作者簡介:李云飛(2000年— ) ,男,漢族,四川省成都市人,學(xué)生,研究方向:物聯(lián)網(wǎng)智能應(yīng)用。

猜你喜歡
避障
基于物聯(lián)網(wǎng)的智能“導(dǎo)盲犬式”社交門鈴
基于LabVIEW的自主巡航與遙控雙功能智能小車研發(fā)
基于HC—SR04超聲波傳感器的智能避障小車設(shè)計(jì)
基于STM32芯片的移動機(jī)器人的避障研究
基于“STC80C51單片機(jī)”的智能小車系統(tǒng)的設(shè)計(jì)
自行小車避障的設(shè)計(jì)與實(shí)現(xiàn)
南涧| 荆州市| 长寿区| 滨海县| 阳信县| 淅川县| 静乐县| 泾川县| 皋兰县| 库伦旗| 万源市| 沙河市| 云和县| 雷波县| 满城县| 衡南县| 西宁市| 津市市| 武功县| 施秉县| 水富县| 治多县| 临潭县| 府谷县| 吴旗县| 施秉县| 如皋市| 浑源县| 乌鲁木齐县| 常熟市| 哈巴河县| 布尔津县| 马尔康县| 仙游县| 聂拉木县| 株洲市| 文安县| 望奎县| 固阳县| 化隆| 涟源市|