【摘要】在工廠的流水線上,或者生活中的物流需求上,都需要具有自動(dòng)運(yùn)行功能的機(jī)器人。為此,本文應(yīng)用了raspberry pi4芯片開(kāi)發(fā)了一款具有循跡和避障功能的快遞機(jī)器人。它可以搬運(yùn)一定容量的物品,根據(jù)傳感器技術(shù)分析路況,自動(dòng)導(dǎo)航行走至目的地。raspberry pi4芯片功能強(qiáng)大,并且具有很多的擴(kuò)展接口,可以滿足尋跡避障、電機(jī)驅(qū)動(dòng)和報(bào)警功能的需求。根據(jù)它的功能可以組裝成結(jié)構(gòu)簡(jiǎn)單的送快遞機(jī)器人,滿足人們運(yùn)送物品的需要。
【關(guān)鍵詞】raspberry pi4;循跡避障;快遞機(jī)器人;自動(dòng)導(dǎo)航
【基金項(xiàng)目】廣西民族師范學(xué)院自治區(qū)級(jí)大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計(jì)劃項(xiàng)目(項(xiàng)目編號(hào):202010604092)。
中圖分類號(hào):TN929? ? ? ? ? ? ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A? ? ? ? ? ? ? ? ? ? ?DOI:10.12246/j.issn.1673-0348.2021.01.024
目前快遞機(jī)器人應(yīng)用廣泛,但復(fù)雜結(jié)構(gòu)的機(jī)器人對(duì)初學(xué)者來(lái)說(shuō)學(xué)習(xí)起來(lái)比較困難。而raspberry pi4芯片相當(dāng)于一個(gè)微型電腦,在Linux系統(tǒng)中運(yùn)行。適合初學(xué)者較快入門(mén),難度適中,滿足初學(xué)者對(duì)芯片功能的需求。為此,本文應(yīng)用了raspberry pi4芯片豐富的配備資源結(jié)合了傳感器技術(shù)和計(jì)算機(jī)軟件操作技術(shù),組裝成了一個(gè)應(yīng)用方便快捷的快遞機(jī)器人。它的環(huán)境適應(yīng)性較強(qiáng),在較窄或曲折的路徑上都可以靈活行走。也可以在本文設(shè)計(jì)的基礎(chǔ)上,利用raspberry pi4芯片的拓展端口增加更多的實(shí)用功能,完成更多種類的快遞機(jī)器人設(shè)計(jì)。
1. 實(shí)現(xiàn)快遞機(jī)器人的總方案
為快遞機(jī)器人設(shè)計(jì)功能方案,機(jī)器人需要完成的功能如下:它的行走和轉(zhuǎn)彎功能要靈活;它可以自行避開(kāi)身旁的障礙物;當(dāng)設(shè)定好目地點(diǎn)后,它可以循跡自動(dòng)導(dǎo)航行走至終點(diǎn);它具備自身安全性及路線偏移自動(dòng)報(bào)警功能的系統(tǒng)。此外,為實(shí)現(xiàn)快遞機(jī)器人的基本功能構(gòu)建出基本模塊,該機(jī)器人需要構(gòu)建出避障模塊,循跡模塊和報(bào)警模塊。實(shí)現(xiàn)自動(dòng)導(dǎo)航行走功能需要利用避障模塊的信息,通過(guò)raspberry pi4主控芯片處理綜合判斷后驅(qū)動(dòng)循跡模塊自動(dòng)導(dǎo)航行走來(lái)完成。在自動(dòng)導(dǎo)航行走功能運(yùn)行時(shí)要調(diào)用報(bào)警功能的模塊,確保機(jī)器人自身的安全和行走路線的正確性。
2. 實(shí)現(xiàn)自動(dòng)導(dǎo)航行走
2.1 實(shí)現(xiàn)自動(dòng)導(dǎo)航行走的方法
本文通過(guò)簡(jiǎn)單實(shí)用的紅外線傳感器來(lái)做一個(gè)循跡模塊,當(dāng)機(jī)器人走進(jìn)白色區(qū)域中時(shí),反饋一個(gè)低電平。當(dāng)機(jī)器人走進(jìn)黑色區(qū)域中時(shí),反饋一個(gè)高電平。通過(guò)電平的高低變化,判斷機(jī)器人行走的路線是否正確。應(yīng)用raspberry pi4主控芯片來(lái)控制機(jī)器人的行走,當(dāng)機(jī)器人走進(jìn)白色區(qū)域時(shí),主控芯片控制機(jī)器人往相反方向行走來(lái)脫離白色區(qū)域,讓機(jī)器人走進(jìn)黑色路線區(qū)域。再利用紅外線傳感器來(lái)構(gòu)造一個(gè)避障模塊,當(dāng)機(jī)器人旁邊有障礙物時(shí),紅外線傳感器發(fā)射的紅外線反射回來(lái),給raspberry pi4主控芯片反饋一個(gè)低電平。沒(méi)有障礙物時(shí),反饋一個(gè)高電平。raspberry pi4主控芯片通過(guò)有無(wú)感應(yīng)到低電平,判斷左右兩邊是否有障礙物。當(dāng)左邊有障礙物時(shí)則往右邊轉(zhuǎn)彎,當(dāng)右邊有障礙物時(shí)則往左邊轉(zhuǎn)彎。這樣,機(jī)器人就可以通過(guò)傳感器技術(shù),對(duì)路況進(jìn)行監(jiān)測(cè)獲取路況信息數(shù)據(jù),并根據(jù)信息特征做出相應(yīng)動(dòng)作來(lái)完成自動(dòng)導(dǎo)航行走的功能。
2.2 系統(tǒng)和軟件設(shè)計(jì)
在應(yīng)用raspberry pi4芯片之前,需要給raspberry pi4芯片安裝一個(gè)系統(tǒng)。本文選用一個(gè)16G大小的SD卡作為芯片的磁盤(pán),把系統(tǒng)鏡像燒錄在SD卡里面。SD卡的容量不能過(guò)小,因?yàn)橹靼謇锏南到y(tǒng)和軟件都在SD卡里面運(yùn)行,所有的文件都在里面存取。在使用SD卡燒錄系統(tǒng)之前,需要對(duì)SD卡進(jìn)行格式化,以免安裝后的系統(tǒng)在主板里面不能運(yùn)行。當(dāng)SD卡插入主板后,系統(tǒng)會(huì)自動(dòng)運(yùn)行打開(kāi)一個(gè)WIFI熱點(diǎn)。在自己的筆記本電腦里安裝常用的文件傳輸軟件和遠(yuǎn)程控制軟件后,通過(guò)電腦連接熱點(diǎn),就可以遠(yuǎn)程控制機(jī)器人的操作系統(tǒng)了。把編寫(xiě)好的C語(yǔ)言程序代碼通過(guò)文件傳輸軟件發(fā)送到機(jī)器人的操作系統(tǒng),再輸入指令編譯C語(yǔ)言程序文件,編譯成功后運(yùn)行程序就可以實(shí)現(xiàn)機(jī)器人的循跡避障功能了。
連接WIFI熱點(diǎn)需要用到raspberry pi4芯片系統(tǒng)鏡像的默認(rèn)熱點(diǎn)密碼,而連接文件傳輸軟件和遠(yuǎn)程控制軟件都需要用到raspberry pi4芯片系統(tǒng)鏡像的默認(rèn)IP地址和密碼。此外,C語(yǔ)言程序的編譯指令如(注意區(qū)分大小寫(xiě)字母):
gcc 文件名.c –o 文件名 –lwiringPi
運(yùn)行程序指令如:sudo ./文件名
需要安裝的常用軟件和系統(tǒng)鏡像如圖1:
2.3 程序代碼編寫(xiě)
完成循跡避障功能的C語(yǔ)言程序代碼如下,運(yùn)行后機(jī)器人就可以自動(dòng)導(dǎo)航行走,完成快遞機(jī)器人的功能:
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define BUFSIZE 512
int PWMA = 1;
int AIN2 = 2;
int AIN1 = 3;
int PWMB = 4;
int BIN2 = 5;
int BIN1 = 6;
#define LEFT 23
#define RIGHT 25
#define LEFTT 26
#define RIGHTT 27
void? t_up(unsigned int speed,unsigned int t_time)
{digitalWrite(AIN2,0);
digitalWrite(AIN1,1);
softPwmWrite(PWMA,speed);
digitalWrite(BIN2,0);
digitalWrite(BIN1,1);
softPwmWrite(PWMB,speed);
delay(t_time); }
void t_stop(unsigned int t_time)
{digitalWrite(AIN2,0);
digitalWrite(AIN1,0);
softPwmWrite(PWMA,0);
digitalWrite(BIN2,0);
digitalWrite(BIN1,0);
softPwmWrite(PWMB,0);
delay(t_time);}
void t_down(unsigned int speed,unsigned int t_time)
{ digitalWrite(AIN2,1);
digitalWrite(AIN1,0);
softPwmWrite(PWMA,speed);
digitalWrite(BIN2,1);
digitalWrite(BIN1,0);
softPwmWrite(PWMB,speed);
delay(t_time);}
void t_left(unsigned int speed,unsigned int t_time)
{ digitalWrite(AIN2,1);
digitalWrite(AIN1,0);
softPwmWrite(PWMA,speed);
digitalWrite(BIN2,0);
digitalWrite(BIN1,1);
softPwmWrite(PWMB,speed);
delay(t_time);}
void t_right(unsigned int speed,unsigned int t_time)
{ digitalWrite(AIN2,0);
digitalWrite(AIN1,1);
softPwmWrite(PWMA,speed);
digitalWrite(BIN2,1);
digitalWrite(BIN1,0);
softPwmWrite(PWMB,speed);
delay(t_time); }
int main(int argc, char *argv[])
{ float dis;
int SR;
int SL;
int SRR;
int SLL;
wiringPiSetup();
pinMode (1, OUTPUT);
pinMode (2, OUTPUT);
pinMode (3, OUTPUT);
pinMode (4, OUTPUT);
pinMode (5, OUTPUT);
pinMode (6, OUTPUT);
softPwmCreate(PWMA,0,100);
softPwmCreate(PWMB,0,100);
while(1){ SR = digitalRead(RIGHT);
SL = digitalRead(LEFT);
SRR = digitalRead(RIGHTT);
SLL= digitalRead(LEFTT);
if ((SL == HIGH&&SR==HIGH&&SLL == HIGH&&SRR == HIGH)||(SL == HIGH&&SR==HIGH&&SLL == LOW&&SRR == LOW)){ printf("GO");
t_up(50,0);}
else if ((SL == HIGH&&SR == LOW)||(SLL == HIGH&&SRR == LOW)){
printf("LEFT");
t_left(50,0);}
else if ((SL == LOW&&SR == HIGH)||(SLL == LOW&&SRR == HIGH)) {? ? ? printf("RIGHT");
t_right(50,0);}
else? {? printf("STOP");
t_stop(0);}}
return 0;}
3. 安全及偏移路線報(bào)警
應(yīng)用raspberry pi4芯片和傳感器技術(shù),來(lái)完成機(jī)器人自動(dòng)報(bào)警功能的設(shè)計(jì)。當(dāng)傳感器檢測(cè)到符合報(bào)警的條件時(shí),raspberry pi4芯片通過(guò)傳感器反饋的電位變化觸發(fā)蜂鳴器,實(shí)現(xiàn)機(jī)器人自身安全和偏移正確路線的報(bào)警功能。另外,還可以給快遞機(jī)器人使用兩塊raspberry pi4芯片,分別作為主機(jī)部分和從機(jī)部分。兩個(gè)芯片可以通過(guò)簡(jiǎn)單的WIFI功能相連,主機(jī)部分用來(lái)進(jìn)行自動(dòng)導(dǎo)航行走功能的操作,從機(jī)部分則用來(lái)進(jìn)行機(jī)器人自身安全性及偏移正確路線的報(bào)警功能操作。利用兩塊芯片可以提高機(jī)器人處理數(shù)據(jù)的速度,增加機(jī)器人存取信息的容量。當(dāng)然,也可以給機(jī)器人安裝高精度的測(cè)距傳感器和全方位檢測(cè)功能的超聲波傳感器,讓機(jī)器人有更強(qiáng)大的檢測(cè)報(bào)警功能。
4. 結(jié)語(yǔ)
通過(guò)以上的方法,本文成功實(shí)現(xiàn)了機(jī)器人循跡避障的功能,組裝成了一個(gè)簡(jiǎn)易的快遞機(jī)器人進(jìn)行物品的運(yùn)送。本文應(yīng)用的raspberry pi4芯片體積雖小,卻有小型電腦般的眾多功能,深受眾多開(kāi)發(fā)者的喜愛(ài)。但本文應(yīng)用raspberry pi4芯片開(kāi)發(fā)的快遞機(jī)器人只適合運(yùn)送輕型物品,對(duì)物品的容量一般。這種小型的快遞機(jī)器人機(jī)動(dòng)性更強(qiáng),以后將在眾多場(chǎng)合下廣泛應(yīng)用。對(duì)于腿腳不方便的老年人,或者需要頻繁取物品的用戶,都可以使用快遞機(jī)器人在一定的范圍內(nèi)完成所需任務(wù)。它適合各個(gè)年齡段的群體,操作簡(jiǎn)單易懂,運(yùn)行在眾多小場(chǎng)合。另外,設(shè)計(jì)機(jī)器人的初學(xué)者通過(guò)該機(jī)器人可以對(duì)紅外線傳感器和超聲波傳感器等傳感器技術(shù)有更深刻的認(rèn)識(shí),提升實(shí)際操作能力。學(xué)會(huì)理論聯(lián)系實(shí)際,創(chuàng)新性地開(kāi)發(fā)出更多經(jīng)濟(jì)實(shí)用的產(chǎn)品。為以后的大型智能型機(jī)器人設(shè)計(jì)開(kāi)拓知識(shí)視野,對(duì)設(shè)計(jì)智能型機(jī)器人有一定的啟發(fā)和認(rèn)識(shí)。
參考文獻(xiàn):
[1]劉靜,陶毓杰,張萬(wàn),等??爝f分揀機(jī)器人控制系統(tǒng)的設(shè)計(jì)[J]。機(jī)械制造,2020,58(1):13-16.
[2]胡凱程,林立,譚青青。面向社區(qū)的智能無(wú)人快遞小車(chē)(機(jī)器人)創(chuàng)新設(shè)計(jì)研究[J]。信息系統(tǒng)工程,2018(9):45-46.
[3]徐愛(ài)昆。基于樹(shù)莓派攝像頭的雙輪循跡平衡車(chē)設(shè)計(jì)[J]。單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2018(12):74-77.
[4]弓鵬偉,費(fèi)燕瓊,等?;诙鄠鞲衅餍畔⑷诤系妮喡幕旌弦苿?dòng)機(jī)器人路況識(shí)別方法[J]。上海交通大學(xué)學(xué)報(bào),2017,51(4):398-402.
[5]王檀彬,陳無(wú)畏,李進(jìn),等。多傳感器融合的視覺(jué)導(dǎo)航智能車(chē)避障仿真研究[J]。系統(tǒng)仿真學(xué)報(bào),2009,21(4):1015-1019.
[6]宋志揚(yáng)?;跇?shù)莓派的室內(nèi)安防系統(tǒng)設(shè)計(jì)[J]。計(jì)算機(jī)產(chǎn)品與流通,2019(3):138.
[7]蔣青山,李亮亮,李運(yùn)澤,等。室內(nèi)智能安防報(bào)警系統(tǒng)[J]。山西電子技術(shù),2019(5):25-28.
[8]李歡。快遞入庫(kù)智能分揀機(jī)器人系統(tǒng)[J]。科技創(chuàng)新與應(yīng)用,2020(5):39-41.
作者簡(jiǎn)介:劉光曉(1996.2-)男,海南臨高人,廣西民族師范學(xué)院數(shù)理與電子信息工程學(xué)院,大學(xué)本科在讀。