曹素紅
基于Arduino平臺(tái)的藍(lán)牙智能小車開(kāi)發(fā)
曹素紅
(北京信息職業(yè)技術(shù)學(xué)院,北京 100015)
藍(lán)牙控制具有簡(jiǎn)單可靠等特點(diǎn),因此在智能小車運(yùn)動(dòng)控制中具有很高的應(yīng)用價(jià)值。介紹了一款利用Arduino平臺(tái)作為主控系統(tǒng),采用藍(lán)牙模塊進(jìn)行無(wú)線控制的智能小車。重點(diǎn)闡述了此藍(lán)牙小車的開(kāi)發(fā)流程及難點(diǎn)。
Arduino平臺(tái);藍(lán)牙;智能小車;電路板
Arduino控制板具有豐富的接口資源,用其設(shè)計(jì)開(kāi)發(fā)智能小車的控制電路十分方便。Arduino是一個(gè)開(kāi)源、擁有簡(jiǎn)單輸入/輸出(I/O)的電路板,為了方便使用,采用簡(jiǎn)單的IDE集成開(kāi)發(fā)環(huán)境,程序通過(guò)USB而非串行端口實(shí)現(xiàn),控制簡(jiǎn)單、方便、快捷。此外,Arduino控制板還具有資源豐富、控制功能強(qiáng)大、可位尋址操作、價(jià)格低廉等優(yōu)點(diǎn)。藍(lán)牙控制具有簡(jiǎn)單可靠等特點(diǎn),因此,采用Arduino控制板結(jié)合藍(lán)牙模塊是一種較為理想的智能小車運(yùn)動(dòng)控制方案。
藍(lán)牙智能小車硬件結(jié)構(gòu)如圖1所示,從下向上依次為:Arduino控制板、298電機(jī)驅(qū)動(dòng)板、含藍(lán)牙模塊的Arduino擴(kuò)展板。這三個(gè)電路板從底層單片機(jī)到中層298驅(qū)動(dòng)電路板,再到頂層含藍(lán)牙模塊的擴(kuò)展板,相互配合,協(xié)調(diào)動(dòng)作。
圖1 藍(lán)牙智能小車硬件結(jié)構(gòu)
藍(lán)牙智能小車系統(tǒng)的工作流程如圖2所示,手機(jī)端與小車端藍(lán)牙程序互相配合,手機(jī)按鍵具體指示小車運(yùn)動(dòng)動(dòng)作,Arduino控制板依據(jù)接收到的藍(lán)牙命令進(jìn)行具體操作。
圖2 工作流程
藍(lán)牙智能小車所采用的藍(lán)牙模塊是OPENJUMPER模組,如圖3所示,可通過(guò)AT模式改寫(xiě)其參數(shù)。適用于Arduino與PC、手機(jī)等設(shè)備的無(wú)線連接,連接成功后即可控制小車完成各種動(dòng)作。
圖3 OPENJUMPER藍(lán)牙模塊
具體程序如下:
void loop()
{
val = Serial.read();
if (-1 != val) {
switch(val)
{
case 'c':Serial.println("testOk");break;//pc端發(fā)送字符c,若返回testOk,說(shuō)明連接正常
case 'w':motosp(200,200);Serial.println("testOk");break;
//按下w鍵,小車直行
case 's':motosp(-200,-200);Serial.println("testOk");break;
//按下s鍵,小車后退
case 'q':motosp(100,200);Serial.println("testOk");break;
//按下q鍵,向前左轉(zhuǎn)
case 'e':motosp(200,100);Serial.println("testOk");break;
//按下e鍵,向前右轉(zhuǎn)
case 'a':motosp(-100,-150);Serial.println("testOk");break;
//按下a鍵,向后左轉(zhuǎn)
case 'd':motosp(-150,-100);Serial.println("testOk");break;
//按下d鍵,向后右轉(zhuǎn)
case 't':motosp(0,0);Serial.println("testOk");break;
}
delay(100);
}
else motosp(0,0);//未接收到數(shù)據(jù)時(shí),小車停止
}
利用網(wǎng)頁(yè)版的“app inventor”APP設(shè)計(jì)平臺(tái)設(shè)計(jì)此項(xiàng)目的遙控操作軟件,軟件界面如圖4所示。
圖4 app inventor界面
采用該平臺(tái)進(jìn)行藍(lán)牙功能APP程序設(shè)計(jì)的優(yōu)點(diǎn)為:①收發(fā)字符快速,調(diào)試程序方便;②可以連續(xù)控制小車前后左右轉(zhuǎn)動(dòng),靈活方便;③可以自由調(diào)整APP用戶的條件與需求;④連接穩(wěn)定,能滿足小車的運(yùn)行流暢;⑤“app inventor”APP適合于初高中以上學(xué)習(xí)基礎(chǔ)的人群學(xué)習(xí)掌握。
小車接收端藍(lán)牙模塊和手機(jī)發(fā)送端藍(lán)牙模塊互相配合,小車藍(lán)牙模塊接收到手機(jī)藍(lán)牙模塊的信號(hào),驅(qū)動(dòng)相應(yīng)電路,完成小車的前進(jìn)、后退、左右轉(zhuǎn)等基本動(dòng)作。
最后生成的智能小車手機(jī)端遙控界面如圖5所示,通過(guò)這個(gè)界面可實(shí)現(xiàn)與智能小車進(jìn)行藍(lán)牙傳輸?shù)南嚓P(guān)交互動(dòng)作。
圖5 手機(jī)端操作界面
本文闡明了基于Arduino平臺(tái)的藍(lán)牙智能小車的開(kāi)發(fā)技術(shù)要點(diǎn)。鑒于藍(lán)牙控制簡(jiǎn)單可靠,而Arduino控制板適用性強(qiáng)等特點(diǎn),利用Arduino平臺(tái)和藍(lán)牙模塊可以比較便捷地開(kāi)發(fā)設(shè)計(jì)智能運(yùn)動(dòng)小車。
[1]陳呂洲.Arduino程序設(shè)計(jì)基礎(chǔ)[M].2版.北京:北航出版社,2015.
TP23
A
10.15913/j.cnki.kjycx.2019.23.008
2095-6835(2019)23-0022-02
〔編輯:張思楠〕