張興華,莊國(guó)銳
Arduino避障小車(chē)控制程序設(shè)計(jì)
張興華,莊國(guó)銳
(廣東白云學(xué)院 機(jī)電工程學(xué)院,廣東廣州,510450)
本文介紹了Arduino UNO微控制器控制的智能避障小車(chē)的控制程序,小車(chē)主控制器采用Arduino UNO,左右前輪采用直流電機(jī)驅(qū)動(dòng),后輪是從動(dòng)萬(wàn)向輪。舵機(jī)驅(qū)動(dòng)的云臺(tái)上放置一個(gè)超聲波傳感器??梢宰詣?dòng)避障。
Arduino;智能小車(chē);舵機(jī)云臺(tái);自動(dòng)避障
隨著現(xiàn)代計(jì)算機(jī)技術(shù)的不斷發(fā)展和普及,機(jī)器人的發(fā)展已經(jīng)遍及近年來(lái)機(jī)器人的智能水平不斷提高,并且迅速的改變著人們的生活方式。
智能小車(chē)主控制器采用Arduino UNO,三輪結(jié)構(gòu),左右前輪采用直流電機(jī)驅(qū)動(dòng),后輪是從動(dòng)萬(wàn)向輪。舵機(jī)驅(qū)動(dòng)的云臺(tái)上放置一個(gè)超聲波傳感器。
#include
#include
LiquidCrystal lcd(13,12,7,6,5,4,3);
int Echo = A1; int Trig =A0;
int F_D = 0;int L_D = 0;int R_D = 0;
int L_m_b=8;int L_m_g=9; //左電機(jī)后退(IN1)
//左電機(jī)前進(jìn)(IN2)
int R_m_g=10; // 右電機(jī)前進(jìn)(IN3)
int R_m_b=11; // 右電機(jī)后退(IN4)
int key=A2;int sp=2;
int ang,pw,v;
void setup(){
Serial.begin(9600); // 初始化串口
pinMode(L_m_g,OUTPUT);//PIN8 pinMode(L_m_b,OUTPUT); // PIN 9
pinMode(R_m_g,OUTPUT);// PIN 10
pinMode(R_m_b,OUTPUT);//PIN 11
pinMode(key,INPUT); pinMode(beep,OUTPUT);
pinMode(Echo, INPUT); // 超聲波輸入腳
pinMode(Trig, OUTPUT); // 超聲波輸出腳
lcd.begin(16,2);//初始化液晶
pinMode(sp,OUTPUT);}//舵機(jī)接口
void run(int time){
digitalWrite(R_m_g,HIGH); digitalWrite(R_m_b,LOW);
analogWrite(R_m_g,165);//PWM調(diào)速
analogWrite(R_m_b,0);
digitalWrite(L_m_g,HIGH); digitalWrite(L_m_b,LOW);
analogWrite(L_m_g,115); analogWrite(L_m_b,0);
delay(time * 100);} //執(zhí)行時(shí)間,可調(diào)整
void brake(int time); //剎車(chē),停車(chē)
void left(int time);//左輪不動(dòng),右輪前進(jìn)
void spin_left(int time);
void right(int time);void back(int time);
void spin_right(int time);
float D_test(){
digitalWrite(Trig, LOW);
delayMicroseconds(2);// 延時(shí)2μs
digitalWrite(Trig, HIGH);
delayMicroseconds(10);
digitalWrite(Trig, LOW);
float FD = pulseIn(Echo, HIGH);
FD= FD/58; return FD;}
void D_display(int D){
if((2 lcd.home();lcd.print(" D: "); //顯示 lcd.setCursor(6,2);//光標(biāo)定位在第2行 lcd.print(D);lcd.print("cm"); } else{ lcd.home();lcd.print("Out of range"); } delay(250); lcd.clear();} Void servopulse(int sp,int ang){//servopin pw=(ang*11)+500;//將角度對(duì)應(yīng)500~2480值 digitalWrite(sp,HIGH); delayMicroseconds(pw);//延時(shí)微秒數(shù) digitalWrite(sp,LOW); delay(20-pw/1000);}//延時(shí)毫秒數(shù) void front_detection(){ for(int i=0;i<=5;i++) //延時(shí)以轉(zhuǎn)到角度 servopulse(sp,90); F_D = D_test();} void left_detection(){ for(int i=0;i<=15;i++) servopulse(sp,175); L_D = D_test();} void right_detection(){ for(int i=0;i<=15;i++) servopulse(sp,5); R_D = D_test();} void loop(){ while(1) { front_detection();//測(cè)量前方距離 if(F_D < 32){ back(2);brake(2); left_detection();D_display(L_D); right_detection();D_display(R_D); if((L_D < 35 ) &&( R_D < 35 )) spin_left(0.7);//旋轉(zhuǎn)掉頭 else if(L_D > R_D) {left(3);brake(1); } else if(L_D < R_D) {right(3);brake(1); } } else run(); //無(wú)障礙物,直行 } } 在未來(lái)的社會(huì)中智能也是大勢(shì)所趨,只能機(jī)器人的發(fā)展水平可反應(yīng)出一個(gè)國(guó)家的高科技水平和綜合國(guó)力,是國(guó)家綜合國(guó)力強(qiáng)大的標(biāo)志,也是人類(lèi)文明進(jìn)步的標(biāo)志。 [1] 《Make:Arduino Bots and Gadgets》Kimmo Karvinen,Tero Karvinen,O'Reilly. [2] 《愛(ài)上Arduino》Massimo Benzi,2014.05,人民郵電出版社。 [3] 趙云娥,吳振強(qiáng).基于Arduino的雙模式智能避障小車(chē)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].現(xiàn)代電子技術(shù),2017,40(21):94-97. [4] 于洋. 基于Arduino的自動(dòng)避障及通信控制智能小車(chē)系統(tǒng)的研究與設(shè)計(jì)[D].吉林大學(xué),2017. [5] 卞云松.基于Arduino單片機(jī)的避障小車(chē)機(jī)器人[J].自動(dòng)化技術(shù)與應(yīng)用,2014,33(01):16-19. Control program design of Arduino vehicle for obstacle avoidance Zhang Xinghua, Zhuang Guorui Institute of mechanical and electrical engineering of Guangdong Baiyun University, Guangzhou 510450 This paper introduces the control program of the intelligent obstacle avoidance car controlled by Arduino UNO micro controller. The main controller of the car adopts Arduino UNO,the left and right front wheels are driven by DC motor and the rear wheel is a driven universal wheel. An ultrasonic sensor is placed on the platform driven by the steering gear. It can automatic obstacle avoidance. Arduino; intelligent car; steering gear pan; automatic obstacle avoidance. 10.19551/j.cnki.issn1672-9129.2019.03.038 TP212 A 1672-9129(2019)03-0110-02 張興華,(1967-)男,碩士,工程師,廣東白云學(xué)院。研究方向智能裝備、工業(yè)機(jī)器人設(shè)計(jì)。E-mail:2209282216@qq.com。 莊國(guó)銳,(1995-)男,廣東白云學(xué)院。材料成型及控制工程專(zhuān)業(yè)。E-mail:2209282216@qq.com。2 結(jié)束語(yǔ):