徐 鵬,梁 曼,魏 萍,張海玲
(1.浙江國(guó)際海運(yùn)職業(yè)技術(shù)學(xué)院 船舶工程學(xué)院,浙江 舟山 316021;2.浙江工業(yè)大學(xué) 特種裝備制造與先進(jìn)加工技術(shù)教育部重點(diǎn)實(shí)驗(yàn)室,浙江 杭州 310014)
基于Arduino/Android的小車藍(lán)牙控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)*
徐 鵬1,梁 曼2,魏 萍1,張海玲1
(1.浙江國(guó)際海運(yùn)職業(yè)技術(shù)學(xué)院 船舶工程學(xué)院,浙江 舟山 316021;2.浙江工業(yè)大學(xué) 特種裝備制造與先進(jìn)加工技術(shù)教育部重點(diǎn)實(shí)驗(yàn)室,浙江 杭州 310014)
以Arduino單片機(jī)的硬件平臺(tái)為核心控制器,結(jié)合Eclipse開發(fā)環(huán)境和Arduino IDE編程語(yǔ)言完成小車的主控程序,通過Android手機(jī)藍(lán)牙客戶端與藍(lán)牙模塊服務(wù)端的通信實(shí)現(xiàn)小車的智能策略控制。小車整體采用前橋驅(qū)動(dòng)、后輪轉(zhuǎn)向的布局方式,兩輪各用一個(gè)直流電機(jī)配合齒輪減速機(jī)構(gòu)實(shí)現(xiàn)運(yùn)作。實(shí)驗(yàn)表明:該控制系統(tǒng)實(shí)現(xiàn)了基于Android手機(jī)的藍(lán)牙控制小車的運(yùn)行功能,實(shí)現(xiàn)小車的前進(jìn)、后退和轉(zhuǎn)彎等多種運(yùn)動(dòng)形態(tài)。該控制系統(tǒng)結(jié)構(gòu)簡(jiǎn)單、操作方便,為新型智能控制系統(tǒng)的設(shè)計(jì)提供了參考依據(jù)。
Arduino;Android;藍(lán)牙;智能小車
Arduino作為新興的開源電子設(shè)計(jì)平臺(tái),注重程序的邏輯結(jié)構(gòu),忽略底層函數(shù)的具體設(shè)計(jì),大大降低了編程難度,因此常用作機(jī)器人的主控芯片[1-2]。此外,Arduino中的Atmega328-AU處理芯片具有強(qiáng)大的數(shù)據(jù)處理功能,處理速度和各項(xiàng)性能均優(yōu)于傳統(tǒng)的51芯片,本設(shè)計(jì)基于Android操作系統(tǒng)的開源性和可操作性,利用無線技術(shù)控制小車運(yùn)行[3-4]。藍(lán)牙作為一種抗干擾能力強(qiáng)、功耗低的無線互連技術(shù),比其他無線控制技術(shù),如紅外、射頻等應(yīng)用范圍更廣,在局域范圍控制中具有一定的優(yōu)勢(shì)[5-6]。因此,本文以Android手機(jī)作為終端,通過藍(lán)牙串口傳輸指令,實(shí)現(xiàn)小車的智能策略控制[7-8]。
圖1 控制流程框圖
以Arduino單片機(jī)為核心,通過Android手機(jī)中的藍(lán)牙串口助手發(fā)送指令至藍(lán)牙模塊進(jìn)行存儲(chǔ)分析,實(shí)現(xiàn)小車的前進(jìn)、后退、左旋、右旋、左轉(zhuǎn)、右轉(zhuǎn)、停止等功能。首先在硬件通電的瞬間實(shí)現(xiàn)硬件的初始化,包括HC-06藍(lán)牙模塊的設(shè)置連接及電機(jī)通電待命狀態(tài)。初始化完成后,通過Android手機(jī)中的藍(lán)牙串口助手進(jìn)行指令的發(fā)送,Arduino處理器實(shí)時(shí)對(duì)HC-06藍(lán)牙模塊端口進(jìn)行數(shù)據(jù)讀取和分析,收到信號(hào)立即進(jìn)行處理,再通過L296N電機(jī)驅(qū)動(dòng)模塊實(shí)現(xiàn)小車的運(yùn)行功能,控制流程如圖1所示。
整個(gè)硬件系統(tǒng)分為3個(gè)子模塊:Arduino主控模塊、H橋控制的電機(jī)驅(qū)動(dòng)模塊和HC-06藍(lán)牙模塊。主控模塊采用以Atmega328-AU處理芯片為內(nèi)核的芯片,是整個(gè)系統(tǒng)的智能控制部分,進(jìn)行信息數(shù)據(jù)的分析和處理;電機(jī)驅(qū)動(dòng)模塊主要采用L298N驅(qū)動(dòng)模式,實(shí)現(xiàn)對(duì)電機(jī)的控制;藍(lán)牙模塊負(fù)責(zé)接收相應(yīng)的指令控制驅(qū)動(dòng)電機(jī)模塊轉(zhuǎn)動(dòng),從而實(shí)現(xiàn)無線控制功能。
2.1 Arduino硬件開發(fā)板
Arduino單片機(jī)是一塊基于開放源代碼的USB接口板,微處理器采用Atmega328-AU,性價(jià)比高,同時(shí)具有類似Java、C語(yǔ)言的IDE開發(fā)環(huán)境硬件庫(kù),可根據(jù)外圍硬件進(jìn)行庫(kù)的二次開發(fā),方便與各種電子組件的連接[9-10]。外圍引腳包括數(shù)字I/O(D0-D13)、模擬I/O(A0-A5)、7個(gè)PWM,并且支持外部供電與USB供電自動(dòng)切換。
2.2 電機(jī)驅(qū)動(dòng)模塊
L298N電機(jī)驅(qū)動(dòng)模塊主要包括由8個(gè)二極管組成的兩組電機(jī)控制接口端(P1,P2),其內(nèi)部是4通道邏輯驅(qū)動(dòng)電路,用于接收來自Arduino芯片的驅(qū)動(dòng)控制信息和對(duì)兩個(gè)電機(jī)的控制信息。電路中8個(gè)二極管的作用是為產(chǎn)生的反向電流提供泄放路徑,避免電流過大燒毀驅(qū)動(dòng)芯片。小車的左右輪兩組電機(jī)分別與電機(jī)控制接口端相連接,構(gòu)成小車的運(yùn)動(dòng)控制系統(tǒng)。電機(jī)控制系統(tǒng)中采用線圈式電機(jī),防止電機(jī)從一種運(yùn)行狀態(tài)切換到另一種運(yùn)行狀態(tài)時(shí)形成的反向電流燒毀電機(jī)。電機(jī)驅(qū)動(dòng)模塊電路設(shè)計(jì)如圖2所示。
圖2 電機(jī)驅(qū)動(dòng)模塊電路圖
2.3 HC-06藍(lán)牙模塊
藍(lán)牙模塊用于連接Android手機(jī)和小車,實(shí)現(xiàn)數(shù)據(jù)的傳輸。藍(lán)牙模塊分為主機(jī)模塊和從機(jī)模塊,主機(jī)能夠與從機(jī)配對(duì)通信,從機(jī)與從機(jī)之間或主機(jī)與主機(jī)之間不能通信,在本項(xiàng)目中,藍(lán)牙模塊主要功能是接收從手機(jī)端發(fā)送過來的指令,實(shí)現(xiàn)單一方向的通信,因此選擇從機(jī)HC-06模塊[11-12]。藍(lán)牙數(shù)據(jù)傳輸流程如圖3所示。
圖3 藍(lán)牙數(shù)據(jù)傳輸流程圖
首先將藍(lán)牙模塊連接到PC上,完成與手機(jī)的配對(duì),再將藍(lán)牙模塊連接到Arduino控制板的藍(lán)牙模塊接口。連接方式:藍(lán)牙模塊的VCC接Arduino的3.3 V;GND接Arduino的GND;藍(lán)牙模塊的接收端RXD接Arduino的發(fā)送端TX,因?yàn)锳rduino主控器只發(fā)送命令無需接收信號(hào),所以藍(lán)牙模塊的發(fā)送端TXD和Arduino的接收端RX無需連接,再根據(jù)相應(yīng)的IDE程序完成Android手機(jī)與Arduino控制器的連接,硬件連接如圖4所示。
小車控制系統(tǒng)的軟件設(shè)計(jì)包括上位機(jī)和下位機(jī)軟件的編寫和測(cè)試。在上位機(jī)軟件設(shè)計(jì)中,選用Eclipse作為開發(fā)工具,設(shè)計(jì)了客戶端軟件,用Java語(yǔ)言開發(fā)客戶端的控制程序。為簡(jiǎn)潔、快速地實(shí)現(xiàn)程序功能,本程序沒有對(duì)軟件界面做美化設(shè)計(jì)。在程序操作過程中,首先連接智能小車和HC-06藍(lán)牙模塊,點(diǎn)擊界面中的“查找設(shè)備”,程序就會(huì)列出周圍已開啟的藍(lán)牙設(shè)備,如圖5(a)所示,選擇屬于小車的藍(lán)牙設(shè)備即可自動(dòng)連接上,控制小車運(yùn)行的9個(gè)按鈕和圖形顯示如圖5(b)所示。
下位機(jī)軟件設(shè)計(jì),即Arduino主控模塊上串口通信程序的設(shè)計(jì),采用模塊化結(jié)構(gòu),由主程序﹑左轉(zhuǎn)子程序、右轉(zhuǎn)子程序﹑前進(jìn)子程序、后退子程序等構(gòu)成。Arduino單片機(jī)的串行口通過訪問特殊功能寄存器SBUF實(shí)現(xiàn)接收緩沖器和發(fā)送緩沖器的訪問,并且可以同時(shí)接收和發(fā)送數(shù)據(jù)。串行口的控制主要包括對(duì)狀態(tài)控制寄存器SCON、控制寄存器PCON和串行數(shù)據(jù)寄存器SBUF的設(shè)置。Arduino對(duì)于常用的串行口已有完整的集成庫(kù),管腳進(jìn)行配置只需調(diào)用相應(yīng)的子函數(shù),如pinMode(pin,mode),pin為用戶欲配置的管腳編號(hào),mode為配置模式(INPUT表示配置為輸入管腳,OUTPUT表示配置為輸出管腳)。基于Arduino開發(fā)環(huán)境下的部分IDE程序代碼如下。
圖4 藍(lán)牙模塊的硬件連接圖
圖5 藍(lán)牙客戶端與硬件模塊連接界面
void forward( );//小車前進(jìn)
void back( ); //小車后退
void turnLeft( ); //小車左轉(zhuǎn)
void turnRight( ); //小車右轉(zhuǎn)
void car_up( ); //小車加速
void car_down( ); //小車減速
void turnLeftOrigin( ); //小車左旋
void turnRightOrigin( ); //小車右旋
void _stop();//小車停止
void setup();
{pinMode(IN1,OUTPUT);
pinMode(IN2,OUTPUT);
pinMode(IN3,OUTPUT);
pinMode(IN4,OUTPUT);
Serial.begin(9600);}
void loop()
{…..}
4.1 驅(qū)動(dòng)電機(jī)測(cè)試
小車的系統(tǒng)設(shè)計(jì)要求Android手機(jī)能正確控制小車的轉(zhuǎn)向、前進(jìn)、后退和停止等功能。為檢測(cè)系統(tǒng)能否達(dá)到設(shè)計(jì)要求,對(duì)系統(tǒng)進(jìn)行功能和性能測(cè)試。本文中用Arduino單片機(jī)的4、5、6、7引腳的高低電平來控制小車的啟停和轉(zhuǎn)向。ENA和ENB是電機(jī)1和電機(jī)2的使能引腳,IN1和IN2引腳控制電機(jī)1,IN3和IN4引腳控制電機(jī)2。以前驅(qū)左輪電機(jī)1為例,真值表如表1所示。
表1 直流電機(jī)1控制真值表
4.2 藍(lán)牙通信距離的測(cè)試
藍(lán)牙作為一種抗干擾能力強(qiáng)、功耗低的無線技術(shù)使用較為普遍,但同時(shí)藍(lán)牙模塊的低功率和高頻率限制了其應(yīng)用范圍,故對(duì)該系統(tǒng)的通信質(zhì)量進(jìn)行測(cè)試,測(cè)試地點(diǎn)選擇教學(xué)樓內(nèi)和空曠的平地,經(jīng)測(cè)試確定無線藍(lán)牙能在約9 m的范圍內(nèi)有效控制。
本設(shè)計(jì)以Arduino單片機(jī)為核心控制,通過HC-06藍(lán)牙模塊實(shí)現(xiàn)小車和主控制器的通信,完成小車多種運(yùn)動(dòng)形態(tài),實(shí)現(xiàn)小車智能策略控制。實(shí)驗(yàn)表明,本控制系統(tǒng)能夠?qū)崿F(xiàn)小車前進(jìn)、停止、左旋、右旋等功能,達(dá)到預(yù)期設(shè)計(jì)效果。但藍(lán)牙控制范圍有限,為擴(kuò)大其應(yīng)用范圍,考慮引進(jìn)蜂窩的網(wǎng)路架構(gòu)或者通過增大發(fā)射功率等措施來擴(kuò)大覆蓋半徑。
[1] 紀(jì)欣然.基于Arduino開發(fā)環(huán)境的智能尋光小車設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2012,35(15):161-163.
[2] 朱丹峰,葛主冉,林曉雷.基于Android平臺(tái)的無線遙控智能小車[J].電子器件,2013,36(3):408-412.
[3] 王洪斌,李程,王躍靈,等.基于Arduino和藍(lán)牙技術(shù)的六足機(jī)器人控制系統(tǒng)設(shè)計(jì)[J].黑龍江大學(xué)自然科學(xué)學(xué)報(bào),2015,32(4):533-537.
[4] 李建高,李樹明. 基于藍(lán)牙與智能手機(jī)的遠(yuǎn)程信息采集與控制系統(tǒng)[J]. 微型機(jī)與應(yīng)用,2012, 31(17):92-94.
[5] 紀(jì)欣然.基于Arduino開發(fā)環(huán)境的智能尋光小車設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2012,35(15):161-163.
[6] 卞云松.基于Arduino單片機(jī)的避障小車機(jī)器人[J].自動(dòng)化技術(shù)與應(yīng)用,2014,33(1):16-19.
[7] 戈惠梅,徐曉慧,顧志華,等.基于Arduino的智能小車避障系統(tǒng)的設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2014,37(11):118-120.
[8] 趙新穎,羅坤.基于80C51控制的智能電動(dòng)小車系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].微型機(jī)與應(yīng)用,2011,30(22):85-87.
[9] 江燕良.基于Android智能終端的遠(yuǎn)程控制系統(tǒng)[J].電子技術(shù)應(yīng)用,2012,38(8):129-132.[10] 劉晉,蘇臣,金禹含,等.基于PID算法在噴繪機(jī)小車控制系統(tǒng)的應(yīng)用[J].微型機(jī)與應(yīng)用,2015,34(8):97-100.
[11] 朱恒軍,張玉龍,靳展.基于ZigBee的室內(nèi)空氣環(huán)境監(jiān)控系統(tǒng)設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2015,41(2):86-92.
[12] 馬建倉(cāng),羅亞軍,趙玉亭.藍(lán)牙核心技術(shù)及運(yùn)用[M].北京:科學(xué)出版社,2003.
西門子全集成數(shù)字化之旅全新起航
西門子全新升級(jí)的全集成數(shù)字化之旅日前在北京正式啟動(dòng)。在此前自動(dòng)化創(chuàng)新之旅的基礎(chǔ)上,西門子全集成數(shù)字化之旅將西門子最先進(jìn)的數(shù)字化理念,如“數(shù)字化雙胞胎”和基于云的開放式物聯(lián)網(wǎng)操作系統(tǒng)MindSphere融入其中,致力于向中國(guó)工業(yè)客戶全面展示實(shí)現(xiàn)數(shù)字化轉(zhuǎn)型升級(jí)和踐行“中國(guó)制造2025”戰(zhàn)略切實(shí)可行的案例和示范解決方案。全集成數(shù)字化之旅實(shí)體展示卡車將在未來半年內(nèi)深入到全國(guó)21座城市,向3 500多名客戶進(jìn)行零距離展示。
“數(shù)字化正在工業(yè)領(lǐng)域掀起深刻變革,而西門子是中國(guó)工業(yè)企業(yè)把握變革機(jī)遇的最佳合作伙伴?!蔽鏖T子大中華區(qū)首席執(zhí)行官赫爾曼(Lothar Herrmann)表示,“借助跨越全生命周期的數(shù)字化企業(yè)解決方案,以及在軟硬件、服務(wù)乃至商業(yè)模式上的持續(xù)創(chuàng)新,西門子將幫助客戶著眼于未來,更好地適應(yīng)市場(chǎng)變化?!?/p>
西門子2015年啟動(dòng)全集成自動(dòng)化之旅,目前總行程已超過10萬公里,將西門子最先進(jìn)的全集成自動(dòng)化技術(shù)、產(chǎn)品、解決方案以及服務(wù)理念帶給超過5000名中國(guó)的工業(yè)客戶。此次升級(jí)的西門子全集成數(shù)字化之旅在自動(dòng)化軟硬件解決方案的基礎(chǔ)上將虛擬調(diào)試以及“數(shù)字化雙胞胎”的理念集成于TIA博途體驗(yàn)中心,讓客戶能夠身臨其境地體驗(yàn)“產(chǎn)品的數(shù)字化雙胞胎”、“設(shè)備的數(shù)字化雙胞胎”和“生產(chǎn)工藝流程的數(shù)字化雙胞胎”為客戶的生產(chǎn)所帶來的價(jià)值。全集成數(shù)字化之旅生動(dòng)演示了跨越產(chǎn)品與生產(chǎn)的全生命周期價(jià)值鏈的集成,彰顯了數(shù)字化帶來的高生產(chǎn)力與效率。
全集成數(shù)字化之旅另一大亮點(diǎn)是西門子推出的基于云的開放式物聯(lián)網(wǎng)操作系統(tǒng)MindSphere。它是一個(gè)可擴(kuò)展基礎(chǔ)設(shè)施,能夠采集生產(chǎn)數(shù)據(jù),并將這些數(shù)據(jù)用于價(jià)值增值分析從而為客戶帶來收益。作為自動(dòng)化和驅(qū)動(dòng)設(shè)備領(lǐng)域的市場(chǎng)領(lǐng)導(dǎo)者,西門子能夠利用其在工業(yè)領(lǐng)域巨大的裝機(jī)量和在連接生產(chǎn)設(shè)備、智能數(shù)據(jù)采集方面的優(yōu)勢(shì)更好地為客戶提供基于大數(shù)據(jù)的服務(wù),從而為工業(yè)客戶帶來更多可持續(xù)價(jià)值。
(西門子公司供稿)
Design and implementation of car Bluetooth control system based on Arduino/Android
Xu Peng1,Liang Man2,Wei Ping1,Zhang Hailing1
(1.Ship Engineering Institute,Zhejiang International Maritime College,Zhoushan 316021,China;2.Key Laboratory of Ministry of Education,Zhejiang University of Technology,Hangzhou 310014,China)
In this paper, the main control program of electric car has been achieved by taking the hardware platform of Arduino single-chip microcomputer as the core controller, and combining with Eclipse development environment as well as Arduino IDE programming language.The communication between Android phone Bluetooth client terminal and Bluetooth implements determines the strategic control of the car. The intelligent car is designed to be of front axle driving and rear wheel steering, with two DC machines and gear reduction mechanisms on each wheel working together to achieve the motion of the car. The experiment indicates that the above control system can control the motion of the car by means of Android phone Bluetooth, such as forwarding, backwarding, turning and so on. The control system is simple in its structure and convenient in operation, hence providing a reference for the new intelligent control.
Arduino;Android;Bluetooth;intelligent car
TN242.6
A
10.19358/j.issn.1674- 7720.2017.04.029
徐鵬,梁曼,魏萍,等.基于Arduino/Android藍(lán)牙控制小車系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].微型機(jī)與應(yīng)用,2017,36(4):96-98,102.
0 引言
浙江省高等教育課堂教學(xué)改革項(xiàng)目(kg2015939);浙江國(guó)際海運(yùn)職業(yè)技術(shù)學(xué)院2016訪問工程師校企項(xiàng)目
2016-09-20)
徐鵬(1988-),通信作者,男,碩士,主要研究方向:機(jī)電一體化及自動(dòng)控制理論。E-mail:xupengzjut@163.com。
梁曼(1991-),女,博士研究生,主要研究方向:機(jī)電裝備設(shè)計(jì)和制造業(yè)信息化。
魏萍(1977-),女,碩士,講師,主要研究方向:機(jī)電一體化和船舶電氣。