近年來隨著人工智能技術(shù)、計算機技術(shù)等相關(guān)技術(shù)的發(fā)展,對移動機器人的研究越來越廣泛。本設(shè)計是采用OpenWrt操作系統(tǒng)的移動機器人,它可實現(xiàn)多種不同功能,如探測險情、巡視、圖像采集、定位、無線通信等。它還可以作為各種智能控制方法(包括動態(tài)避障、路徑規(guī)劃、群體協(xié)作策略)的良好載體,開展研究。
1 系統(tǒng)方案
采用2層架構(gòu)。上層以ARM處理器S3C2440為核心,選用MINI2440開發(fā)板作為上層的主板,負(fù)責(zé)圖像采集,并將圖像通過WiFi方式發(fā)送給遠(yuǎn)端的PC機。WiFi無線通信是利用PC機與無線路由器搭建環(huán)境平臺共同實現(xiàn)的。
下層是以51單片機為核心的單片機控制板,由51單片機及外圍電路組成。下層主要負(fù)責(zé)機器人移動控制,傳感器數(shù)據(jù)處理。51單片機通過I/O口輸出PWM信號控制直流電機的轉(zhuǎn)速和轉(zhuǎn)向,實現(xiàn)機器人的前進、停止、左轉(zhuǎn)和右轉(zhuǎn)。單片機接口電路上掛接了1個超聲波測距模塊、1個人體紅外感應(yīng)模塊、1個步進電機模塊。超聲波測距模塊用來實現(xiàn)機器人避障。在嵌入式智能的前端安裝了一個步進電機,而超聲波測距模塊安置在步進電機的轉(zhuǎn)軸上,步進電機不停地來回轉(zhuǎn)動,超聲波測距模塊也隨之轉(zhuǎn)動。這樣用1個超聲波測距模塊就可實現(xiàn)多方位測距,從而減少了超聲波測距模塊的數(shù)量。
機器人主要由硬件系統(tǒng)和軟件系統(tǒng)構(gòu)成。硬件系統(tǒng)主要包括:ARM處理器、單片機、外圍接口電路、機器人底盤以及電源等。其中ARM處理器是上層的核心,51單片機是下層的核心。軟件包括:嵌入式Linux操作系統(tǒng)、外設(shè)驅(qū)動程序、Linux應(yīng)用程序以及單片機應(yīng)用程序等。系統(tǒng)沒有選用通常的嵌入式Linux版本,而是另辟蹊徑,選用一種獨特的嵌入式Linux發(fā)行版之一OpenWrt作為操作系統(tǒng)。OpenWrt提供了一個完全可寫的文件系統(tǒng)及軟件包管理,它通過簡單易用的方式,降低了嵌入式Linux開發(fā)的門檻,提高了系統(tǒng)軟件開發(fā)的效率。
嵌入式智能移動機器人的工作流程為:傳感器模塊實時采集周圍環(huán)境信息,將此數(shù)據(jù)信息傳輸?shù)綑C器人控制系統(tǒng)中,單片機通過數(shù)據(jù)分析獲取有效數(shù)據(jù),從而獲知機器人與障礙物的相對位置,然后根據(jù)此位置信息產(chǎn)生控制信號;單片機產(chǎn)生PWM信號控制直流電機來控制機器人轉(zhuǎn)向,從而達(dá)到機器人自主“行走”的目的。下層的單片機與上層的ARM處理器通過串口來通信,ARM主板可將下層單片機控制板的工作數(shù)據(jù)通過無線WiFi的方式傳輸?shù)竭h(yuǎn)端的PC機。ARM主板可以不間斷地將USB攝像頭采集的清晰現(xiàn)場圖片發(fā)給遠(yuǎn)端的PC控制終端。
2 系統(tǒng)硬件設(shè)計
硬件系統(tǒng)主要包括:ARM處理器、單片機、外圍接口電路、機器人底盤以及電源等,其中ARM處理器是上層的核心,51單片機是下層的核心。硬件結(jié)構(gòu)框圖如圖1所示。
圖1 硬件結(jié)構(gòu)框圖
由圖1可以看出,系統(tǒng)主要由以下模塊構(gòu)成:圖像采集模塊、無線通信模塊、超聲波測距模塊、紅外感應(yīng)模塊、MINI2440、單片機STC89C52以及直流電機驅(qū)動模塊等。下面重點介紹直流電機驅(qū)動模塊。
直流電機驅(qū)動模塊以L298N芯片為核心,該芯片具有帶載能力強的特點。直流電機驅(qū)動電路如圖2所示。驅(qū)動電路芯片的外圍電路主要是由二極管構(gòu)成的電橋電路與2組電機并聯(lián)連接,以達(dá)到控制電機按照設(shè)定運轉(zhuǎn)的目的。
圖2 直流電機驅(qū)動電路
移動機器人采用H橋控制方案,整體控制方案如圖3所示。
圖3 H橋控制方案
電機共有4路PWM輸出分別作為左右輪的驅(qū)動,而通過2路PWM輸出可控制一個電機,兩個電機以并聯(lián)方式連接。
當(dāng)L298N芯片使能信號ENABLE為高時,輸出才隨輸入變化,否則為高阻態(tài),所以焊接時,ENABLE引腳及電源引腳VS均接電源VCC.
具體驅(qū)動過程為:通過編程由控制芯片經(jīng)PWM發(fā)出驅(qū)動信號,PWM輸出作為L298N的輸入,經(jīng)L298N轉(zhuǎn)換輸出控制信號使電機轉(zhuǎn)動,從而實現(xiàn)電動機的驅(qū)動。
PWM輸出信號的高低則可以控制直流電機轉(zhuǎn)速。當(dāng)占空比加大時,轉(zhuǎn)速升高;占空比減小時,轉(zhuǎn)速降低;當(dāng)PWM信號輸出占空比為0時可控制電機的停止。
當(dāng)左輪停止,右輪轉(zhuǎn)時,小車左轉(zhuǎn);當(dāng)右輪停止,左輪轉(zhuǎn)動時,小車右轉(zhuǎn)。而2路PWM輸出的正負(fù)順序轉(zhuǎn)換則可控制電機的正反轉(zhuǎn),進而控制小車的前進和后退。
3 系統(tǒng)軟件設(shè)計
軟件部分是移動機器人的智能化的體現(xiàn),它控制移動機器人所有的運行狀態(tài)。
操作系統(tǒng)采用了OpenWrt操作系統(tǒng),該系統(tǒng)簡化了Linux內(nèi)核的定制過程,而且允許開發(fā)者使用軟件包的概念來定制嵌入式設(shè)備,從而簡化了嵌入軟件開發(fā)的流程。
程序在Kubuntu CodeBlock IDE集成開發(fā)環(huán)境中進行編寫,用Openwrt編譯出來的ARM eabi交叉編譯工具編譯,再經(jīng)過終端SercurtCRT通過串行口向移動終端燒入交叉編譯后的程序以及系統(tǒng)。
應(yīng)用軟件控制小車的避障、攝像、發(fā)送視頻等行為。通信方面通過在主機端用vsftp軟件架設(shè)FTP服務(wù)器,并通過IEEE 802.11g(RTL8187)無線網(wǎng)卡建立無線局域網(wǎng)。這樣,移動終端就可以接收上位機的控制命令到達(dá)指定地點拍照并發(fā)送圖片,而PC機終端就可以接收通過WiFi傳送過來的圖片。
系統(tǒng)軟件結(jié)構(gòu)如圖4所示。
圖4 系統(tǒng)軟件結(jié)構(gòu)
系統(tǒng)驅(qū)動程序利用MINI2440開發(fā)板提供的例程進行改寫,并編譯進內(nèi)核。
攝像頭控制軟件mjpgstreamer由Openwrt以軟件包形式提供,通過端口8080輸出為MJPEG格式的圖像。無線通信部分內(nèi)容為Linux下socket編程,為客戶端提供遠(yuǎn)程控制支持。無線通信的部分代碼如下:
int sendstring(char *addr,int port,char *sendchar){
struct sockaddr_in s_addr;//定義sockaddr_in結(jié)構(gòu)體類型保存socket信息
int sock;
int addr_len;
int len,i;
if ((sock=socket(AF_INET, SOCK_DGRAM, 0))==-1) {//創(chuàng)建socket
perror(“no socket”);
exit(errno);
}
else
printf(“create socket.\n\r”);
s_addr.sin_family=AF_INET;//TCP/IP地址族
if (port)
s_addr.sin_port=htons(port);//設(shè)置端口號
else
s_addr.sin_port=htons(10001);
if (*addr)
s_addr.sin_addr.s_addr=inet_addr(addr);//設(shè)置IP
else {
printf(“Send a message must have a receiver!\n”);
exit(0);
}
addr_len=sizeof(s_addr);//IP地址長度
len=-1;//判是否發(fā)送成功標(biāo)志
for (i=0;i<4;i++) {//發(fā)送
if(len<0)len=sendto(sock,sendchar, strlen(sendchar), 0,(struct sockaddr *) &s_addr, addr_len);
else {printf(“send success!”);return 0;}
}
printf(“send error!”);
return 0;
}
系統(tǒng)通過MINI2440驅(qū)動并控制攝像頭,通過串口控制底層的單片機,驅(qū)動無線網(wǎng)卡并連接,運行服務(wù)端,提供UI界面。編譯完成后的Openwrt效果圖如圖5所示。
圖5 編譯完成的OpenWrt效果圖
結(jié)語
本系統(tǒng)選用的OpenWrt操作系統(tǒng),該系統(tǒng)適合移動機器人的設(shè)計要求,系統(tǒng)提供的軟件包簡化了系統(tǒng)開發(fā)流程,提高了開發(fā)效率。經(jīng)過實際調(diào)試運行,系統(tǒng)完全可以達(dá)到設(shè)計要求,可以用于探測險情、圖像采集、目標(biāo)定位、無線通信等領(lǐng)域。
-
ARM
+關(guān)注
關(guān)注
134文章
9097瀏覽量
367609 -
圖像采集
+關(guān)注
關(guān)注
2文章
300瀏覽量
41280 -
移動機器人
+關(guān)注
關(guān)注
2文章
762瀏覽量
33574 -
人工智能
+關(guān)注
關(guān)注
1791文章
47282瀏覽量
238534 -
傳感器模塊
+關(guān)注
關(guān)注
1文章
30瀏覽量
8677
發(fā)布評論請先 登錄
相關(guān)推薦
評論