馬良
【摘 要】Arduino開(kāi)發(fā)板的發(fā)展方興未艾。它在工程實(shí)踐中應(yīng)用中扮演了重要角色,在大學(xué)生課業(yè)活動(dòng)中迅速普及,通??梢杂肁rduino驗(yàn)證無(wú)人飛行器模塊、智能小車模塊、芯片功能等等。替換原來(lái)需要有人作業(yè)的繁復(fù)工作。本文闡明了智能壁障小車開(kāi)發(fā)流程和難點(diǎn)。
【關(guān)鍵詞】Arduino平臺(tái);避障小車
The development of intelligent anti-barrier car on the Arduino platform
MA Liang
(School of electronics and Automation Engineering , BITC, Beijing, 100015, China)
【Abstract】The related application of Arduino system is developing prosperously in China, ?it plays an important role in application of the engineering practice. Usually we can use the Arduino to verify unmanned aircraft modules, The intelligent anti-barrier car modules, chip functions and so on. Replacing the complex work that required someone to do as homework. This paper explains the development flow and difficulty point of the development intelligent anti-barrier car.
【Key words】The Arduino platform ;The intelligent anti-barrier car
0 引言
基于Arduino平臺(tái)的智能壁障小車可以完成各種各樣的功能1。Arduino 編程簡(jiǎn)潔并且通俗易懂,有點(diǎn)C基礎(chǔ)就能很快上手。學(xué)習(xí)主流的 Arduino控制器后,可以對(duì)Arduino的使用和實(shí)施有較高認(rèn)識(shí),目前已經(jīng)把它應(yīng)用到大學(xué)生創(chuàng)新方案中,用它完成大學(xué)生創(chuàng)新項(xiàng)目-智能避障小車。
Arduino平臺(tái)目的與意義:Arduino有豐富的第三方資源,Arduino無(wú)論硬件還是軟件,都是全部開(kāi)源的,你可以深入的了解到底層的全部機(jī)理,也預(yù)留了非常好的第三方庫(kù)開(kāi)發(fā)接口。秉承了開(kāi)源社區(qū)一貫的開(kāi)放性和共享性,很多愛(ài)好者都實(shí)現(xiàn)了自己的設(shè)計(jì)小項(xiàng)目,同時(shí)將自己開(kāi)發(fā)硬件和軟件與大家分享自己的心得和體會(huì)。對(duì)于在校大學(xué)生,可以在Arduino社區(qū)輕松找到自己需要使用的一些基本功能模塊。例如:舵機(jī)控制、PID調(diào)速、A/D轉(zhuǎn)換等等。特別一些模塊供應(yīng)商也開(kāi)始越來(lái)越重視Arduino社區(qū),同時(shí)為自己的產(chǎn)品提供基于Arduino-IDE的庫(kù)文件并且組織大學(xué)生競(jìng)賽實(shí)踐項(xiàng)目,這些都極大便利了Arduino開(kāi)發(fā)者,使你不必拘泥于一些基本功能繁瑣的編寫(xiě),可以把自己的精力更多的投入自己想要的功能設(shè)計(jì)中去。
本文闡明對(duì)Arduino平臺(tái)開(kāi)發(fā)智能壁障小車心得和體會(huì)。
1 Arduino平臺(tái)開(kāi)發(fā)智能壁障小車:
1.1 壁障小車結(jié)構(gòu):
壁障小車模塊(圖1)由以下幾部分組成:無(wú)人小車平臺(tái)(包含4個(gè)電機(jī)馬達(dá))、Arduino-UNO、298電機(jī)雙路驅(qū)動(dòng)芯片模塊、傳感器模塊(超聲波+紅外測(cè)距模塊等)、藍(lán)牙模塊和手機(jī)端APP、電池管理系統(tǒng)、電路測(cè)試儀器等等。同時(shí)可以對(duì)它進(jìn)行簡(jiǎn)單的二次開(kāi)發(fā),外加攝像模塊可以錄像,外加運(yùn)輸模塊可以運(yùn)輸(例如JD無(wú)人送貨車),外加機(jī)械手可以抓取東西等等。
Arduino智能壁障小車的驅(qū)動(dòng)電路模塊主要依靠298電路完成(通過(guò)PWM波形控制Arduino小車的轉(zhuǎn)速、H/L控制左右方向等),無(wú)人避障小車的控制部分由Arduino-UNO模塊進(jìn)行控制,基于該平臺(tái)結(jié)合外接傳感器(測(cè)距,控制等模塊)實(shí)現(xiàn)無(wú)人小車前進(jìn)、后退、左右轉(zhuǎn)向以及掉頭等各個(gè)動(dòng)作。成功搭建Arduino智能壁障小車基本平臺(tái)后,結(jié)合手機(jī)進(jìn)行圖像采集處理分析,它進(jìn)一步完成無(wú)人小車的跟隨等高級(jí)功能。
1.2 壁障小車工作流程:
1.3 壁障小車調(diào)試:
Arduino智能壁障小車(圖3)調(diào)速方式主要依靠PWM信號(hào)占空比控制,占空比越高則小車馬達(dá)速度越快。(例如:目前頻率信號(hào)等于1KHz,占空比等于40%)。
int SNUM[2] ;//定義2個(gè)傳感器
int INA = 4; //電機(jī)A正反轉(zhuǎn)控制端
int PWMA = 5; //電機(jī)A調(diào)速端
int INB = 7; //電機(jī)B正反轉(zhuǎn)控制端
int PWMB = 6; //電機(jī)B調(diào)速端
void motospd(int sp1,int sp2) /*電機(jī)速度控制正值為正轉(zhuǎn),負(fù)值為反轉(zhuǎn)*/
{ if(sp1>0)
digitalWrite(INA, HIGH);
else
digitalWrite(INA, LOW);
if(sp2>0)
digitalWrite(INB, HIGH);
else
digitalWrite(INB, LOW);
analogWrite(PWMA,abs (sp1));
analogWrite(PWMB,abs (sp2));
}
2 結(jié)論
本文闡明了Arduino智能壁障小車開(kāi)發(fā)難點(diǎn)和重點(diǎn),而后描述該平臺(tái)具體的開(kāi)發(fā)流程。由于Arduino智能壁障小車可以迅速搭建,因此它可以廣泛應(yīng)用于相關(guān)產(chǎn)品的驗(yàn)證開(kāi)發(fā)。
【參考文獻(xiàn)】
[1]陳呂洲.Arduino程序設(shè)計(jì)基礎(chǔ) 北航出版社.
[2]http://www.arduino.cn/Arduino中文社區(qū).
[責(zé)任編輯:朱麗娜]endprint